張弘華 余員琴 陳海文 李晨 王葉
湖南交通工程學院電氣與信息工程學院
ZigBee 是ZigBee 聯(lián)盟(ZigBee Alliance)在IEEE802.15.4標準基礎上進行商業(yè)推廣的名稱,來自蜜蜂群之間的一種有效、簡單的通信方式,蜜蜂(Bee)通過飛“Z”字形舞蹈,以向其他蜜蜂表達新找到的食物源的具體位置信息。IEEE802.15.4 和ZigBee 聯(lián)盟制定硬件與軟件標準,如表1 所示。

表1 ZigBee 技術
基于ZigBee WSN 有星形(Star)、簇樹(Clustet)和網狀(Mesh)3 種拓撲模型,如圖1 所示,其對比分析如表2 所示。

表2 對比分析

圖1 ZigBee WSN 3 種拓撲模型
WSN 整體結構設計如圖2 所示,包括WSN ZC(WSN ZigBee Coordinator)ZigBee 協(xié)調器的創(chuàng)建,WSN ZC 的初始化,網絡節(jié)點入網的開啟,數(shù)據(jù)的傳送。

圖2 ZigBee 組建無線傳感器網絡流程
采用TI 公司研發(fā)的ZigBee Stack 協(xié)議棧Zmain.C 庫文件中main 函數(shù)實現(xiàn)硬件、網絡、任務列表初始化,從main 函數(shù)開始運行執(zhí)行,進入任務處理循環(huán)。
建立一個WSNx 時,必須由且只有一個ZC 發(fā)起,若WSNx 和WSNy 相交的子節(jié)點,且此子節(jié)點已入WSNy,則該子節(jié)點不可作為WSNx 中ZC,只作為新子節(jié)點入網。判定節(jié)點是否為全功能設備(Full Function Device,F(xiàn)FD)節(jié)點,若是,則發(fā)送一個信標請求命令,設定掃描期(T_scan_duration),在掃描期內主動掃描,且未檢測到信標,就認定該節(jié)點POS(point of sale 多功能終端)范圍內無ZC,即其確定WSNX 中ZC,其后挑選信道和設置地址。
(1)選擇信道。檢測指定或默認信道的能量,且將其遞增排序、篩選及標記可用信道,再主動掃描可用信道,搜索網絡中廣播信息,依據(jù)獲得的這些信息和已記錄的結果,篩選出最佳信道。
(2)設置ZigBeeWSN 地址。篩選出最佳信道后,ZC 為新建的WSNx 隨機挑選一個未分配的,且小于等于0×3FFF的標識符為網絡地址,其中,0×FFFF 不能分配為廣播地址。
李清平等提出,ZigBeeWSN 中節(jié)點地址有64 位的IEEE地址和16 位的網絡地址兩種之分。前者也叫物理地址或擴展地址,后者也叫邏輯地址或短地址。64 位IEEE 地址由制造商設定或在安裝時由工程師設置,一旦給節(jié)點設備設置了地址,則其終身不變,是全球唯一標識;網絡地址是由父節(jié)點分配給網絡中子節(jié)點或設備唯一標識,其地址用于節(jié)點之間的通信。初始化含確定初始化參數(shù)和參數(shù)配置兩個方面,0×0000 一般設為ZC 的短地址。
節(jié)點入網需在ZC 或ZigBee路由器(ZigBee Router,ZR)允許下進行。組建新網WSNx 時,WSNx 首層節(jié)點入網先關聯(lián)ZC,其他層節(jié)點入網在多功能終端區(qū)域內篩選出最強信號節(jié)點,作為其父節(jié)點加入網絡。最強信號節(jié)點也可是ZC,成功入網后ZC 分配一個16 位的網絡地址,并將所有入網信息存留在各自閃存(Flash memory)中,其信息包括網絡地址、網絡拓撲結構、其各節(jié)點間的關系等。
若未搜索到信標,采用多次間歇式重啟掃描方法繼續(xù)搜索到一個或多個信標,且選取最優(yōu)網絡,發(fā)送請求連接ZC。ZC 將收接到的入網連接指示原語送交上層,同時,回復關聯(lián)響應確認幀ACK(Acknowledgement)給節(jié)點,上層根據(jù)自身資源,如地址分配狀況、存儲空間、能量多少和安全級別等,決定該節(jié)點的入網請求成功與否。若其資源允許連接成功,ZC 將連接成功響應原語Association response 和分配給該節(jié)點入網的16 位網絡地址發(fā)送給該節(jié)點,隨后便可以與ZC 通信;否則,入網節(jié)點重發(fā)請求信息,至成功連接入網。
余修武提出,入網有加入節(jié)點,發(fā)起連接程序來入網的聯(lián)合方式和加入節(jié)點,直接同一個預先指定的父節(jié)點ZR 連接入網的直接方式兩種。基于Zigbee 的WSN 中以聯(lián)合方式為主,輔助直接方式,將入網節(jié)點經ZR 組建網絡。新建WSNx 中,首層FFD 子節(jié)點全部與ZC 連接成功后,其他各層子節(jié)點經由WSNx 首層已關聯(lián)好ZC 的FFD 子節(jié)點或ZR 子節(jié)點視為其父節(jié)點加入網絡。
待加入WSNx 的節(jié)點中有新節(jié)點和孤兒節(jié)點,孤兒節(jié)點是由于本身或父節(jié)點資源狀態(tài)未滿足關聯(lián)要求,已與其父節(jié)點失去了關聯(lián)的節(jié)點。孤兒節(jié)點再次與原父節(jié)點關聯(lián),通過其相鄰表中保留的信息且以直接入網方式發(fā)送請求給原父節(jié)點,原父節(jié)點依據(jù)自身現(xiàn)有的邏輯地址分配狀況、存儲空間、能量多少和安全級別等資源,視孤兒節(jié)點為新節(jié)點入網與節(jié)點關聯(lián)ZC 相同,即入網成功,便可傳輸數(shù)據(jù)。
入網節(jié)點有分布式地址分配(Distributed Address Assignment Mechanism,DAAM)和隨機地址分配(Stochasticaddress Assignment Mechanism,SAAM)兩種機制,其中,DAAM 為主要地址分配方案。設置以0×00 為NIB 中nwkAddrAlloc 值,即默認值實施分布式地址分配方案,設置以0×02 為隨機地址分配方案,其中,0×01 暫保留。DAAM中各層父節(jié)點可給子節(jié)點分配的邏輯地址間隔數(shù)由Cskip(d)函數(shù)計算。

式中,Cm(nwK max Chilren)父節(jié)點能擁有子節(jié)點數(shù)最大值,由ZC 決定;
Lm(nwk max Depth)網絡的最大深度,ZC 深度為0,其子節(jié)點深度為1,由ZC 決定;Rm(nwk max Routers)父節(jié)點中擁有路由器子節(jié)點最大值;d每層子節(jié)點的網絡深度。
當Cskip(d)>0時,表示父節(jié)點可以關聯(lián)子節(jié)點;當Cskip(d)≤0 時,表示此子節(jié)點只能視終端葉子節(jié)點入網,包括ZR 節(jié)點在內。分配第一個ZR 子節(jié)點地址等于以父節(jié)點地址+1,其余ZR 子節(jié)點地址由Cskip(d)函數(shù)計算獲得;而所有的ZED 子節(jié)點中第一個ZED 子節(jié)點的地址等于最后一個ZR 節(jié)點地址+Cskip(d)計算值,其余ZED 子節(jié)點地址在第一個ZED 子節(jié)點地址依次+1。網絡各層(d)第n 個子節(jié)點的網絡地址分配如式(2)

式中,Aparent為父節(jié)點地址;Achild為子節(jié)點地址。
由于井下環(huán)境特殊,比較適用短距離無線通信,因此,基于ZigBee 的WSN 應該是最佳方案,其具有功耗最低、成本最低,網絡容量大、擴展性好、傳輸速率低、時延小等優(yōu)勢,可確保WSN 井下安全監(jiān)測的可靠性和可行性。