Tài liệu Đề tài Tổng quan về màn hình tinh thể lỏng - LCD và Vi điều khiển: Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 1
MỞ ĐẦU
Ngày nay dưới sự phát triển rất mạnh mẽ của khoa học kĩ thuật nói
chung và công nghệ thông tin nói riêng, mạng cảm nhận không dây ra đời là
một trong những thành tựu cao của công nghệ chế tạo và công nghệ thông tin.
Một trong các lĩnh vực của mạng cảm nhận không dây ( Wireless Sensor
Network – WSN ) là sự kết hợp của việc cảm nhận, tính toán và truyền thông
vào trong các thiết bị nhỏ gọn đáp ứng nhu cầu ngày càng cao của con người
cũng như phục vụ ngày một tốt hơn cho lợi ích của con người, làm cho con
người không mất quá nhiều sức lực, nhân công nhưng hiệu quả công việc vẫn
cao. Sức mạnh của WSN nằm ở chỗ khả năng triển khai một số lượng lớn các
thiết bị nhỏ có khả năng tự thiết lập cấu hình của hệ thống. Sử dụng những
thiết bị này để theo dõi theo thời gian thực, cũng có thể để giám sát điều kiện
môi trường, theo dõi cấu trúc hoặc tình trạng thiết bị…
Trong những nghiên cứu mới nhất hiện nay t...
65 trang |
Chia sẻ: hunglv | Lượt xem: 1366 | Lượt tải: 2
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Tổng quan về màn hình tinh thể lỏng - LCD và Vi điều khiển, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 1
MỞ ĐẦU
Ngày nay dưới sự phát triển rất mạnh mẽ của khoa học kĩ thuật nói
chung và công nghệ thông tin nói riêng, mạng cảm nhận không dây ra đời là
một trong những thành tựu cao của công nghệ chế tạo và công nghệ thông tin.
Một trong các lĩnh vực của mạng cảm nhận không dây ( Wireless Sensor
Network – WSN ) là sự kết hợp của việc cảm nhận, tính toán và truyền thông
vào trong các thiết bị nhỏ gọn đáp ứng nhu cầu ngày càng cao của con người
cũng như phục vụ ngày một tốt hơn cho lợi ích của con người, làm cho con
người không mất quá nhiều sức lực, nhân công nhưng hiệu quả công việc vẫn
cao. Sức mạnh của WSN nằm ở chỗ khả năng triển khai một số lượng lớn các
thiết bị nhỏ có khả năng tự thiết lập cấu hình của hệ thống. Sử dụng những
thiết bị này để theo dõi theo thời gian thực, cũng có thể để giám sát điều kiện
môi trường, theo dõi cấu trúc hoặc tình trạng thiết bị…
Trong những nghiên cứu mới nhất hiện nay thì hầu hết các ứng dụng của
WSN là giám sát môi trường từ xa hoặc có thể mang theo một thiết bị nhỏ
gọn nhưng có sức mạnh có thể làm việc hiệu quả không kém một hệ thống
thiết bị cồng kềnh. Ví dụ như có thể ứng dụng WSN vào trong công việc
phòng cháy rừng bằng rất nhiều nút cảm biến tự động kết nối thành một hệ
thống mạng không dây để có thể ngay lập tức phát hiện những vùng có khả
năng cháy và gây cháy có thể đưa ra cảnh báo hoặc báo động cần thiết. Một
trong những ưu điểm lớn của mạng không dây WSN là chi phí chiển khai và
lắp đặt được giảm thiểu, dễ dàng lắp đặt vì kích thước nhỏ gọn, dễ sử
dụng.Thay vì hàng ngàn km dây dẫn thông qua các ống dẫn bảo vệ, người lắp
đặt chỉ làm công việc đơn giản là đặt thiết bị đã được lắp đặt nhỏ gọn vào vị
trí cần thiết. Mạng có thể được mở rộng theo ý muốn và mục đích sử dụng
của WSN, rất đơn giản ta chỉ việc thêm vào các thiết bị, linh kiện không cần
thao tác phức tạp
Trước xu thế phát triển nhanh chóng của mạng cảm nhận không dây, căn
cứ vào tình hình thực tế của nước ta đang cần các hệ thống giám sát các thông
số trong môi trường để phục vụ cho nhiều nghành, nhiều lĩnh vực đồ án đã
chọn hướng nghiên cứu là Mô hình mạng cảm nhận không dây - WSN .
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 2
Đồ án được chia làm 5 chương với nội dung được trình bày như sau:
- Chương 1: Giới thiệu về mạng cảm nhận không dây.
- Chương 2: Tổng quan về màn hình tinh thể lỏng - LCD và Vi điều
khiển.
- Chương 3: Màn hình LCD 1602A và vi điều khiển CC1010
- Chương 4: Phần mềm nhúng cho hệ đo nhiệt tự động
- Chương 5: Cài đặt thử nghiệm trên hệ thống, các kết quả đạt được
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 3
CHƯƠNG 1:
GIỚI THIỆU VỀ MẠNG CẢM NHẬN KHÔNG DÂY
(Wireless sensor Network - WSN)
1.1. Mạng cảm nhận không dây
Mạng cảm nhận không dây (WSN) thu thập dữ liệu môi trường ra đời
đáp ứng cho nhu cầu thu thập thông tin của môi trường tại một tập hợp các
điểm xác định trong một khoảng thời gian xác định nhằm phát hiện các quy
luận vận động và các đặc điểm thay đổi rất chậm của môi trường hoặc của đối
tượng, mạng cảm nhận không dây thông thường bao gồm các nút mạng cảm
nhận được phân bố trong một phạm vi không gian nhất định. Các nút cảm
nhận này sẽ tiến hành đo đạc các thông số của môi trường như nhiệt độ, độ
ẩm, độ mặn, độ PH, áp suất …Việc thu thập các thông tin này trong văn
phòng, nhà kho, công xưởng, viện bảo tàng, trong công nghiệp, y tế, nông
nghiêp, lâm nghiệp… WSN dường như đã trở thành giải pháp hấp dẫn vì
mang đến sự tiện lợi về nhiều phương diện, và đặc biệt trong nhiều trường
hợp thậm chí còn hạn chế được sự nguy hiểm cho con người trong những môi
trường làm việc khắc nghiệt ( nút mạng thay thế cho sự làm việc trực tiếp của
con người trong những môi trường có độc tính hay nhiệt độ cao, áp suất
cao ... ). Một hệ thống WSN hoàn thiện còn có khả năng theo dõi và cảnh báo
mức độ an toàn của môi trường hoặc định vị sự di chuyển các đối tượng trong
phạm vi của nó. Tùy theo mục đích của mạng cảm nhận mà có thể thiết kế các
nút mạng sao cho phù hợp.Các nút cảm nhận có bộ vi xử lý bên trong, thay vì
gửi dữ liệu thô tới nút đích nó có thể tiến hành xử lý đơn giản và gửi về dữ
liệu đã được xử lý theo yêu cầu.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 4
Hình 1.1: Minh họa mạng cảm nhận không dây cảnh báo sự cố
Các nút mạng cảm nhận thu thập thông tin môi trường sau đó gửi về nút
gốc ( nút cơ sở), nút gốc thường là cố định và được nối với PC, hoặc máy tính
xách tay qua cổng RS232 việc đó nảy sinh những vấn đề như sự thiếu linh
hoạt trong việc theo dõi ,dám sát trực tiếp môi trường, không cơ động…
Hình 1.2 là mô hình của một mạng cảm nhận không dây truyền thống có nút
gốc được nối cố định với máy vi tính hoặc máy tính xách tay.
Hình 1.2: Mạng cảm nhận thông thường sử dụng CC1010
Nút cảm nhận
CC1010
Nút cảm nhận
CC1010
Nút cảm nhận
CC1010
Nút gốc
CC1010
PC
RS 232
Liên kết có dây
Liên kết không dây
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 5
Từ đề tài cụ thể “CHƯƠNG TRÌNH THU NHẬN, XỬ LÝ DỮ LIỆU,
CẢNH BÁO SỰ CỐ TRÊN NÚT MẠNG CẢM NHẬN KHÔNG DÂY
(WSN), HIỂN THỊ BẰNG MÀN HÌNH TINH THỂ LỎNG - LCD ”. Sau
đây em xin giới thiệu một ứng dụng của mạng cảm nhận WSN thu thập dữ
liệu môi trường, giải quyết được đa số những nhược điểm của một mạng cảm
nhận không dây thông thường, cụ thể đề tài sẽ đi vào tìm hiểu, phân tích thiết
kế một nút mạng di động có khả năng thu nhận dữ liệu, xử lý, hiển thị lên
màn hình LCD với kích thước nhỏ gọn, tiêu thụ ít năng lượng, tiết
kiệm…Hình 1.3 minh họa một mô hình mạng cảm nhận sử dụng CC1010
được kết nối với một màn hình tinh thể lỏng.
Hình 1.3: Hệ thống cảm nhận sử dụng CC1010 kết nối với LCD
Ở đây LCD được gắn với bộ phận nhân dữ liệu ,xử lý và hiển thị kết quả
lên màn hình LCD.Có thể coi đây như một nút mạng di động ,hoạt động tốt
trong phạm vi của mạng cảm nhận không dây - WSN.Như vậy chúng ta
không cần thiết phải có kết nối PC mà vãn có thể theo dõi được các thông số
của môi trường cũng như tình trạng ở những nút mạng cảm nhận một cách
linh hoạt và cơ động hơn rất nhiều.
Cảm biến
(Sensor)
VĐK
CC1010
VĐK
CC1010 LCD
LK có dây
LK không dây
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 6
1.2. Mô tả hệ thống
Từ hình 1.3 ta thấy hệ thống gồm có 2 phần cơ bản là:
1.2.1. Các nút cảm nhận và truyền dữ liệu:
Đại diện cho tất cả nút mạng cảm nhận, bao gồm các nút cảm nhận thông
số cần đo, mạch tích hợp CC1010EM nhận, xử lý rồi truyền không dây đến
nút di động. Mỗi nút cảm nhận trên đều được gán một địa chỉ cụ thể.
Từ những phân tích lý thuyết ở trên ta có mô hình của nút mạng cảm
nhận và truyền dữ liệu như sau :
Hình 1.4: Mô hình nút cảm nhận và truyền dữ liệu
Cảm biến-Sensor
a) Khái niệm
Trong các hệ thông đo lường, điều khiển mọi quá trình đều được đặc
trưng bởi các trạng thái như nhiệt độ, áp suất, tốc độ, mô men…Các biến
trạng thái này thường là các đại lượng không điện. Nhằm mục đích điều
chỉnh, điều khiển các quá trình ta cần thu thập các thông tin, đo đạc, theo dõi
sự biến thiên của các biến trạng thái của quá trình. Các bộ cảm biến thực hiện
chức năng này chúng thu thập, đáp ứng với các tín hiệu và các kích thích, có
thể nói chúng có thể so sánh như là tai, mắt của các hoạt động kha học và
công nghệ của con người.
CC1010
Sensor
Angten phát
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 7
Các bộ cảm biến thường được định nghĩa theo nghĩa rộng là thiết bị cảm
nhận và đáp ứng với các tín hiệu và kích thích. Trong các hệ thống đo lường-
điều khiển hiện đại, quá trình thu thập và xử lý tín hiệu thường do máy tính
đảm nhiệm.
b) Phân loại các loại cảm biến
Ta có thể phân loại các loại cảm biến theo một số các đặc trưng sau:
¾ Theo nguyên lý chuyển đổi giữa đáp ứng và kích thích
- Vật lý: Nhiệt điện, quang điện, quang từ, điện từ, nhiệt quang
- Hóa học: Biến đổi hóa học, biến đổi điện hóa, phân tích phổ
¾ Theo dạng kích thích
- Âm thanh: Biến, pha, phân cực, phổ, tốc độ truyền sóng…
- Điện: Điện tích, dòng điện, điện thế, điện áp…
- Từ: Từ trường, độ từ thẩm…
- Quang: Biên, pha, phân cực, phổ…
- Cơ: Lực, áp suất, gia tốc, vận tốc,khối lượng, tỷ trọng…
- Nhiệt: Nhiệt độ, thông lượng, nhiệt dung, tỉ nhiệt…
- Bức xạ: Kiểu, năng lượng, cường độ…
- Ngoài ra còn có rất nhiều loại cảm biến tùy theo tính năng và phạm vi sử
dụng…
Theo chức năng mạng và đặc điểm của mỗi cấu hình mạng cảm nhận
mà có thể sử dụng những loại cảm biến khác nhau ,Trong đồ án này cảm biến
được chọn để nghiên cứu là loại cảm biến nhiệt độ có tên là LM61 có dạng
IC.
c) Đặc điểm IC LM61 :
¾ Biến đổi nhiệt độ cảm nhận được ra điện áp nối ra
¾ Khoảng cảm nhận từ -300C đến 1000C.
¾ Nguồn cung cấp 2,7V.
¾ Khoảng thay đổi điện áp nối ra là 10mV/0C
¾ Điện thế bù DC = 600mV.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 8
¾ Khoảng thay đổi điện áp lối ra là từ 300mV đến 1600mV ứng với
khoảng nhiệt độ từ -300C tới 1000C.
IC cảm biến thu nhận thông tin của môi trường sau đó biến đổi thông tin
đó thành đại lượng điện dưới dạng tín số hoặc tín hiệu tương tự ,sau đó được
số hóa để có thể truyền đi trong mạng không dây.IC LM61 thu nhận thông tin
nhiệt độ của môi trường sau đó biến đổi thành điện áp lối ra ( Dạng thông tin
tương tự ).
1.2.2. Nút mạng di động( Nhận và hiển thị )
Bao gồm mạch tích hợp CC1010EM nhận dữ liệu của các nút cảm nhận
,xử lý ,sau đó hiển thị kết quả của mỗi nút lên mà hình LCD.Nút mạng di
dộng trên vừa có thể thu nhận tín hiệu do các nút mạng cảm nhận truyền về,
vừa xử lý để lấy thông tin càn thiết và trong quá trình xử lý dữ liệu có thể đưa
ra các dạng cảnh báo khác nhau ví dụ bằng âm thanh, đóng mở hệ
thống...trong báo cáo này nút mạng di động được kết nối với một màn hình
tinh thể lỏng LCD, các kết quả và các cảnh báo của từng nút mạng (nếu có) sẽ
được hiển thị trên màn hình LCD nói trên và loại LCD được sử dụng loại màn
hình LCD 1602A 16x2 dòng.
Hình 1.5: Mô hình nút mạng di động
LCD 1602A
CC1010
Angten thu
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 9
1.3. Kết luận
Ở chương 1 em đã trình bày được một số những kiến thức cơ bản của
mạng WSN. Các nội dung đã được trình bày:
¾ Mạng cảm nhận không dây.
¾ Mô hình mạng cảm nhận thông thường kết nối máy tính thông qua
cổng nối tiếp RS-232.
¾ Mô hình mạng sử dụng vi điều khiển CC1010 có ghép nối với màn
hình tinh thể lỏng – LCD.
¾ Mô tả hệ thống.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 10
CHƯƠNG 2:
TỔNG QUAN VỀ MÀN HÌNH TINH THỂ LỎNG – LCD
VÀ VI ĐIỀU KHIỂN
2.1. Giới thiệu về Vi điều khiển
Có thể nói hiện nay vi điều khiển đã được ứng dụng rất phổ biến ở
Việt Nam đã và đang được ứng dụng rất nhiều vào tất cả các lĩnh vực khác
nhau của cuộc sống. Hiện nay trên thị trường có rất nhiều loại Vi điều khiển
và được chia làm 3 loại chính đó là: Vi điều khiển họ 8051, PIC và Motorola.
2.2. Vi điều khiển.
2.2.1. Vi điều khiển là gì ?
Vi điều khiển là một IC lập trình vì vậy vi điều khiển muốn sử dụng
được phải được lập trình từ trước, mỗi phần cứng nhất định phải có một phần
mềm riêng kèm theo, nói theo cách khác thì Vi điều khiển là một máy tính
được tích hợp trên một chip, thường được dùng để điều khiển các thiết bị điện
tử, Vi điều khiển thực chất là một hệ thống bao gồm một vi xử lý có hiệu xuất
đủ dùng với giá thành thấp.Vi điều khiển thường được dùng để xây dựng các
hệ thống nhúng nó xuất hiện nhiều trong các thiết bị điện tử (ví dụ như trong
Mạng cảm nhận không dây WSN ).
Hầu hết các Vi điều khiển ngày nay được xây dựng dựa trên kiến trúc
VonNewman, kiến trúc này định nghĩa được 4 thành phần quan trọng của một
hệ thống nhúng là lõi CPU, bộ nhớ chương trình thường là ROM và Flash, bộ
nhớ dữ liệu-RAM, một hoặc một vài bộ định thời, các cổng vào ra chung.
2.2.2. Kiến trúc của Vi điều khiển
Thực chất vi điều khiển cũng là một kiến trúc siêu nhỏ, gồm các linh
kiện điện tử ở kích thước rất nhỏ có thể là micro hoặc là Nano, các linh kiện
này được kết hợp với nhau và được nối với các thiết bị bên ngoài thông qua
các chân của vi điều khiển vì vậy để bắt tay vào xây dựng một ứng dụng cụ
thể của vi điều khiển ta cần phải hiểu rõ được kiến trúc của vi điều khiển.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 11
2.2.3. Tập lệnh
Tập lệnh chính là tập mã lệnh nhị phân. Bản chất của một tập lệnh là một
tập hợp các mã nhị phân mà qua đó các đơn vị xử lý trung tâm (CPU) có thể
nhận biết và thực hiện được. Vậy dữ liệu được CPU xử lý là các số nhị phân.
Tập lệnh sẽ thực hiện các công việc chính sau đây :
¾ Tính toán các con số nhị phân.
¾ Các lệnh để chuyển các giá trị ra thành tín hiệu điện tử ở các chân
linh kiện.
¾ Các lệnh di chuyển các giá trị giữa các thanh ghi.
¾ Các lệnh điều khiển con trỏ chương trình.
¾ Các tập lệnh được chia làm hai loại, tập lệnh RISC và tập lệnh CISC.
2.3. Lập trình cho Vi điều khiển
Chương trình là một tập hợp các lệnh được tổ chức theo một trình tự hợp
li để giải quyết các yêu cầu của người lập trình. Tập hợp tất cả lệnh gọi là một
tập lệnh. Các họ Vi điều khiển đều có chung một tập lệnh, Các Vi điều khiển
ngày nay được cải tiến thường ít thay đổi hoặc mở rộng tập lệnh mà chú trọng
phát triển phần cứng.
Lệnh của Vi điều khiển là các số nhị phân 8bit hay còn được gọi là mã
máy. Các lệnh mang mã 00000000b đến 11111111b. Các mã lệnh này được
đưa vào lưu trữ trong ROM, khi thực hiện chương trình Vi điều khiển đọc các
mã lệnh này, giải mã lệnh, và thực hiện lệnh.
Vì các lệnh của Vi điều khiển có dạng số nhị phân quá dài và khó nhớ,
hơn nữa việc gỡ lỗi khi chương trình phát sinh lỗi rất phức tạp và kho khăn.
Khó khăn náy được giải quyết với sự hỗ trợ của máy tính, người viết chương
trình có thể viết chương trình cho Vi điều khiển bằng ngôn ngữ lập trình bậc
cao, sau khi việc viết chương trình hoàn tất , các chương trình se chuyển các
câu lệnh cấp cao thành mã máy một cách tự động. Các mã này sau đó được
đưa (nạp) vào bộ nhớ ROM của Vi điều khiển, Vi điều khiển sẽ tìm đến đọc
các lệnh từ ROM để thực hiện chương trình. Bản thân máy tính không thực
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 12
hiện các mã máy này vì chúng không phù hợp với phần cứng máy tính, muốn
thực hiện phải có chương trình mô phỏng dành riêng cho nó.
Các chương trình dành cho Vi điều khiển có thể được viết bằng C++, C,
Visual Basic, hoặc các ngôn ngữ cấp cao khác.
2.4. Màn hình tinh thể lỏng-LCD
Màn hình tinh thể lỏng là loại thiết bị hiển thị được cấu tạo bởi các tế
bào( Các điểm ảnh) chứa các tinh thể lỏng có khả năng thay đổi tính phân cực
của ánh sáng do đó thay đổi cường độ ánh sáng khi truyền qua khi kết hợp với
các kính lọc phân cực, chúng có rất nhiều ưu điểm và các ưu điểm nổi bật
nhất là tiết kiệm năng lượng, phẳng, hình ảnh sáng chân thật, nhỏ gọn được
ứng dụng rất nhiều trong thực tế như các thiết bị yêu cầu nhỏ gọn, tiêu thụ
năng lượng ít như đồng hồ, điện thoại di động…ngoài ra trong xu thế phát
triển mạnh của khoa học công nghệ màn hình tinh thể lỏng còn được ứng
dụng rất nhiều trong cuộc sống như màn hình màu của máy tính và tivi.
2.5. Kết luận
Trong chương 2 em đã nêu được một số các nội dung sau :
- Giới thiệu về Vi điều khiển trong đó có các nội dung đã được trình
bày như vi điều khiển là gì, kiến trúc của vi điều khiển, các tập lệnh của vi
điều khiển. Trước khi bắt tay vào viết chương trình cho vi điều khiển chúng ta
cần nắm rõ các đặc điểm của vi điều khiển nói chung để từ đó chọn ra được
loại vi điều khiển mà mình muốn làm việc.
- Màn hình tinh thể lỏng-LCD.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 13
CHƯƠNG 3:
MÀN HÌNH LCD 1620A VÀ VI ĐIỀU KHIỂN CC1010
3.1. Màn hình tinh thể lỏng LCD 1602A
Hiện nay trên thế giới có rất nhiều loại màn hình tinh thể lỏng khác nhau
tùy theo mục đích sử dụng và đòi hỏi của công việc mà có những loại màn
hình khác nhau, yêu cầu công việc càng cao thì các loại màn hình tinh thể
lỏng lại có chất lượng khác nhau.Trong mô hình mạng cảm nhận WSN lại
không cần dùng đến loại hiện đại và chất lượng hình ảnh quá cao mà chỉ cần
dùng các loại màn hình đơn sắc ví dụ như loại 20x2 dòng, 20x4 dòng, ... do
yêu cầu hiển thị của nút mạng không cao như chỉ đưa ra thông tin dạng ký tự
hoàn toàn không cần màn hình hiển thị nhiều thông số vì vậy em chọn màn
hình tinh thể lỏng-LCD1602A để hiển thị kết quả thu được của nút mạng sau
khi đã tính toán sử lý dữ liệu thu được. Sau đây em xin trình bày về loại màn
hình tinh thể lỏng LCD 1602A .
Đặc điểm chung của màn hình tinh thể lỏng LCD 1602A
LCD 1602A là màn hình loại 16 ký tự * 2 đường, là loại màn hình đơn
sắc có một bộ ASCII chuẩn.Kiến trúc phần cứng gồm có 64 bytes CGRAM
(Charactor-Genarator) đây là bộ nhớ dùng để lưu trữ những ký tự được định
nghĩa sẵn bởi người dùng và có 80 bytes DDRAM dùng để lưu trữ những ký
tự đặc biệt.Màn hình LCD có thể giao tiếp với vi xử lý thông qua một bus dữ
liệu 8bit hoặc 4bit, khi làm việc LCD 1602A cần nguồn cung cấp là +5V.
Có hai chế độ làm việc với màn hình LCD 1602A
¾ Chế độ 8 bit
¾ Chế độ 4 bit .Chúng ta hay dùng cách này vì đơn giản và tiết kiệm
chân cho vi điều khiển, tuy nhiên phương pháp này có nhược điểm đó là tốc
đọ chậm hơn so với khi làm việc ở chế độ 8 bit.
Để có thể loạt động LCD 1602A yêu cầu 3 đường điều khiển từ vi điều
khiển, Cụ thể như sau :
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 14
¾ Đường Enable(E) :cho phép truy nhập màn hình thông qua R/W
hoặc đường RS.
- Khi (E) = 0 LCD không cho phép và không quan tâm đến những tín
hiệu từ R/W hoặc RS.
- Khi (E) = 1 LCD sẽ kiểm tra trạng thái của hai đường điều khiển và
trả lời phù hợp yêu cầu của đường điều khiển.
¾ Đường Read.Write (R/W): Xác định hướng của dữ liệu giữa LCD và
vi điều khiển.
- Khi (R/W) = 0 cho phép ghi thông tin lên LCD
- Khi (R/W) = 1 đọc thông tin từ LCD.
¾ Đường Register Select (RS) :Dựa vào đường (RS) LCD sẽ làm rõ
kiểu của dữ liệu trên đường dữ liệu.
- Khi (RS) = 0 chọn thanh ghi mã lệnh, cho phép người dùng gửi lệnh
lên LCD.
- Khi (RS) = 1 chọn thanh ghi dữ liệu cho phép người dùng gửi dữ liệu
cần hiển thị lên LCD.
Hai đường A, K là nguồn +5V dùng để điều khiển độ sáng tối của màn
hình LCD, LCD 1602A có 8 đường dữ liệu từ DB0 đến DB7, hai đường Vss
và Vee điều khiển độ tương phản của LCD.
3.2. Cơ chế hoạt động và điều khiển hiển thị trên LCD
Khi LCD được khởi động để sẵn sàng nhận dữ liệu hoặc lệnh cần thiết
lập các đặc trưng của LCD như : độ dài giao diện, ghi mã lệnh (0x010) để tắt
màn hình hiển thị, ghi mã lệnh (0x001) để xóa màn hình hiển thị, ghi mã lệnh
hướng dịch chuyển của con trỏ, ghi mã lệnh cho phép hiển thị con trỏ ở trạng
thái chờ, ghi mã lệnh (0x20) để cho phép chế độ 4bit làm việc.nếu nhận một
ký tự nó sẽ ghi ký tự đó lên màn hình và di chuyển con trỏ sang phải một
khoảng. Vùng con trỏ đánh dấu vùng tiếp theo là nơi ký tự tiếp theo được ghi
lên. Khi muốn viết một chuỗi ký tự, đầu tiên chúng ta cần thiết lập địa chỉ ban
đầu thường là 0 sau đó hiển thị lên màn hình.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 15
Dữ liệu được đưa đến hiển thị trên màn hình LCD có độ dài 8 bit theo
hai chế độ là 4bit và 8 bit. Chế độ 4 bit chia byte thành hai phần 4bit cao gửi
trước, 4 bit thấp gửi sau, đồng thời gửi xung kích hoạt chân (E).Sau khi LCD
được khởi tạo ta có thể viết các lệnh hoặc dữ liệu lên mà hình LCD.Sau mỗi
lần viết mã lệnh lên LCD thì lại phải đợi một khoảng thời gian nhất định để
thực hiện lệnh (khoảng 5ms) trong suốt thời gian này vi điều khiển không thể
truy cập vào LCD.
Sau khi màn hình LCD được khởi tạo, có thể viết các lệnh hoặc dữ liệu
lên LCD. Quá trình viết các kí tự giống như viết một byte điều khiển, chỉ
khác về mức thế điều khiển trên RS. Nhờ việc lập bit RC qua lệnh di chuyển
con trỏ / dịch chuyển màn hình trong quá trình khởi tạo, sau mỗi một kí tự
được gửi đến màn hình LCD. Nội dung con trỏ tăng một đơn vị, con trỏ dịch
tới vị trí tiếp theo ( bên phải hoặc bên trái ). Theo sơ đồ thiết kế LCD làm việc
ở chế độ 4 bit, kết nối với CC1010EM qua cổng P2.
Một số các thông số điều khiển hướng dịch chuyển hiển thị của con
trỏ trên màn hình:
- ID : chỉ số tăng của con trỏ sau mỗi một bytes được hiển thị.
- S : dịch chuyển màn hình hiển thị sau mỗi bytes được hiển thị.
Cho phép hiển thị mà hình / con trỏ:
- D : On(1) / Off(0) màn hình.
- C : On(1) / Off(0) con trỏ.
- B : On(1) / Off(0) nhấp nháy con trỏ.
Di chuyển con trỏ trên mà hình hiển thị:
- SC : On(1) / Off(0) Sự dịch chuyển màn hình hiển thị.
- RL : Hướng dịch chuyển Phải(1) / Trái (0).
- DL : Thiết lập độ dài dữ liệu 8bit(1) / 4bit(0).
- N : Số dòng hiển thị 1dòng (0) / 2dòng (1).
- F : Font ký tự 5x10 (1) / 5x7 (0).
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 16
Thăm dò cờ báo bận BUSY FLAG:
- BF : Sét module đang trong quá trình sử lý
Dịch chuyển con trỏ tới vùng CGRAM để hiển thị A-Address đọc viết
mã ASCII để hiển thị D-DATA.
3.3. Vi điều khiển CC1010
Vấn đề lựa chọn vi điều khiển để xây dựng nút mạng là một vấn đề rất
quan trọng. Việc lựa chọn vi điều khiển hợp lý sẽ làm cho quá trình xây dựng
hệ thống được rút ngắn, hệ thống có thể hoạt động ổn định, độ tin cậy cao và
có thể đạt các chỉ tiêu đề ra như sau:
¾ Tiêu thụ năng lượng thấp.
¾ Bộ nhớ chương trình cũng như bộ nhớ dữ liệu có kích thước hợp lý.
¾ Kích thước vật lý nhỏ.
¾ Giá thành rẻ, dễ sử dụng, quen thuộc với người sử dụng....
Như đã giới thiệu ở chương 2 thì trên thế giới hiện nay có rất nhiều loại
vi điều khiển khác nhau và các loại vi điều khiển đó đều thỏa mãn được các
chỉ tiêu đề ra. Tuy nhiên 2 loại PIC và Motorola không có tích hợp truyền
nhận không dây hoặc khi sử dụng chúng ta phải thiết kế thêm nhiều các thành
phần phụ trợ rắc rối khác vì thế khi thiết kế hệ thống có thể gặp nhiều khó
khăn, phức tạp. Vi điều khiển CC1010 được lựa chọn để làm nút mạng là
thích hợp hơn tất cả các loại khác mà em từng được biết vì nó đã thỏa mãn
được những yêu cầu đã đặt ra.
Vi điều khiển CC1010 được cung cấp bởi hãng điện tử nổi tiếng
Chipcon, có lõi tương thích với vi điều khiển 8051 .Vi điều khiển CC1010 là
dòng vi điều khiển mạnh ,kích thước nhỏ ,tiêu thụ năng lượng ít ,có thời gian
sống dài ,có đủ tài nguyên phần cứng để đáp ứng chức năng mạng và chức
năng cảm ứng thích hợp cho các ứng dụng truyền nhận không dây, CC1010
được tích hợp nhiều các tính năng phục vụ cho các ứng dụng không dây như
bộ truyền nhận vô tuyến, bộ biến đổi ADC, bộ nhớ lập trình Flash...Vì vậy
CC1010 chỉ cần đến rất ít các thành phần phụ khác để có thể trở thành một
nút mạng cảm nhận không dây.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 17
Đặc điểm chung của vi điều khiển CC1010
- Vi điều khiển CC1010 có lõi là vi điều khiển 8051.
- Tốc độ xử lý được nâng cấp nhanh hơn 2.5 lần so với 8051 chuẩn.
- Có 32kb flash, 2048 + 128 Byte SRAM.
- Có 4 bộ định thời.
- Có 2 cổng UART, RTC.
- Có 3 kênh ADC 10 Bit.
- Giao diện lập trình SPI.
- Bộ mã hóa DES tích hợp bên trong.
- Có 26 chân vào ra chung.
- Cần rất ít thành phần bên ngoài.
- Độ nhạy cao (-107 dBm).
- Nguồn nuôi từ 2,7 – 3,6 V.
- Có bộ thu phát sóng vô tuyến 300 – 1000 MHz.
- Tiêu thụ dòng thấp ( 9.1 mA trong chế độ thu ).
- Công suất phát có thể lập trình được ( lên đến +10 dBm ).
- Tốc độ thu phát dữ liệu lên đến 76.8 kbit/s.
3.3.1. Bộ nhớ Flash:
CC1010 có tích hợp 32-kbyte bộ nhớ lập trình flash. Nó được chia thành
256 trang, mỗi trang dài 128 byte. Nó có thể được lập trình hoặc xoá dữ liệu
thông qua giao diện nối tiếp SPI hoặc thông qua vi nhân 8051. Tuổi thọ của
bộ nhớ Flash thường là 20.000 lần ghi/xoá. Bộ nhớ Flash có thể được khoá để
không đọc/ghi được bằng cách thiết lập bít tương ứng thông qua giao diện nối
tiếp. Việc xoá chíp phải được thực hiện trên bộ nhớ không bị khoá. Ðiều này
cho phép ngăn chặn phần mềm không bị copy trái phép.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 18
3.3.2. Các cổng vào – ra chung:
Vi điều khiển CC1010 có tất cả 4 cổng vào - ra chung đó là: P0, P1, P2,
P3. Mỗi cổng liên kết với 2 thanh ghi là:Thanh ghi cổng (P0, P1, P2, P3) và
Thanh ghi hướng (P0dir, P1dir, P2dir, P3dir). Mỗi bit trên thanh ghi Px được
liên kết với bit tương ứng trên thanh ghi hướng PxDIR. Việc thiết lập
PxDIR.y sẽ làm cho chân Px.y trở thành đầu nhập dữ liệu và đưa vào bit Px
(y). Tất cả các chân đều là chân nhập dữ liệu khi mà reset lại chip. Việc xóa
bit hướng PxDir.y sẽ làm cho chân Px.y trở thành chân xuất dữ liệu từ thanh
ghi Px(y). Một số cổng có những hàm chức năng thêm vào (ví dụ như giao
diện SPI). Các chức năng này có thể được dùng thông qua các thanh ghi khác
(như SPCR.SPE). Các chức năng thêm vào này có thể ghi đè lên bit hướng
được thiết lập trong PxDIR hoặc là không. Khi đọc thanh ghi Px, dữ liệu sẽ
lấy từ bộ đệm (Pad). Khi sử dụng các lệnh ghi - đọc dữ liệu thì giá trị của
thanh ghi xuất dữ liệu sẽ bị thay đổi bất chấp việc thiết lập các bit hướng
trong PxDIR..
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 19
Hình 3.1: Các cổng vào / ra chung
3.3.3. Các bộ định thời:
Vi điều khiển CC1010 có chứa 4 bộ định thời / bộ đếm của vi nhân 8051
chuẩn (Timer0 và Timer1), chúng có thể hoạt động như một bộ định thời với
xung nhịp dựa trên đồng hồ hệ thống hoặc hoạt động như một bộ đếm với
xung nhịp dựa trên T0 (p3.4 cho Time 0) hoặc T1 (p3.5 cho Time 1). Mỗi bộ
định thời /bộ đếm có một thanh ghi 16 bit có thể ghi đọc được thông qua TL0
và TH0 cho Timer 0 và TL1 và TH1 cho Timer 1. Ngoài 2 bộ định thời trên
CC1010 còn cung cấp thêm 2 bộ định thời Timer2 và Timer3 có khả năng
điều chỉnh độ rộng xung. Chế độ hoạt động của 2 bộ định thời này có thể
được thiết lập thông qua thanh ghi TCON2 có địa chỉ 0xA.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 20
Hình 3.2: Các thanh ghi của bộ định thời
3.3.4. Các cổng nối tiếp
CC1010 có tích hợp 2 cổng nối tiếp 0 và 1. Hai cổng này được điều
khiển thông qua thanh ghi SCON0 và SCON1. Dữ liều vào ra trên hai cổng
này sẽ được lưu tạm thời thông qua các thanh ghi đệm SBUF0 và SBUF1.
Cổng nối tiếp 0 được sử dụng trong các giao tiếp chung. Trong khi đó cổng
nối tiếp 1 được dùng chủ yếu cho mục đích gỡ rối.
3.3.5. Các bộ biến đổi ADC:
Bộ biến đổi ADC tích hợp trên chip được điều khiển bởi thanh ghi
ADCON và ADCON2. Có 2 chân analog được dùng để lấy mẫu được điều
khiển bởi ADCON.ADADR. Thanh ghi này được dùng để lựa chọn chân
AD1 như là chân so sánh bên ngoài (khi đang dùng AD0). Ðiện thế so sánh
được điều khiển bởi ADCON.ADCREF. Bit ADCON.AD_PD được lập khi
ADC không được dùng để tiết kiệm điện năng.
Bộ biến đổi ADC hoạt động 1 trong 4 chế độ được lựa chọn bởi bit
ADCON.ADCM. Mỗi lần biến đổi thì mất 11 chu kì xung nhịp. Trong chế độ
xung nhịp 1 khi POWER.PMODE được thiết lập thì đồng hồ 32 kHz được
đưa trực tiếp vào bộ biến đổi ADC. Trong chế độ xung nhịp 0, xung nhịp đầu
vào của ADC lấy từ bộ dao động chính bằng cách sử dụng bộ chia được lựa
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 21
chọn bởi ADCON2.ADCDIV. Thanh ghi phải được thiết lập để tần số xung
nhịp của ADC phải nhỏ hơn hoặc bằng 250 kHz.
Trong chế độ chuyển đổi đơn mỗi lần chuyển đổi được thiết lập bằng
việc đặt bít điều khiển ADCON.ADCRUN. Cờ ngắt EXIF.ADIF và
ADCON2.ADCIF được đặt bởi phần cứng nếu 8 bit của giá trị mẫu sau cùng
lớn hơn hoặc bằng giá trị được lưu trữ trong thanh ghi ADTRH. Một thủ tục
ngắt sẽ được thực thi nếu các cờ ngắt này được thiết lập. Ðể luôn luôn nhận
được một ngắt khi mà hoàn thành việc chuyển đổi thì ADTRH phải được đặt
bằng 0. Khi việc chuyển đổi hoàn thành thì bit điều khiển ADCON.ADCRUN
bị xóa bởi phần cứng.
Trong chế độ đa chuyển đổi thi ADC bắt đầu với lần chuyển đổi mới sau
mỗi 11 chu kì xung nhịp. Tất cả lần chuyển đổi sẽ ngừng lại khi xóa bit
ADCON.ADCRUN sau đó ADC sẽ bỏ qua các tiến trình và ngừng hoạt động.
Trong tất cả các chế độ hoạt động khi mà 8 bit của giá trị mẫu lớn hơn
hoặc bằng giá trị được ghi ở trong thanh ghi ADTRH thì một hành động được
diễn ra:
¾ Ða chuyển đổi - có nối tiếp: Khi việc so sánh ngưỡng có giá trị
TRUE thì một ngắt được sinh ra và một thủ tục phục vụ ngắt tương ứng được
thực hiện nếu các cờ ngắt EIE.ADIE và ADCON2.ADCIE được bật. ADC sẽ
thực hiện tiếp tục các quá trình chuyển đổi mà không quan tâm tới kết quả của
việc so sánh ngưỡng. Ðể luôn luôn nhận được ngắt khi quá trình biến đổi
được hoàn thành thì ADTRH phải được đặt =0.
¾ Ða chuyển đổi - có dừng: Khi việc so sánh ngưỡng có giá trị TRUE
thì một ngắt được sinh ra và một thủ tục phục vụ ngắt tương ứng được thực
hiện nếu các cờ ngắt EIE.ADIE và ADCON2.ADCIE được bật. ADC sẽ dừng
hoạt động và bit ADCON.ADCRUN được xóa.
¾ Ða chuyển đổi nạp lại: Khi đã vượt qua ngưỡng thì một quá trình
khởi động lại hệ thống sẽ được sinh ra. Chế độ này thường được sử dụng cùng
với chế độ Stop Mode của 8051 và bộ dao động 32 kHz để tiết kiệm điện năng
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 22
trong khi giám sát tín hiệu. Giá trị được lưu trữ trong ADDATH và ADDATL
không bị ảnh hưởng khi reset hệ thống.
3.4. Kết luận
Trong chương 3 đã giới thiệu một số các kiến thức cơ bản về vi điều
khiển CC1010, các đặc điểm chính, các thành phần mà ta sẽ tiến hành làm
việc trực tiếp đó là lập trình cho nó, một nội dung quan trọng nữa là các kiến
thức về loại màn hình được chọn để hiển thị kế quả của nút gốc sau khi nhận
được dữ liệu từ các nút cơ sở đó là loại màn hình tinh thể lỏng – LCD 1602A,
cơ chế hiển thị và cách thức làm việc của nó.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 23
CHƯƠNG 4:
PHẦN MỀM NHÚNG CHO HỆ ĐO NHIỆT ĐỘ TỰ ĐỘNG
4.1. Tổng quan về phần mềm nhúng
Trong xu thế phát triển của khoa học ngày nay và trong lĩnh vực điều
khiển tự động nói chung thì phần mềm nhúng đang có những bước đột phá
mới, dần khẳng định được nó có vai trò quan trọng như thế nào trong lĩnh vực
điều khiển tự động.Nó tạo ra các cuộc cách mạng triệt để trong tương lai. Lý
do của sự phát triển vượt bực này xuất phát từ những nhu cầu bức thiết từ
thực tế và những bước tiến mạng mẽ trong công nghệ phần cứng. Một phần
mềm nhúng phải kết hợp chặt chẽ với môi trường của nó bao gồm phần cứng
và các hệ thống liên quan. Nó có những ràng buộc về tốc độ xử lý, dung
lượng bộ nhớ và mức tiêu thụ điện năng…Một phần mềm nhúng tốt là phần
mềm phải đảm bảo được các yếu tố trên và đó cũng là hướng phát triển quan
trọng của các phần mềm nhúng. Điểm mấu chốt của các phần mềm nhúng
ngày nay là việc lựa chọn các phương pháp thực thi của một chức năng giống
như một thành phần “cứng” của phần mềm như các thành phần truyền thông
khác.
4.2. Các bước để xây dựng một phần mềm nhúng
Phần mềm viết cho các họ vi xử lý có thể sử dụng các ngôn ngữ khác
nhau như C/C++ hoặc Assembler. Tùy theo tiêu chí xây dựng hệ thống mà
lựa chọn ngôn ngữ thích hợp. Từ đó cũng chọn ra chương trình dịch thích
hợp. Ngày nay nhu cầu phát triển hệ thống nhanh, bảo trì dẽ dàng nên dùng
ngôn ngữ được lựa chọn thường là ngôn ngữ cấp cao như C/C++.
Quy trình xây dựng một phần mềm bất kỳ thường trải qua các bước như
sau:
- Tìm hiểu bài toán
- Phân tích
- Thiết kế
- Viết chương trình
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 24
- Kiểm thử
Việc xây dựng một phần mềm nhúng cũng tuân theo trình tự các bước
như trên. Ngoài ra, phần mềm nhúng còn có đặc trưng là làm việc trực tiếp
với phần cứng. Do đó để kiểm soát quá trình làm việc với các thành phần
chấp hành có đúng đắn không là điều kiện rất quan trọng.
4.3. Phần mềm nhúng viết cho vi điều khiển CC1010
Phần mềm nhúng viết cho vi điều khiển CC1010 được viết bằng ngôn
ngữ C, sử dụng các thư viện cho CC1010 do hãng chipcon cung cấp, sử dụng
chương trình dịch Keil uVersion 2.0.
Chương trình dịch Keil uVersion 2.0 do hãng Keil Electronic GmbH xây
dựng là một môi trường phát triển tích hợp (IDE) dùng để xây dựng các
chương trình cho các họ vi điều khiển tương thích họ 8051 của Intel. Đây là
bộ chương trình dịch cho phép người viết chương trình soạn thảo chương
trình, dịch chương trình và gỡ lỗi trên cùng một môi trường. Chương trình
dich hỗ trợ cả C và Assembly.
Phần mềm nhúng cho hệ được thiết kế nhằm mục đích sử dụng hệ thống
để cảnh báo sự kiện nguy hiểm ( vượt mức thông thường về nhiệt độ). Tức là
nếu thông tin nhiệt độ mà nút mạng thu nhận được vượt quá ngưỡng nào đó
thì nút gốc sẽ đưa ra cảnh báo. Phần mềm được thiết kế để hệ hoạt động trong
2 trường hợp:
4.3.1. Trường hợp truyền đơn bước
Các nút mạng cảm nhận được nhiệt độ và truyền không dây trực tiếp về
nút gốc. Nút gốc tập hợp dữ liệu, hiển thị lên màn hình LCD. Sau đó nút gốc
sẽ tiến hành kiểm tra nhiệt độ các nút mạng xem có nút nào vượt quá ngưỡng
không, từ đó đưa ra các phán đoán và cảnh báo cần thiết.
4.3.2. Trường hợp truyền đa bước
Nút mạng cảm nhận nhiệt độ và truyền gián tiếp thông tin về nút gốc
thông qua các nút trung gian. Bản thân các nút trung gian có thể mang dữ liệu
hoặc không. Nút gốc nhận thông tin từ các nút mạng thông qua các nút trung
gian, hiển thị lên màn hình LCD, và đưa ra các kết luận cần thiết. Trường hợp
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 25
truyền đa bước chỉ mang tính chất thử nghiệm, tức là truyền nhận được dữ
liệu thông qua nút trung gian, chưa tính toán đến vấn đề cản nhiễu hay xung
đột.
Thiết kế phần cứng chỉ thiết kế khối truyền (nút mạng) và khối nhận
(nút gốc). Nút trung gian được tạo ra bằng cách dùng một phần mềm điều
khiển khác nạp cho nút mạng bình thường để biến một nút cảm nhận đó thành
một nút trung gian. Trường hợp truyền đa bước này là một khác biệt so với
các nghiên cứu trước đây.
Giới thiệu Bộ công cụ Development Enviroment IDE với thư viện
hàm hỗ trợ:
Bộ công cụ Development Enviroment IDE do hãng Chipcon cung cấp
giúp ta lập trình và nạp cho chip CC1010. Chip có thể nạp trực tiếp khi kết
nối bộ CC1010EM với bộ C1010EB mà không cần phải tháo Chip CC1010
khỏi bo mạch.
Môi trường phát triển tích hợp (Integrated Development Enviroment
dựa trên chip CC1010. IDE bao gồm giao diện đồ hoạ quản lý các dự án, một
bộ soạn thảo chương trình nguồn, bộ mô phỏng cho hỗ trợ nhiều thiết bị khác
nhau, và các bộ biên dịch, liên kết. CC1010IDE hoạt động dựa trên
μVision2b là một công cụ phát triển phần mềm của hãng Keil Elektronik
GmbH. Công cụ này hỗ trợ tốt các đặc tính của CC1010IDE và các vi điều
khiển khác dựa trên kiến trúc của bộ vi xử lý 8051.
CC1010IDE bao gồm nhiều các file nguồn để hỗ trợ và đơn giản hoá
công việc lập trình phát triển chương trình. Bên cạnh thư viện C chuẩn, IDE
còn có các file nguồn khác được chia thành 4 nhóm:
- Hardware Definition Files (HDF).
- Hardware Abstraction Library (HAL).
- Chipcon Utility Library (CUL).
- Application examples.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 26
Hình 4.1: Thư viện Chipcon
Trong đó:
Hardware Definition Files (HDF): chứa địa chỉ của các thanh ghi, bản
đồ vector ngắt và các hằng số phần cứng khác đều được xác định trước. Nó
bao gồm các macro dành cho CC1010EB và các định nghĩa chung khác hỗ trợ
cả ngôn ngữ C và Assembly.
Hình 4.2: Thư viện Chipcon
Hardware Abstraction Library (HAL): Thư viện này bao gồm nhiều
các macro và các hàm nhằm làm đơn giản hoá việc truy cập vào phần cứng
của CC1010.Thông qua việc gọi các macro và hàm này người sử dụng có thể
truy cập vào các thành phần vi điều khiển một cách dễ dàng mà không cần
phải tìm hiểu một cách chi tiết về phần cứng.
4.3.3. Thiết kế phần mềm nhúng
4.3.3.1. Phần mềm cho hệ truyền đơn bước ( single hop)
Trong hệ này giả sử ta chỉ truyền từ các nút mạng về trung tâm. Mỗi nút
mạng này ta sẽ gắn 1 địa chỉ. Mỗi nút mạng khác nhau sẽ có một địa chỉ khác
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 27
nhau. Muốn thu dữ liệu từ nút đơn nào ta chỉ việc kiểm tra địa chỉ nút đó, nếu
đúng địa chỉ thì sẽ tiến hành xử lý dữ liệu để hiển thị.
Phần mềm nhúng cho hệ đơn bước phải bao gồm 2 phần mềm:
¾ Phần mềm 1( software 1 single hop SW1-SH ):
Cài đặt cho nút mạng (bộ truyền), đảm bảo rằng khi nút mạng nhận
được tín hiệu từ cảm biến thì sẽ thực hiện số hóa tín hiệu, điều chế và đưa lên
Anten phát. Phần mềm này cũng phải đảm bảo rằng nút mạng có khả năng
hoạt động độc lập, có chế độ ngủ đông để tiết kiệm pin.
¾ Phần mềm 2 ( software 1 single hop SW2-SH ):
Cài đặt cho nút gốc (bộ nhận ), đảm bảo rằng khi nút gốc nhận được
tín hiệu vô tuyến của các nút mạng thì sẽ tiến hành phân tích, kiểm tra địa chỉ,
sau đó lọc ra thông tin nhiệt độ, điều khiển hiển thị lên màn hình LCD. Phần
mềm 2 này còn phải bao gồm cả việc điều khiển phân tích dữ liệu và đưa ra
các phán đoán xử lý kịp thời, hay đơn giản là hiển thị dữ liệu cho quan sát
viên ở trung tâm xử lý có thể nhận biết được.
Trong khi viết các phần mềm này, có thể sử dụng một vài hàm trong thư
viện hàm mà nhà sản xuất cung cấp.
a) Phần mềm 1 (software 1 single hop SW1-SH)
♦ Thuật toán
Nút mạng thực hiện việc cảm nhận, số hóa và truyền tín hiệu nhiệt độ đã
số hóa đến nút gốc. Theo cấu trúc phần cứng của CC1010, để tiết kiệm nguồn
nuôi, sau mỗi lần phát tín hiệu, ta sẽ đặt nút mạng vào trạng thái Hibernate
(ngủ đông). Sau đó lại cho tiếp tục phát. Chu trình hoạt động của nút mạng
theo một vòng lặp như sau:
- Phát tín hiệu số hoá của nhiệt độ lấy từ chân AD1.
- Đợi một khoảng thời gian ngẫu nhiên từ 0 đến 250* 8ms (trong lúc
này tiến hành ngủ đông cho nút mạng).
- Phát tín hiệu số hoá của nhiệt độ lấy từ chân AD1.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 28
Hình 4.3: Thuật toán cho nút truyền trường hợp single hop
♦ Chương trình
Sử dụng thư viện hàm nhà sản xuất cung cấp, để có thể đọc và truyền
thông tin nhiệt độ ta sử dụng các hàm và đoạn chương trình như sau:
- Đưa lối ra IC LM 61 tới chân AD1, ta dùng khai báo:
// ADC setup
halConfigADC(ADC_MODE_SINGLE |
ADC_REFERENCE_INTERNAL_1_25, CC1010EB_CLKFREQ,
0);
ADC_SELECT_INPUT(ADC_INPUT_AD1);
ADC_POWER(TRUE);
- Địa chỉ được định:
#define TBC_MY_SPP_ADDRESS 1
nodeIDs[0] = TBC_MY_SPP_ADDRESS;
- Hàm truyền nhiệt được viết như sau:
void tbcTransmit (void) {
word xdata temp;
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 29
// Khoi dong ADC
ADC_SAMPLE_SINGLE();
temp = ADC_GET_SAMPLE_10BIT();
// Cap nhat bang
txDataBuffer[TBC_TEMP_OFFSET] = (temp >> 8) & 0xFF;
txDataBuffer[TBC_TEMP_OFFSET + 1] = temp & 0xFF;
nodeTemps[0] = temp;
nodeLastT[0] = (int) sppGetTime();
// Truyen thong tin
sppSend(&TXI);
do { /*nothing*/ } while (sppStatus() != SPP_IDLE_MODE);
} // tbcTransmit
- Hàm đợi ngẫu nhiên:
// doi 1 khoang ngau nhien (0 to 255*8=2040)
void tbcWaitRandom (void) {
byte xdata time;
byte xdata n;
time = rand();
for (n = 0; n < waitMultiplier; n++) {
halWait (time, CC1010EB_CLKFREQ);
}
} // tbcWaitRandom
- Đoạn lặp trong chương trình thể hiện thuật toán:
while (TRUE) {
tbcTransmit();
tbcWaitRandom();
}
b) Phần mềm 2 (software 2 single hop SW2-SH )
♦ Thuật toán
Điểm quan trọng nhất của phần mềm này là viết hàm nhận dữ liệu và
viết hàm để hiển thị lên màn hình LCD làm việc ở chế độ 4bit.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 30
Hình 4.4: Thuật toán cho nút gốc trường hợp truyền single hop
♦ Chương trình
- Để nhận dữ liệu :
sppReceive(&RXI);
do { /* khong lam gi ca */ } while (sppStatus() !=
SPP_IDLE_MODE);
- Đoạn kiểm tra tín hiệu tại địa chỉ x :
for (n = 0; n <= TBC_MAX_NODE_COUNT; n++) {
for(p=0;p<4;p++){
if(nodeIDs[n]==p){
// thực hiện hiển thị số liệu và kiểm tra
ngưỡng ....
//.............................
}
else{
// thông báo không có số liệu
}
}
}
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 31
- Đoạn hiển thị lên LCD dùng một số hàm được viết ở trong file thư
viện: lcd.h điều khiển LCD ở chế độ 4 bit:
+ Để in một xâu ra LCD cần thực hiện các động tác:
lcd_init();
lcd_com(a); // a là đặt địa chỉ trên màn hình ta cần in
lcd_puts("xâu cần in ");// phần trong dấu nháy kép là dòng cần in
+ Để in nhiệt ra LCD cần chuyển dữ liệu thành dạng chuỗi, ở đây
dữ liệu trong biến fTemp được chuyển thành chuỗi bằng lệnh:
Char so[15]; // khai báo chuỗi “so”
sprintf(so,"%2.3f",fTemp); // chuyển giá trị biến ra chuỗi
- Ví dụ: Với khai báo:
char so[15] // khai báo xâu tên nút mạng
và: sprintf(not,"%2d",p);
đoạn chương trình sau được đặt vào vòng lặp để kiểm tra tính an toàn
của hệ thống:
// Phan doan he thong:
if (fTemp<70){
lcd_init(); // khởi tạo LCD
lcd_com(15); // đặt con trỏ lên dòng đầu
lcd_puts(" Nhiet not ");
lcd_puts(not); // in tên nút mạng cần hiển thị
lcd_com(0xC0); // đặt con trỏ đầu dòng 2
lcd_puts(" -- An toan -- "); // thông báo nút an toàn
delayy(10000); // quan sát trong 10s
}
else{
lcd_init();
lcd_com(15);
lcd_puts(" Nhiet Nut "); // in tên nút mạng cần hiển thị
lcd_puts(not);
lcd_com(0xC0); // đặt con trỏ đầu dòng 2
lcd_puts(" -- bao dong -- "); // thông báo nút báo động
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 32
delayy(10000);
}
4.3.3.2. Phần mềm cho hệ truyền nối tiếp nhiều bước (multi hop )
Trường hợp này ta giả sử có hệ truyền 2 bước nối tiếp. Nút 1 truyền
cho nút 2 ( nút trung gian), nút 2 truyền tiếp cho nút gốc, nút gốc nhận dữ liệu
của nút 1 từ nút 2 và tiến hành hiển thị phân tích để đưa ra các cảnh báo về
độ an toàn. Như vậy có 3 phần mềm cần được viết:
¾ Phần mềm cho nút 1 (software 1 multi hop SW1-MH): Cài đặt cho
nút 1 SW1-MH = SW1- SH
Về cơ bản phần mềm này chính là phần mềm SW1- SH ở trên với địa chỉ
nút 1 đặt là 1.
¾ Phần mềm cho nút 2 ( software 2 multi hop SW2-MH): Cài đặt cho
nút trung gian.
Nhận tín hiệu, kiểm tra địa chỉ nếu, nếu tín hiệu thu được là của nút 1 thì
sẽ tiến hành đem dữ liệu đó truyền tiếp. Về cơ bản nút trung gian có cấu trúc
giống hệt nút 1 nhưng được cài đặt bằng phần mềm khác để chỉ đóng vai trò
vận chuyển mà không có vai trò cảm nhận. Trong phần mềm sẽ không có
đoạn kết nối LM61 với kênh AD1.
¾ Phần mềm cho nút gốc ( software 3 multi hop SW3-MH) : SW3-MH
Phần mềm này đảm bảo cho nút 3 nhận dữ liệu liên tục, kiểm tra nếu
đúng dữ liệu do nút 2 gửi đến thì cho phép hiển thị và tiến hành phân tích để
xử lý hiển thị và đưa ra dạng cảnh báo.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 33
c) Phần mềm SW1-MH
♦ Thuật toán
Hình 4.5: Thuật toán nút 1 trường hợp truyền nối tiếp ( multi hop)
♦ Chương trình
Nút 1 được gắn địa chỉ bằng 1 và truyền đi:
#define TBC_MY_SPP_ADDRESS 1
nodeIDs[0] = TBC_MY_SPP_ADDRESS;
Phần mềm SW1- MH chính là phần mềm SW1-SH với giá trị gán địa chỉ
là 1.
d) Phần mềm SW2-MH
Bản thân nút 2 sẽ không cảm nhận nhiệt độ. Nút 2 có địa chỉ là 2. Nút 2
nhận dữ liệu từ các nút khác nhau, sẽ tiến hành kiểm tra, nếu nhận được địa
chỉ là địa chỉ nút 1 thì sẽ lấy dữ liệu của nút 1 để truyền tiếp
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 34
♦ Thuật toán
Hình 4.6: Thuật toán nút trung gian trường hợp truyền nối tiếp
( multi hop)
♦ Chương trình
- Định địa chỉ nút 2:
#define TBC_MY_SPP_ADDRESS 1
nodeIDs[0] = TBC_MY_SPP_ADDRESS;
- Loại bỏ phần cảm nhận của nút 2 bằng cách không gọi các chương
trình khởi động ADC. (không cho phép kết nối LM61 với kênh AD1)
- Đoạn kiểm tra địa chỉ các nút nhận được, nếu đúng nút 1 thì nhận
nhiệt và thoát:
for (n = 0; n <= TBC_MAX_NODE_COUNT; n++) {
if (nodeIDs[n] ==
TBC_UNUSED_NODE_ID) {
continue;
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 35
}
if(nodeIDs[n]==1){
// Temperature:
temp = nodeTemps[n];
break;
}
}
- Nếu nhận được đúng của nút 1 thì gọi hàm truyền như ở phần mềm
SW2-SH:
tbcTransmit();
tbcWaitRandom(); // đợi ngẫu nhiên, trạng thái ngủ đông
e) Phần mềm nút gốc: SW3-MH
♦ Thuật toán
Hình 4.7: Thuật toán nút gốc trường hợp truyền nối tiếp ( multi hop)
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 36
♦ Chương trình
if(nodeIDs[n]==2){ // kiểm tra xem có đúng điạ chỉ truyền
là 2 không?
fTemp = nodeTemps[n];
fTemp -= 492;
fTemp /= 8.192;
sprintf(so,"%2.3f",fTemp); // chuyển giá trị nhiệt độ thành
xâu
if(fTemp<70){ // Phán đoán tình trạng nút 1:
lcd_init();
lcd_com(15);
lcd_puts("Nhiet tai nut 1:");
lcd_com(0xC0);
lcd_puts(so); // in giá trị nhiệt độ
lcd_puts(" C ");
delayy(5000);
lcd_init();
lcd_com(15);
lcd_puts("Tinh trang nut 1"); // phán đoán
lcd_com(0xC0);
lcd_puts("-- An toan -- "); // nút 1 an toàn
delayy(5000);
}
else{
lcd_init();
lcd_com(15);
lcd_puts("Nhiet tai nut 1:");
lcd_com(0xC0);
lcd_puts(so);
lcd_puts(" C "); // nhiệt độ nút 1
delayy(5000);
lcd_init();
lcd_com(15);
lcd_puts("Tinh trang nut 1"); // phán đoán
lcd_com(0xC0);
lcd_puts(" -- Bao dong -- "); // nút 1 báo động
delayy(5000);
}
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 37
4.4. Kết luận
Các phần mềm đã viết xong. Chương 5 miêu tả cách tiến hành các thử
nghiệm, các tình huống có thể xảy ra và các kết quả thu được.
Trong các phần mềm còn có các khai báo phức tạp khác và các lệnh bổ
sung để dẫn đường cho thuật toán được ghi rõ vào phần phụ lục chương trình.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 38
CHƯƠNG 5:
CÀI ĐẶT THỬ NGHIỆM TRÊN HỆ THỐNG,
CÁC KẾT QUẢ ĐÃ ĐẠT ĐƯỢC
Mục đích của việc thử nghiệm là sử dụng hệ thống để đo và cảnh báo
nhiệt độ nguy hiểm quá mức cho phép.Ta có thể biết được mạng cảm nhận
hoạt động như thế nào? Có thể ứng dụng vào thực tế được không và rất nhiều
các câu hỏi khác.
- Thử nghiệm truyền đơn bước đã đề cập và xử lý dứt điểm các tình
huống có thể xảy ra trong quá trình truyền - nhận để đưa ra cảnh báo chính
xác, phù hợp.
- Thử nghiệm truyền đa bước đã tiến hành truyền dữ liệu từ nút mạng
về nút gốc thông qua nút trung gian. Thử nghiệm đảm bảo quá trình truyền -
nhận thông qua nút trung gian là chính xác, chưa đề cập đến vấn đề giải quyết
xung đột và can nhiễu.
- Thử nghiệm đo hiệu suất truyền / nhận của mạng cảm nhận (gồm 2
nút mạng, 1 nút truyền và 1 nút nhận ).
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 39
5.1. Thử nghiệm truyền đơn bước (single hop)
Hình 5.1: Sơ đồ bố trí thí nghiệm truyền đơn bước.
Tiến hành thử nghiệm truyền đơn bước với hệ thống trên bao gồm có 2
nút truyền, 1 nút nhận và hiển thị kết quả. Trong sơ đồ thử nghiệm trên thì :
- Phần mềm SW1-SH được nạp cho nút 1 với địa chỉ được định là 1.
- Phần mềm SW1-SH được nạp cho nút 2 với địa chỉ được định là 2.
- Phần mềm SW2-SH được nạp cho nút gốc.
Hệ thống sẽ kiểm tra dữ liệu có nhận được không. Nếu nhận được có
vượt ngưỡng cho phép không. Sau đó hiện nhiệt độ lên mà LCD và thông báo
tại điểm đo có báo động hay vẫn an toàn. Trong file nguồn, ngưỡng được đặt
CC1010
Sensor
Angten phát
CC1010
Sensor
Angten phát
<= 100 m <= 100 m
Nút 1 Nút 2
LCD 1602A
CC1010
Angten thu
Đồ
là 7
kiệ
(g
dữ
điề
thu
thô
án tốt ngh
00C. Hệ t
n sau:
- Nếu
iả thiết). N
- Hệ th
- Hệ th
- Hệ th
- Nếu
liệu.
Sau đây
u kiện trên
Kết quả
♦ Cấp
Khi đó n
được thô
ng báo là
Hình
iệp
hống hoạt
nhiệt độ
ếu ngược
ống được
ống được
ống rơi và
chưa nhận
là các thử
.
đạt được
nguồn ch
út gốc vẫ
ng tin củ
chưa nhận
5.1: Kh
động được
tại nút nh
lại thì nút
coi là “ A
coi “ An t
o tình trạn
được thô
nghiệm ch
trong qu
o nút gốc,
n tiến hàn
a 2 nút m
được dữ l
i cấp ngu
ch
coi là chí
ỏ hơn 70
báo động.
n toàn ” n
oàn cục bộ
g báo độn
ng tin từ h
ứng minh
á trình th
nhưng kh
h thu dữ l
ạng. Như
iệu. Kết qu
ồn cho nú
o nút mạ
nh xác nế
0C thì nú
ếu cả 2 nú
” nếu 1 tr
g nếu cả h
ai nút thì
cho việc
ực nghiệm
ông cấp n
iệu theo v
vậy nút g
ả quan sá
t gốc mà
ng
u đáp ứng
t được co
t đều an to
ong các nú
ai nút đều
phải thôn
hệ thống đ
:
guồn cho
òng lặp nh
ốc cần ph
t trên mạch
chưa cấp
được các
i là an t
àn.
t bị báo đ
báo động.
g báo chư
áp ứng tốt
nút mạng
ưng sẽ kh
ải hiển th
như sau:
nguồn
điều
oàn.
ộng
a có
các
ông
ị là
Đồ
địa
tiên
của
toà
nút
án tốt ngh
¾ Cấp
Khi đó n
chỉ, nếu đ
là hiển th
từng nút
n hệ thống
Các hình
đều an to
iệp
nguồn cho
út gốc sẽ
úng là địa
ị giá trị n
. Sau khi k
.
sau đây m
àn (đều có
Hình
cả nút gố
thu được t
chỉ cần đ
hiệt độ tại
iểm tra xo
inh họa c
nhiệt độ n
Hình 5.2:
5.3: Kế
c và các n
hông tin c
ọc, nó sẽ
nút , sau
ng cả hai
ho kết qu
hỏ hơn 70
Nhiệt đ
t luận về
út mạng
ủa nút mạ
cho hiển th
đó đưa ra
nút thì sẽ
ả thu được
0C):
ộ tại nút
tình trạng
ng và tiến
ị dữ liệu
kết luận v
kết luận đ
trong trườ
1
nút 1
hành kiểm
lên LCD.
ề tính an
ộ an toàn
ng hợp cả
tra
Đầu
toàn
của
hai
Đồ án tốt ngh
Nhiệt độ
hệ thống
iệp
Hình
2 nút đều
an toàn. K
Hình 5.6
Hình 5.4
5.5: Kế
nằm tron
ết quả qu
: Kết lu
: Nhiệt
t luận về
g giới hạn
an sát trên
ận về tình
độ nút 2
tình trạng
cho phép
màn hình
trạngcủa
nút 2
, vì vậy p
LCD như
hệ thống
hải kết luậ
sau:
n là
Đồ
min
án tốt ngh
¾ Giả s
Trong k
h hoạ số
iệp
ử đặt nhiệ
hi nhiệt độ
5.2 và 5.3
Hình
Hình 5.8
t độ môi t
nút 1 vẫn
). Nút 2 qu
5.7: Nh
: Tại nú
rường nú
an toàn. K
an sát đượ
iệt độ nút
t 2 nhiệt
t 2 lên cao
hi ấy nút
c như sau
2 vượt n
độ ở mức
hơn 70 oC
1 báo an t
:
gưỡng
báo động
oàn (như h
ình
Đồ
an
án tốt ngh
Khi ấy h
toàn là nút
N
Cả hai n
iệp
ệ thống ở
1). Quan
Hình 5.
ếu đặt cả
út rơi vào
Hìn
trạng thái
sát được tr
9: Kết lu
hai nút 1
tình trạng
h 5.10: N
an toàn c
ên nút gốc
ận hệ thố
và 2 ở nh
báo động:
hiệt nút 1
ục bộ (do
hình như
ng an toà
iệt độ lớn
vượt ngư
chỉ có 1 n
sau:
n cục bộ
hơn 700C
ỡng
út ở trạng
.
thái
Đồ
án tốt ngh
iệp
Hìn
Hìn
h 5.11: K
h 5.12: N
ết luận tì
hiệt nút 2
nh trạng n
vượt ngư
út 1
ỡng
Đồ
5.2
tru
của
án tốt ngh
Cả 2 nút
. Thử n
- Thôn
yền về nút
nút 1.
- Nút 1
- Nút 2
- Nút g
- Các p
- Sơ đồ
iệp
Hìn
nhiệt độ đ
Hìn
ghiệm t
g tin nhiệt
gốc. Bản
được nạp
được nạp
ốc được n
hần mềm
thí nghiệ
h 5.13: K
ều ở mức
h 5.14: B
ruyền đa
độ truyền
thân nút 2
phần mềm
phần mềm
ạp phần m
này đã đư
m bố trí nh
ết luận tì
báo động,
áo động
bước (m
từ nút 1 s
không đo
SW1-SH
SW2-MH
ềm SW3-
ợc mô tả ở
ư sau:
nh trạng n
vì vậy hệ
toàn hệ th
ulti hop
ang nút 2
nhiệt độ m
với địa ch
.
MH.
trên .
út 2
thống báo
ống
)
, nút 2 nếu
à chỉ chu
ỉ được địn
động:
nhận đượ
yển tiếp n
h là 1.
c sẽ
hiệt
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 47
Hình 5.15: Bố trí thử nghiệm truyền 2 bước nối tiếp
CC1010
Sensor
Angten phát
LCD 1602A
CC1010
Angten thu
CC1010
Sensor
Angten phát
<= 100 m
<= 100 m
Nút 1
Nút 2
Đồ
gốc
dữ
2 h
liệu
nhi
án tốt ngh
♦ Kết q
Khi cấp
Lúc này
do đó cũn
liệu”.Kết
oặc nút 1:
H
Cấp ngu
Nút 1 tr
.Kết quả
ệt độ của n
iệp
uả đạt đư
nguồn ch
nút 2 khô
g không n
quả quan
ình 5.16:
ồn cho n
uyền dữ li
là nút gốc
út 1. Qua
ợc
o nút gốc
ng nhận đ
hận được
sát tương t
Nút gốc
út gốc, nú
ệu, nút 2
nhận đượ
n sát trên L
và nút 2 m
ược tín hiệ
tín hiệu củ
ự khi hệ t
chưa thu
t 1, nút 2:
nhận được
c dữ liệu n
CD của n
à không
u của nút
a nút 2. N
hống đang
được dữ l
thì tiến h
út 2 truyền
út gốc thấ
cấp nguồ
1 nên khô
út gốc hiể
hoạt động
iệu từ nút
ành truyề
. Đây chín
y:
n cho nút
ng truyền,
n thị “chư
mà ta tắt
2
n tiếp khố
h là thông
1:
nút
a có
nút
i dữ
tin
Đồ
án tốt ngh
Hình
iệp
5.17: Nút
Hình 5.18
gốc nhận
: Nút gố
được dữ
c kết luận
liệu nút 1
về tình tr
thông qu
ạng nút 1
a nút 2
Đồ án tốt ngh
Đặt nút
H
iệp
1 ở nơi có
Hình
ình 5.20:
nhiệt độ
5.19: Nh
Nút gốc
lớn hơn 7
iệt tại nút
kết luận v
00C:
1 vượt n
ề tình trạ
gưỡng
ng của nút 1
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 51
Đánh giá
Các thử nghiệm trên đã đề cập đến các tình huống có thể xảy ra với hệ
thống:
¾ Trong trường hợp truyền đơn bước
Dữ liệu từ các nút mạng đã truyền được về nút gốc. Nút gốc đã hiển thị
thông tin nhiệt độ của 2 nút mạng và phân tích đánh giá độ an toàn của từng
nút, trên cơ sở đó đã đánh giá được độ an toàn của cả hệ thống (an toàn, an
toàn cục bộ hay báo động toàn hệ thống).
¾ Trong trường hợp truyền đa bước
Đã tiến hành truyền 2 bước nối tiếp. Dữ liệu được truyền từ nút mạng về
nút gôc thông qua nút trung gian. Nút gốc nhận được, hiển thị lên LCD và
đưa ra kết luận chính xác về tình trạng nút truyền.
Nói tóm lại, kết quả các thử nghiệm là phù hợp với thực tế, minh chứng
rõ nét cho tính chính xác của hệ thống trong các tình huống có thể xảy ra.
5.3. Thực nghiệm đo hiệu suất truyền / nhận của mạng cảm
nhận (gồm 2 nút mạng, 1 nút truyền và 1 nút nhận )
Trong thực tế việc đánh giá hiệu suất của việc truyền - nhận tín hiệu
trong một hệ thống mạng rất quan trọng. Nó sẽ giúp chúng ta đưa ra được
phương hướng giải quyết về hiệu suất truyền của hệ thống mạng đó. Đây là
chỉ tiêu quan trọng giúp chúng ta đánh giá rõ được mức độ hoạt động của hệ
thống.
Mạng cảm nhận không dây thu thập dữ liệu môi trường cũng thực hiện
tính hiệu suất truyền - nhận tín hiệu dựa trên 2 tiêu chí:
- Hiệu suất truyền - nhận tín hiệu dựa vào tần suất truyền
- Hiệu suất truyền - nhận tín hiệu dựa vào khoảng cách truyền ( Nút
gốc cách xa nút cơ sở ).
Để giải quyết được vấn đề trên thì ta tiến hành triển khai việc đo thử
nghiệm kết quả truyền - nhận tín hiệu dựa trên 2 tiêu chí trên với khoảng thời
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 52
gian là 120 giây (2 phút ), thực hiện 3 lần đo, ghi kết quả và biểu diễn bằng đồ
thị, đánh giá hiệu suất cho từng lần đo và chung cho các lần đo.
Việc chuẩn bị thực nghiệm gồm có: 2 nút mạng, 1 nút cảm nhận đóng
vai trò truyền dữ liệu và 1 nút làm trạm gốc đóng vai trò nhận dữ liệu. Phần
mềm nhúng cho các nút mạng được triển khai như đã nói ở phần trên.
¾ Đo khả năng truyền - nhận tín hiệu dựa vào tần suất truyền:
Ta tiến hành đo việc truyền - nhận tín hiệu của nút cảm nhận truyền về
trạm gốc trong 1 khoảng thời gian là 120 giây.
Cứ 6 giây thì nút cảm nhận thực hiện việc thu thập dữ liệu môi trường và
truyền về trạm gốc. Như vậy trong khoảng thời gian 120 giây thì ta có
20 lần tín hiệu được truyền từ nút cảm nhận về nút gốc, khi đó ta thực hiện
ghi lại kết quả đo và tính hiệu suất cho hệ thống.
Việc đánh giá hiệu suất hệ thống khá đơn giản, nếu trong khoảng 20 lần
đó mà trạm gốc thu được 20 lần thì hiệu suất nhận là 100%. Nếu trong khoảng
20 lần mà ta thu được X lần tín hiệu thì hiệu suất là:
(X / 20) *100%
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 53
♦ Thực hiện 3 lần đo kết quả dựa vào tần suất truyền:
Ta thực hiện đo kết quả 3 lần dựa vào khoảng thời gian lấy mẫu là 120
giây ( tương ứng với 20 lần truyền tín hiệu ).
Số lần truyền
Kết quả ( oC )
Lần 1 Lần 2 Lần 3
1 30.062 28.076
2 28.564 28.320 28.198
3
4 28.320 28.320 27.330
5 28.320 28.320
6 28.442
7 28.442 28.076 28.198
8 28.076
9
10 28.320 28.198 27.344
11 28.564 28.076
12
13 28.320 28.320 28.198
14 28.198
15 28.442 28.198
16 28.076
17 28.320 28.442 28.076
18
19 28.198 27.442
20
Phần ô kết quả bỏ trống tương ứng với thời điểm trạm gốc không nhận
được dữ liệu.
Như vậy dựa vào bảng kết quả trên ta sẽ tiến hành tính hiệu suất và vẽ đồ
thị biểu diễn tương ứng với 3 lần đo và hiệu suất chung cho cả 3 lần đo.
∗ Lần 1
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 54
Với lần đo thứ nhất thì trong khoảng thời gian là 20 lần truyền tín hiệu từ
nút cảm nhận về trạm gốc thì trạm gốc thu được 11 lần, như vậy hiệu suất cho
lần đo này là :
H1 = 55%
Ta tiến hành vẽ đồ thị của lần đo thứ 1 với kết quả ở bảng trên, đồ thị
gồm có cột biểu diễn lần truyền tín hiệu (tương ứng với thời điểm truyền tín
hiệu) và cột biểu diễn giá trị nhiệt độ tương ứng.
Vậy ta có đồ thị như sau:
∗ Lần 2
Với lần đo thứ 2 thì trong khoảng thời gian là 20 lần truyền tín hiệu từ
nút cảm nhận về trạm gốc thì trạm gốc thu được 9 lần, như vậy hiệu suất cho
lần đo này là :
H2 = 45%
Đồ thị biểu diễn tương ứng:
∗ Lần 3
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 55
Với lần đo thứ 3 thì trong khoảng thời gian là 20 lần truyền tín hiệu từ
nút cảm nhận về trạm gốc thì trạm gốc thu được 12 lần, như vậy hiệu suất cho
lần đo này là :
H3 = 60%
Đồ thị biểu diễn tương ứng :
¾ Hiệu suất trung bình cả 3 lần đo
Phần trên ta thực hiện tính hiệu suất cho từng lần đo, giờ ta thực hiện
tính hiệu suất trung bình cho cả 3 lần đo:
H = (H1 + H2 +H3 ) / 3 =( 55% + 45% + 60%) /3 = 55.33 %
¾ Đánh giá
Như vậy hiệu suất nhận dữ liệu là không đều nhau và tương đối thấp,
hiệu suất trong các lần đo là khác nhau. Sở dĩ như vậy là do phần mềm nhúng
trên nút mạng chưa được cải tiến tốt để thuận tăng khả năng nhận của trạm
gốc.
Phần sau sẽ thực hiện đo thử nghiệm 3 lần và thay đổi khoảng cách
truyền (tiến hành đo ở khoảng cách 10 và 30m).
♦ Đo khả năng truyền - nhận tín hiệu dựa vào khoảng cách truyền
( Nút gốc cách xa nút cảm nhận )
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 56
¾ Đầu tiên ta tiến hành đo ở khoảng cách 10m, tức là ta đặt nút cảm
nhận cách trạm gốc khoảng 10m.
Vậy kết quả đo ở bảng sau:
Số lần truyền
Kết quả ( oC )
Lần 1 Lần 2 Lần 3
1 27.382
2 27.954
3 28.198
4 28.198
5 28.442 28.198
6 28.076 28.320 28.198
7 27.954 26.245
8 26.254 27.934
9 28.320 28.198 28.687
10 28.198
11 28.198 28.687 28.076
12 28.198 28.564 26.367
13 26.578 28.320
14 28.198
15 28.320 28.198
16 27.954 28.320 28.076
17 28.320 28.832 28.367
18
19 28.198
20 28.320 29.297
∗ Lần 1
Với lần đo thứ 1 thì trong khoảng thời gian là 20 lần truyền tín hiệu từ
nút cảm nhận về trạm gốc thì trạm gốc thu được 14 lần, như vậy hiệu suất cho
lần đo này là :
H1 = 70%
Đồ thị biểu diễn tương ứng :
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 57
∗ Lần 2
Với lần đo thứ 2 thì trong khoảng thời gian là 20 lần truyền tín hiệu từ
nút cảm nhận về trạm gốc thì trạm gốc thu được 11 lần, như vậy hiệu suất cho
lần đo này là :
H2 = 65%
Đồ thị biểu diễn tương ứng :
∗ Lần 3
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 58
Với lần đo thứ 3 thì trong khoảng thời gian là 20 lần truyền tín hiệu từ
nút cảm nhận về trạm gốc thì trạm gốc thu được 12 lần, như vậy hiệu suất cho
lần đo này là :
H3 = 60%
Đồ thị biểu diễn tương ứng :
¾ Hiệu suất trung bình 3 lần đo:
H = (H1 + H2 +H3 ) / 3 =( 70% + 65% + 60%) /3 = 65 %
¾ Đo hiệu suất truyền - nhận tín hiệu ở khoảng cách 30m.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 59
Ta tiến hành đặt nút mạng cảm nhận cách nút gốc 30m và tiến hành đo 3
lần thu được kết quả sau:
Số lần truyền
Kết quả
Lần 1 Lần 2 Lần 3
1 29.825
2
3 27.382 28.854
4
5 27.062
6
7 28.442
8 27.062
9 26.254 28.854
10
11
12 28.198 28.192
13 28.382 26.255
14
15
16 28.832
17
18
19 28.320 27.254
20 33.023
∗ Lần 1
Với lần đo thứ 1 thì trong khoảng thời gian là 20 lần truyền tín hiệu từ
nút cảm nhận về trạm gốc thì trạm gốc thu được 6 lần, như vậy hiệu suất cho
lần đo này là :
H1 = 30%
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 60
Đồ thị biểu diễn tương ứng :
∗ Lần 2
Với lần đo thứ 2 thì trong khoảng thời gian là 20 lần truyền tín hiệu từ
nút cảm nhận về trạm gốc thì trạm gốc thu được 6 lần, như vậy hiệu suất cho
lần đo này là :
H2 = 30%
Đồ thị biểu diễn tương ứng :
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 61
∗ Lần 3
Với lần đo thứ 3 thì trong khoảng thời gian là 20 lần truyền tín hiệu từ
nút cảm nhận về trạm gốc thì trạm gốc thu được 4 lần, như vậy hiệu suất cho
lần đo này là :
H3 = 20%
Đồ thị biểu diễn tương ứng :
¾ Hiệu suất chung của 3 lần đo
H = (H1 + H2 +H3 ) / 3 =( 30% + 30% + 20%) /3 = 26.67 %
Đánh giá
Như vậy qua việc đo thực nghiệm vấn đề truyền - nhận giữa nút cảm
nhận và nút gốc trong hệ thống mạng cảm nhận không dây thu thập dữ liệu
môi trường ta thấy rằng :
Hiệu suất của mạng phụ thuộc vào khoảng cách giữa nút cảm nhận và
nút gốc. Thật vậy trong phần thực nghiệm trên khi ta thực hiện đặt nút cảm
nhận cách nút gốc 10m và tiến hành đo 3 lần thì hiệu suất trung bình đạt 65
%, nhưng khi ta tiến hành với khoảng cách 30m thì hiệu suất giảm đi đáng kể,
chỉ còn 26.67%.
Điều nghiên cứu này hoàn toàn đúng với thực tế vì khoảng cách càng xa
thì tín hiệu càng yếu, khi đó việc nhận tín hiệu trở lên khó khăn hơn.
Giao thức mạng cũng quyết định đáng kể về hiệu suất mạng, trong phần
mềm nhúng trên nút mạng này em dùng giao thức phát quảng bá, tức là bên
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 62
phát sẽ thực hiện phát 6 giây / 1 lần phát tín hiệu lên không trung còn bên
nhận sẽ nhận liên tục như vậy sẽ hiệu suất truyền-nhận sẽ phản ánh rõ nét
hơn.
Việc truyền theo kiểu giao thức này cũng có một số ưu điểm là:
- Thực hiện đơn giản và dễ viết chương trình.
- Thực hiện phát lại sau khoảng thời gian tiếp theo nên có thể tái tạo lại
thông tin sử dụng.
Tuy nhiên nó gặp phải một số nhược điểm sau:
- Dễ gây ra hiện tượng tắc nghẽn mạng, khi số nút mạng trong hệ thống
thu thập lớn thì sẽ gây ra tắc nghẽn mạng vì các nút đều phát và đều có thể thu
nên hay gây xung đột và nút gốc không nhận được dữ liệu.
- Làm giảm băng thông trong mạng, khi có số nút mạng lớn thì băng
thông mạng giảm đi đáng kể vì các nút đều phát tín hiệu quảng bá.
- Khó triển khai hệ thống khi số nút trong mạng lớn, phải giải quyết
nhiều vấn đề như hiện tượng tắc nghẽn
Như vậy, qua việc nghiên cứu thực nghiệm vấn đề thì em thấy rằng việc
cải tiến giao thức truyền cho phần mềm nhúng trên nút mạng có vai trò hết
sức quan trọng trong việc quyết định hiệu suất của mạng.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 63
Kết Luận
Trên cơ sở nghiên cứu tổng quan về mạng cảm nhận không dây thu thập
dữ liệu môi trường, đặc biệt đi sâu vào nghiên cứu mô hình mạng cảm nhận
không dây sử dụng vi điều khiển CC1010, em đã thực hiện đề tài: “CHƯƠNG
TRÌNH THU NHẬN, XỬ LÝ DỮ LIỆU, CẢNH BÁO SỰ CỐ TRÊN NÚT
MẠNG CẢM NHẬN KHÔNG DÂY (WSN), HIỂN THỊ BẰNG MÀN HÌNH
TINH THỂ LỎNG - LCD ”.
Về mặt lý thuyết, từ việc nghiên cứu về mô hình mạng cảm nhận không
dây em đã đi tới kết luận: Mạng cảm nhận không dây có nhiều đặc tính ưu
việt. Nghiên cứu về cấu trúc, các chức năng của vi điều khiển CC1010 em
thấy rằng CC1010 thích hợp để trở thành một nút mạng của mạng cảm nhận
không dây.
Về mặt thực hành: Trên cơ sở lý thuyết đã nghiên cứu em đã tiến hành
viết chương trình và thử nghiệm thành công trên hệ thống đo nhiệt tự động.
Các nội dung sau em đã tiến hành và thử nghiệm thành công:
- Trường hợp truyền đơn bước
- Trường hợp truyền đa bước
- Thực nghiệm đo hiệu suất truyền / nhận của mạng cảm nhận (gồm 2
nút mạng, 1 nút truyền và 1 nút nhận )
Hệ thống đo nhiệt độ tự động và truyền dữ liệu không dây mà em nghiên
cứu có một số ưu điểm như sau:
1. Trường hợp truyền đơn bước đã kiểm nghiệm được tính chính xác
khi đưa ra và giải quyết được mọi tình huống có thể xảy ra.
2. Hệ thống có khả năng tiến hành truyền nhiều bước nối tiếp. Điểm
đặc biệt là trong thiết kế phần cứng không nói đến việc thiết kế nút trung
gian. Chính phần mềm đã biến một nút mạng nào đó trở thành nút trung
gian, tức là làm cho nút đó chỉ đóng vai trò vận chuyển dữ liệu và ngắt chức
năng cảm nhận của nó. Do vậy có thể mở rộng được khoảng cách truyền đi
xa. Đây là việc mà các nghiên cứu trước đây về CC1010 chưa làm được.
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 64
3. Hệ thống chạy ổn định, chính xác, có thể ghép nối hệ với các hệ
thống khác để kết hợp cảnh báo với điều khiển hệ thống.
Hướng phát triển của đề tài: Tiến hành truyền chuyển tiếp thêm
nhiều bước hơn nữa để có thể thành lập mạng WSN với nhiều nút. Từ đó có
thể đo được nhiều thông số ở nhiều vị trí địa lý khác nhau, đưa ra các kết luận
tổng quát và chính xác hơn nữa.
Hướng ứng dụng của đề tài: Hệ thống cần thời gian kiểm nghiệm
dài hơn, nếu hệ thống vẫn ổn định và hoạt động tốt thì có thể đưa ngay vào
ứng dụng trong đời sống để giám sát nhiệt độ môi trường trong nhà máy, nhà
kho, hầm mỏ, công sở....
Đồ án tốt nghiệp
Sinh viên: Đoàn Duy Hà – CT701 Trang 65
Các Tài Liệu Tham Khảo
[1]. Chipcon, CC1010IDE Manual
[2]. Chipcon, CC1010 Datasheet
[3]. Topology Control in Wireless Ad Hoc and Sensor Networks by Paolo
Santi (2005)
[4]. Nguyễn Thế Sơn - Đồ án Thạc Sĩ – 2006 : Thiết kế, chế tạo, vận hành và
đo thử nghiệm mạng cảm nhận không dây- Trường Đại Học Công Nghệ,
Đại Học Quốc Gia HN.
[5]. Vương Đạo Vy, Nguyễn Thế Sơn, Phùng Công Phi Khanh, Hòa Quang
Dự, “Building the atmosphere pressure auto measure system using
MEMS pressure sensor and the testing experiment”, Tuyển tập công
trình Hội nghị Quốc tế về Cơ học kỹ thuật - 2005 tại Kuala Lumpur,
Malaysia. - ICMT-2005, 5-9/12/2005
[6]. PGS.TS Vương Đạo Vy - Mạng và truyền dữ liệu.
[7]. User’s guide ITM-1602A LCM (Liquid Crystal Display Module), 1998
Intech LCD Group Ltd.,
[8]. Hill, J., et al. System architechture directions for network sensors, in
ASPLOS 2000.
[9]. ‘LCD1602A’
Các file đính kèm theo tài liệu này:
- a1.PDF