Tải bản đầy đủ (.pdf) (66 trang)

Đồ án tốt nghiệp - Mô hình mạng cảm nhận không dây - WSN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.55 MB, 66 trang )











Đồ án tốt nghiệp

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

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ừ -30
0
C đến 100
0
C.
¾ Nguồn cung cấp 2,7V.
¾ Khoảng thay đổi điện áp nối ra là 10mV/
0
C
¾ Đ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ừ -30
0

C tới 100
0
C.
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

×