1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng hệ thống đo đạc, thu thập và xử lý tín hiệu số các thông số môi trường từ xa qua mạng ethernet trên nền linux nhúng

86 691 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 86
Dung lượng 1,47 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - Vũ Ngọc Ha XÂY DỰNG HỆ THỐNG ĐO ĐẠC, THU THẬP VÀ XỬ LÝ TÍN HIỆU SỐ CÁC THÔNG SỐ MÔI TRƢỜNG TỪ XA QUA MẠNGETHERNET TRÊN NỀN LINUX NHÚNG LUẬN VĂN THẠC SĨ KHOA HỌC Hà Nội - 2013 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - Vũ Ngọc Ha XÂY DỰNG HỆ THỐNG ĐO ĐẠC, THU THẬP VÀ XỬ LÝ TÍN HIỆU SỐ CÁC THƠNG SỐ MƠI TRƢỜNG TỪ XA QUA MẠNG ETHERNET TRÊN NỀN LINUX NHÚNG Chuyên ngành: Vật lý vô tuyến điện tử Mã số: 60 44 03 LUẬN VĂN THẠC SĨ KHOA HỌC NGƢỜI HƢỚNG DẪN KHOA HỌC: TS ĐỖ TRUNG KIÊN Hà Nội - 2013 Mục lục MỞ ĐẦU CHƢƠNG : TỔNG QUAN 11 1.1 Hệ thiết bị đo lƣờng 11 1.2 Bộ thu thập số liệu 12 1.2.1 Giới thiệu thu thập số liệu 12 1.2.2 Một số đặc điểm hệ thu thập số liệu 14 1.2.3 Một số thu thập số liệu 14 1.3 Hệ thống nhúng Linux 16 1.3.1 Thế hệ thống nhúng 16 1.3.2 Hệ điều hành Linux 17 1.3.3 Các hiểu biết sở phần cứng 18 1.3.4 Bộ vi xử lý độc lập 19 1.3.5 Bộ vi xử lý tích hợp 19 1.3.6 Board mạch NGW100 20 1.3.7 Giao thức truyền tin qua mạng 23 CHƢƠNG : ĐỐI TƢỢNG VÀ PHƢƠNG PHÁP NGHIÊN CỨU 26 2.1 Các đại lƣợng đo 26 2.2 Nhiệt độ cảm biến đo nhiệt độ 26 2.2.1 Nhiệt độ 26 2.2.2 Cảm biến đo nhiệt độ DS18B20 27 2.2.3 Giao tiếp chuẩn 1-dây 28 2.2.4 Truyền xử lý tín hiệu số chuẩn 1-dây cho cảm biến nhiệt độ DS18B20 30 2.3 Độ ẩm tƣơng đối cảm biến đo nhiệt độ tƣơng đối 36 2.3.1 Độ ẩm tƣơng đối 36 2.3.2 Cảm biến đo độ ẩm tƣơng đối 36 2.4 Xây dựng phần cứng thiết bị 42 2.4.1 Ghép nối phần cứng mở rộng 42 2.5 Tìm hiểu sở cài đặt thiết kế phần mềm 42 2.5.1 Nhân Linux 43 2.5.2 Cấu trúc Linux: 44 2.5.3 Chuẩn bị biên dịch nhân Linux 45 2.5.4 Xây dựng hệ thu thập số liệu 48 2.5.6 Xây dựng trình điều khiển 48 2.5.7 Xây dựng phần mềm quản lý đo lƣu số liệu thẻ nhớ 51 2.5.8 Truyền số liệu điều khiển từ xa qua mạng 51 CHƢƠNG : KẾT QUẢ KHẢO SÁT VÀ ĐÁNH GIÁ THIẾT BỊ 53 3.1 Khảo sát giao tiếp 1-dây với cảm biến đo nhiệt độ DS18b20 53 3.2 Khảo sát hệ mạch đo độ ẩm 56 3.3 Chuẩn hóa hệ mạch đo độ ẩm 58 3.4 Khảo sát chỉnh chuẩn hóa hệ đo 58 3.5 Kết đo nhiệt độ độ ẩm môi trƣờng 62 3.6 Thu thập số liệu điều khiển từ xa qua mạng 63 3.7 Khả ứng dụng thực tiễn 67 3.8 Tiềm năng, mở rộng, nâng cấp hệ thống 68 KẾT LUẬN 69 TÀI LIỆU THAM KHẢO 71 Danh mục hình vẽ Hình 1.1 Sơ đồ khối hệ thống đo tự động 12 Hình 1.2 Sơ đồ khối thu thập số liệu 13 Hình 1.3 Bộ thu thập số liệu DVTH MT100 15 Hình 1.4 Ảnh thực tế board mạch NGW100 20 Hình 1.5 Các thành phần board mạch NGW100 22 Hình 1.6 Sơ đồ khối board mạch NGW100 22 Hình 2.1 Sơ đồ nguyên lý đo nhiệt độ sử dụng DS18B20 28 Hình 2.2 Ảnh thực cảm biến nhiệt độ DS18B20 28 Hình 2.3 mơ tả hệ thống truyền dẫn vật lý Bus 1-dây 30 Hình 2.4 giản đồ xung trình kết nối, gửi lệnh gọi thiết bị Rom Code điều khiển giao tiếp 1-dây 35 Hình 2.5 Sơ đồ khối miêu tả hoạt động hệ thiết bị sử dụng giao tiếp 1-dây 35 Hình 2.6 cảm biến độ ẩm tƣơng đối HS1100 37 Hình 2.7 Biều đồ phụ thuộc điện dung biến tử vào độ ẩm tƣơng đối 38 Hình 2.8 Sơ đồ nguyên lý đo độ ẩm sử dụng HS1100 LM555 39 Hình 2.9 Sơ đồ khối miêu tả hoạt động hệ đo độ ẩm tƣơng đối 40 Hình 2.10 Biều đồ phụ thuộc tần số mạch dao động theo độ ẩm khơng khí 41 Hình 2.11 Kiến trúc hệ điều hành GNU/Linux 44 Hình 2.12 Giao diện thực tế terminal hệ điều hành Linux thiết bị hiển thị qua hình máy tính 47 Hình 2.13 Sơ đồ thuật tốn đo nhiệt độ sử dụng IC DS18B20 49 Hình 2.14 Sơ đồ thuật tốn đo độ ẩm sử dụng HS1100 IC LM555 50 Hình 2.15 Sơ đồ thuật tốn phần mềm quản lý đo lƣu trữ 51 Hình 3.1 Giản đồ giao động ký tín hiệu giao tiếp 1-dây cảm biến DS18B20 53 Hình 3.2 Giản đồ dao động ký xung trình nhận lệnh truyền liệu cảm biến DS18B20 54 Hình 3.3 giản đồ xung giai đoạn trình nhận lệnh truyền liệu cảm biến DS18B20 54 Hình 3.4 giản đồ xung giai đoạn trình nhận lệnh truyền liệu cảm biến DS18B20 55 Hình 3.5 giản đồ xung giai đoạn 3- nhận liệu từ cảm biến, trình nhận lệnh truyền liệu cảm biến DS18B20 56 Hình 3.6 Đồ thị so sánh tần số hệ mạch đo độ ẩm từ kết tính tốn đo thực tế thay đổi độ ẩm tƣơng đối 57 Hình 3.7 Đồ thị khảo sát đánh giá hệ đo nhiệt độ 61 Hình 3.8 Đồ thị khảo sát đánh giá hệ đo độ ẩm 62 Hình 3.9 Hệ thống thu thập số liệu linux nhúng 63 Hình 3.10 Web server hệ thống 64 Hình 3.11 Giao diện tải thơng tin đo đạc đƣợc 64 Hình 3.12 Giao diện đăng nhập hệ thống 65 Hình 3.13Giao diện thay đổi thiết lập 65 Hình 3.14 File số liệu mẫu 66 Hình 3.15 Đồ thị biến đổi theo thời gian nhiệt độ phịng thí nghiệm 67 Hình 3.16 Đồ thị biến đổi theo thời gian độ ẩm tƣơng đối phịng thí nghiệm 67 Danh mục bảng biểu Bảng 3.1 Số liệu đo từ việc khảo sát tần số theo độ ẩm để chuẩn hóa hệ mạch đo độ ẩm 56 Bảng 3.2 Số liệu khảo sát việc đo nhiệt độ hệ thống 60 Bảng 3.3 Số liệu khảo sát việc đo độ ẩm hệ thống 62 MỞ ĐẦU Việc đo đạc đại lƣợng vật lý, thu thập thông số, xử lý số liệu thông tin quan trọng khoa học đời sống Với hầu hết thí nghiệm vật lý, hóa học, sinh học, mơi trƣờng, thống kê điều tra cần đo đạc thu thập xử lý số liệu Trong sản xuất công nghiệp cần việc đo đạc thông số để đảm bảo chất lƣợng quản lý sản xuất Các vấn đề thƣờng phải làm đo đại lƣợng, thông số cần thiết thiết bị đo thích hợp, ghi chép, truyền số liệu, xử lý số liệu, đáng giá nhận xét đƣa định Trƣớc công nghệ thông tin, điện tử, tự động hóa phát triển, vấn đề thƣờng phải đƣợc xử lý hồn tồn thủ cơng, nhiều thời gian, sức lực mà hiệu không cao Ngày nay, công nghệ thông minh phát triển, cho phép tạo hệ thống đo đạc xử lý hoàn toàn tự động Hệ thống tự động cho phép đo đạc thu thập xử lý, lƣu, truyền số liệu, đánh giá số liệu với hiệu cao, liên tục, xác Ngày hệ thống đo tự động nhƣ thiếu đƣợc lĩnh vực khoa học kỹ thuật sống Trong khoa học, chúng đo đạc xử lý số liệu khổng lồ khoa học thực nghiệm mà phải sử dụng sức ngƣời khơng thể thực đƣợc Trong kỹ thuật hệ thống đo đạc xử lý tự động cho phép sản xuất công nghiệp quản lý, đánh giá sản phẩm hoàn toàn tự động, cho sản phẩm xuất cao chất lƣợng tốt, đồng Bên cạnh cơng nghệ truyền thông Internet đời đạt đƣợc phát triển vƣợt bậc to lớn, đƣa nhân loại sang kỷ ngun cơng nghệ thơng tin Vì tính thiết thực, quan trọng vấn đề đo đạc, thu thập xử lý tín hiệu, để bắt kịp phát triển khoa học cơng nghệ, luận văn xin trình bầy vấn đề xây dựng hệ thống đo đạc, thu thập xử lý thơng số hồn tồn tự động truyền điều khiển từ xa qua mạng Cụ thể luận văn trình bày xây dựng hệ thống đo đạc thu thập xử lý thông số môi trƣờng, thu thập số liệu môi trƣờng nhƣ nhiệt độ, độ ẩm… ghi lại số liệu Các số liệu phục vụ cho nhiều việc nhƣ dự báo thời tiết, phân tích mơi trƣờng, bảo vệ thực phẩm, vật tƣ, máy móc… Yêu cầu hệ thống hoạt động hoàn toàn tự động hệ điều hành Linux nhúng, đƣợc thông số mơi trƣờng nhƣ nhiệt độ độ ẩm, truyền số liệu hay điều khiển từ xa qua mạng Luận văn đƣợc trình bày thành chƣơng Chƣơng Tìm hiểu trình bày tổng quan hệ thiết bị đo lƣờng, thu thập số liệu, hệ thống nhúng hệ điều hành Linux Các hiểu biết sở phần cứng, giao thức truyền tin qua mạng Chƣơng Trình bày thực xây dựng hệ thống Tìm hiểu đại lƣợng đo, cảm biến đo, đặc trƣng cảm biến hệ đo, truyền xử lý tín hiệu số giao thức truyền tin 1-dây, xây dựng phần cứng phần mềm, khảo sát thực nghiệm chuẩn hóa hệ thống đo Chƣơng Trình bày số kết vận hành hệ thống Kết sau thực đề tài luận văn tìm hiều đƣa sở thực xây dựng thành công đƣợc hệ thống thu thập số liệu thông số mơi trƣờng linux nhúng có khả truyền số liệu điều khiển qua mạng Bƣớc đầu vận hành chạy thử nghiệm đạt kết Tuy nhiên thời gian thực cịn hạn chế, có nhiều khó khăn trang thiết bị thiết bị, tài liệu Do luận văn cịn nhiều thiếu sót cần bổ xung chỉnh xửa mong q thầy bạn đọc đóng góp bảo thêm Hà Nội, ngày…tháng 01 năm 2013 Vũ Ngọc Ha 10 CHƢƠNG : TỔNG QUAN 1.1 Hệ thiết bị đo lƣờng Việc đo đạc, thu thập xử lý thơng tin nói chung chia làm ba phần đo, thu thập truyền xử lý Việc đo thực chất việc định lƣợng đại lƣợng vật lý thành số đơn vị cách thực phép đo dụng cụ đo Dụng cụ đo thông qua phép đo mà chuyển đại lƣợng vật lý cần đo đối tƣợng cần đo thành đại lƣợng khác có thơng tin định lƣợng đại lƣợng tức thể hiển thị đƣợc đọc đƣợc cách định lƣợng Thƣờng ngày nay, để thuận lợi cho việc lƣu trữ, truyền thơng, xử lý đại lƣợng cần đo chuyển đại lƣợng điện mang thông tin định lƣợng đại lƣợng cần đo nhƣ hiệu điện dòng điện Đại lƣợng điện thuận lợi cho việc truyền, lƣu trữ, xử lý thiết bị điện, mạch điện tích hợp, với cơng nghệ điện toán mà nhân loại đạt đƣợc nhiều thành tựu Việc thu thập gồm thuyền lƣu trữ ngày thƣờng đƣợc thực sở điện tốn Việc xử lý thơng tin đƣợc thực tự động hồn tồn tự động phần thơng qua hệ thống điện tốn, thƣờng thực hiệu vi xử lý chƣơng trình hoạt động vi xử lý Việc ngƣời thực công việc liên quan hệ thống xây dựng hệ thống gồm phần cứng phần mềm, vận hành hệ thống, sử dụng đánh giá kết đo Một hệ thống đo đạc điều khiển tự động có chức đo đạc đại lƣợng, thông số đối tƣợng, truyền thông, lƣu trữ, xử lý, phân tích đánh giá cịn đƣa tín hiệu điều khiển phản hồi (feedback) hoàn toàn tự động Sơ đồ khối hệ thống đo tự động: 11 23 Lee, Che-Tai; Hong, Zeng-Wei, and Lin, Jim-Min, “Linux kernel Customization for Embedded Systems by Using Call Graph Approach,” Design Automation Conference, 2003 Proceedings of the ASP-DAC 2003 Asia and South Pacific, pp 689 – 692, January, 2003 24 Lin, K J., and Wang, Y.C., “The Design and Implementation of RealTime schedulers in RED-Linux,” Proceedings of the IEEE, Vol 91, No 7, July 2003 25 Li, Yun-Chen, and Chiang, Mei-Ling, “LyraNet: A Zero-Copy TCP/IP Protocol Stack for Embedded Operating Systems,” Proceedings of the 11th IEEE International Conference on embedded and Real-Time Computing Systems and Applications, pp 123-128, August, 2005 26 Luharuka, E and Gao, R.X.(2002), A microcontroller-based data logger for physiological sensing, IEEE Xplore vol 1, pp 175-180 27 M Tim Jones(2007), Anatomy of the Linux kernel 28 Microchip Technology Inc (2008),1-Wire Communication with PICMicrocontroller 29 Maxim Corp., DS18B20 programable resolution 1-wire digital thermometer datasheet 30 Motorola Corp., Decade counter; devide-by-twelve counter; 4-bit binary counter datasheet 31 Panahi, S.S Ventosa, S Cadena, J Manuel-Lazaro, A Bermudez, A Sallares, V Piera, J (2008), A Low-Power Datalogger Based on CompactFlash Memory for Ocean Bottom Seismometers, IEEE Xplore, volume 57 issue 10 32 Prabhudesai, R.G.; Joseph, A.; Agarwadekar, Y.; Mehra, P.; Kumar, K.V.; Luis, R.; Integrated Coastal Observation Network (ICON) for real- 73 time monitoring of sea-level, sea-state, and surface-meteorological data, OCEANS 2010, IEEE 2010 , Page(s): – 33 R Anderson and G M Lyons(2001), Data logging technology in ambulatory medical instrument, Physiol Meas 22, pp R1-R13 34 Supco Inc.(2007), DVTH data logger manual 35 Thakur, S.; Conrad, J.M., (2007) An embedded linux based navigation system for an autonomous underwater vehicle, SoutheastCon, Proceedings IEEE Issue March 2007, page(s): 237 – 242 36 Segars, S., “The ARM9 Family – High Performance Microprocessors for Embedded Applications,” (1998) Proceedings of the International Conference on Computer Design: VLSI in Computers and Processors, pp 230 - 235, 5th October, 37.Xavier Calbet(2006), Writing device driver in Linux: A brief tutorial, Free software magazine Các Website: 38 www.avrfreaks.net 39 www.advantech.com/ 40 www.wikipedia.com 41 www.ni.com/data_logger/ 42 www.icpdas.com/products/Products-list.htm#P2 43 www.mccdaq.com/solutions/Logger-Solutions.aspx 74 PHỤ LỤC Nội dung file code driver Các file code driver đo nhiệt độ: ds18b20_module.c #include #include //#include #include #include #include "ds18b20_dev.h" #include "ds18b20_ctrl.h" #include "wire_ctrl.h" //Initialise module: call when module is loaded static int init InitModule(void) { int ret_val; ret_val=register_ds18b20_chrdev(); // need for initialize if (ret_val < 0) { printk(KERN_ALERT "Couldn't register module \n"); return (ret_val); } ret_val=ds18b20_init(0,50,1); // templow=0,temp_h=50 resolution=10bit if (ret_val == 0) //gia tri co the thay doi { printk(KERN_ALERT "There isn't any device"); } printk(KERN_ALERT "DS18B20 has loaded \n"); return 0; } //Cleanup Module: call when module is removed static void exit CleanupModule (void) { // int ret_val; // ret_val= unregister_ds18b20_chrdev(); printk(KERN_ALERT "Module has removed"); } module_init(InitModule); module_exit(CleanupModule); 75 ds18b20_dev.c //IOdev #include #include #include #include // #include "ds18b20_dev.h" #include "wire_ctrl.h" #include "ds18b20_ctrl.h" static int Device_Open = 0; static int device_open(struct inode *inode, struct file *file) { if(Device_Open) return -EBUSY; Device_Open++; try_module_get(THIS_MODULE); return 0; } static int device_release(struct inode *inode, struct file *file) { Device_Open ; module_put(THIS_MODULE); return 0; } static ssize_t device_read(struct file *file, char user *buffer, size_t length, loff_t *offset) { int u; //u is the temperature u = ds18b20_temparature(); //u=129934; //printk (KERN_ALERT "temp: %d",u); copy_to_user(buffer,&u,sizeof(int)); return 0; } static ssize_t device_write(struct file *file, const char user *buffer, size_t length, loff_t *offset) { return 0; //donot need to write anything to device } 76 struct file_operations Fops = { read = device_read, write = device_write, ioctl = NULL, open = device_open, release= device_release, }; // // int register_ds18b20_chrdev(void) { int ret; ret = register_chrdev( MAJOR_NUM, DEVICE_FILE_NAME, &Fops); if( ret < ) return ret; return ret; } // -int unregister_ds18b20_chrdev(void) { unregister_chrdev(MAJOR_NUM, DEVICE_FILE_NAME); return 0; } ds18b20_dev.h #include #define MAJOR_NUM 190 #define DEVICE_FILE_NAME "ds18b20" int register_ds18b20_chrdev(void); int unregister_ds18b20_chrdev(void); ds18b20_ctrl.c #include "ds18b20_ctrl.h" #include "wire_ctrl.h" #include 77 #include struct ds18b20_scratch_pad_struct ds18b20_scratch_pad; int conv_delay[4]={100,200,400,800}; int bit_mask[4]={0xFFF8,0xFFFC,0xFFFE,0xFFFF}; char ds18b20_select(void) { return 0; } char ds18b20_read_spd(void) { unsigned char i; unsigned char *p; if (w1_init()==0) return 0; w1_write(0xCC); w1_write(0xbe); i=0; p=(char *) & ds18b20_scratch_pad; *(p++)=w1_read(); while (++i

Ngày đăng: 31/03/2015, 15:48

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN