基于ZigBee協(xié)議的無(wú)線傳感器網(wǎng)絡(luò)設(shè)計(jì)
數(shù)據(jù)采集電路[4]:
節(jié)點(diǎn)的數(shù)據(jù)采集部分可根據(jù)實(shí)際需要選定合適的傳感器,如振動(dòng)、聲響、溫度、光線等,因?yàn)檎麄€(gè)模塊由電池供電,這就要求傳感器體積小、低功耗、外圍電路簡(jiǎn)單,最好采用不需要信號(hào)調(diào)理電路的數(shù)字式傳感器。本設(shè)計(jì)采用AD公司的兩維數(shù)字加速度計(jì)ADXL202和Maxim公司的一線式數(shù)字溫度計(jì)DS18B20是很好的選擇。
3 底層軟件和協(xié)議棧層軟件設(shè)計(jì)
3.1 底層軟件設(shè)計(jì)
底層軟件[6]設(shè)計(jì):
數(shù)據(jù)采集部分程序:
ADC12Init:初始化CPU的AD采集通道數(shù),采集時(shí)間,位數(shù),等基本信息,并開(kāi)定時(shí)器中斷;
ADC12_ISR: 中斷子程序,定時(shí)器中斷到時(shí)后將AD緩存中的數(shù)字量存儲(chǔ)到堆棧數(shù)組中去,等待發(fā)送。
MCU操作CC2420中的寄存器的時(shí)序參見(jiàn)[4]。SPI操作設(shè)置CC2420程序設(shè)計(jì)分為基本的異步串行口發(fā)送接收程序,設(shè)置控制狀態(tài)寄存器的函數(shù);讀取、更新射頻芯片狀態(tài)寄存器。具體的API函數(shù)可以參考文中表一的設(shè)計(jì)。
表一 射頻控制API函數(shù)本文引用地址:http://www.ex-cimer.com/article/157895.htm
3.2 通信協(xié)議程序設(shè)計(jì)
IEEE802.15.4/ZigBee傳輸?shù)膸袷郊捌渥饔?
在IEEE802. 15. 4標(biāo)準(zhǔn)中,定義了一套新的安全協(xié)議和數(shù)據(jù)傳輸協(xié)議,本方案中,采用的無(wú)線模塊根據(jù)IEEE802. 15.
4標(biāo)準(zhǔn),定義了一套幀格式來(lái)傳輸各種數(shù)據(jù)。如圖所示是本論文設(shè)計(jì)中的符合標(biāo)準(zhǔn)的在物理層和數(shù)據(jù)鏈路層中各種幀的一般格式。
命令幀主要功能是在全功能設(shè)備和對(duì)精簡(jiǎn)功能設(shè)備在網(wǎng)絡(luò)中的行為和狀態(tài)進(jìn)行控制和監(jiān)視;數(shù)據(jù)型數(shù)據(jù)幀結(jié)構(gòu)的作用是把指定的數(shù)據(jù)傳送到網(wǎng)絡(luò)中指定節(jié)點(diǎn)上的外部設(shè)備中,具體的接收目標(biāo)也由這兩種幀結(jié)構(gòu)中的“目標(biāo)地址”給定。返回幀是返回型數(shù)據(jù)幀結(jié)構(gòu)的作用是無(wú)線模塊將發(fā)送數(shù)據(jù)接收情況反饋給自身的幀。
圖6: 符合IEEE 802.15.4/ZigBee通信協(xié)議幀
程序中定義發(fā)送數(shù)據(jù)結(jié)構(gòu)體和接收數(shù)據(jù)結(jié)構(gòu)體包括下列信息:發(fā)送幀序列號(hào)、發(fā)送設(shè)備源地址、PAN網(wǎng)絡(luò)的地址、幀長(zhǎng)度、接收數(shù)據(jù)指針等信息。
評(píng)論