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

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, hiển thị bằng màn hình tinh thể lỏng Lcd

68 364 0
Tài liệu được quét OCR, nội dung có thể không chính xác

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 68
Dung lượng 24,42 MB

Nội dung

Trang 1

LỜI CÁM ƠN

Cám ơn các thầy cô giáo trường Đại học Dân lập Hải Phòng, đã dạy dỗ

chúng em trong nhiều năm qua Cám ơn thầy Trần Hữu Nghị đã cho em một

mái trường đề cho chúng em có cơ hội học được những kiến thức bổ ích đề có thể trở thành một công dân có ích cho xã hội Xin chân thành cám ơn thày cô bộ môn Tin học đã truyền đạt kiến thức về công nghệ thông tin, một môn học

bổ ích, là hành trang vững chắc đề em tự tin trong những công việc được giao phó trong thời gian tới

Cám ơn thầy Vương Đạo Vy, trường đại học công nghệ, Đại học Quốc gia Hà Nội đã giúp đỡ em trong quá trình thực tập, viết đồ án cũng như quá trình

học tập trên ghế nhà trường Để em có thể đem kiến thức mình đã học được trên ghế nhà trường áp dung vào thực tiễn để em có thể nhận thấy mình đã trang bị được những gì còn thiếu những gì trong hành trang của mình

Cám ơn gia đình và người thân, đã tận tình giúp đỡ, chu cấp tài chính, động viên em trong suốt thời gian học tập tại trường

Xin cám ơn các bạn bè trong lớp và các bạn trong khoa cũng như sinh viên cả trường đã giúp đỡ tôi trong thời gian học tập cũng như trong thời gian làm thực tập tốt nghiệp

Hải Phòng, tháng 7 năm 2007 Sinh viên

Trang 2

MỤC LỤC LỜI CẢM ƠN " MO DAU cà CHƯƠNG I: GIỚI I0 00 1n 9 1.2.1 Các nút cảm nhận và truyền đữ liệu: . - 5-5555 22<<<c<<<<s+++ 9 1.2.2 Nút mạng di động( Nhận và hiển thị ) - 5: s-cz+ccczrererrs 11 co na - Ả ốẼ 12 CHƯƠNG 2: TONG QUAN VE MAN HINH TINH THE LONG — LCD VA VI ĐIỀU KHIỂN -22- 2SS222E2E2EE22EE2122711271221127112712712271211 E1 xe 13 2.1 Giới thiệu về Vi điều khiễn -¿ 2-22 5++2E++EE++E+tEExerxrerrerrreree 13 "(T0 na 13 2.2.1 Vi điều khiển là gì ?2 - s2 x+ExeEESEE E21 EEEEEEEEerkrrreee 13 2.2.2 Kiến trúc của Vi điều khiến - 2-2-2 ©s+2x+zxczxezxerxezreee 13

P5 Y)j 14

2.3 Lập trình cho Vi điều khiển .- ¿2 22+2E+2E++EE+EEtEEEtEEE2Extrrrsrke 14 2.4 Màn hình tinh thể lỏng-LCD 2 2©22+2E2S£+EE+EE+EE+EEeEEtzEvrxerrerex 15 2.5 Kết luận -:- 2< 222221221122112112211221111121121171121121171111 211.1 se 15 CHUGNG 3: MAN HINH LCD 1620A VA VI DIEU KHIEN CC1010 16 3.1 Màn hình tỉnh thể long LCD 1602A .esccssscesssessssesssessssessseesseesssecssesesees 16 3.2 Co ché hoat dong va diéu khién hiển thị trên LCD . 17 3.3 Vi điều khiển CC10100 2 2-©22+22+E2EE2EE2EE2EE22E212712121 21.22 xe 19 3.3.1 Bộ nhớ Flash: . c Sc 3 2.12211821121121 111 11v ưy 20

3.3.2 Các cổng vào — ra chung: -2- 2+ s+2z+2x+zx+zx+zxezxezxerxezreee 21

3.3.3 Các bộ định thời: . - 22 ++22E+2EE2EE222122212112221 2212212 xe 22

3.3.4 Các cổng nói tiẾp ©22222+2222E22E221221271212122121 2121 22ee 23

3.3.5 Các bộ biến đổi ADC: -2©-2+2E+2E2EE22EE2EE2E22E21.21.21.2 xe 23 3.4 Kết luận :-©2<2222221221122112112711271111121121171121121111111 2121 se 25 CHƯƠNG 4: PHÀN MÈM NHÚNG CHO HỆ ĐO NHIỆT ĐỘ TỰ ĐỘNG26

Trang 3

4.1 Tổng quan về phần mềm nhúng 2-2 22 s2 +2+*+E++zx+£z£+xz+zz+s+2 26 4.2 Các bước để xây dựng một phần mềm nhúng 2-2-2 26 4.3 Phần mềm nhúng viết cho vi điều khiển CC1010 -2©552 27

4.3.1 Trường hợp truyền đơn bước . 2-2 2 s2 s+zx+zxe+s+zxezseee 27

4.3.2 Trường hợp truyền đa bước . -zz+2s+2xz+cxzzxs+rxesres 27 4.3.3 Thiết kế phần mềm nhúng 2-22 2+2 £E2£E£zx£+E+zxz+zzz2 29 4.3.3.1 Phần mềm cho hệ truyền đơn bước ( single hop) 29 4.3.3.2 Phần mềm cho hệ truyền nối tiếp nhiều bước (multi hop ) 35

4.4 KẾt luận tt HH HH HH re 40

CHUONG 5: CAI BAT THU NGHIEM TREN HE THONG, CAC KET QUÁ ĐÃ ĐẠT ĐƯỢC - 2 ¿2+ 2 +E+EE+EeEx+EzEe server

5.1 Thử nghiệm truyền đơn bước (single hop)

5.2 Thử nghiệm truyền đa bước (multi hop) . -: 2: s2 sz+s+zszzsz+z+ 49 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 ) 2 2 2 s2 + x+EE£+x££xerEtzEerxerrrrs 54

Kết Luận Hư 66

Các Tài Liệu Tham Khảo + - 2232228 SE 22218 * +28 ££2EEEE+zeEezezeeezzeee 68

Trang 4

MO DAU

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 tố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 dé 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

Trang 5

Đồ án được chia làm 5 chương với nội dung được trình bày như sau: Chương l: 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 tỉnh 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

Trang 6

„ _ CHUON G1:

GIOI THIEU VE MANG CAM NHAN KHONG DAY

(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ề đữ

Trang 7

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

Trang 8

Tù đề tài cụ thé “CHUONG TRINH THU NHAN, XU LY DU LIEU,

CANH BAO SU’ CO TREN NUT MANG CAM NHAN KHONG DAY (WSN), HIEN THI BANG MAN HINH TINH THE LONG - LCD ” Sau

day 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 I.3 minh họa một mô hình mạng cảm nhận sử dụng CCI010

được kết nối với một màn hình tinh thể lỏng Cảm biến VĐK VDK 8) 11 CC1010 fre CCl0ioL | LCD LK có dây LK không dây TTe===-===~~ 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 đữ 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 đõ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

Trang 9

1.2 Mô tả hệ thống

Từ hình 1.3 ta thay 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 đữ liệu như sau : Angten phát CC1010 Sensor 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à

Trang 10

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

Trang 11

> Khoảng thay đổi điện áp lỗi ra là từ 300mV đến 1600mV ứng với khoảng nhiệt độ từ -30°C tới 100C

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 đưới dang 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 LMó6I 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ị )

Trang 12

1.3 Kết luận

Ở chương I 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

Trang 13

/ _ CHUONG 2: /

TONG QUAN VE MAN HiNH TINH THE LONG - LCD VA VI DIEU KHIEN

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 va Motorola 2.2 Vi điều khiến

2.2.1 Vi điều khiến là gi?

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-R AM, 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 ngồ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ụ

Trang 14

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

> Cac 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 I1111111b 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

Trang 15

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 tỉnh thể lõng-LCD

Màn hình tỉnh 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 tỉnh thé long co 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

Trang 16

CHƯƠNG3: - /

MAN HINH LCD 1620A VA VI DIEU KHIEN CC1010

3.1 Màn hình tỉnh thé long 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 lai 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 đạ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é long-LCD1602A_ dé 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ó §0 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 đữ 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 bít

> 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

Dé co thé loạt động LCD 1602A yêu cầu 3 đường điều khiển từ vi điều

Trang 17

> Đường Enable(F) :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 doc 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 chon 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 đữ 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) dé tat 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) dé 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

Trang 18

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 va 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ị -_$_ : 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 tro

- 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) Su dich chuyén màn hình hiển thị - RL: Huéng dich chuyén Phai(1) / Trai (0)

- DL: Thiét lap độ dài đữ liệu 8bit(1) / 4bit(0)

Trang 19

Thăm do co bao ban BUSY FLAG:

- BF: Sét module dang trong qua trinh str ly

Dịch chuyển con trỏ tới vùng CGRAM để hiển thị A-Address đọc viết

ma ASCII dé 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 đự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 đâ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 CCI010 đượ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à dong vi diéu khién manh ,kich thước nhỏ ,tiêu thụ năng lượng ít ,có thời gian sống đà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 tinh 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

Trang 20

Đặc

3.3.1

đ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 - C64 b6 định thời

- C62 công UART, RTC

-_ Có 3 kênh ADC 10 Bit

- Giao dién lap trinh SPI

- Bộ mã hóa DES tích hợp bên trong

- (C6 26 chan vao ra chung - Can rất ít thành phần bên ngoài

- D6 nhay cao (-107 dBm) - Nguén nudi tir 2,7 — 3,6 V

-_ Có bộ thu phat song v6 tuyén 300 — 1000 MHz

- _ Tiêu thụ đòng thấp ( 9.1 mA trong chế độ thu )

-_ Công suất phát có thé lap trình được ( lên đến +10 đBm ) -_ Tốc độ thu phát đữ liệu lên dén 76.8 kbit/s

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 khố đề 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

Trang 21

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 đữ liệu và đưa vào bit Px

(y) Tất cả các chân đều là chân nhập đữ 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 đữ 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í đụ như giao

Trang 22

Port Available Alternate Function

pins Normal operation Flash Programming

P0.0 SCK, SPI Serial Clock output SCK, SPI Serial Clock Input P0 P0.1 MO, SPI Master Output SI, SPI Slave Input

P0.2 MI, SPI Master Input SO, SPI Slave Output P0.3 - - P1.0 Đ1.1 P1.2 P1.3 Bh P1.4 P1.5 P1.6 Đ1.7 -

P2.0 RXD1, Serial port 1 input - P2.1 TXD1, Serial port 1 output - P2.2 P2.3 Pa P2.4 P2.5 P2.6 P2.7 - -

P3.0 RXDO, Serial port 0 input -

P3.1 TXD1, Serial port 0 output - P3.2 INTO, External interrupt 0

P3 P3238 INT1, External interrupt 4 P3.4 T0, Counter input 0 to Timer 0, or

PWM2, PWM output from Timer 2 P3.5 T1, Counter input 1 to Timer 1, or

PWM3, PWM output from Timer 3

Hình 3.1: Cac céng vao / ra chung 3.3.3 Cac 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 TI (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

va THO cho Timer 0 va TL1 va TH1 cho Timer 1 Ngoài 2 bộ định thời trên

Trang 23

TLO (0x8A) - Timer / Counter 0 Low byte counter value

Bit_| Name R/W | Reset value _| Description

7:0 | TLO(7:0) R/W | 0x00 Timer / Counter 0, low byte counter value

TL1 (0x8B) - Timer / Counter 1 Low byte counter value

Bit _| Name R/W | Reset value | Description

7:0 | TL1(7:0) R/W | 0x00 Timer / Counter 1, low byte counter value

THO (0x8C) - Timer / Counter 0 High byte counter value

Bit_| Name R/W | Reset value | Description

7:0 | THO(7:0) R/N | 0x00 Timer / Counter 0, high byte counter value

TH1 (0x8D) - Timer / Counter 1 High byte counter value Bit_| Name RI/W | Reset value | Description

7:0 | TH1(7:0) R/W | 0x00 Timer / Counter 1, high byte counter value

Hình 3.2: Các thanh ghỉ 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à SCONI 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à SBUFI

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 ADI như là chân so sánh bên ngoài (khi đang đùng AD0) Điện thế so sánh được điều khiển bởi ADCON.ADCREE 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ế độ

Trang 24

chọn bởi ADCON2.ADCDIV Thanh ghi phải được thiết lập dé 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 va 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 chun đơi hồ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 II 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

Trang 25

trong khi giám sát tín hiệu Giá trị được lưu trữ trong ADDATTH va ADDATL

không bị ảnh hưởng khi reset hệ thống 3.4 Kết luận

Trang 26

; / CHUONG 4:

PHAN MEM NHUNG CHO HE DO NHIET ĐỘ TỰ ĐỘNG

4.1 Téng quan vé phan 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 khang đị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à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:

- Tim hiéu bai toán -_ Phân tích

Trang 27

- Kiém thir

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 đữ 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 đữ 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

Trang 28

truyền đa bước chỉ mang tính chất thử nghiệm, tức là truyền nhận được đữ liệu thông qua nút trung gian, chưa tính toán đến van dé 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é nap 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 tich hop (Integrated Development Enviroment

dựa trên chip CC1010 IDE bao gồm giao điệ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 CCI0I0IDE hoạt động dựa trên uVision2b là một công cụ phát triển phần mềm của hang 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 hố

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)

Trang 29

Application Examples (source code) Temperature sensor, keyboard, RS232-modem, Nightrider, etc Chipcon Utility Library (CUL) CRC, SPP, etc

Standard C Hardware Abstraction Library

Libraries (HAL) RS232, SPI, ADC, DES (crypto), etc

Hardware Definition Files Register definitions, (HDF) interrupt vector mapping, etc

Hinh 4.1; Thu vién Chipcon

Trong do:

Hardware Definition Files (HDF): chứa địa chỉ của các thanh ghi, ban đồ 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 đành cho CC1010EB và các định nghĩa chung khác hỗ trợ cả ngôn ngữ C và Assembly Application Examples (source code) Chipcon Utility Library (CUL) Standard C Hardware Abstraction Library Libraries (HAL)

Hardware Definition Files "CC1010EB.h" : LED_ON, LED_OFF, etc (HDF) "Reg1010.h" : RFBUF, INUM_RF, etc

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 chỉ 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)

Trang 30

nhau Muốn thu đữ liệu từ nút đơn nao ta chỉ việc kiểm tra địa chỉ nút đó, nếu đúng địa chỉ thì sẽ tiến hành xử lý đữ 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:

> Phan mém 1( software 1 single hop SWI-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 đữ 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ị đữ 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) Phan mém 1 (software 1 single hop SW1-SH)

® Thuật tố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 ADI

- Doi 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)

Trang 31

Đo nhiệt

Gan dia chi nut =x Phat tin hiéu ngủ đông 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é doc va 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 ADI, 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); - Dia chi duge dinh: #define TRC_MY_SPP_ADDRESS 1 nodeIDs[0] = TBC_MY_SPP_ADDRESS; - Ham truyén nhiét được viết như sau:

void tbcTransmit (void) {

word xdata temp;

Trang 32

// Khoi dong ADC

ADC SAMPLE_SINGLEO:

temp = ADC_GET_SAMPLE_10BIT(Q); // Cap nhat bang

txDataBuffer[TBC_TEMP_ OFFSET] = (temp >> 8) & OxFF;

txDataBuffer[TBC_TEMP_ OFFSET + 1] = temp & OxFF; nodeTemps[0] = temp;

nodeLastT[0] = (int) sppGetTime(); // Trayen thong tin

sppSend(&TXI);

do { /*nothing*/ } while (sppStatus() != SPP_IDLE_MODE); } // tocTransmit

- Ham doi ngau 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); } } // tocWaitRandom - _ Đoạn lặp trong chương trình thể hiện thuật toán: while (TRUE) { tbcTransmit(); tbcWaitRandom(); } b) Phan 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 đữ liệu và

Trang 33

Bắt đầu Nhận tín hiệu không

Kiểm tra tại địa " ‘ chi x có tín hiệu không có tín hiệu Thong AD không có Báo động Gó Thông báo có tín hiệu không Kiểm tra mức tín hiệu có an tồn khơng? 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 đữ liệu : sppReceive(&RXI; do { /* khong lam gi ca */ } while (sppStatus) != SPP_IDLE MODE);

- Đoạn kiểm tra tin hiệu tại dia chi x :

Trang 34

- Doan hién thị lên LCD ding mot s6 ham duoc viét & trong file thu vién: Icd.h điều khiển LCD ở chế độ 4 bit:

+

Và:

Để in một xâu ra LCD cần thực hiện các động tác:

Icd_init();

Icd_com(a); // a la dat dia chỉ trên màn hình ta cần in

lcd_puts("xâu can in ");// phan trong dau nhay kép 1a dong can in

Để in nhiệt ra LCD cần chuyền đữ 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[l5] /⁄ khai báo xâu tên nút mang 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: 1f (fTemp<70){

lcd intQ; //khởi tạo LCD

Icd_com(15); // đặt con trỏ lên dòng đầu

Icd_puts(" Nhiet not ");

Icd_puts(not); //in tên nút mang cần hiền thị

lcd_com(0xC0); // đặt con trỏ đầu đòng 2

led _puts(" An toan "); //thơng báo nút an tồn

Trang 35

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 I 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 | multi hop SW1-MH): Cai dat cho

nút I SWI-MH =SWI-SH

Về cơ bản phần mềm này chính là phần mềm SWI- SH ở trên với dia chi nut | dat la 1

> Phan mém cho nut 2 (software 2 multi hop SW2-MH): Cài đặt cho nut 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 I 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 LMó6I với kênh ADI

> Phần mềm cho nút gốc ( software 3 multi hop SW3-MH) : SW3-MH

Phần mềm này dam bảo cho nút 3 nhận dữ liệu liên tục, kiểm tra nếu đúng đữ 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 để

Trang 36

c) Phần mềm SWI-MH ® Thuật tốn Đo nhiệt Y Gián địa chỉ nút =1 Phát tín hiệu ngủ đông a 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: #defne TBC MY_SPP ADDRESS 1 nodeIDs[0] = TBC_MY_SPP_ADDRESS;

Phần mềm SWI- MH chính là phần mềm SW1-SH với gia tri gan dia chi la 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 chi nút I thì sẽ lấy dữ liệu của nút 1 để truyền tiếp

Trang 37

® Thuật toán Nhận tín hiệu không Kiểm tra có đúng địa chỉ nút 1 không? | có ngủ đông Gan dia chi nut 2 Truyền đữ liệu nhận được 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

- Dinh dia chi nut 2:

#define TRC_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)

Trang 38

} if(nodeIDs[n]==1) { // Temperature: temp = nodeTemps[n]; break; } 1 4 -_ 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ận tín hiệu 2 không Kiem tra có ô a 1 se" Thông báo chưa đúng địa chỉ nút —*‡ nhận đữ liệu 2 không? có An toàn Báo động Thông báo có tín hiệu không Kiểm tra mức tín hiệu có an tồn khơng?

Hình 4.7: Thuật toán nút gốc trường hợp truyền nối tiếp ( multi hop)

Trang 39

® Chương trình if(nodeIDs[n]==2) { la 2 khong? fTemp = nodeTemps[n]; fTemp -= 492; fTemp / 8.192; sprintf(so,"%2.3f",fTemp); xau 1f(fTemp<70){ Icd_init(); Icd_com(15); Icd_puts("Nhiet tai nut 1:"); Icd_com(0xC0); Icd_puts(so); Icd_puts(" C "); delayy(5000); lcd_initQ; led _com(15); lcd_puts( “Tinh trang nut 1"); lcd_com(0xC0); Icd_puts(" An toan "); delayy(5000); } else { Icd_initQ; Icd_com(15); Icd_puts("Nhiet tai nut 1:"); Icd_com(0xC0); Icd_puts(so); Icd_puts(" C "); delayy(5000); Icd_initQ; Icd_com(15); Icd_puts("Tinh trang nut 1"); Icd_com(0xC0); Icd_puts(" Bao dong "); delayy(5000); }

// kiểm tra xem có đúng điạ chỉ truyền

// chuyên giá trị nhiệt độ thành

// Phan doan tinh trang nut 1:

Trang 40

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

Ngày đăng: 19/08/2014, 18:31

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w