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