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