無線自組網(wǎng)絡(luò)節(jié)點能耗決定整個網(wǎng)絡(luò)的生命周期,基于IEEE 802.15.4協(xié)議的ZigBee技術(shù)是一種新興的短距離無線通信技術(shù),路由節(jié)點沒有傳感器電路,由于實現(xiàn)功能不同,兩種節(jié)點軟件驅(qū)動也不同。協(xié)調(diào)器軟件設(shè)計包括初始化設(shè)備、協(xié)調(diào)器組網(wǎng)、路由節(jié)點和傳感器節(jié)點入網(wǎng)以及數(shù)據(jù)信息處理(包括數(shù)據(jù)收發(fā)功能)等。
目前,針對一定區(qū)域內(nèi)信息和設(shè)備進行監(jiān)測和控制多采用有線方式通信,網(wǎng)絡(luò)在布線和維護過程中由于線路腐蝕和損壞造成網(wǎng)絡(luò)中斷,給正常生產(chǎn)工作帶來影響,同時也增加了人力資源成本比重。基于此,從節(jié)省成本和網(wǎng)絡(luò)穩(wěn)定性考慮,給出一種基于ZigBee技術(shù)的多節(jié)點設(shè)備無線自組網(wǎng)設(shè)計方案。
基于IEEE 802.15.4協(xié)議的ZigBee技術(shù)是一種新興的短距離無線通信技術(shù),具有功耗低、成本低、網(wǎng)絡(luò)容量大、可靠性和安全性高等特點。采用ZigBee無線模塊的傳感器節(jié)點只需要很少的能量,就可以在多個傳感器之間相互協(xié)調(diào),以接力棒的方式利用無線傳輸將數(shù)據(jù)信息從一個傳感器傳到另一個傳感器。ZigBee數(shù)傳技術(shù)目前被廣泛應(yīng)用到無線工業(yè)、精準農(nóng)業(yè)、家庭和樓宇自動化、消費家電以及醫(yī)療服務(wù)等領(lǐng)域,是國家“十二五”規(guī)劃中信息技術(shù)重點扶持方向。本文主要內(nèi)容包括網(wǎng)絡(luò)節(jié)點硬件設(shè)計、ZigBee數(shù)傳網(wǎng)絡(luò)結(jié)構(gòu)實現(xiàn)和無線Mesh網(wǎng)絡(luò)測試。系統(tǒng)利用終端節(jié)點采集數(shù)據(jù),通過多跳路由匯聚到協(xié)調(diào)器節(jié)點實現(xiàn)多節(jié)點設(shè)備無線自組網(wǎng)。
1 系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)
系統(tǒng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖l所示,采用基于樹狀Mesh拓撲結(jié)構(gòu)?,網(wǎng)絡(luò)由協(xié)調(diào)器節(jié)點(Coordinator)、路由節(jié)點(Router)和終端節(jié)點(End Device)3種類型的功能模塊構(gòu)成。
圖l 基于樹狀無線Mesh拓撲網(wǎng)絡(luò)結(jié)構(gòu)圖
2 無線自組網(wǎng)絡(luò)節(jié)點硬件設(shè)計
無線自組網(wǎng)絡(luò)節(jié)點能耗決定整個網(wǎng)絡(luò)的生命周期,從硬件結(jié)構(gòu)看,節(jié)點能耗主要在微處理器模塊,選擇高性能低功耗微處理器可以降低節(jié)點能耗,延長網(wǎng)絡(luò)生命周期。基于此,采用TI公司的CC2530作為主控芯片,用于ZigBee無線模塊的片上系統(tǒng),內(nèi)部集成射頻收發(fā)器、增強型8051內(nèi)核、8 KB RAM,封裝小、功耗低。
2.1終端節(jié)點和路由節(jié)點
終端節(jié)點主要負責ZigBee數(shù)據(jù)采集,通過射頻電路傳送信息到協(xié)調(diào)器節(jié)點。路由節(jié)點允許子設(shè)備加入網(wǎng)絡(luò),多跳路由并協(xié)助終端節(jié)點進行通信,完成數(shù)據(jù)信息的轉(zhuǎn)發(fā),延長數(shù)據(jù)傳輸距離。兩種節(jié)點硬件電路結(jié)構(gòu)如圖2所示。
圖2 終端和路由節(jié)點硬件結(jié)構(gòu)圖
路由節(jié)點沒有傳感器電路,由于實現(xiàn)功能不同,兩種節(jié)點軟件驅(qū)動也不同。傳感器電路負責ZigBee數(shù)據(jù)采集并完成數(shù)據(jù)轉(zhuǎn)換;片上系統(tǒng)CC2530負責對采集信息進行處理以及整個節(jié)點設(shè)備的任務(wù)管理(包括無線信號的收發(fā)處理以及ZigBee協(xié)議操作);電路射頻部分采用阻抗匹配電路與天線饋線組成,用一個巴倫優(yōu)化處理,滿足輸入輸出匹配電阻(50 歐)要求;液晶電路顯示節(jié)點狀態(tài);Flash ROM負責存儲數(shù)據(jù)信息;按鍵電路方便用戶對節(jié)點設(shè)置,如收發(fā)數(shù)據(jù)時通過按鍵配置;LED電路指示網(wǎng)絡(luò)連接狀態(tài)。
2.2協(xié)調(diào)器節(jié)點
協(xié)調(diào)器節(jié)點硬件結(jié)構(gòu)圖如圖3所示。節(jié)點負責整個網(wǎng)絡(luò)初始化,確定ZigBee網(wǎng)絡(luò)ID號和操作的物理信道,并統(tǒng)籌短地址分配,提供數(shù)據(jù)路由和安全管理服務(wù)。協(xié)調(diào)器節(jié)點與終端節(jié)點以及路由節(jié)點最大的區(qū)別在于:
(1)協(xié)調(diào)器節(jié)點通過SP3232電路與上位機通信,由于PC與單片機之間接口不一致,通過SP3232實現(xiàn)USB到串口轉(zhuǎn)換;
(2)協(xié)調(diào)器節(jié)點負責與終端節(jié)點或者路由節(jié)點進行信息通信,不具有ZigBee采集采集功能。
圖3 協(xié)調(diào)器節(jié)點硬件結(jié)構(gòu)圖
3 ZigBee協(xié)議棧軟件設(shè)計
系統(tǒng)設(shè)計ZigBee協(xié)議選擇ZigBee-Pro,協(xié)議棧版本為ZSTACK-CC2530-2.3.O-1.4.0。整個系統(tǒng)無線網(wǎng)絡(luò)由事先被定義為協(xié)調(diào)器的主節(jié)點建立。
3.1協(xié)調(diào)器節(jié)點軟件設(shè)計
協(xié)調(diào)器軟件設(shè)計包括初始化設(shè)備、協(xié)調(diào)器組網(wǎng)、路由節(jié)點和傳感器節(jié)點入網(wǎng)以及數(shù)據(jù)信息處理(包括數(shù)據(jù)收發(fā)功能)等。協(xié)調(diào)器節(jié)點上電后監(jiān)測到ZigBee數(shù)傳模塊網(wǎng)絡(luò),則協(xié)調(diào)器節(jié)點作為路由節(jié)點加入到該網(wǎng)絡(luò);若監(jiān)測無網(wǎng)絡(luò),則該節(jié)點作為協(xié)調(diào)器節(jié)點構(gòu)建ZigBee網(wǎng)絡(luò),終端節(jié)點和路由節(jié)點加入到該網(wǎng)絡(luò)。ZigBee網(wǎng)絡(luò)在2.4 GHz頻帶劃分16個信道,步長值為5 MHz,編號為1l~26。協(xié)調(diào)器通過調(diào)用函數(shù)MAC_MlmeScanReq((macMlmeScanReq_t*)pData)對信道能量掃描,能量水平高標志該信道無線信號活躍,協(xié)調(diào)器根據(jù)能量掃描信息選擇一個可以利用的信道建立自己的無線網(wǎng)絡(luò)。另外,每個協(xié)調(diào)器設(shè)備已經(jīng)具有唯一固定的64 bit MAC地址作為組網(wǎng)標識,同時必須分配給自己一個16 bit的網(wǎng)絡(luò)短地址(PAN ID),節(jié)點設(shè)備使用短地址通信可以使網(wǎng)絡(luò)更輕量級、更加高效。協(xié)調(diào)器默認網(wǎng)絡(luò)短地址為0x0000。協(xié)調(diào)器節(jié)點的主要功能是對網(wǎng)絡(luò)中各子節(jié)點進行管理,接收各子節(jié)點的狀態(tài)信息并將信息上報上位機進行數(shù)據(jù)處理。圖4為協(xié)調(diào)器通信流程圖。
圖4 協(xié)調(diào)器通信流程圖
3.2 路由節(jié)點軟件設(shè)計
路由節(jié)點一旦監(jiān)測到網(wǎng)絡(luò)便會自動綁定到一個相應(yīng)的協(xié)調(diào)器節(jié)點或者父路由節(jié)點,申請加入網(wǎng)絡(luò)。作為入網(wǎng)申請,無論是路由節(jié)點還是終端節(jié)點,都需要對設(shè)備進行配置,作為路由節(jié)點令logiclType=ZG_DEVICETYPLROUTER,通過調(diào)用函數(shù)zb_WriteConfigration(ZCD_NV_LOGICAL_TYPE,sizeof(),&logicalType)選擇路由節(jié)點。路由節(jié)點申請入網(wǎng)成功后若有其他節(jié)點申請加入,需要判斷申請節(jié)點是路由節(jié)點還是終端節(jié)點,為節(jié)點配置系統(tǒng)加載項,完成節(jié)點入網(wǎng)工作。若節(jié)點入網(wǎng)成功則該路由節(jié)點為申請入網(wǎng)節(jié)點分配網(wǎng)絡(luò)地址。通過多跳數(shù)據(jù)轉(zhuǎn)發(fā)機制進行數(shù)據(jù)交換,并根據(jù)選擇的路由節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù),提供網(wǎng)絡(luò)的連通性,數(shù)據(jù)的發(fā)送和接收通過應(yīng)用層調(diào)用完成數(shù)據(jù)幀ACK應(yīng)答機制。圖5給出了路由節(jié)點通信流程圖。
圖5 路由節(jié)點通信流程圖
3.3 終端感知節(jié)點軟件設(shè)計
終端感知節(jié)點主要完成信息采集,通過路由節(jié)點傳送到協(xié)調(diào)器節(jié)點以RS232方式進行傳輸供上位機對數(shù)據(jù)進行處理。終端節(jié)點上電后,對節(jié)點設(shè)備進行配置,令1ogicalType=ZG_DEVICETYPE_ENDDEVICE,通過調(diào)用ZD0_Start()申請加入父節(jié)點。但是在終端節(jié)點入網(wǎng)之前,路由或者協(xié)調(diào)器節(jié)點無法獲得終端節(jié)點的網(wǎng)絡(luò)地址,可通過對設(shè)備綁定解決該問題。終端節(jié)點調(diào)用zb_Bind_DeviceRequest()發(fā)出綁定請求,并通過zb_AllowBindResponse()對配對請求作出響應(yīng),同時路由或者協(xié)調(diào)器節(jié)點執(zhí)行zb_BindDevice(TRUE,clusterID,NULL)與終端節(jié)點發(fā)生綁定,如果綁定成功則綁定表建立在路由或者協(xié)調(diào)器節(jié)點上,綁定表中的ClustedD(簇標識符)值相等,且屬性相反。通過clustedD獲得終端節(jié)點的網(wǎng)絡(luò)地址,綁定成功后終端節(jié)點執(zhí)行zb_sendDataReques()周期性發(fā)送采集的數(shù)據(jù)信息。圖6為終端節(jié)點通信流程圖。
圖6 終端節(jié)點通信流程圖
4 節(jié)點網(wǎng)絡(luò)自組織和自愈功能測試
進行ZigBee組網(wǎng)測試時,通過設(shè)置4個節(jié)點(其中1個協(xié)調(diào)器節(jié)點、兩個路由節(jié)點、1個終端感知節(jié)點)進行自組和自愈網(wǎng)絡(luò)測試。采用串口調(diào)試助手和TI公司監(jiān)控軟件ZigBee_Sensor_Monitor進行組網(wǎng)測試。串口配置:端口號COM8,波特率38 400 bps、8位數(shù)據(jù)位、l位停止位。測試過程中,系統(tǒng)通過串口實現(xiàn)協(xié)調(diào)器與上位機監(jiān)控端通信。協(xié)調(diào)器匯聚各個節(jié)點采集的信息,串口接收到的數(shù)據(jù)幀定義如表l所示。
表l 數(shù)據(jù)幀格式
由于每個網(wǎng)絡(luò)只能擁有網(wǎng)絡(luò)內(nèi)唯一一個協(xié)調(diào)器,協(xié)調(diào)器通電后,初始化其中64位IEEE地址為0x00124B000lFA9D87,網(wǎng)絡(luò)短地址PAN lD為0x00100,協(xié)調(diào)器執(zhí)行zb_BindDevice()接收其他節(jié)點綁定請求,組建網(wǎng)絡(luò)。
路由節(jié)點l上電后,自動搜索父節(jié)點(即協(xié)調(diào)器節(jié)點)加入網(wǎng)絡(luò),入網(wǎng)成功則路由節(jié)點l周期性發(fā)送節(jié)點信息經(jīng)協(xié)調(diào)器上傳到PC端,串口接收到數(shù)據(jù)信息為0x(FE 0A 46 87 01 00 02 00 04 00 FF FF 00 00 CC),根據(jù)表l中對數(shù)據(jù)幀定義,其中路由節(jié)點l短地址PANID為0x000l,其父節(jié)點PAN lD為Ox0000。繼續(xù)將路由節(jié)點2上電加入到網(wǎng)絡(luò)中,路由節(jié)點2搜索父節(jié)點(即協(xié)調(diào)器節(jié)點),入網(wǎng)成功后路由節(jié)點2周期性發(fā)送數(shù)據(jù)信息,上位機通過串口接收數(shù)據(jù)信息為0x(FE OA 46 87 3E 14 02 00 04 00 FF FF 00 00 E7),根據(jù)表l中對數(shù)據(jù)幀定義,其中路由節(jié)點2短地址PAN ID為0x143E,其父節(jié)點PAN ID為0x0000。
繼續(xù)將終端節(jié)點上電加入到網(wǎng)絡(luò)中,終端節(jié)點自動搜索并綁定到距離其最近的路由節(jié)點2,成功入網(wǎng)后終端節(jié)點周期性地將采集到的信息通過路由節(jié)點2和協(xié)調(diào)器節(jié)點上傳到PC端。串口接收數(shù)據(jù)信息為:0x(FE 0A 46 87 6D 28 02 00 04 00 14 23 3E 14 95),其終端節(jié)點短地址PAN ID為0x286D,其父節(jié)點PAN ID為0x143E,信息位0x14表示當前采集溫度為20℃,4個節(jié)點無需人工干預(yù),組網(wǎng)成功,實現(xiàn)了網(wǎng)絡(luò)拓撲結(jié)構(gòu)的自動組建功能。終端節(jié)點入網(wǎng)成功后通過上位機組網(wǎng)監(jiān)控界面如圖7所示。
圖7 節(jié)點組網(wǎng)結(jié)構(gòu)
設(shè)定路由節(jié)點2故障,中斷信號傳輸,則終端節(jié)點會自動搜索網(wǎng)絡(luò)找到距離其最近的父節(jié)點(即路由節(jié)點1),綁定并入網(wǎng)成功,同時周期性地向協(xié)調(diào)器發(fā)送采集數(shù)據(jù)信息。串口接收到的數(shù)據(jù)信息為:0x(FE 0A 46 87 30 14 02 00 04 00 13 23 0l 00 D8)。其中終端節(jié)點短地址PAN ID為0x1430,其父節(jié)點PAN ID為0x0001,信息位0x13表示當前采集溫度為19℃。當節(jié)點2發(fā)生故障時,網(wǎng)絡(luò)能夠自我修復(fù),并對網(wǎng)絡(luò)拓撲結(jié)構(gòu)進行相應(yīng)的調(diào)整,無須人工干擾,系統(tǒng)能夠正常工作。節(jié)點自我修復(fù)后上位機組網(wǎng)監(jiān)控界面如圖8所示。
圖8 節(jié)點修復(fù)組網(wǎng)結(jié)構(gòu)圖
本文給出了一種基于ZigBee無線模塊多節(jié)點設(shè)備無線自組網(wǎng)方案,詳細介紹了ZigBee數(shù)傳模塊節(jié)點硬件電路和軟件系統(tǒng)設(shè)計,通過對多個節(jié)點進行ZigBee數(shù)據(jù)采集測試完成網(wǎng)絡(luò)的自組織連接和自愈修復(fù)功能,使網(wǎng)絡(luò)系統(tǒng)運行正常。節(jié)點設(shè)備具有通信協(xié)議簡單可靠、靈敏度高、測量準確、功耗低,節(jié)點布置靈活、系統(tǒng)易于擴展等優(yōu)點。另外,系統(tǒng)可應(yīng)用于農(nóng)村蔬菜種植、花卉園藝等各種類型溫室大棚環(huán)境的智能化監(jiān)控、智能家居節(jié)點設(shè)備的組網(wǎng)、工業(yè)節(jié)點的無線定位、醫(yī)療物聯(lián)網(wǎng)等領(lǐng)域,具有較大的市場競爭力和廣闊的應(yīng)用前景。
評論