無線自組網(wǎng)絡節(jié)點能耗決定整個網(wǎng)絡的生命周期,基于IEEE 802.15.4協(xié)議的ZigBee技術是一種新興的短距離無線通信技術,路由節(jié)點沒有傳感器電路,由于實現(xiàn)功能不同,兩種節(jié)點軟件驅(qū)動也不同。協(xié)調(diào)器軟件設計包括初始化設備、協(xié)調(diào)器組網(wǎng)、路由節(jié)點和傳感器節(jié)點入網(wǎng)以及數(shù)據(jù)信息處理(包括數(shù)據(jù)收發(fā)功能)等。
目前,針對一定區(qū)域內(nèi)信息和設備進行監(jiān)測和控制多采用有線方式通信,網(wǎng)絡在布線和維護過程中由于線路腐蝕和損壞造成網(wǎng)絡中斷,給正常生產(chǎn)工作帶來影響,同時也增加了人力資源成本比重?;诖?,從節(jié)省成本和網(wǎng)絡穩(wěn)定性考慮,給出一種基于ZigBee技術的多節(jié)點設備無線自組網(wǎng)設計方案。
基于IEEE 802.15.4協(xié)議的ZigBee技術是一種新興的短距離無線通信技術,具有功耗低、成本低、網(wǎng)絡容量大、可靠性和安全性高等特點。采用ZigBee無線模塊的傳感器節(jié)點只需要很少的能量,就可以在多個傳感器之間相互協(xié)調(diào),以接力棒的方式利用無線傳輸將數(shù)據(jù)信息從一個傳感器傳到另一個傳感器。ZigBee數(shù)傳技術目前被廣泛應用到無線工業(yè)、精準農(nóng)業(yè)、家庭和樓宇自動化、消費家電以及醫(yī)療服務等領域,是國家“十二五”規(guī)劃中信息技術重點扶持方向。本文主要內(nèi)容包括網(wǎng)絡節(jié)點硬件設計、ZigBee數(shù)傳網(wǎng)絡結構實現(xiàn)和無線Mesh網(wǎng)絡測試。系統(tǒng)利用終端節(jié)點采集數(shù)據(jù),通過多跳路由匯聚到協(xié)調(diào)器節(jié)點實現(xiàn)多節(jié)點設備無線自組網(wǎng)。
1 系統(tǒng)網(wǎng)絡結構
系統(tǒng)網(wǎng)絡拓撲結構如圖l所示,采用基于樹狀Mesh拓撲結構?,網(wǎng)絡由協(xié)調(diào)器節(jié)點(Coordinator)、路由節(jié)點(Router)和終端節(jié)點(End Device)3種類型的功能模塊構成。

圖l 基于樹狀無線Mesh拓撲網(wǎng)絡結構圖
2 無線自組網(wǎng)絡節(jié)點硬件設計
無線自組網(wǎng)絡節(jié)點能耗決定整個網(wǎng)絡的生命周期,從硬件結構看,節(jié)點能耗主要在微處理器模塊,選擇高性能低功耗微處理器可以降低節(jié)點能耗,延長網(wǎng)絡生命周期?;诖?,采用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é)點允許子設備加入網(wǎng)絡,多跳路由并協(xié)助終端節(jié)點進行通信,完成數(shù)據(jù)信息的轉(zhuǎn)發(fā),延長數(shù)據(jù)傳輸距離。兩種節(jié)點硬件電路結構如圖2所示。

圖2 終端和路由節(jié)點硬件結構圖
路由節(jié)點沒有傳感器電路,由于實現(xiàn)功能不同,兩種節(jié)點軟件驅(qū)動也不同。傳感器電路負責ZigBee數(shù)據(jù)采集并完成數(shù)據(jù)轉(zhuǎn)換;片上系統(tǒng)CC2530負責對采集信息進行處理以及整個節(jié)點設備的任務管理(包括無線信號的收發(fā)處理以及ZigBee協(xié)議操作);電路射頻部分采用阻抗匹配電路與天線饋線組成,用一個巴倫優(yōu)化處理,滿足輸入輸出匹配電阻(50 歐)要求;液晶電路顯示節(jié)點狀態(tài);Flash ROM負責存儲數(shù)據(jù)信息;按鍵電路方便用戶對節(jié)點設置,如收發(fā)數(shù)據(jù)時通過按鍵配置;LED電路指示網(wǎng)絡連接狀態(tài)。
2.2協(xié)調(diào)器節(jié)點
協(xié)調(diào)器節(jié)點硬件結構圖如圖3所示。節(jié)點負責整個網(wǎng)絡初始化,確定ZigBee網(wǎng)絡ID號和操作的物理信道,并統(tǒng)籌短地址分配,提供數(shù)據(jù)路由和安全管理服務。協(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é)點硬件結構圖
3 ZigBee協(xié)議棧軟件設計
系統(tǒng)設計ZigBee協(xié)議選擇ZigBee-Pro,協(xié)議棧版本為ZSTACK-CC2530-2.3.O-1.4.0。整個系統(tǒng)無線網(wǎng)絡由事先被定義為協(xié)調(diào)器的主節(jié)點建立。
3.1協(xié)調(diào)器節(jié)點軟件設計
協(xié)調(diào)器軟件設計包括初始化設備、協(xié)調(diào)器組網(wǎng)、路由節(jié)點和傳感器節(jié)點入網(wǎng)以及數(shù)據(jù)信息處理(包括數(shù)據(jù)收發(fā)功能)等。協(xié)調(diào)器節(jié)點上電后監(jiān)測到ZigBee數(shù)傳模塊網(wǎng)絡,則協(xié)調(diào)器節(jié)點作為路由節(jié)點加入到該網(wǎng)絡;若監(jiān)測無網(wǎng)絡,則該節(jié)點作為協(xié)調(diào)器節(jié)點構建ZigBee網(wǎng)絡,終端節(jié)點和路由節(jié)點加入到該網(wǎng)絡。ZigBee網(wǎng)絡在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)絡。另外,每個協(xié)調(diào)器設備已經(jīng)具有唯一固定的64 bit MAC地址作為組網(wǎng)標識,同時必須分配給自己一個16 bit的網(wǎng)絡短地址(PAN ID),節(jié)點設備使用短地址通信可以使網(wǎng)絡更輕量級、更加高效。協(xié)調(diào)器默認網(wǎng)絡短地址為0x0000。協(xié)調(diào)器節(jié)點的主要功能是對網(wǎng)絡中各子節(jié)點進行管理,接收各子節(jié)點的狀態(tài)信息并將信息上報上位機進行數(shù)據(jù)處理。圖4為協(xié)調(diào)器通信流程圖。

圖4 協(xié)調(diào)器通信流程圖
3.2 路由節(jié)點軟件設計
路由節(jié)點一旦監(jiān)測到網(wǎng)絡便會自動綁定到一個相應的協(xié)調(diào)器節(jié)點或者父路由節(jié)點,申請加入網(wǎng)絡。作為入網(wǎng)申請,無論是路由節(jié)點還是終端節(jié)點,都需要對設備進行配置,作為路由節(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)絡地址。通過多跳數(shù)據(jù)轉(zhuǎn)發(fā)機制進行數(shù)據(jù)交換,并根據(jù)選擇的路由節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù),提供網(wǎng)絡的連通性,數(shù)據(jù)的發(fā)送和接收通過應用層調(diào)用完成數(shù)據(jù)幀ACK應答機制。圖5給出了路由節(jié)點通信流程圖。

圖5 路由節(jié)點通信流程圖
3.3 終端感知節(jié)點軟件設計
終端感知節(jié)點主要完成信息采集,通過路由節(jié)點傳送到協(xié)調(diào)器節(jié)點以RS232方式進行傳輸供上位機對數(shù)據(jù)進行處理。終端節(jié)點上電后,對節(jié)點設備進行配置,令1ogicalType=ZG_DEVICETYPE_ENDDEVICE,通過調(diào)用ZD0_Start()申請加入父節(jié)點。但是在終端節(jié)點入網(wǎng)之前,路由或者協(xié)調(diào)器節(jié)點無法獲得終端節(jié)點的網(wǎng)絡地址,可通過對設備綁定解決該問題。終端節(jié)點調(diào)用zb_Bind_DeviceRequest()發(fā)出綁定請求,并通過zb_AllowBindResponse()對配對請求作出響應,同時路由或者協(xié)調(diào)器節(jié)點執(zhí)行zb_BindDevice(TRUE,clusterID,NULL)與終端節(jié)點發(fā)生綁定,如果綁定成功則綁定表建立在路由或者協(xié)調(diào)器節(jié)點上,綁定表中的ClustedD(簇標識符)值相等,且屬性相反。通過clustedD獲得終端節(jié)點的網(wǎng)絡地址,綁定成功后終端節(jié)點執(zhí)行zb_sendDataReques()周期性發(fā)送采集的數(shù)據(jù)信息。圖6為終端節(jié)點通信流程圖。

圖6 終端節(jié)點通信流程圖
4 節(jié)點網(wǎng)絡自組織和自愈功能測試
進行ZigBee組網(wǎng)測試時,通過設置4個節(jié)點(其中1個協(xié)調(diào)器節(jié)點、兩個路由節(jié)點、1個終端感知節(jié)點)進行自組和自愈網(wǎng)絡測試。采用串口調(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)絡只能擁有網(wǎng)絡內(nèi)唯一一個協(xié)調(diào)器,協(xié)調(diào)器通電后,初始化其中64位IEEE地址為0x00124B000lFA9D87,網(wǎng)絡短地址PAN lD為0x00100,協(xié)調(diào)器執(zhí)行zb_BindDevice()接收其他節(jié)點綁定請求,組建網(wǎng)絡。
路由節(jié)點l上電后,自動搜索父節(jié)點(即協(xié)調(diào)器節(jié)點)加入網(wǎng)絡,入網(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)絡中,路由節(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)絡中,終端節(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é)點無需人工干預,組網(wǎng)成功,實現(xiàn)了網(wǎng)絡拓撲結構的自動組建功能。終端節(jié)點入網(wǎng)成功后通過上位機組網(wǎng)監(jiān)控界面如圖7所示。

圖7 節(jié)點組網(wǎng)結構
設定路由節(jié)點2故障,中斷信號傳輸,則終端節(jié)點會自動搜索網(wǎng)絡找到距離其最近的父節(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)絡能夠自我修復,并對網(wǎng)絡拓撲結構進行相應的調(diào)整,無須人工干擾,系統(tǒng)能夠正常工作。節(jié)點自我修復后上位機組網(wǎng)監(jiān)控界面如圖8所示。

圖8 節(jié)點修復組網(wǎng)結構圖
本文給出了一種基于ZigBee無線模塊多節(jié)點設備無線自組網(wǎng)方案,詳細介紹了ZigBee數(shù)傳模塊節(jié)點硬件電路和軟件系統(tǒng)設計,通過對多個節(jié)點進行ZigBee數(shù)據(jù)采集測試完成網(wǎng)絡的自組織連接和自愈修復功能,使網(wǎng)絡系統(tǒng)運行正常。節(jié)點設備具有通信協(xié)議簡單可靠、靈敏度高、測量準確、功耗低,節(jié)點布置靈活、系統(tǒng)易于擴展等優(yōu)點。另外,系統(tǒng)可應用于農(nóng)村蔬菜種植、花卉園藝等各種類型溫室大棚環(huán)境的智能化監(jiān)控、智能家居節(jié)點設備的組網(wǎng)、工業(yè)節(jié)點的無線定位、醫(yī)療物聯(lián)網(wǎng)等領域,具有較大的市場競爭力和廣闊的應用前景。
電子發(fā)燒友App














評論