冉彥中,曹婧華,姜 威,趙 飛
(1.吉林大學(xué)(和平校區(qū))計(jì)算機(jī)教研室,吉林長(zhǎng)春 130062;2.吉林大學(xué)白求恩醫(yī)學(xué)院,吉林長(zhǎng)春 130021;3.吉林大學(xué)軍需科技學(xué)院,吉林長(zhǎng)春 130062)
Zigbee技術(shù)是短距離、低速率、低功耗、低成本的短距離無(wú)線通信技術(shù),它與IEEE802.15.14一起構(gòu)成無(wú)線傳感器網(wǎng)絡(luò)的標(biāo)準(zhǔn)通信協(xié)議,適用于網(wǎng)點(diǎn)多、體積小、數(shù)據(jù)量小,傳輸可靠、低功耗等場(chǎng)合。
Zigbee網(wǎng)絡(luò)有3 種拓?fù)湫问剑盒切?、簇樹形和網(wǎng)形。網(wǎng)絡(luò)節(jié)點(diǎn)按功能劃分為終端節(jié)點(diǎn)、路由器節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)。ZigBee協(xié)調(diào)器節(jié)點(diǎn)在IEEE 802.15.4中稱為PAN(Personal Area Network)協(xié)調(diào)點(diǎn),它是整個(gè)網(wǎng)絡(luò)的主控節(jié)點(diǎn),負(fù)責(zé)發(fā)起建立新的網(wǎng)絡(luò)、設(shè)定網(wǎng)絡(luò)參數(shù)、管理網(wǎng)絡(luò)中的節(jié)點(diǎn)以及存儲(chǔ)網(wǎng)絡(luò)中節(jié)點(diǎn)信息等,網(wǎng)絡(luò)形成后也可以執(zhí)行路由器的功能,ZigBee協(xié)調(diào)器節(jié)點(diǎn)必須是FFD(full function device),一個(gè)ZigBee網(wǎng)絡(luò)只有一個(gè)協(xié)調(diào)器節(jié)點(diǎn);路由器節(jié)點(diǎn)是全功能節(jié)點(diǎn),轉(zhuǎn)發(fā)數(shù)據(jù),起到路由的作用,也可以收發(fā)數(shù)據(jù),當(dāng)成一個(gè)數(shù)據(jù)節(jié)點(diǎn),還能保持網(wǎng)絡(luò),為后加入的節(jié)點(diǎn)分配地址;終端節(jié)點(diǎn)RFD(recuced function device),通常定義為電池供電的低功耗設(shè)備,只周期性發(fā)送數(shù)據(jù),不接收數(shù)據(jù)。圖1為星型網(wǎng)絡(luò)拓?fù)鋱D。
圖1 星型網(wǎng)絡(luò)拓?fù)鋱D
本實(shí)驗(yàn)設(shè)計(jì)采用基于2.4GHz的Zigbee模塊進(jìn)行傳感器[1-3]的節(jié)點(diǎn)設(shè)計(jì),外面接有溫度傳感器。溫度傳感器采集回來(lái)的數(shù)據(jù)送到Zigbee模塊進(jìn)行處理,然后由無(wú)線的形式發(fā)送給其他節(jié)點(diǎn)。Zigbee模塊由無(wú)線通信模塊(IEEE 802.15.4.RF 2.4GHz)、微控制器模塊、能量模塊和溫度傳感器模塊4個(gè)部分組成(見圖2)。Zigbee硬件電路采用TI/Chipcon 公司開發(fā)的2.4GHz IEEE 802.15.4/Zigbee片上系統(tǒng)解決方案CC2430。CC2430整合了2.4GHz IEEE 802.15.4/Zigbee RF 收發(fā)機(jī)CC2420,以及工業(yè)標(biāo)準(zhǔn)的增強(qiáng)型8051MCU 的性能,還包括了8KB 的SRAM、大容量閃存以及許多其他特性。CC2430在接收機(jī)傳輸模式下的電流損耗為25mA,使得RFID 成為針對(duì)超長(zhǎng)電池使用壽命應(yīng)用的理想解決方案。3種類型的節(jié)點(diǎn)硬件電路都是一樣的,其功能的差別體現(xiàn)在各自的軟件上,從而在無(wú)線網(wǎng)絡(luò)中扮演不同的角色。
圖2 網(wǎng)絡(luò)節(jié)點(diǎn)結(jié)構(gòu)圖
Zigbee無(wú)線收發(fā)模塊軟件設(shè)計(jì)主要包括Zigbee協(xié)調(diào)器[4-10]和終端節(jié)點(diǎn)設(shè)備的軟件設(shè)計(jì)。
協(xié)調(diào)器與接受模塊通過串口RS-232連接,并將各個(gè)路由器節(jié)點(diǎn)的控制命令轉(zhuǎn)發(fā)下去。各個(gè)路由器和終端設(shè)備在加入網(wǎng)絡(luò)后把自己的網(wǎng)絡(luò)地址發(fā)送給協(xié)調(diào)器,協(xié)調(diào)器接收到終端設(shè)備的網(wǎng)絡(luò)地址后建立地址表,并且把地址存儲(chǔ)起來(lái),以便控制命令準(zhǔn)確發(fā)送。網(wǎng)絡(luò)節(jié)點(diǎn)程序流程如圖3所示。
在Zigbee協(xié)議棧里初始化一個(gè)星型網(wǎng)絡(luò)只需進(jìn)行相關(guān)的網(wǎng)絡(luò)參數(shù)設(shè)置,再調(diào)用函數(shù)aplFormNetwork(),即可建立一個(gè)新的網(wǎng)絡(luò)。初始化協(xié)調(diào)器:首先網(wǎng)絡(luò)層請(qǐng)求MAC 層掃描檢測(cè),掃描完成后網(wǎng)絡(luò)層從MAC層接收到返回信號(hào),然后再選擇一個(gè)合適的信道;如果應(yīng)用層已經(jīng)確定了PANID 參數(shù),網(wǎng)絡(luò)層將確保所給定的網(wǎng)絡(luò)標(biāo)志符不會(huì)與所選擇的現(xiàn)有的網(wǎng)絡(luò)參數(shù)產(chǎn)生沖突,如果存在沖突則從給定的信道中選擇另外一個(gè)信道;一旦合適的信道和網(wǎng)絡(luò)標(biāo)志符PAN ID 確定后,網(wǎng)絡(luò)管理實(shí)體將選擇0X0000作為16位的短MAC地址,告知MAC 層;一個(gè)RFD 節(jié)點(diǎn)可以調(diào)用aplJoinNetwork()函數(shù)加入當(dāng)前的網(wǎng)絡(luò)協(xié)調(diào)器,RFD 節(jié)點(diǎn)上電后首先掃描網(wǎng)絡(luò)中是否存在協(xié)調(diào)器,如果主機(jī)存在,主機(jī)會(huì)自動(dòng)應(yīng)答RFD 節(jié)點(diǎn),當(dāng)RFD 節(jié)點(diǎn)收到主機(jī)3次應(yīng)答信號(hào)后,RFD 節(jié)點(diǎn)就可以向協(xié)調(diào)器發(fā)送自己的64位物理地址;協(xié)調(diào)器收到RFD 發(fā)送來(lái)的64位物理地址后,根據(jù)加入的先后給RFD 節(jié)點(diǎn)分配16位的網(wǎng)絡(luò)地址,那么RFD 節(jié)點(diǎn)成功加入網(wǎng)絡(luò)。
圖3 網(wǎng)絡(luò)節(jié)點(diǎn)程序流程圖
協(xié)調(diào)器建立和維護(hù)網(wǎng)絡(luò)的運(yùn)行:網(wǎng)絡(luò)上的各個(gè)節(jié)點(diǎn)按照入網(wǎng)的先后順序獲得一個(gè)網(wǎng)絡(luò)地址,并且這些網(wǎng)絡(luò)地址都發(fā)給協(xié)調(diào)器,由協(xié)調(diào)器將這些地址存儲(chǔ)起來(lái),建立網(wǎng)絡(luò)表;當(dāng)一定時(shí)間內(nèi)沒有新的節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí),協(xié)調(diào)器認(rèn)為整個(gè)網(wǎng)絡(luò)建立完成。
Zigbee的星型網(wǎng)絡(luò)的組網(wǎng)實(shí)驗(yàn)在應(yīng)用層上編寫程序。協(xié)議棧的程序是2430[11]的開發(fā)商編寫的,調(diào)用相應(yīng)的函數(shù)完成組網(wǎng),以下是協(xié)調(diào)器和RFD 具體說(shuō)明。
實(shí)驗(yàn)采用Zigbee協(xié)議實(shí)驗(yàn)節(jié)點(diǎn)6個(gè),由終端設(shè)備RFD 節(jié)點(diǎn)定時(shí)采集溫度環(huán)境監(jiān)測(cè)參數(shù),并通過Zigbee協(xié)議建立網(wǎng)絡(luò),將檢測(cè)數(shù)據(jù)匯集到協(xié)調(diào)器,然后將數(shù)據(jù)發(fā)送到PC機(jī)的串口。
實(shí)驗(yàn)用到了燒寫程序軟件Jennic Flash Programmer,將串口線連接到協(xié)調(diào)器節(jié)點(diǎn),打開PC 機(jī)上的串口調(diào)試助手,波特率設(shè)置為115 200bit/s,可以收到節(jié)點(diǎn)發(fā)來(lái)的數(shù)據(jù)。發(fā)送的數(shù)據(jù)包格式如下:
其中:“00 16”為包號(hào),“00 15 8D 00 00 09 10 1D”為發(fā)送節(jié)點(diǎn)的地址,“00 01”為協(xié)調(diào)器分配的短地址,“00 1D”為溫度數(shù)值,“00 DB”,“0A 3E”為節(jié)點(diǎn)電壓數(shù)值,“FF FF”為包尾。此時(shí)用手按住某終端設(shè)備節(jié)點(diǎn)或路由器節(jié)點(diǎn)的溫度傳感器,就可以發(fā)現(xiàn)收到的數(shù)據(jù)包中溫度數(shù)值也相應(yīng)地發(fā)生改變。
本實(shí)驗(yàn)設(shè)計(jì)成本低廉,響應(yīng)速度快,系統(tǒng)可靠性高,并在不斷發(fā)展的短距離無(wú)線通信技術(shù)中進(jìn)行了有益地探索。
(
)
[1]賈洪杰,王敏.基于FDMA 技術(shù)的無(wú)線環(huán)境監(jiān)測(cè)系統(tǒng)[J].電腦編程技巧與維護(hù),2010(6):112-113,123.
[2]尹勇,龍毅宏.嵌入式無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)[J].武漢理工大學(xué)學(xué)報(bào),2006(3):107-109,116.
[3]李婷,王振翀,袁守浩.帶式輸送機(jī)無(wú)線保護(hù)傳感器軟件開發(fā)研究[J].中國(guó)科技信息,2010(6):79-82.
[4]李路,劉忠,胡洪寧.無(wú)線傳感器網(wǎng)絡(luò)在協(xié)同作戰(zhàn)中的應(yīng)用[J].艦船科學(xué)技術(shù),2007(6):111-115.
[5]張來(lái)潮,吳廣恩.無(wú)線傳感器網(wǎng)絡(luò)在軍隊(duì)指揮自動(dòng)化建設(shè)中的應(yīng)用[J].電子科技,2006(12):57-60.
[6]鄭德忠,韓昭明.王會(huì)穎.基于無(wú)線傳感器網(wǎng)絡(luò)的co監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].傳感技術(shù)學(xué)報(bào),2007(4):925-928.
[7]張志東,孫雨耕.基于無(wú)線傳感器網(wǎng)絡(luò)的語(yǔ)音通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2007(11):117-120.
[8]李文仲,段朝玉.ZigBee無(wú)線網(wǎng)絡(luò)技術(shù)入門與實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2007.
[9]蔣挺,趙成林.ZigBee紫蜂技術(shù)及其應(yīng)用[M].北京:北京郵電大學(xué)出版社,2006.
[10]昂志敏,金海紅,范之國(guó),等.基于ZigBee 的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)與通信實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2007,30(10):47-49,57.
[11]馬永強(qiáng),李靜強(qiáng),馮立營(yíng).基于ZigBee技術(shù)的射頻芯片CC2430[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006(3):45-47.