Mục lục MỞ ĐẦU ............................................................................................................ 9 CHƢƠNG 1 : 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 bộ thu thập số liệu ............................................................. 12 1.2.2 Một số đặc điểm của hệ thu thập số liệu. ............................................ 14 1.2.3 Một số bộ thu thập số liệu hiện nay.................................................... 14 1.3 Hệ thống nhúng và Linux......................................................................... 16 1.3.1 Thế nào là một 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 cơ 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 và truyền tin qua mạng ...................................................... 23 CHƢƠNG 2 : ĐỐ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 độ và 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 1dây ........................................................................ 28 2.2.4 Truyền và xử lý tín hiệu số bằng chuẩn 1dây cho cảm biến nhiệt độ DS18B20.................................................................................................... 30 2.3 Độ ẩm tƣơng đối và 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
Trang 1ĐẠ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
Trang 2ĐẠ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 và đ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
Trang 3Mục lục
MỞ ĐẦU 9
CHƯƠNG 1 : 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 bộ thu thập số liệu 12
1.2.2 Một số đặc điểm của hệ thu thập số liệu 14
1.2.3 Một số bộ thu thập số liệu hiện nay 14
1.3 Hệ thống nhúng và Linux 16
1.3.1 Thế nào là một 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 cơ 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 và truyền tin qua mạng 23
CHƯƠNG 2 : ĐỐ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 độ và 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 và xử lý tín hiệu số bằng chuẩn 1-dây cho cảm biến nhiệt độ DS18B20 30
2.3 Độ ẩm tương đối và 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
Trang 42.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 cơ sở cài đặt và 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ị và 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 và lưu số liệu trên thẻ nhớ 51
2.5.8 Truyền số liệu và điều khiển từ xa qua mạng 51
CHƯƠNG 3 : 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 căn chỉnh và chuẩn hóa hệ đo 58
3.5 Kết quả đo nhiệt độ và độ ẩm môi trường 62
3.6 Thu thập số liệu và điều khiển từ xa qua mạng 63
3.7 Khả năng ứ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
Trang 5để thuận lợi cho việc lưu trữ, truyền thông, xử lý thì các đại lượng cần đo đều chuyển về cái đại lượng điện mang thông tin định lượng của đại lượng cần đo như hiệu điện thế hoặc dòng điện Đại lượng điện này thuận lợi cho việc truyền, lưu trữ, xử lý bằng các 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 rất nhiều thành tựu Việc thu thập gồm thuyền và lưu trữ ngày nay thường được thực hiện trên cơ sở điện toán Việc xử lý thông tin được thực hiện tự động hoàn toàn hoặc tự động một phần thông qua hệ thống điện toán, thường thực hiệu bằng ít nhất một bộ vi xử lý và một chương trình hoạt động trên vi xử lý đó Việc của người thực hiện công việc liên quan hệ thống này là xây dựng hệ thống gồm phần cứng và phần mềm, vận hành hệ thống, sử dụng và đánh giá các kết quả đo Một hệ thống đo đạc và điều khiển tự động có các chức năng đo đạc các đại lượng, thông số của đối tượng, truyền thông, lưu trữ, xử lý, phân tích đánh giá và còn có thể đưa ra các tín hiệu điều khiển phản hồi (feedback) hoàn toàn tự động
Sơ đồ khối của một hệ thống đo tự động:
Trang 6Hình 1.1 Sơ đồ khối của một hệ thống đo tự động
Tuy nhiên trong luận văn này chỉ đề cập đến bộ thu thập số liệu là hệ thống
đo không có phần phản hồi Nhiệm vụ của bộ thu thập số liệu là đo đạc và lưu trữ, truyền thông số liệu Và cụ thể hơn và việc thu thập, đo đạc các thông số của môi trường
1.2 Bộ thu thập số liệu
1.2.1 Giới thiệu bộ thu thập số liệu
Bộ thu thập số liệu (Data logger) là thiết bị điện tử có khả năng đo đạc tự động và lưu trữ các số liệu đo được theo thời gian Do có khả năng tự động đo và lưu trữ số liệu liên tục 24/24 giờ trong ngày nên thiết bị này thường được sử dụng để hỗ trợ đo các đại lượng vật lý mà yêu cầu phải đo ở xa phòng thí nghiệm
và thực hiện đo nhiều lần liên tiếp trong một khoảng thời gian dài Trên thực tế, những đại lượng vật lý thường được đo là những thông tin liên quan đến các thông số của môi trường nghiên cứu như nhiệt độ, độ ẩm, áp suất, tốc độ gió, hướng gió, theo các tọa độ GPS,… Nhờ vào thiết bị này mà các nhà nghiên cứu
có thể dễ dàng có được những thông tin chi tiết về sự biến đổi của các đại lượng nghiên cứu cũng như những thay đổi của môi trường
Sơ đồ khối của một bộ thu thập số liệu:
Đối tượng cần đo
Xử lý
Cảm biến Phản hồi
Giao tiếp
Lưu trữ
Trang 7Hình 1.2 Sơ đồ khối bộ thu thập số liệu
Trong đó:
- Sensor hay còn gọi là các cảm biến, được sử dụng để thực hiện quá trình chuyển đổi các đại lượng vật lý không điện thành tín hiệu điện phục vụ cho việc
đo đạc các tín hiệu tự động bằng các thiết bị điện tử
- Khối lưu trữ thường là EEPROM, FLASH, thẻ nhớ, ổ cứng di động, … dùng để lưu trữ các số liệu đo đạc được, dung lượng của các bộ nhớ này thường khá lớn so với những bộ nhớ nội của chip vi xử lý, vi điều khiển
- Khối xử lý trực tiếp thực hiện việc đo đạc các tín hiệu điện từ sensor và đưa các số liệu đo được, xử lý tạm thời để đưa thông tin đo được vào trong bộ phận lưu trữ để lưu lại hoặc truyền đi xa
- Ngoài ra khối xử lý còn cung cấp thêm một chuẩn giao tiếp để có thể đưa thông tin ra ngoài cho người sử dụng Khối xử lý có thể là một hệ vi điều khiển hoặc máy tính cá nhân kết hợp với một số IC chuyên dụng khác
Trang 81.2.2 Một số đặc điểm của hệ thu thập số liệu
Các hệ thống thu thập số liệu thường được đặt ở những nơi quan sát xa phòng thí nghiệm, do vậy nó phải có khả năng hoạt động độc lập và lưu trữ số liệu, có giao thức để truyền số liệu vào máy tính Ngoài ra, thiết bị phải có khả năng hoạt động liên tục lâu dài nên cần sử dụng nguồn DC và tiêu thụ ít năng lượng
Hệ thống được đặt ở xa nên khó có thể có người thường xuyên theo dõi sửa chữa được nên hệ thống phải có độ bền cao, chạy ổn định, tránh được các lỗi thông thường có thể xảy ra làm ảnh hưởng tới việc đo đạc và lưu trữ số liệu
Các kết quả nghiên cứu không thể chỉ dựa trên số liệu đo đạc của một đại lượng mà còn phải dựa trên các yếu tố môi trường khác nữa nên hệ thống phải có khả năng đo đồng thời nhiều đại lượng khác nhau
Các đại lượng đo thường là các đại lượng biến đổi chậm theo thời gian Bởi nếu không như vậy thì số lượng thông tin đo được sẽ là một khối lượng khổng lồ
Một số loại data logger hỗ trợ thêm khả năng xử lý thông tin trước khi lưu trữ Nhờ vậy làm cho số liệu gọn hơn tiết kiệm dung lượng lưu trữ, đồng thời giảm bớt các công đoạn trong quá trình xử lý các số liệu thu thập được Ngoài ra, một số hệ thống thông minh còn cho phép người sử dụng thay đổi cấu hình thiết
bị từ xa (thêm bớt các đại lượng đo, xóa các số liệu cũ,…) cho phù hợp với mục đích của người sử dụng cũng như để tiết kiệm bộ nhớ
1.3 Hệ thống nhúng và Linux
1.3.1 Thế nào là một hệ thống nhúng
Hệ thống nhúng (Embeded system) được sử dụng để chỉ những hệ vi mạch với rất nhiều hình dạng và kích thước khác nhau từ những hệ thống giữ liệu máy chủ máy trạm tới các máy nghe nhạc hay chiếc điện thoại, hay ngay cả chiếc máy
Trang 9tính cá nhân cũng có thể được gọi là hệ thống nhúng tuy nhiên ta ít sử dụng với nghĩa này Thông thường “hệ thống nhúng” để chỉ những hệ có các đặc trưng sau:
- Sử dụng ít nhất một bộ xử lý điện toán, như một bộ vi điều khiển, DSP, FPGA
- Sử dụng cho một ứng dụng hoặc một chức năng cụ thể Thường các chứ năng mà con người cần tự động hóa bằng máy móc
- Có thể chứa giao diện hoặc tương tác người dùng, hoặc hoạt động hoàn toàn tự động
- Thường có dữ liệu hạn chế, bộ nhớ nhỏ Các chương trình đặc trưng, ít có chuẩn thống nhất
- Thường hướng tới những ứng dụng để thay thế cho lao động của con người mà cần có sự xử lý, tính toán, kiểm soát, lưu trữ thông tin
Một hệ thống đo đạc thu thập xử lý số liệu tự động là một hệ thống nhúng
Nó gồm phần cứng gồm toàn bộ các linh kiện điện tử cấu thành để đảm bảo vận hành những chương trình, công việc mà người chế tạo thiết kế Trong luận văn này đề cập đến bộ thu thập số liệu dựa trên phần mềm phát triển trên nền hệ điều hành mã nguồn mở Linux Hệ điều hành nguồn mở có rất nhiều ưu điểm, đang dần phổ biến và phát triển Việc sử dụng hệ điều hành làm cho thiết bị dễ dàng nâng cấp, mở rộng tính năng, có sự thống nhất và chuẩn hóa, dễ dàng chuyển giao thiết bị
1.3.2 Hệ điều hành Linux
Linux là tên gọi của một hệ điều hành máy tính và cũng là tên hạt nhân của hệ điều hành Nó có lẽ là một ví dụ tiêu biểu nhất của phần mềm tự do và của việc phát triển mã nguồn mở
Trang 10Phiên bản Linux đầu tiên do Linus Torvalds viết vào năm 1991 Ban đầu, Linux được phát triển và sử dụng bởi những người say mê Tuy nhiên, hiện nay Linux đã có được sự hỗ trợ bởi các công ty lớn như IBM và Hewlett-Packard, đồng thời nó cũng bắt kịp được các phiên bản Unix độc quyền và thậm chí là một thách thức đối với sự thống trị của Microsoft Windows trong một số lĩnh vực Sở
dĩ Linux đạt được những thành công một cách nhanh chóng là nhờ vào các đặc tính nổi bật so với các hệ thống khác: chi phí phần cứng thấp, tốc độ cao (khi so sánh với các phiên bản Unix độc quyền) và khả năng bảo mật tốt, độ tin cậy cao (khi so sánh với Windows) cũng như là các đặc điểm về giá thành so với cá hệ điều hành thương mại thì Linux hoàn toàn miễn phí, và cho phép người dùng tự
do tìm hiểu, tự do phát triển, và hoàn toàn không bị phụ thuộc vào nhà cung cấp Một đặc tính nổi trội của nó là được phát triển bởi một mô hình phát triển phần mềm nguồn mở hiệu quả với một cộng đồng sử dụng đông đảo, có trình độ cao,
và dễ dàng chia sẻ, chuyển giao kiến thức, mã nguồn, kinh nghiệm Chính vì những lý do trên mà luận văn này sử dụng Linux làm hệ điều hành của hệ thiết
bị
1.3.6 Board mạch NGW100
Board mạch NGW100 là một trong những kit phát triển được sản xuất bởi công ty Atmel Board được thiết kế với bộ xử lý trung tâm là ARM 32 bit AP7000, có hỗ trợ bộ nhớ FLASH ngoài (8 MB song song, và 8MB nối tiếp), RAM ngoài (32 MB), khe cắm thẻ nhớ SD/MMC, có 2 cổng kết nối Ethernet (1 WAN và 1 LAN), 1 cổng giao tiếp USB và 1 cổng COM để truyền số liệu nối tiếp theo chuẩn RS232 Ngoài ra hầu hết các chân IN/OUT và các chân chức năng chưa sử dụng đến đều được đưa ra ngoài cho phép người sử dụng có thể kết nối với các thiết bị ngoại vi khác
Trang 11- Board có hỗ trợ thêm bộ nhớ ngoài FLASH và thẻ nhớ nên có thể cài đặt
hệ điều hành và lưu trữ dữ liệu một cách dễ dàng phù hợp với yêu cầu ghi lại số liệu của hệ thống
- Board sử dụng vi xử lý AVR AP7000 có tốc độ xử lý cao (clock hệ thống lên tới 140 MHz) có khả năng điều khiển, kiểm soát tốt hệ thống
Trang 12- Board hỗ trợ cả giao tiếp internet thông qua WAN và LAN do đó khi xây dựng Web server không đòi hỏi phải mua thêm các modem để kết nối mạng
- Board có hỗ trợ cài hệ điều hành GNU/Linux giúp cho việc quản lý các hoạt động của board cũng như việc xuất nhập các thông theo quy chuẩn một cách đơn giản và dễ dàng hơn
- Board có chế độ hoạt động độc lập (stand alone) giúp cho việc lập trình, kiểm tra điều khiển module In/Out được dễ dàng hơn
- Board sử dụng nguồn điện DC 9-15 V với mức dòng tiêu thụ ở chế độ thường khoảng 110mA ở 12V tương ứng với công suất khoảng 1.32W đến 1.68W nên có thể thích hợp với việc hoạt động ở xa sử dụng các nguồn năng lượng dự phòng như accu, pin, pin mặt trời,…
Cấu trúc và các thông số của bộ mạch NGW100:
Hình 1.4 Các thành phần trên board mạch NGW100
Trang 13CHƯƠNG 2 : ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
2.2 Nhiệt độ và cảm biến đo nhiệt độ
Để đo nhiệt độ, trong luận văn này sử dung IC DS18B2 của MAXIM IC này có khả năng phân giải nhiệt độ trong khoảng từ -55oC đến 125oC với độ phân giải từ 9 đến 12 bit, độ chính xác 0.5o
C (trong khoảng -10oC đến 85o
C) hoàn toàn đáp ứng được yêu cầu phép đo Là IC đo nhiệt độ giao tiếp số, mỗi giá trị của nhiệt độ tương ứng với một con số nhị phân trong một độ phân giải xác định Cảm biến đã chuẩn hóa sẵn bởi nhà sản xuất nên không cần phải chuẩn hóa như trong cảm biến tuyến tính
2.2.2 Cảm biến đo nhiệt độ DS18B20
Cảm biến nhiệt độ DS18B20 sử dụng phương thức giao tiếp “1-dây” wire) Đây là giao tiếp có nhiều ưu điểm, giao tiếp đơn giản, kết nối dễ dàng chỉ với một dây truyền dữ liệu Mỗi vi mạch đo nhiệt độ DS18B20 có một mã số định danh duy nhất, được khắc bằng laser trong quá trình chế tạo vi mạch nên nhiều vi mạch DS18B20 có thể cùng kết nối vào một bus 1-dây mà không có sự nhầm lẫn Đặc điểm này làm cho việc lắp đặt nhiều cảm biến nhiệt độ tại nhiều
(1-vị trí khác nhau trở nên dễ dàng và với chi phí thấp Theo chuẩn 1-dây độ dài tối
đa cho phép của bus là 300 m Số lượng các cảm biến nối vào bus gần như không hạn chế Đầu đo nhiệt độ số DS18B20 đưa ra số liệu để biểu thị nhiệt độ đo được dưới dạng mã nhị phân 9 đến 12 bit Các thông tin được gửi đến và nhận về từ DS18B20 trên giao diện 1-dây, do đó chỉ cần hai đường dẫn gồm một đường cho tín hiệu và một đường làm dây đất là đủ để kết nối vi điều khiển đến điểm đo Nguồn nuôi cho các thao tác ghi/đọc/chuyển đổi có thể được cấp riêng hoặc được trích từ đường tín hiệu
Cảm biến DS18B20 khi sử dụng nguồn riêng được mắc như sau:
Trang 14Hình 2.1 Sơ đồ nguyên lý đo nhiệt độ sử dụng DS18B20
Để thực hiện đo nhiệt độ dùng IC DS18B20 ta chỉ cần lắp mạch như hình 2.1 và lập trình giao tiếp 1-dây với IC này để điều khiển cũng như lấy thông tin
về nhiệt độ
Hình 2.2 Ảnh thực của cảm biến nhiệt độ DS18B20
2.2.3 Giao tiếp chuẩn 1-dây
Giao tiếp chuẩn 1-dây là giao tiếp với hệ thống giao bus dữ liệu chỉ có 1 dây đường truyền được thiết kế bởi hãng bán dẫn Dallas Semiconductor Corp Giao tiếp chuẩn 1-dây dựa trên chuẩn giao tiếp I2C nhưng chỉ với 1 đường bus
dữ liệu, nó cho phép truyền dữ liệu ở tốc độ thấp với khoảng cách lớn, và có khả năng tự cấp nguồn ngay trên đường tín hiệu Cho phép kết nối nhiều thiết bị trên cùng một đường bus Mỗi thiết bị được đặc trưng bởi mã code riêng Do tính tiện
Trang 15lợi,nhỏ gọn, dễ lắp đặt, kinh tế nên chuẩn giao tiếp 1-dây thường được dùng cho các hệ thu thập số liệu như các đầu đo nhiệt độ, độ ẩm…
Phương thức truyền dữ liệu chuẩn giao tiếp chuẩn 1-dây tóm tắt như sau:
- BUS dữ liệu chỉ có 1 dây Thiết bị chủ điều khiển toàn bộ quá trình truyền
và nhận dữ liệu
- Đường BUS được kéo lên nguồn bằng điện trở, các thiết bị gửi các Bit bằng cách kéo BUS này xuống đất hoặc cắt kết nối với BUS Điều này cho phép tránh xung đột khi mà một thiết bị truyền Bit 0 trong khi đó thiết bị khác truyền Bit 1, và nó cũng cho phép thiết bị chủ điều khiển toàn bộ quá trình truyền nhận dữ liệu qua việc tạo xung reset và tạo khoảng thời gian giữa các Bit Quá trình đó mô tả bởi bảng sau:
Quá trình Mô tả chức năng Thực hiện
Reset Thiết lập các thiết bị và đưa
chúng về trạng thái đợi lệnh
Kéo bus xuống đất 480
µS, Thả nổi bus 70 µS (Nếu có thiết bị nhận được thì nó kéo bus xuống đất)
Chờ 410 µS Ghi Bit 0 Gửi Bit 0 đến các thiết bị Kéo bus xuống đất 60 µS
Thả nổi bus 10 µS Ghi Bit 1 Gửi Bit 1 đến các thiết bị Kéo bus xuống đất 6 µS
Thả nổi bus 64 µS Đọc Bit Đọc 1 Bit từ thiết bị Kéo bus xuống đất 6 µS
Thả nổi bus 9 µS
Trang 16(Nếu là Bit 0 thì thiết bị kéo bus xuống, là Bit 1 thì thả nổi)
Chờ đợi 55 µS
Hệ Bus 1-dây được mô tả như sau:
Hình 2.3 mô tả hệ thống truyền dẫn vật lý Bus 1-dây
Với hệ thống nhiều thiết bị cùng được nối trên cùng một đường bus thì chúng được gọi tới bằng ROM CODE của từng thiết bị Bắt đầu bằng Reset, Match rom, 64 bit romcode tiếp sau là lệnh Như vậy bộ điều khiển có thể gọi và điều khiển từng thiết bị riêng lẻ trong hệ thống thông qua Rom Code của từng thiết bị đó Điều này tránh được xung đột khi tất cả các thiết bị đều được nối trên cùng một dây Bus Điều này đòi hỏi hệ thống phải có được thông tin về Rom Code của những thiết bị được kết nối vào Bus
Mô tả việc giao tiếp hệ thống với nhiều thiết bị như sau:
Đầu tiên là xung reset tất cả các thiết bị, sau đó là xung trả lời của các thiết bị (xung presence) Tiếp theo bộ điều khiển đưa ra lệnh Match Rom, theo
Trang 17sau đó là 64 Bit Rom Code định danh của thiết bị mà bộ điều khiển muốn giao tiếp Sau đó là lệnh chức năng Khi này chỉ có thiết bị có Rom Code được gọi mới trả lời
Hình 2.4 giản đồ xung của quá trình kết nối, gửi lệnh gọi thiết bị bằng Rom Code
của bộ điều khiển giao tiếp 1-dây
Hình 2.5 Sơ đồ khối miêu tả hoạt động của hệ thiết bị sử dụng giao tiếp 1-dây
Bộ điều khiển: gửi xung reset,
lệnh, mã ROM tới các thiết bị và
sẵn sàng nhận lại dữ liệu
thiết bị 1 thiết bị 2 thiết bị N thiết bị được gọi
(theo ROM CODE)
thiết bị được gọi, trả lời lại bằng xung (Presence) Và bắt đầu truyền dữ liệu (nếu lệnh điều kiểu yêu cầu)
Trang 182.3 Độ ẩm tương đối và cảm biến đo nhiệt độ tương đối
Để đo được độ ẩm tương đối ta có thể sử dụng biến tử với điện dung hoặc điện trở thay đổi phụ thuộc vào độ ẩm không khí Sau đó sử dụng các phương pháp khác để xác định giá trị điện dung hoặc điện trở đó Trong hệ thống này, biến tử được dùng là loại điện dung HS1100 được sản xuất bởi Humirel
Hình 2.6 cảm biến độ ẩm tương đối HS1100
Biến tử này đã được nhà sản xuất đưa ra hàm phụ thuộc của giá trị điện dung vào độ ẩm tương đối của không khí
0* 1, 25.10 1,36.10 2,19.10 0.90
Trong đó:
C là điện dung của biến tử ở độ ẩm hiện tại
RH % là độ ẩm không khí hiện tại
C0 là điện dung của ứng với độ ẩm tương đối là 55%
Và biểu đồ phụ thuộc điện dung vào độ ẩm tương đối của cảm biến cho bởi nhà sản xuất:
Trang 19Hình 2.7Biều đồ sự phụ thuộc điện dung của biến tử vào độ ẩm tương đối
Từ biểu đồ ta thấy sự phụ thuộc điện dung của biến tử vào độ ẩm tương đối từ 0% tới 100% là gần tuyến tính Và trong thực nghiệm ta có thể coi là tuyến tính
Để đo được độ ẩm tương đối RH trong công thức trên thì cần biết được C Tuy nhiên điện dung C là đại lượng điện khó đo trực tiếp, do đó ta sử dụng mạch điện dao động có tần số phụ thuộc vào điện dung C này Mạch điện có chức năng này ta sử dụng IC LM555
Dùng IC LM555 mắc theo chế độ phát đa hài ổn định:
Hình 2.8 Sơ đồ nguyên lý đo độ ẩm sử dụng HS1100 và LM555
Trang 20Khi đó ta có sự phụ thuộc của tần số lối ra vào giá trị độ ẩm như sau:
C là điện dung của biến tử ứng với độ ẩm tương ứng
Từ công thức trên ta có đồ thị sự phụ thuộc của độ ẩm vào tần số
Hình 2.9 Sơ đồ khối miêu tả hoạt động của hệ đo độ ẩm tương đối
Đánh giá cảm biến độ ẩm tương đối HS1100:
Độ ẩm tương đối
RH% của môi
trường (không khí) Biến tử HS1101
Điện dung của cảm biến theo độ
ẩm C=k*RH+Co
Xung dao động có tần số (chu kỳ) phụ thuộc vào độ ẩm tương đối
IC LM555
Đếm tần số (đo chu kỳ) ,Tính được độ
đánh giá số liệu nơi nhận
Trang 21HS1100 là cảm biến độ ẩm khá nhỏ gọn hoạt động trên cơ sở biến đổi điện dung theo độ ẩm tương đối Nó có giá thấp và khá phổ biến trên thị trường và có
độ nhạy, độ chính xác khá cao, đáp ứng được các công việc đo độ ẩm tương đối của môi trường thông thường (phòng, kho) Tuy nhiên do phải đo gián tiếp điện dung qua việc đếm tần số của mạch dao động nên việc chuẩn hóa, và đánh giá phẩm chất của hệ còn gặp nhiều khó khăn Độ chính xác bị ảnh hưởng bởi phẩm chất của mạch dao động, chưa có bù nhiệt, và chưa có cơ cấu chống ngưng tụ hơi nước quá bão hòa trên cảm biến (có thể làm sai, hỏng cảm biến)
2.4 Xây dựng phần cứng thiết bị
Việc xây dựng phần cứng ngoài board mạch NGW100, cần thêm mạch dao động ở hình 14 Mạch này rất đơn giản do đó luận văn không đề cập tới phần thiết kế mạch này mà chỉ đề cập tới cách ghép nối
2.4.1 Ghép nối phần cứng mở rộng
Phần cứng (hardware) gồm các mạch, module mạch và các IC Đây là bộ phận trực tiếp thực hiện thu thập các số liệu, biến đổi các đại lượng cần đo thành các tín hiệu điện mang thông tin về giá trị của đại lượng đó Phần cứng được xây dựng bằng cách lắp các sensor và nối vào các chân mở rộng của board NGW100
Cụ thể như sau:
Chức năng đo nhiệt độ được mở rộng bằng cách nối chân DATA của IC DS18B20 được nối với chân PB27 trên rắc cắm số 6 của board, tương ứng với chân 27 của PORT B Trong đó, IC DS18B20 sẽ thực hiện đo nhiệt độ và đưa thông tin vào board theo chuẩn giao tiếp 1-dây
Chức năng đo độ ẩm tương đối được mở rộng bằng cách nối dây F_out (ở
sơ đồ hình 2.1) với chân PB25 trên rắc cắm số 6, tương ứng với chân 25 của PORT B Trong đó, IC LM555 sẽ biến đổi giá trị điện dung (phụ thuộc vào độ ẩm) thành tần số, sau đó tần số này được đưa vào trong board NGW100 Tại đây
ta sẽ thực hiện đếm tần số của mạch
Trang 222.5 Tìm hiểu cơ sở cài đặt và thiết kế phần mềm
Phần mềm có thể được coi là linh hồn của hệ thống nhúng, nó điều khiển toàn bộ hoạt động của hệ Từ việc điều khiển, đo đạc lấy số liệu, giao tiếp đến việc tính toán và xử lý số liệu Với hệ thống đo đạc thu thập xử lý số liệu và truyền qua mạng đề cập trong luận văn này được cài đặt hệ điều hành Linux Do vậy ta cần tìm hiểu về hệ điều hành Linux, và từ đó có thể cài đặt Linux lên hệ thống, đồng thời viết các chương trình chạy trên Linux để đảm nhận các công việc theo yêu cầu của hệ thống
2.5.2 Cấu trúc Linux:
Hệ điều hành GNU/Linux được xây dựng bao gồm có 2 vùng cơ bản với các vai trò và chức năng khác nhau để đảm bảo hệ thống có thể hoạt động ổn định và tránh những sai sót gây hư hỏng toàn bộ hệ thống
- Vùng người sử dụng (hay còn gọi là vùng ứng dụng) bao gồm các phần mềm, các dòng lệnh mà người sử dụng nhập trực tiếp vào máy tính để thực thi Các phần mềm, mã lệnh sẽ được đưa xuống cấp độ nhân một cách trực tiếp hoặc thông qua các thư viện của GNU
Trang 23Hình 2.10 Kiến trúc của hệ điều hành GNU/Linux
- Vùng nhân gồm có nhân Linux, giao thức gọi hệ thống, và các kiến trúc phụ thuộc vào nhân khác Trong đó:
+ Giao thức gọi hệ thống nằm ở phía trên cùng, là nơi thực hiện các hàm gọi từ vùng người sử dụng bằng cách chuyển các hàm đó vào nhân Linux và xuất thông tin trở ra cho người sử dụng
+ Nhân Linux là bộ phận trung tâm quan trọng nhất của vùng nhân cũng như của hệ điều hành Linux Đây là nơi quản lý toàn bộ quản lý tài nguyên của
hệ thống Bao gồm: quản lý tiến trình, quản lý bộ nhớ, quản lý tập tin, quản lý in/out, quản lý lưu trữ, quản lý ngắt,…
+ Các kiến trúc phụ thuộc vào nhân hay còn gọi là các driver là các module thực hiện việc giao tiếp giữa nhân Linux với các thiết bị khác như ổ cứng, card mạng, card màn hình,…
Do hệ điều hành GNU/Linux là hệ điều hành mở nên người sử dụng có thể xem các thông tin về các module trong nhân Linux cũng như thêm các module tự tạo vào nhân Tuy nhiên các module này phải được lập theo những chuẩn nhất định, phụ thuộc vào nhân để đảm bảo hệ thống không bị gián đoạn và
hư hỏng
2.5.3 Chuẩn bị và biên dịch nhân Linux
Như nói ở trên Bootloader sẽ khởi tạo hệ thống và nạp hệ điều hành vào
hệ thống Để cài đặt nhân Linux cho hệ thống thì cần đặt các dữ liệu của nhân vào đúng chỗ để bootloader có thể khởi động nó Công việc này chính là việc cài đặt Linux cho hệ phần cứng NGW100 Để một hệ thống chạy được Linux ta cần cài đặt vào bộ nhớ của hệ phần cứng các phần như Bootloader, các bộ giải mã kiến trúc, hệ nhân Linux, các khối giao tiếp với nhân, các thư viện và không gian người sử dụng, các ứng dụng Để làm những điều này trên board mạch NGW100 do không gian bộ nhớ của mạch có giới hạn nên phải chia nhỏ các
Trang 24thành phần của hệ điều hành đặt vào từng phần của bộ nhớ trên board mạch, ta lần lượt làm các bước sau:
- Bước 1: Ta sẽ cài đặt cho board mạch thông qua một máy tính chủ được chuẩn bị sẵn các mạch nạp và phụ trợ kết nối giữa máy chủ (host) và board mạch (target) Tải phiên bản nhân linux nhúng thích hợp (AVR) và các dữ liệu cần thiết từ trang web của nhà sản xuất
- Bước 2: Biên dịch nhân để tạo ra các file hệ thống cần thiết Bước này được thực hiện trên máy tính chủ cài hệ điều hành GNU/Linux thông qua các lệnh: make-menuconfig và make Sau bước này ta thu được 3 file hệ thống tương ứng với 3 vùng FLASH (u-boot.bin cho FLASH nội trên ARM, root.jfsf2 cho vùng FLASH song song, usr.jfsf2 cho vùng FLASH nối tiếp) Ngoài ra, ta có thêm chương trình biên dịch avr32-linux-gcc để biên dịch các ứng dụng C chạy trên board
- Bước 3: Nạp file u-boot.bin vào phần FLASH nội của ARM Bước này được thực hiện bằng cách sử dụng mạch nạp JTAG-ICE mkll của Atmel hoặc một số mạch nạp tương đương khác hỗ trợ nạp qua giao tiếp JTAG Sau bước này mặc dù ta chưa có hệ điều hành hoàn chỉnh, tuy nhiên ta đã có thể khởi động, giao tiếp với thẻ nhớ, trao đổi thông tin với các thiết bị khác qua RS232, FTP, thẻ nhớ,…
- Bước 4: Đưa file root.jfsf2 vào vùng nhớ song song Ta có thể thực hiện thông qua phương pháp load file sử dụng cổng COM, hoặc thẻ nhớ, hoặc FTP
- Bước 5: Hoàn thiện cài đặt bằng cách đưa file usr.jfsf vào bộ nhớ FLASH nối tiếp Sau bước 4 ta đã có thể khởi động hệ điều hành nhưng với một
số lệnh, chức năng chưa được thiết lập đầy đủ Tuy nhiên, ta có thể sử dụng các lệnh đó để cài đặt tiếp phần còn thiếu (usr.jfsf2) Ta có thể đưa vào qua thẻ nhớ, FTP, ssh (một ứng dụng dùng để trao đổi file trên linux)…