ZigBee名字來源于蜂群使用的賴以生存和發展的通信方式,蜜蜂通過跳ZigZag形狀的舞蹈來通知發現的新食物源的位置、距離和方向等信息,ZigBee技術模仿蜜蜂通過跳舞來傳遞信息的方式,通過相鄰網絡節點之間信息的接力傳遞,將信息從一個節點傳輸到遠處的另外一個節點。
ZigBee聯盟制定了ZigBee協議棧的規范,各個無線廠商根據自己的硬件平臺和應用環境,編寫自己的ZigBee協議棧。
本文介紹一種實際工程的ZigBee對等網絡協議棧的開發過程。
1 一般路由測試方法
無線路由協議一般是按照以下方式進行路徑查找的:由源節點發出廣播的路徑查找請求,在網絡中傳播,到達目標節點之后,目標節點選擇一個最佳路徑(中間節點也做最佳路徑的篩選),返回給源節點。路由查找過程如圖1所示。
2 無線網絡協議棧一般開發過程
一個無線網絡協議棧的開發,需要一個詳細的規劃,完成路由算法的設計、代碼實施、硬件平臺的搭建、測試方法的選擇和實施等,下面逐一介紹。
(1)路由算法
無線路由協議需要考慮兩個因素:速度和穩定性。查找路徑時,有時收到一個時間非常快的應答,但是這并不一定是最佳的路徑,有可能是查找路由表的瞬間兩點之間,信號剛好達到臨界信號強度(即“超常發揮路徑”),接下來傳輸數據的時候,恢復障礙物之后,信號又不能達到之前的速度,這在有移動遮擋物的時候,特別容易出現,如圖2所示。“超常發揮路徑”判斷的依據是接收信號強度。
最短路徑和最佳信號質量的結合,才是最佳路徑,在實際應用中,還需要預留一條備用路徑,即次佳路徑。如圖3所示。
(2)測試開發過程
按照路由算法實施代碼之后,需要進行小規模的測試,因為早期優化更改比較多,需要每個節點進行更新,因此最好在小范圍內操作,改變拓撲結構進行測試也方便。這個測試環境還必須很穩定,節點之間的信號不要變化太大,否則早期測試的時候會引入很多的變量,測試快要結束的時候,才可以放入嘈雜的環境,進行穩定性測試。
如圖4所示,測試節點懸掛在通道的兩側,離地面2 m左右,彼此間的通訊不會因為人的走動而干擾,每個節點由電線供電,也有獨立的電源開關,可以關掉其中的任意一個,制造節點損壞的現象。
如圖 5所示,在測試時,可以查找到達某個目標節點的路徑地址和路由級數,在拓撲結構圖上即可看是否是最優的路徑。通過此表,還可以查看整個路徑中最差信號強度以及節點號碼,通過此號碼,我們可以判斷哪些節點之間的信號最差,為改善網絡整體鏈路通信質量提供一個簡便的定位方法。
(3)拉遠及穩定性測試
這一階段進行大規模、干擾性測試,主要包括:
· 增加移動障礙物,影響節點之間的信號質量;
· 增加同頻段信號干擾;
· 長時間路由查找成功率測試。
3 ZLGnet性能參數
ZLGnet在無線路由中的實際測試效果如表1所示。
按照每級1 km計算(20 dbm輸出模塊ZICM2410P2在7 dbi天線下可靠視距通訊距離1.5 km),默認20級路由可以實現40 km(前后20 km)覆蓋。
無線路由協議設計還包括其他很多方面的內容,如路徑節點丟失報告機制,路徑表的老化和更新,底層重傳次數的最佳選擇,要做好一個無線路由協議棧,需要做大量路由決策及測試分析,但是相信隨著對環境變量的增加,測試環境的更多變化,ZLGnet將會越來越完善穩定。