安 康,張慧熙,王李冬,呂明琪
(杭州師范大學 錢江學院,浙江 杭州310012)
目前,針對一定區域內信息和設備進行監測和控制多采用有線方式通信,網絡在布線和維護過程中由于線路腐蝕和損壞造成網絡中斷,給正常生產工作帶來影響,同時也增加了人力資源成本比重?;诖?,從節省成本和網絡穩定性考慮,給出一種基于ZigBee技術的多節點設備無線自組網設計方案。
基于IEEE 802.15.4協議的ZigBee技術[1-3]是一種新興的短距離無線通信技術,具有功耗低、成本低、網絡容量大、可靠性和安全性高等特點。采用ZigBee技術[4-6]傳感器節點只需要很少的能量,就可以在多個傳感器之間相互協調,以接力棒的方式利用無線傳輸將數據信息從一個傳感器傳到另一個傳感器。ZigBee技術目前被廣泛應用到無線工業、精準農業、家庭和樓宇自動化、消費家電以及醫療服務等領域,是國家“十二五”規劃中信息技術重點扶持方向。
本文主要內容包括網絡節點硬件設計、ZigBee網絡結構實現和無線Mesh網絡測試。系統利用終端節點采集數據,通過多跳路由匯聚到協調器節點實現多節點設備無線自組網。
系統網絡拓撲結構如圖1所示,采用基于樹狀Mesh拓撲結構[1],網絡由協調器節點(Coordinator)、路由節點(Router)和終端節點(End Device)3種類型的功能模塊構成。

圖1 基于樹狀無線Mesh拓撲網絡結構圖
無線自組網絡節點能耗決定整個網絡的生命周期,從硬件結構看,節點能耗主要在微處理器模塊,選擇高性能低功耗微處理器可以降低節點能耗,延長網絡生命周期?;诖?,采用TI公司的CC2530[6-7]作為主控芯片,用于ZigBee的片上系統,內部集成射頻收發器、增強型8051內核、8 KB RAM,封裝小、功耗低。
終端節點主要負責信息采集,通過射頻電路傳送信息到協調器節點。路由節點允許子設備加入網絡,多跳路由并協助終端節點進行通信,完成數據信息的轉發,延長數據傳輸距離。兩種節點硬件電路結構如圖2所示。路由節點沒有傳感器電路,由于實現功能不同,兩種節點軟件驅動也不同。

圖2 終端和路由節點硬件結構圖
傳感器電路負責采集數據并完成數據轉換;片上系統CC2530負責對采集信息進行處理以及整個節點設備的任務管理 (包括無線信號的收發處理以及ZigBee協議操作);電路射頻部分采用阻抗匹配電路與天線饋線組成[6],用一個巴倫優化處理,滿足輸入輸出匹配電阻(50 Ω)要求[7];液晶電路顯示節點狀態;Flash ROM 負責存儲數據信息;按鍵電路方便用戶對節點設置,如收發數據時通過按鍵配置;LED電路指示網絡連接狀態。
協調器節點硬件結構圖如圖3所示。節點負責整個網絡初始化,確定ZigBee網絡ID號和操作的物理信道,并統籌短地址分配,提供數據路由和安全管理服務。協調器節點與終端節點以及路由節點最大的區別在于:(1)協調器節點通過SP3232電路與上位機通信,由于PC與單片機之間接口不一致,通過SP3232實現USB到串口轉換;(2)協調器節點負責與終端節點或者路由節點進行信息通信,不具有信息采集功能。

圖3 協調器節點硬件結構圖
系統設計 ZigBee協議[7-8]選擇 ZigBee-pro,協議棧版本為ZSTACK-CC2530-2.3.0-1.4.0。整個系統無線網絡由事先被定義為協調器的主節點建立。
協調器軟件設計包括初始化設備、協調器組網、路由節點和傳感器節點入網以及數據信息處理(包括數據收發功能)等。協調器節點上電后監測到ZigBee網絡,則協調器節點作為路由節點加入到該網絡;若監測無網絡,則該節點作為協調器節點構建ZigBee網絡,終端節點和路由節點加入到該網絡。ZigBee網絡在2.4 GHz頻帶劃分 16個信道,步長值為 5 MHz,編號為 11~26[7-8],載波頻率 fc=2 405+5(k-11)MHz,k取值為 11~26。協調器通過調用函數MAC_MlmeScanReq((macMlmeScan-Req_t*)pData)對信道能量掃描,能量水平高標志該信道無線信號活躍,協調器根據能量掃描信息選擇一個可以利用的信道建立自己的無線網絡。另外,每個協調器設備已經具有唯一固定的64 bit MAC地址作為組網標識,同時必須分配給自己一個16 bit的網絡短地址(PAN ID),節點設備使用短地址通信可以使網絡更輕量級、更加高效。PAN ID值可以在ZDAPP_CONFIG_PAN_ID中進行修改,協調器默認網絡短地址為0x0000。協調器節點的主要功能是對網絡中各子節點進行管理,接收各子節點的狀態信息并將信息上報上位機進行數據處理。圖4為協調器通信流程圖。

圖4 協調器通信流程圖
路由節點一旦監測到網絡便會自動綁定[7-8]到一個相應的協調器節點或者父路由節點,申請加入網絡。作為入網申請,無論是路由節點還是終端節點,都需要對設備進行配置,作為路由節點令logiclType=ZG_DEVICETYPE_ROUTER,通過調用函數zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE,sizeof(),&logicalType)選擇路由節點。在路由節點上加載系統引導項,令startOption=ZCD_STARTOPI_AUTO_START,通過調用函數 zb_WriteConfiguration(ZCD_NV_STARTUP_OPTION,sizeof(),&startOption)驅動路由節點啟動系統。路由節點申請入網成功后若有其他節點申請加入,需要判斷申請節點是路由節點還是終端節點,為節點配置系統加載項,完成節點入網工作。若節點入網成功則該路由節點為申請入網節點分配網絡地址,通過多跳數據轉發機制進行數據交換,并根據選擇的路由節點轉發數據,提供網絡的連通性,數據的發送和接收通過應用層調用完成數據幀ACK應答機制[8]。圖5給出了路由節點通信流程圖。

圖5 路由節點通信流程圖
終端感知節點主要完成信息采集,通過路由節點傳送到協調器節點以RS232方式進行傳輸供上位機對數據進行處理。終端節點上電后,對節點設備進行配置,令logiclType=ZG_DEVICETYPE_ENDDEVICE,通過調用ZDO_Start()申請加入父節點。但是在終端節點入網之前,路由或者協調器節點無法獲得終端節點的網絡地址,可通過對設備綁定解決該問題[7-8]。終端節點調用zb_Bind-DeviceRequest()發出綁定請求,并通過zb_AllowBindResponse()對配對請求作出響應,同時路由或者協調器節點執行 zb_BindDevice(TRUE,clusterID,NULL)與終端節點發生綁定,如果綁定成功則綁定表建立在路由或者協調器節點上,綁定表中的ClusterID(簇標識符)值相等,且屬性相反。通過clusterID獲得終端節點的網絡地址,綁定成功后終端節點執行zb_SendDataReques()周期性發送采集的數據信息。圖6為終端節點通信流程圖。

圖6 終端節點通信流程圖
進行ZigBee組網測試時,通過設置4個節點(其中1個協調器節點、兩個路由節點、1個終端感知節點)進行自組和自愈網絡測試。采用串口調試助手和TI公司監控軟件ZigBee_Sensor_Monitor進行組網測試。串口配置:端口號COM8,波特率 38 400 b/s、8位數據位、1位停止位。測試過程中,系統通過串口實現協調器與上位機監控端通信。協調器匯聚各個節點采集的信息,串口接收到的數據幀定義[8]如表1所示。
由于每個網絡只能擁有網絡內唯一一個協調器,協調器通電后,初始化其中64位IEEE地址為0x(00124B-0001FA9D87),網絡短地址 PAN ID為 0x0000,協調器執行zb_BindDevice()接收其他節點綁定請求,組建網絡。
路由節點1上電后,自動搜索父節點 (即協調器節點)加入網絡,入網成功則路由節點1周期性發送節點信息經協調器上傳到PC端,串口接收到數據信息為0x(FE 0A 46 87 01 00 02 00 04 00 FF FF 00 00 CC),根據表1中對數據幀定義,其中路由節點1短地址PAN ID為 0x0001,其父節點 PAN ID為0x0000。繼續將路由節點2上電加入到網絡中,路由節點2搜索父節點(即協調器節點),入網成功后路由節點2周期性發送數據信息,上位機通過串口接收數據信息為0x(FE 0A 46 87 3E 14 02 00 04 00 FF FF 00 00 E7),根據表1中對數據幀定義,其中路由節點2短地址PAN ID為0x143E,其父節點PAN ID為0x0000。
繼續將終端節點上電加入到網絡中,終端節點自動搜索并綁定到距離其最近的路由節點2,成功入網后終端節點周期性地將采集到的信息通過路由節點2和協調器節點上傳到PC端。串口接收數據信息為:0x(FE 0A 46 87 6D 28 02 00 04 00 14 23 3E 14 95),其終端節點短地址PAN ID為0x286D,其父節點PAN ID為0x143E,信息位0x14表示當前采集溫度為 20℃,4個節點無需人工干預,組網成功,實現了網絡拓撲結構的自動組建功能。終端節點入網成功后通過上位機組網監控界面如圖7所示。

表1 數據幀格式
設定路由節點2故障,中斷信號傳輸,則終端節點會自動搜索網絡找到距離其最近的父節點(即路由節點1),綁定并入網成功,同時周期性地向協調器發送采集數據信息。串口接收到的數據信息為:0x(FE 0A 46 87 30 14 02 00 04 00 13 23 01 00 D8)。其中終端節點短地址 PAN ID為 0x1430,其父節點 PAN ID為 0x0001,信息位0x13表示當前采集溫度為19℃。當節點2發生故障時,網絡能夠自我修復,并對網絡拓撲結構進行相應的調整,無須人工干擾,系統能夠正常工作。節點自我修復后上位機組網監控界面如圖8所示。

圖7 節點組網結構圖

圖8 節點修復組網結構圖
本文給出了一種基于ZigBee技術多節點設備無線自組網方案,詳細介紹了節點硬件電路和軟件系統設計,通過對多個節點進行組網測試完成網絡的自組織連接和自愈修復功能,使網絡系統運行正常。節點設備具有通信協議簡單可靠、靈敏度高、測量準確、功耗低,節點布置靈活、系統易于擴展等優點。另外,系統可應用于農村蔬菜種植、花卉園藝等各種類型溫室大棚環境的智能化監控、智能家居節點設備的組網、工業節點的無線定位、醫療物聯網等領域,具有較大的市場競爭力和廣闊的應用前景。
[1]GISLASON D.ZigBee wireless networks[M].Elsevier Inc,2008.
[2]王龍山,馬俊.基于物聯網的家居綜合監測系統[J].電子技術應用,2013,39(2):78-81.
[3]曹明勤,張濤,王建.基于 ZigBee的農業物聯網監測系統的設計與實現[J].電子技術應用,2013,39(12):86-89.
[4]崔遜學,趙湛,王成.無線傳感器網絡的領域應用與設計技術[M].北京:國防工業出版社,2009.
[5]GILL K,Yang Shuanghua,Yao Fang,et al.A ZigBee-based home automation system[J].IEEE Transactions on Consumer Electronics,2009,55(2):422-430.
[6]Zhang Chunlong,Zhang Min,Su Yongsheng,et al.Smart home design based on ZigBee wireless sensor network[C].International ICST Conference on Communications and Networking,2012:463-466.
[7]王鳳.基于CC2530的 ZigBee無線傳感器網絡的設計與實現[D].西安:西安電子科技大學,2012.
[8]FARAHANI S.ZigBee wireless networks and transceivers[M].Butlington:Newnes,2008.