中國船舶重工集團(tuán)公司第七一〇研究所 段素平
基于ZigBee技術(shù)的數(shù)據(jù)采集自組網(wǎng)系統(tǒng)設(shè)計
中國船舶重工集團(tuán)公司第七一〇研究所 段素平
設(shè)計了一種基于ZigBee技術(shù)的數(shù)據(jù)采集自組網(wǎng)系統(tǒng)。介紹了協(xié)調(diào)器、路由器和終端節(jié)點(diǎn)的硬件結(jié)構(gòu),然后闡述了系統(tǒng)的軟件設(shè)計。通過三組實(shí)驗(yàn),對系統(tǒng)自組網(wǎng)、自愈路由算法和數(shù)據(jù)采集三個方面進(jìn)行了測試。
ZigBee;自組網(wǎng);數(shù)據(jù)采集
當(dāng)前,對于一定區(qū)域內(nèi)的設(shè)備和信息進(jìn)行檢測和采集多采用有線的方式,采用這種有線組網(wǎng)方式往往布線困難,施工費(fèi)用高。同時,有線網(wǎng)絡(luò)布設(shè)完成后,也會因環(huán)境的影響造成腐蝕和損壞,增加了后期的維護(hù)成本,也給正常工作帶來一定的影響。ZigBee是一種新興的無線網(wǎng)絡(luò)通信技術(shù),具有低復(fù)雜度、低功耗、低成本以及組網(wǎng)靈活等特點(diǎn)?;诖耍瑥墓?jié)省成本、網(wǎng)絡(luò)復(fù)雜度以及低功耗考慮,設(shè)計了一種基于ZigBee技術(shù)的數(shù)據(jù)采集自組網(wǎng)設(shè)計方案。
在ZigBee自組網(wǎng)絡(luò)中存在三種設(shè)備類型:協(xié)調(diào)器、路由器以及終端節(jié)點(diǎn)。ZigBee網(wǎng)絡(luò)根據(jù)需要可以組成星形網(wǎng)絡(luò)、樹簇網(wǎng)絡(luò)以及網(wǎng)狀網(wǎng)絡(luò)。如圖1所示。
星形網(wǎng)絡(luò)結(jié)構(gòu)簡單,適合小范圍的網(wǎng)絡(luò)應(yīng)用;網(wǎng)狀網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,構(gòu)建起來麻煩,維護(hù)的信息也較多;樹簇網(wǎng)絡(luò)可以看做由多個簡單星形網(wǎng)絡(luò)組成的網(wǎng)絡(luò),結(jié)構(gòu)清晰,各節(jié)點(diǎn)功能明確,故本系統(tǒng)采用樹簇網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
自組網(wǎng)節(jié)點(diǎn)需要長時間工作在一定區(qū)域,能耗絕決定了整個網(wǎng)絡(luò)的生命周期?;诖?,采用低功耗的CC2420作為本系統(tǒng)的主控芯片,用于ZigBee的片上系統(tǒng),內(nèi)部集成射頻收發(fā)器、增強(qiáng)型8051內(nèi)核、8KB字節(jié)RAM以及包含串口在內(nèi)的多種接口,封裝小,功耗低。
2.1 協(xié)調(diào)器
協(xié)調(diào)器負(fù)責(zé)協(xié)調(diào)整個無線網(wǎng)絡(luò)、處理和存儲數(shù)據(jù)以及與上位機(jī)通信,其硬件結(jié)構(gòu)圖如圖2所示。
(1)協(xié)調(diào)器負(fù)責(zé)整個網(wǎng)絡(luò)的啟動和配置,是網(wǎng)絡(luò)中的第一個設(shè)備。協(xié)調(diào)器確定ZigBee網(wǎng)絡(luò)ID號和操作的物理信道,并統(tǒng)籌短地址分配,提供數(shù)據(jù)路由和安全管理服務(wù)。
(2)在本系統(tǒng)自組網(wǎng)絡(luò)中,終端節(jié)點(diǎn)采集到的數(shù)據(jù)、從終端節(jié)點(diǎn)轉(zhuǎn)發(fā)到路由器的數(shù)據(jù)都將交付給協(xié)調(diào)器,協(xié)調(diào)器負(fù)責(zé)處理和存儲這些數(shù)據(jù)。
(3)為了保存一些設(shè)置的參數(shù)和系統(tǒng)運(yùn)行時的某些狀態(tài)從而方便調(diào)試,以及對終端節(jié)點(diǎn)采集的信息進(jìn)行備份,協(xié)調(diào)器通過RS232串口電路與上位機(jī)進(jìn)行通信。
2.2 路由器和終端節(jié)點(diǎn)
在智能雷通信自組網(wǎng)中,終端節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)采集、傳輸?shù)裙ぷ?。路由器允許終端節(jié)點(diǎn)或其他路由器加入網(wǎng)絡(luò),多跳路由并協(xié)助終端節(jié)點(diǎn)進(jìn)行通信,完成數(shù)據(jù)的轉(zhuǎn)發(fā),延長數(shù)據(jù)傳輸距離。兩種節(jié)點(diǎn)硬件電路如圖3所示。
傳感器電路負(fù)責(zé)采集數(shù)據(jù)和數(shù)據(jù)轉(zhuǎn)發(fā);CC2420完成數(shù)據(jù)處理以及整個節(jié)點(diǎn)設(shè)備的任務(wù)管理;射頻天線設(shè)計采用巴倫匹配電路(BALUN電路),滿足輸入輸出匹配電阻(50Ω)要求;ROM存儲電路負(fù)責(zé)存儲數(shù)據(jù)信息;電源模塊采用電池,為整個節(jié)點(diǎn)供電。
圖3 節(jié)點(diǎn)組成框圖
3.1 協(xié)調(diào)器軟件設(shè)計
協(xié)調(diào)器節(jié)點(diǎn)上電后,分別對串口、存儲電路等初始化。接著,協(xié)調(diào)器通過調(diào)用函數(shù)MAC_MlmeScanReq((ma cMlmeScan_Req_t*)pData)對信道能量進(jìn)行掃描,能量水平高標(biāo)志該信道無線信號活躍,協(xié)調(diào)器根據(jù)能量掃描信息選擇一個合適的信道。同時,協(xié)調(diào)器選擇一個合適的信道網(wǎng)絡(luò)標(biāo)識符(PAN ID),從而啟動網(wǎng)絡(luò)建立,并允許其他設(shè)備加入。當(dāng)有子節(jié)點(diǎn)申請入網(wǎng)時,協(xié)調(diào)器要為子節(jié)點(diǎn)分配16 bit的網(wǎng)絡(luò)短地址。網(wǎng)絡(luò)建立后,協(xié)調(diào)器的主要功能是對網(wǎng)絡(luò)中各子節(jié)點(diǎn)進(jìn)行管理,接收各子節(jié)點(diǎn)的信息并發(fā)送給上位機(jī)進(jìn)行數(shù)據(jù)處理。
3.2 路由器軟件設(shè)計
路由器上電初始化完成后,將申請加入網(wǎng)絡(luò)。入網(wǎng)成功后若有其他節(jié)點(diǎn)申請加入,需要判斷申請節(jié)點(diǎn)是路由器還是終端節(jié)點(diǎn),為節(jié)點(diǎn)配置系統(tǒng)加載項(xiàng),完成節(jié)點(diǎn)入網(wǎng)工作。若節(jié)點(diǎn)入網(wǎng)成功,路由器為該申請入網(wǎng)節(jié)點(diǎn)分配網(wǎng)絡(luò)地址。完成上述工作后,路由器下一步將建立節(jié)點(diǎn)間的通信鏈路,從而可通過多跳數(shù)據(jù)轉(zhuǎn)發(fā)機(jī)制進(jìn)行數(shù)據(jù)交換,提供網(wǎng)絡(luò)的連通性。
3.3 終端節(jié)點(diǎn)軟件設(shè)計
終端節(jié)點(diǎn)初始化完成后,將選擇合適路由節(jié)點(diǎn)加入ZigBee無線網(wǎng)絡(luò)。入網(wǎng)成功后終端節(jié)點(diǎn)將進(jìn)入休眠狀態(tài),直到被觸發(fā)。若被觸發(fā),則終端節(jié)點(diǎn)開始采集信息,并緩存到緩沖區(qū)。當(dāng)緩沖器被填滿,程序就調(diào)用相關(guān)函數(shù)將信息發(fā)送出去。若發(fā)送成功,節(jié)點(diǎn)返回休眠狀態(tài);若不成功,則重新發(fā)送該段數(shù)據(jù)。
本組實(shí)驗(yàn)是為了驗(yàn)證網(wǎng)絡(luò)的自組性、網(wǎng)絡(luò)自愈性以及數(shù)據(jù)采集的正確性。
4.1 網(wǎng)絡(luò)自組網(wǎng)測試
選擇1個協(xié)調(diào)器節(jié)點(diǎn)、2個具有路由器以及3個終端節(jié)點(diǎn)來組成樹簇網(wǎng)絡(luò)。為將上述節(jié)點(diǎn)上電,讓它們自動組網(wǎng)。同時,利用串口調(diào)試助手顯示協(xié)調(diào)器接受到的數(shù)據(jù)。
可以看出此時所有設(shè)備入網(wǎng)完畢,都存在唯一地址,其中協(xié)調(diào)器網(wǎng)絡(luò)地址為0。為路由器分配的網(wǎng)絡(luò)地址分別為0x0001和0x0007。0x0001路由器所連接的終端節(jié)點(diǎn)網(wǎng)絡(luò)地址為0x0004,0x0007路由節(jié)點(diǎn)所連接的終端節(jié)點(diǎn)網(wǎng)絡(luò)地址為0x000A,而直接與協(xié)調(diào)器節(jié)點(diǎn)連接的傳感器節(jié)點(diǎn)網(wǎng)絡(luò)地址為0x000D。
4.2 自愈路由算法測試
關(guān)閉網(wǎng)絡(luò)地址為0x0001的路由器電源,從而斷開其網(wǎng)絡(luò)連接。這種情況下,0x0004終端節(jié)點(diǎn)會搜索潛在的父設(shè)備,并將獲得新的網(wǎng)絡(luò)地址,綁定入網(wǎng)。
4.3 數(shù)據(jù)采集測試
為了直觀地驗(yàn)證本采集系統(tǒng)的準(zhǔn)確性,路由器和終端節(jié)點(diǎn)連接溫度傳感器。為了便于分析,采集同一溫度源的溫度,每隔一段時間記錄一次數(shù)據(jù)。
[1]高守瑋,吳燦陽.ZigBee技術(shù)實(shí)踐教程(第一版)[M].北京:北京航空航天大學(xué)出版社,2011.
[2]Szewczyk,R,Polastre,J,Maiwaring A.Analysis of wireless sensor networks for habitat monitoring.Wireless Sensor Network s,2004(12):399-423.
[3]田亞.基于ZigBee無線傳感器網(wǎng)絡(luò)系統(tǒng)設(shè)計與實(shí)現(xiàn)[M].上海:同濟(jì)大學(xué)出版社,2007.