LỜI MỞ ĐẦU
Ngày nay với sự phát triển mạnh mẽ của công nghệ vi cơ điện tử và công
nghệ vi hệ thống với những mạch tích hợp cao xử lí thông minh dẫn đến mô
hình mạng cảm nhận không dây đã và đang ngày cành phát triển mạnh mẽ và
ứng dụng trong mọi lĩnh vực của đời sống xã hội (nông nghiệp, y tế, công
nghiệp ...).
Mạng cảm nhận không dây (Wiress Sensor Network) với đặc điểm của
loại mạng này vừa có chức năng mạng vừa có chức năng cảm nhận. Nó hoạt
động trên nguyên lí là tại một nút mạng sẽ cảm nhận thông số của môi trường
cần đo,đo đạc thông số và sau đó tiến hành truyền dữ liệu qua môi trường không
dây về trạm gốc (nút gốc), để trên cơ sở đó nút gốc có thể đưa ra các lệnh xừ lý
cần thiết.
Khoá luận này nghiên cứu việc ghép nối cảm biến với vi điều khiển AVR
để từ đó ghép nối với nút mạng và xây dựng một mô hình đo nhiệt độ tự động và
truyền nhận không dây sử dụng vi mạch tích hợp cao CC1010.
MỞ ĐẦU
Trong những năm gần đây với sự phát triển mạnh mẽ của công nghệ linh
kiện điện tử và công nghệ thông tin đã tạo ra những sự thay đổi to lớn trong
cuộc sống. Mô hình mạng cảm nhận không dây ra đời dựa trên cơ sở ứng dụng
những thành tựu của công nghệ truyền thông không dây. Nó ra đời nhằm thỏa
mãn nhiều yêu cầu trong thực tế trong đó việc đo một thông số môi trường là rất
cần thiết và đang được nghiên cứu và ứng dụng rộng rãi bởi vì nó đem lại nhiều
ứng dụng cần thiết cho con người. Đặc điểm của mạng cảm nhận không dây là
vừa có chức năng mạng vửa có chức năng cảm nhận. Nó hoạt động trên nguyên
lí là tại một nút mạng sẽ cảm nhận thông số của môt trường cần đo , đo đặc
thông số và sau đó tiến hành truyền dữ liệu qua môt trường không dây về trạm
gốc (nút gốc), để trên cơ sở đó nút gốc có thể đưa ra các lệnh xử lý cần thiết
hoặc truyền số liệu vào máy tính. Bản thân nút gốc không nhất thiết phải là một
máy vi tính mà cũng có thể được chế tạo với kích thước nhỏ,phù hợp với đặc thù
của từng lĩnh vực ứng dụng cụ thể.
Mạng cảm nhận không dây do vây đã mở ra một hướng nghiên cứu
mới,với một loạt các ứng dụng hấp dẫn đáp ứng được những đòi hỏi khắt khe
trong nhiều lĩnh vực quân sự,công nghiệp,nông nghiệp,y tế..
với đề tài “Nghiên cứu ghép nối cảm biến có tín hiệu ra dạng số cho nút mạng
cảm nhận không dây” là một trong những phần của nút mạng cảm nhận không
dây và cụ thể trong đề tài này đã tiến hành nghiên cứu ghép nối cảm biến đo
nhiệt độ và độ ẩm đầu ra số SHT71 với vi điều khiển AVR và sau đo ghép nối
với vi điều khiển CC1010 của hãng Chipcon
Vi điều khiển CC1010 là một Module tích hợp vi điều khiển họ 8051
thông thường với bộ truyền nhận RF không dây trên cùng một chip,vì thế khi
ghép nối với đầu đo ,không những có khả năng tạo thành các điểm đo thông số
môi trường mà còn có thể xây dựng thành một nút mạng trong cấu hình mạng
cảm nhận không dây,cả nút mạng và nút gốc đều được thiết kế với chip xử lý
chính là vi điều khiển CC1010. Khóa luận này tiến hành nghiên cứu đê xây
dựng các ghép nối tạo thành nút mạng “Đo tự động và truyền nhiệt độ và độ ẩm”
về nút gốc “Nhận và hiển thị nhiệt độ và độ ẩm” qua LCD
từ việc nghiên cứu về môt hình mạng cảm nhận không dây thì các vấn đề cần
phải giải quyết trong để tài này là:
- Thiết kế khối cảm nhận:thực hiện việc ghép nối giữa cảm nhận và vi điều
khiển cụ thể là cảm biến nhiệt độ đầu ra số SHT71 và vi điều khiển AVR.
- Thiết kế khối truyền thông tin và hiển thị nhiệt độ và độ ẩm: Màn hình
LCD1602A được ghép nối với vi điều khiển CC1010.Tín hiệu thu được từ
Anten được phân tích để lọc ra thông tin nhiệt độ và độ ẩm.Thông tin
nhiệt độ và độ ẩm được phân tích và đưa lên màn hình LCD
- Viết phần mền cho hệ thống,đảm bảo hệ thống ghi nhận thông số nhiệt
độ,độ ẩm ,truyền ,nhận và hiển thị thông tin.
Tiêu chí được đặt ra là hệ thống chế tạo phải có độ ổn định cao,nút mạng
tiêu thụ năng lượng thấp,có khả năng hoạt động độc lập liên tục dài ngày.
Phương pháp nghiên cứu được lựa chọn là kết hợp phương pháp truyền
thống (nghiên cứu lý thuyết,tính toán xây dựng mô hình hệ thống ) với
phương pháp hiện đại:Sử dụng phần mềm vẽ mạch Protel,mạch in nhiều
lớp,bộ công cụ phát triển Keil uVision 2 ,các IC cảm biến và vi điều khiển
có độ tích hợp cao...)
Nội dung để tài chia làm 3 chương:
Chương I: Tổng quan về mạng cảm nhận không dây.
Chương II: Các phương pháp ghép nối dạng đầu đo và chương trình
thực hiện chức năng thu thập dữ liệu.
Chương III: Phần mềm nhúng.
Chương I GIỚI THIỆU MẠNG CẢM NHẬN KHÔNG DÂY
I. Mạng cảm nhận không dây
Khái niệm mạng cảm nhận không dây dựa trên công thức đơn giản sau:
Cảm nhận + CPU + Radio = WSN
Từ công thức đơn giản trên, rất nhiều ứng dụng xuất hiện. Tuy nhiên, việc
kết hợp các cảm biến, radios, và CPU vào một mạng cảm nhận không dây
(wireless sensor network-WSN) đòi hỏi hiểu biết chi tiết về khả năng và giới
hạn của các thành phần phần cứng, cũng như hiểu rõ các công nghệ mạng hiện
đại, lý thuyết phân bố hệ thống. Một thách thức là ánh xạ toàn bộ yêu cầu hệ
thống vào một thiết bị riêng lẻ. Để làm cho WSN trở nên thực tế, một kiến trúc
cần được phát triển để tổng hợp các ứng dụng dựa trên khả năng của phần cứng.
Để phát triển kiến trúc hệ thống cần đi từ yêu cầu ứng dụng mức cao xuống
các yêu cầu phần cứng mức thấp. Để giới hạn số các ứng dụng phải xem xét, cần
tập trung vào một tập các dạng ứng dụng được sử dụng nhiều trong thực tế. Sử
dụng các dạng ứng dụng này để tìm ra các yêu cầu mức hệ thống cho toàn bộ
kiến trúc. Từ các yêu cầu mức hệ thống này, có thể có các yêu cầu cho các nút
mạng riêng lẻ
1. Các ứng dụng của mạng cảm nhận không dây
Có ba dạng ứng dụng của mạng cảm nhận không dây: thu thập dữ liệu môi
trường, giám sát an ninh, và theo dõi đối tượng. Hầu hết các ứng dụng chủ yếu
của WSN đều thuộc ba dạng này.
1.1 Thu thập dữ liệu môi trường
Mạng cảm nhận không dây thu thập dữ liệu môi trường ra đời đáp ứng cho
nhu cầu thu thập thông tin về 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 nhất định nhằm phát hiện xu hướng hoặc quy luật
vận động của môi trường
1.2 Giám sát an ninh
Một ứng dụng thứ hai của mạng cảm nhận là giám sát an ninh. Các mạng
giám sát an ninh được tạo bởi các nút đặt ở những vị trí cố định trong môi
trường liên tục theo dõi một hay nhiều cảm biến để nhận biết sự bất thường. Sự
khác nhau chủ yếu giữa giám sát an ninh và giám sát môi trường là các mạng an
ninh không thu thập bất kỳ dữ liệu nào. Điều này có tác động lớn đến việc tối ưu
kiến trúc mạng. Mỗi nút thường xuyên kiểm tra trạng thái các cảm biến của
chúng nhưng chỉ truyền dữ liệu khi có sự vi phạm an ninh. Việc truyền tức thời
và tin cậy của thông điệp cảnh báo là yêu cầu chính của hệ thống.
1.3 Theo dõi đối tượng
Với các mạng cảm nhận không dây, các đối tượng có thể được theo dõi đơn
giản gắn chúng với một nút cảm biến nhỏ. Nút cảm biến này sẽ được theo dõi
khi chúng đi qua một trường các nút cảm biến được triển khai tại những vị trí đã
biết. Thay vì cảm nhận dữ liệu môi trường, những nút này sẽ được triển khai để
cảm nhận các thông điệp RF của các nút gắn với các đối tượng. Những nút này
có thể được sử dụng như những thẻ để thông báo sự có mặt của một thiết bị. Một
cơ sở dữ liệu có thể được sử dụng để ghi lại vị trí tương đối của đối tượng với
các nút mạng, do đó có thể biết vị trí hiện thời của đối tượng.
Giới thiệu một số VĐK có thể làm nút mạng cảm nhận
Vấn đề lựa chọn VĐK để xây dựng nút mạng là một vấn đề quan trọng.
Việc chọn VĐK hợp lý sẽ làm cho qúa trình xây dựng hệ thống được rút ngắn,
hệ thống hoạt động ổn định, tin cậy và đạt các chỉ tiêu đề ra.
Từ các chỉ tiêu nút mạng đã nói ở Chương 1, các tiêu chí quan trọng để
chọn VĐK như sau:
o Tiêu thụ năng lượng thấp.
o Tích hợp ADC để có thể ghép nối với cảm biến tương tự.
o Bộ nhớ chương trình cũng như bộ nhớ dữ liệu có kích thước hợp lý.
o Kích thước vật lý nhỏ.
o Có công cụ phát triển giúp người phát triển xây dựng hệ thống dễ
dàng và thuận tiện như: sử dụng ngôn ngữ cấp cao, có các thư viện
hỗ trợ cho việc cảm nhận cũng như truyền nhận không dây, hỗ trợ
gỡ lỗi…
o Giá thành rẻ.
Hiện giờ có 3 họ VĐK trên thị trường có thể thoả mãn các tiêu chí trên:
- Họ VĐK MSP430 của Texas.
- Họ VĐK ATMEGA của Atmel.
- VĐK CC1010 của hãng Chipcon.
Các VĐK nói trên đều thỏa mãn các tiêu chí đề ra. Tuy nhiên, hai họ VĐK
đầu tiên không có tích hợp truyền nhận không dây, vì thế nếu sử dụng những
VĐK như vậy sẽ phải có thêm mạch truyền nhận không dây bên ngoài, quá trình
xây dựng hệ thống sẽ phức tạp. VĐK CC1010 được lựa chọn nhờ có tích hợp
truyền nhận không dây, do đó việc chọn VĐK CC1010 làm nút mạng hợp lý hơn
chọn các VĐK khác.
1.4 Giới thiệu Vi điều khiển CC1010
A. Các đặc điểm chính:
- Thu phát không dây 300-1000 MHz.
- Dòng tiêu thụ rất thấp (9,1 mA trong chế độ nhận).
- Độ nhạy cao (-107 dBm).
- Có thể lập trình cho công suất đầu ra tới +10 dBm.
- Tốc độ truyền RF có thể đạt 76.8 kbit/s.
- Cần rất ít thành phần ngoài
- Đo được cường độ RF (RSSI)
- Tương thích họ VĐK 8051
- 32 kB Flash, 2048 + 128 Byte SRAM
- 3 kênh ADC 10 bit, 4 timers / 2PWMs, 2 UARTs, RTC, Watchdog, SPI,
mã hoá DES, 26 cổng I/O
- Có khả năng gỡ lỗi sử dụng chương trình dịch Keil μVision2 IDE qua
cổng nối tiếp
- Điện áp 2.7 - 3.6 V
- 64-lead TQFP (Thin Quad Flat Pack)
Cổng
Có 4 cổng I/O P0, P1, P2, P3 với 26 chân cổng. Mỗi cổng có 2 thanh ghi
tương ứng: thanh ghi cổng P0, P1, P2, P3 và thanh ghi hướng (P0DIR, P1DIR,
P2DIR, P3DIR). Mỗi bit trong thanh ghi Px có một bit hướng tương ứng trong
thanh ghi PxDIR.y. Đặt PxDIR.y = 1 sẽ làm cho Px.y là cổng nhận dữ liệu
(input) và đặt PxDIR.y = 1 sẽ làm cho Px.y là cổng xuất dữ liệu (output).
Ngắt
CC1010 có tổng cộng 15 nguồn ngắt, chia sẻ 12 đường ngắt. Mỗi ngắt có
một mức ưu tiên, vector ngắt, cờ cho phép ngắt và cờ báo ngắt.
Bảng 1. Ngắt và các tham số
Ngắt
Mức
ưu tiên
tự
nhiên
Điều khiển
mức ưu
tiên
Vector
ngắt
Cờ cho phép
ngắt
Cờ ngắt
Ngắt Flash/debug 0 - 0x33 EICON.PDIE EICON.PDIF
Ngắt ngoài 0 1 IP.PX0 0x03 IE.EX0 TCON.IE0
Ngắt Timer 0 2 IP.PT0 0x0B IE.ET0 TCON.TF0
Ngắt ngoài 1 3 IP.PX1 0x13 IE.EX1 TCON.IE1
Ngắt Timer 1 4 IP.PT1 0x1B IE.ET1 TCON.TF1
Ngắt truyền nối tiếp 0
Ngắt nhận nối tiếp 0
5 IP.PS0 0x23 IE.ES0 SCON0.TI 0
SCON0.RI 0
Ngắt truyền nối tiếp 1
Ngắt nhận nối tiếp 1
6 IP.PS1 0x3B IE.ES1 SCON1.TI 1
SCON1.RI 1
Ngắt truyền/nhận RF 7 EIP.PRF 0x43 EIE.RFIE EXIF.RFIF
Ngắt Timer 2 8 EIP.PT2 0x4B EIE.ET2 EXIF.TF2
Ngắt ADC
Ngắt mã hoá/giải mã
DES
9 EIP.PAD 0x53 EIE.ADIE
và ADCON2.
ADCIE
EXIF.ADIF
và
ADCON2.
ADCIF
EIE.ADIE
và
CRPCON.
CRPIE
EXIF.ADIF
và
CRPCON.
CRPIF
Ngắt Timer 3 10 EIP.PT3 0x5B EIE.ET3 EXIF.TF3
Ngắt thời gian thực 11 EIP.PRTC 0x63 EIE.RTCIE EICON.RTCI
F
Mặt nạ ngắt
IE.EA là cờ cho phép ngắt toàn bộ các ngắt, ngoại trừ ngắt Flash/Debug.
Khi cờ IE.EA được thiết lập, mỗi ngắt bị che bởi cờ cho phép ngắt được liệt kê
ở bảng 1. Khi cờ IE.EA bị xoá, tất cả các ngắt bị che, ngoại trừ ngắt
Flash/Debug, có bit che ngắt riêng, EICON.FDIE.
Xử lý ngắt
Khi một ngắt được cho phép xảy ra, CPU nhảy tới địa chỉ phục vụ ngắt
tương ứng với ngắt đó (ISR), như chỉ ra ở bảng 1. CC1010 thực hiện ISR để
hoàn thành trừ khi một ngắt khác có mức ưu tiên cao hơn xảy ra. Mỗi ISR kết
thúc với lệnh RETI. Sau khi thực hiện lệnh RETI, CC1010 quay trở lại lệnh tiếp
theo sau lệnh đã được thực hiện trước khi xảy ra ngắt. Nếu lệnh đang thực hiện
là RETI, hay đang ghi vào các thanh ghi IP, IE, EIP, EIE, CC1010 hoàn thành
thêm một lệnh trước khi phục vụ ngắt.
Thứ tự ưu tiên
Các ngắt có 2 giai đoạn ưu tiên: mức ngắt và mức tự nhiên. Mức ngắt được
ưu tiên trước mức tự nhiên.
Mức ngắt có 2 mức: thấp và cao. Ngắt có mức ưu tiên là cao sẽ có thể ngắt
ngang chương trình phục vụ ngắt có mức ưu tiên thấp hơn. Nếu các ngắt có cùng
mức ưu tiên mà cùng xảy ra đồng thời, ngắt nào có mức ưu tiên tự nhiên thấp
nhất sẽ được phục vụ trước.
Biến đổi ADC
Bộ biến đổi ADC của CC1010 có độ phân dải 10 bit, được điều khiển bởi
các thanh ghi ADCON và ADCON2. Có ba kênh vào ADC, được chọn bởi
ADCON.ADADR. Thanh ghi này cũng được sử dụng để chọn chân AD1 như là
điện áp tham chiếu ngoài (khi sử dụng AD0). Khi chân AD1 được dùng như
tham chiếu ngoài, chỉ có hai lối vào ADC được sử dụng. Đầu ra ADC là đơn
cực, nghĩa là giá trị 0 tương ứng với 0V và 1023 tương ứng với điện áp tham
chiếu (1.25 V hoặc VDD phụ thuộc vào bit ADCREF). Điện áp tham chiếu
analog được điều khiển bởi ADCON.ADCREF. ADCON.AD_PD cần đặt bằng
1 khi không sử dụng ADC để tiết kiệm năng lượng. Biến đổi ADC được bắt đầu
sau 5µs sau khi xoá bit điều khiển ADCON.ADCRUN khi sử dụng VDD hay
nguồn tham chiếu ngoài, hoặc 100 µs khi sử dụng tham chiếu trong 1.25V.
Bộ định thời
CC1010 có 4 bộ định thời Timer 0, Timer 1, Timer 2, Timer 3 hoạt động
như là bộ định thời hay bộ đếm (Timer/Counter) trong đó Timer2 và Timer3 còn
có thể hoạt động như bộ điều chế độ rộng xung (PWM - Pulse Width
Modulation).
Time 0/ Timer 1
Timer/Counter 0 và 1 có thể được lập trình và hoạt động độc lập theo 4 chế độ,
được điều khiển bởi các thanh ghi TMOD và TCON. Các chế độ có thể như sau:
- 13 bit Timer/Counter (Mode 0)
- 16 bit Timer/Counter (Mode 1)
- 8 bit Timer/Counter tự động nạp lại (Mode 2)
- 2 Timer 8 bit (chỉ dùng cho Timer 0, Mode 0)
Chi tiết về các chế độ, cách điều khiển sử dụng 2 thanh ghi TCON và
TMOD xin xem thêm phần Tài liệu tham khảo [6].
Timer 2/ Timer 3
Ngoài tính năng như là bộ định thời, Timer 2 và 3 có thể được sử dụng như
bộ điều chế độ rộng xung PWM. Nếu xoá bit TCON2.M2/TCON2.M3 thì sẽ là
bộ định thời. Nếu thiết lập bit TCON2.M2/TCON2.M3 thì sẽ là PWM. Khi đó
chân P3.4 và chân P3.5 là chân phát xung đầu ra tương ứng cho Timer2/Timer3.
Chu kỳ T
nPWM
đối với Timer n như sau:
fsystem
TnPRE
T
nP
)1.(255
WM
+
=
Trong đó thời gian ở trạng thái cao Tnh là:
fsystem
eTnTn
TnhP
)1Pr.(
WM
+
=
Điều này có nghĩa là trong chế độ PWM, nếu Tn = 0 thì có mức thấp ở đầu ra và
nếu Tn = 255 thì có mức cao.
Trong đó giá trị các thanh ghi Tn và TnPRE được đặt từ trước.
1.5 Bộ thu phát không dây (RF Transceiver)
Miêu tả chung
Bộ thu phát CC1010 UHF RF được thiết kế cho những ứng dụng tiêu thụ
năng lượng thấp và điện áp thấp. Mạch thu phát được dành cho ISM (công
nghiệp, khoa học và y học) và SRD (Short Range Device) dải tần 315, 433, 868
và 915 MHz, nhưng có thể dễ dàng lập trình để hoạt động trong dải tần
300-1000 MHz. Các thông số chính của CC1010 có thể được lập trình thông qua
các thanh ghi chức năng đặc biệt (Special Function Registers - SFRs), làm cho
CC1010 rất mềm dẻo và dễ sử dụng bộ thu phát vô tuyến. Rất ít các thành phần
tích cực đòi hỏi cho hoạt động của bộ thu phát RF.
Một sơ đồ khối được đơn giản hoá của bộ thu phát RF được thể hiện ở hình
2.1. Chỉ các chân tín hiệu analog được thể hiện cùng với bus dữ liệu SFR bên
trong để thiết lập giao tiếp RF và để truyền và nhận dữ liệu.
Trong chế độ nhận, tín hiệu vào RF được khuếch đại bởi bộ khuếch đại ồn
thấp (low-noise amplifier LNA) và được chuyển thành trung tần (intermediate
frequency - IF) bởi bộ trộn (MIXER). Trong giai đoạn trung tần (IF STAGE) tín
hiệu được khuếch đại và lọc trước khi đưa tới bộ giải điều chế (DEMOD). Như
Hình 2.1. Sơ đồ khối của bộ thu phát RF
một lựa chọn, một tín hiệu RSSI hay IF sau khi trộn được đưa vào AD2. Sau khi
giải điều chế, tín hiệu số được đưa tới thanh ghi RFBUF. Ngắt có thể được sinh
ra theo mỗi bit hay mỗi byte nhận được (EXIF.RFIF).
Trong chế độ truyền, dao động được điều khiển bởi điện áp (VCO) được
đưa trực tiếp tới khuếch đại công suất (PA). Đầu ra RF là khoá dịch chuyển tần
số (frequency shift keyed - FSK) bởi luồng bit được đưa tới thanh ghi RFBUF.
Ngắt có thể được sinh ra cho mỗi bit hay byte được truyền (EXIF.RFIF). Mạch
chuyển bên trong T/R làm cho giao tiếp với antenna dễ dàng và sử dụng rất ít
thành phần ngoại vi.
Bộ tổ hợp tần số tạo ra dao động bên trong được đưa tới MIXER trong chế
độ nhận và PA trong chế độ truyền. Bộ tổ hợp tần số bao gồm một dao động
thạch anh (XOSC), bộ nhận biết pha (phase detector - PD), bơm nạp (CHARGE
PUMP), bộ lọc (internal loop filter - LPF), VCO, và các bộ chia tần (/R và /N).
Một tinh thể ngoài có thể được nối vào XOSC. VCO chỉ cần một cuộn cảm
ngoài.
Mạch ứng dụng RF
Bộ thu phát RF đòi hỏi rất ít các ngoại vi. Một mạch ứng dụng điển hình
được thể hiện ở hình 2.2. Các giá trị của các thành phần này xin xem thêm phần
Tài liệu tham khảo [6].
Tương ứng vào/ra
Cặp C31/L32 là đầu vào cho nơi nhận của bộ nhận, và nội trở của L32 có
tác dụng định thiên (bias) một chiều. C41, L41 và C42 được sử dụng để tương
ứng với bộ truyền có trở kháng 50 Ohm. Một bộ chuyển mạch trong T/R làm
cho nó có khả năng cùng nối với đầu vào và đầu ra và thích hợp với bộ thu
phát 50Ω trong cả hai chế độ RX và TX. VCO được tích hợp hoàn toàn trừ
cuộn cảm L101.
Lọc
Các thành phần bên ngoài (ví dụ RF LC hay lọc răng cưa) có thể được sử
dụng để cải tiến hiệu năng cho các ứng dụng riêng biệt. Nếu lọc răng cưa được
sử dụng, nó chỉ có tác dụng cho RX (phải sử dụng chuyển mạch ngoài RX/TX).
Nguồn cung cấp
Các tụ tách và lọc nguồn cần được sử dụng (không chỉ ra trong mạch ứng
dụng). Các tụ này càng gần chân nguồn càng tốt. Vị trí và kích thước của tụ tách
và lọc nguồn là rất quan trọng để đạt được độ nhạy tốt nhất.
Chú ý rằng các giá trị hợp thành cho 868 và 915 MHz có thể là như nhau.
Tuy nhiên, rất quan trọng là cách bố trí được tối ưu hoá để lựa chọn cuộn cảm
VCO để làm cho tần số hoạt động được chính xác. Cuộn cảm VCO phải được
đặt rất sát và đối xứng với các chân tương ứng (L1 và L2). Chipcon cung cấp
cách bố trí tham khảo để đạt được hiệu năng cao nhất.
1.6 Mạng cảm nhận không dây dựa trên vi điều khiển CC1010
CC1010 với các đặc điểm,cấu tạo và đặc tính tiêu thụ điện năng thấp và
có chức năng xử lý như một máy vi tính có thêm các bộ thu phát RF,bộ mã hóa
DES,bộ biến đổi ADC,…phù hợp để ghép các cảm biển dể trở thành một nút
mạng trong mạng cảm nhận không dây .Mạch ứng dụng tương đối đơn giản
CC1010 ,thuận tiện để tạo ra các nút WSN hoạt động như một thiết bị độc
lập.Việc lập trình cho CC1010 được sử dụng các thư viện của 8051 và các bộ
dịch cho 8051. có thể sử dụng assemble hoặc c để lập trình cho CC101.Trong
CC1010 có tích hợp một bộ gỡ rối,hỗ trợ mô trường phát triển KilVision2 qua
cổng giao tiếp.
1.7 Mô hình mạng:
WSN gồm nhiều nút mạng CC1010 giao tiếp với nhau qua song vô
tuyến tần số 300-1000MHz.có ba loại nút mạng:Trạm gốc,nút cảm nhận,va
nút chuyển tiếp.
Các nút cảm nhận có gắn đầu đo vừa trực tiếp đo số liệu và truyền về trạm
gốc vừa chuyển tiếp dữ liệu nhận được từ các nút con trong topolopy dạng cây,
gửi về cho nút cha
Vi điều khiển CC1010 với những ưu điểm đã được phân tích ở trên tỏ ra
khá thích hợp với mô hình mạng cảm nhận không dây.Dùng vi điều khiển
CC101 có thể xây dựng được nhiều ứng dụng hấp dẫn với sơ đồ thiết kế không
quá phức tạp.Phần mềm nhúng có thể đi theo hướng hệ điều hành hoặc đơn giản
hơn là các phương trình nhỏ có thể viết bằng các ngôn ngữ lập trình thông
dụng như ASM,C … và nạp cho vi điều khiển
Kết luận: Trong chương này chúng ta đã trình bày sơ lược về mạng cảm
nhận không dây và vi điều khiển CC101,cách dùng CC1010 vào mạng không dây
Chương II GHÉP NỐI VI ĐIỀU KHIỂN AVR VỚI CẢM BIẾN
II. Những nét cơ bản của vi điều khiển AVR-Micro Atmega64L
-Hãng Atmel đã từ lâu nổi tiếng với chíp vi điều
khiển họ 89Cxx phù hợp với các ứng dụng đơn
giản. Chuyển sang họ AVR, Atmel đã thêm vào
chip vi điều khiển này nhiều tính năng mà chíp
họ 8051 không có như là ADC, PWM, BUS I
2
C,
2 Wire v.v..., để giúp cho người sử dụng có thêm nhiều tính năng để sử
dụng.
2.1 Đặc điểm cấu tạo của AVR
-AVR là vi điều khiển được thiết kế cho rất nhiều ứng dụng. Từ các
ứng dụng điều khiển, đo lường...
-Vi điều khiển AVR có thể coi như là một máy vi tính được tích hợp trên một
chíp đơn. AVR là vi điều khiển 8 bit ( không thuộc họ vi điều khiển xử lý số
DSP ) thiết kế hướng vào mục đích điều khiển. Được tích hợp các bộ nhớ
EEPROM và bộ nhớ Flash (có thể lập trình được trong hệ thống- In system
programmable)
-AVR có các trình dịch hộ trợ để lập trình từ mức thấp assembly (AVR Studio),
đến ngôn ngữ bậc cao như là C ( ICC, AVR CodeVision ). AVR có thể thực
hiện được hàng triệu lệnh đơn trong một giây.
2.1.1. Tính năng của Atmega64L
-Hiệu suât cao. Là dòng AVR 8 bit tiêu thụ điện năng thấp (Low power
AVR).
-Sử dụng cấu trúc RISC
o 133 chỉ lệnh. Một lệnh trong 1 chu kỳ máy.
o 32x8 thanh ghi chung + thanh ghi điều khiển ngoại vi.
o Lên đến 16 triệu lệnh/s với tấn số 16 MHz.
-Bộ nhớ chương trình và bộ nhớ dữ liệu:
o 64K Byte bộ nhớ Flash lập trình lại trong hệ thống.
o Lựa chọn Boot code với các bit lock độc lập. Lập trình trong hệ
thông bằng chương trình Boot.
o 4KB EEPROM và 4KB SRAM. ( có thể mở rộng 64K RAM
ngoài).
o Lập trình trong hệ thống (ISP) qua giao diện SPI.
-Giao diện JTAG (chuẩn IEEE std. 1149.1)
o Hỗ trợ chức năng gỡ rối trên chíp.
o Lập trình thông qua JTAG.
-Các tính năng ngoại vi:
o Hai timer 8 bit và hai timer 16 bit.
o Đồng hồ thời gian thực với bộ chia tần số.
o Hai kênh PWM 8bit. 6 kênh PWM 2-16bit.
o Bộ so sánh tương tự.
o ADC 8 kênh 10 bit. 7 kênh ADC vi phân, 2 kênh ADC có bộ
khếch đại 1x, 10x, 200x.
o Giao diện nối tiếp Two-wire. Hai UASRT.
o Giao diện nối tiếp Chủ/Tớ SPI.
o Timer watch dog.
-Các tính năng đặc biệt:
o Reset khi cấp nguồn. Bộ phát hiện xụt nguồn (Brown-out
detection) khả trình.
o Bộ giao động RC tích hợp sẵn bên trong.
o Ngắt trong và ngắt ngoài.
o Sáu chế độ ngủ ( Sleep) để tiết kiệm năng lượng.
o Tần số làm việc có thể xác định bằng phần mềm.
-Điện áp làm việc:
o 2,7 – 5,5V cho Atmega64L
o 4,5 – 5,5V cho Atmega64
-Tốc độ:
o 0 - 8 MHz cho Atmega64L
o 0 - 16 MHz cho Atmega64
Chân
- Sơ đồ cấu hình chân của Atmega64L
Hình 19: Sơ đồ phần cứng
- Sơ đồ khối:
Hình 20: Sơ đồ khối vi điều khiển AVR: Atmega64L
2.1.2 Khối của Atmega64L
-Do các khối chức năng của Atmega64L rất nhiều lên em chỉ đề cập đến
các khối chức năng sử dụng trong luận văn này.
Lõi CPU của Atmega64L
-Trong mục này sẽ mô tả tổng quát về cấu trúc lõi CPU của AVR. Chức
năng chính của lõi CPU là đảm bảo cho chương trình hoạt động. CPU phải
có khả năng truy cập vào bộ nhớ, thực hiện tính toán, điều khiển ngoại vi
và quản lý ngắt.
- Sơ đồ khối của CPU:
Hình 21: Sơ đồ khối CPU.
-Các bộ xử lý AVR có kiến trúc Harvard, nghĩa là có bộ nhớ dữ liệu và
bộ nhớ chương trình tách biệt nhau. Hình trên minh họa sơ đồ khối CPU
của AVR. Bus dữliệu dùng cho bộ nhớ dữ liệu là 1 bus 8 bit, cho phép
nối hầu hết các bộ phận ngoại vi với tệp thanh ghi ( register file). Bus dữ
liệu dùng cho bộ nhớ chương trình có độ rộng 16 bit và chỉ nối với
thanh ghi lệnh.
Khối số học logic ALU
Khối số học (ALU) thực hiện các thao tác như thao tác bit, phép tính số
học và lôgic trên nội dung của các thanh ghi và ghi ngược kết quả vào tệp thanh
ghi trên thanh ghi đã được chỉ định. Các thao tác này được thực hiện trong một
chu kỳ đồng hồ đơn lẻ. Mỗi một thao tác ALU đều làm ảnh hưởng đến các cờ
trong thanh ghi trạng thái (STATUS), tùy thuộc vào lệnh.
Thanh ghi trạng thái SREG
Thanh ghi triạng thái có chứa 8bit cờ, đóng vai trò báo hiệu trạng thái
hiện tại của bộ xử lý. Tất cả các bit đó dược xóa bởi chương trình. Các địa chỉ I/
O của thanh ghi trang thái là $3F( địa chỉ bộ nhớ là $57).
Thanh ghi trạng thái không được lưu trữ bằng máy (machine) trong thời
gian diễn ra một thao tác ngắt. Lệnh trong một đoạn chương trình ngắt có thể
xủa đổi bít cờ trạng thái, và vì thế chương trình của người dùng phải lưu trữ và
khôi phục thanh ghi trạng thái trong thời gian có một ngắt.
Tập thanh ghi đa năng
Tất cả các bộ điều khiển AVRđều có 32 thanh ghi đa năng. Một số trong
các thanh ghi này còn có các chức năng riêng, bổ sung. Các thanh ghi dược đặt
tên từ R0 đến R31. Tệp thanh ghi được tách thành 2 phần, mỗi phần có 16 thanh
ghi, đánh số từ R0 đến R15 và R16 đến R31. Tất cả truy nhập trong chu trình
đơn đến tất cả các thanh ghi.
Thanh ghi con trỏ ngăn xếp SP
Thanh ghi này có độ rộng bằng 1 byte đối với các bộ xử lý có đến 256
byte bộ nhớ SRAM và bằng 2byte (được gọi là SPH và SPL) đối với các bộ xử
lý có bộ nhớ . Thanh ghi này sử dụng để chỉ đến vùng trong bộ nhớ SRAM ở
đỉnh của ngăn xếp. Ngăn xếp được sử dụng để lưu trữ địa chỉ mà bộ xử lý trả trở
lại trong thời gian một ngắt và gọi thủ tục . Bởi vì SP được khởi tạo về $0000
khi rết, nên chương trình người dùng cần phải khởi tạo SP cho thích hợp, bởi vì
địa chỉ bắt đầu của bộ nhắ SRAM không phải là $0000 mà là $60. Ngăn xếp
sắp xếp theo thứ tự từ trên xuống dưới trong địa chỉ bộ nhớ, nghĩa là, việc đẩy
một giá trị lên trên ngăn xếp sẽ làm cho SP giảm đi một giá trị. Khi kéo một giá
trị khỏi ngăn xếp sẽ làm tăng SP thêm một giá trị.
Việc thực thi lệnh
Bộ xử lý AVR được điều khiển bởi đồng hồ hệ thống, đồng hồ này có thể
ở bên ngoài hoặc, nếu có tồn tại và được phép, một đồng hồ RC bên trong có thể
được sử dụng. Đồng hồ hệ thống này không qua bất kỳ bộ chia nào và được sử
dụng trục tiếp cho tất cả các thao tác truy nhập bên trong bộ xử lý. Bộ xử lý có
một đường ống (pipeline) 2 tầng, và lệnh tìm nạp/ giải mã được thực hiện đồng
thời vời việc thực thi lệnh.
Hình 22: Tìm nạp/ giải mã lệnh và việc thực thi lệnh.
Cứ mỗi lần lệnh được tìm nạp, nếu đây là một lệnh liên quan đến ALU,
nó có thể được thực thi bởi khối ALU như được minh họa tren hình 3-5 cho một
chu trình đơn lẻ.
Hình 23: Việc thực thi của ALU bao gồm tim/nạp. thực thi, và ghi ngược lại vào
thanh ghi
Mặt khác, việc truy nhập bộ nhớ SRAM chiếm mất 2 chu kỳ, như dược
minh họa ở hình dưới. Nguyên nhân là việc truy nhập bộ nhớ SRAM sử dụng
một thanh ghi con trỏ dùng cho địa chỉ bộ nhớ SRAM. Thanh ghi con trỏ này
chỉ là một trong các thanh ghi con trỏ (các cặp thanh ghi X, Y hoặc Z) có trên
chip. Chu trình đồng hồ thứ nhất được cần đến để truy nhập tệp thanh ghi và để
thao tác trên thanh ghi con trỏ (các lệnh truy nhập bộ nhớ SRAM cho phếp tăng
địa chỉ trước/ sau thao tác trên thanh ghi con trỏ). Ở thời điểm kết thúc của chu
kỳ đồng hồ thứ nhất, khối ALU thực hiện phép tính này, và sau đó địa chỉ này
được sử dụng để truy nhập ô nhớ SRAM và để ghi vào ô nhớ này (hoặc đọc ra
rừ đó vòa thanh ghi đích), như được minh họa hình dưới.
Hình 24: Các chu trình truy nhập dữ liệu lên thanh ghi SRAM trên chip.
2.1.3 Các chu trình truy nhập dữ liệu lên thanh ghi SRAM trên chip 5
của Atmega64L
- Bộ nhớ của Atmega64L được chia làm 2 phần : bộ nhớ chương trình
và bộ nhớ dữ liệu. Trong trường hợp đặc biệt bộ nhớ EEPROM được
mô tả như là bộ nhớ dữ liệu.
- Atmega có 64k Byte bộ nhớ Flash lập trình lại được trong hệ thống
(ISP- In system progammable) cho bộ nhớ chương trình. Bây giờ họ vi
điều khiển AVR đề là chip 16 hoặc 32 bit thì Flash được tổ chức là 32k
x 6. Để vi điều khiển hoạt động chương trình phải được nạp vào bộ nhớ
Flash. Trong luận văn này Atmega64L được lập trình qua mode ISP:
Serial downloading sử dụng giao diện SPI. Bộ nạp là AVR-doper: