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
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
4
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 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
5
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 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
3
CHƢƠNG 1 : 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 chính là đo,
thu thập truyền và xử lý. Việc đo thực chất là việc định lượng các đại lượng vật
lý thành các con số và đơn vị bằng cách thực hiện phép đo bằng dụng cụ đo.
Dụng cụ đo thông qua phép đo mà chuyển các đại lượng vật lý cần đo của đối
tượng cần đo thành các đại lượng khác có thông tin định lượng của đại lượng đó
tức là thể hiển thị được hoặc đọc được một 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ý 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:
4
Hì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ữ
5
Hì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.
6
1.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
7
tí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ở.
8
Phiê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.
9
Hình 1.3 Ảnh thực tế board mạch NGW100
Ta có thể thấy board mạch này hoàn toàn phù hợp với yêu cầu của đề tài
do các đặc điểm sau:
- Đây là board phát triển phổ biến với giá thành rẻ nên có thể sử dụng làm
các sản phẩm thương mại.
- Trên board có hỗ trợ nhiều chuẩn giao tiếp như USB, Internet, RS232,
SPI, giúp cho hệ thống có nhiều lựa chọn trong việc xuất thông tin cho người
sử dụng.
- 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.
10
- 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
11
CHƢƠ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ừ -55
o
C đến 125
o
C với độ phân
giải từ 9 đến 12 bit, độ chính xác 0.5
o
C (trong khoảng -10
o
C đến 85
o
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” (1-
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
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:
12
Hì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
13
lợ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
14
(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
15
sau đó 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)
16
2.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í.
7 3 5 2 3
0
* 1,25.10 1,36.10 2,19.10 0.90C C RH RH RH
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
C
0
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:
17
Hì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
18
Khi đó ta có sự phụ thuộc của tần số lối ra vào giá trị độ ẩm như sau:
42
1
2 ln 2
F
C R R
Trong đó:
F là tần số lối ra
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 độ
ẩm tương đối %RH
Đếm tần
Xử lý , Lưu trữ
truyền số liệu,
(hiển thị)
xử lý
Thu thập xử lý và
đánh giá số liệu
nơi nhận
19
HS1100 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.
20
2.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.
21
Hì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
22
thà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)…
23
Sau khi hoàn thành 5 bước trên, ta đã có một hệ điều hành độc lập trên
board mạch. Thông qua truyền thông UART đến một máy tính khác ta có thể đưa
các lệnh điều khiển và các thông báo từ hệ điều hành GNU/Linux trên board như
trên một máy tính cá nhân thông thường.
Hình 2.11 Giao diện thực tế terminal của hệ điều hành Linux trên thiết bị hiển thị
qua màn hình máy tính
Ta có thể kiểm tra một số chức năng của hệ điều hành thông qua nhập một
số lệnh cơ bản của Linux vào cửa sổ terminal ở trên.
2.5.4 Xây dựng hệ thu thập số liệu
Từ nhu cầu thực tiễn, tôi xây dựng hệ thống thu thập số liệu dựa trên ba
khả năng chính như sau:
- Khả năng thu thập số liệu về nhiệt độ và độ ẩm.