王振福
摘 要:為了滿足流程工業設備狀態監測的實際需求,構建了一套基于Zigbee的無線傳感網絡系統。本文介紹了Zigbee無線傳感網絡的基本架構,并詳細描述了傳感網絡中接入網關對于網絡的管理作用。包含網絡主要參數節點狀態及丟包率的計算,以及無線傳感網絡的移動性管理。
關鍵詞:Zigbee;無線傳感網絡;無線接入網關
一、引言
為了滿足工業現場特殊環境的無線數據采集要求,不僅需要Zigbee的高效率協議棧,還需要與整套無線傳感器網絡匹配的網絡管理方法來實現網絡中各種設備的協調以及配置。
接入網關作為整套系統中承上啟下的設備,負責與節點和上位機兩邊的通信。本課題實現了以接入網關為核心,對于整個網絡的管理功能:包括接入網關對于數據的管理,對節點的發射功率,信道的控制,以及對于網絡服務質量中主要參數的控制。并且對于現場中一些特殊的移動性節點,實現了一種類似于手機漫游的管理機制。
二、基于Zigbee無線接入網絡概述
ZigBee標準是基于IEEE802.15.4標準的,ZigBee協議棧分為兩部分,IEEE802.15.4處理低級MAC層和物理層協議,而ZigBee聯盟對其網絡層和API進行標準化,ZigBee節省的大部分能量歸功于專為低功率設計的IEEE802.15.4協議,各層之間通過服務接入點來實現層層之間的數據通信與協議棧管理,層層之間有兩個服務接入點,一個提供數據傳輸服務,另一個實現網絡管理。ZigBee設備在工作時,各種不同的任務在不同層次上執行,通過層的服務完成所要執行的任務。
物理層完成收發數據、激活和休眠射頻收發器、信道能量檢測、空閑信道評估、數據鏈路質量指示的功能。MAC子層提供兩種服務,MAC層數據服務和管理服務,網絡層職責為加入和離開網絡機制、應用安全幀的機制及發現和保持設備之間的路徑。應用層由應用支持子層,應用框架、ZigBee設備對象及用戶定義的應用對象。應用支持子層的作用是維護設備綁定表,它具有根據服務及需求匹配兩設備的能力,且通過邊界的設備轉發信息。
三、接入網關對無線信道的管理
為了避免不同網關所屬子網之間的通信互不干擾,為每一個網關分配一個獨有的信道,由于在節點加入網關的階段,節點開始并不知道自己將加入哪一個網關,所以我們需要在劃分出一個公有信道來為用于未加入網絡的節點入網。當節點收到網關的確認入網幀后,就跳頻至網關所屬信道進行通信,直到其離開網關。而每個網關為了在接收節點收發數據的同時,還能保證其他節點加入網絡,需要在收完數據之后切換至公有信道,來接受入網幀。
對于第一次上電的接入網關,均使用公用信道向全網絡廣播網絡建立幀,這樣所有未加入網絡節點都可以偵聽到網絡建立幀,之后接入網關切換至私有信道,首先發送同步幀,并開始接受節點發送過來的數據,當接收完一個節點的數據之后,將判斷是否有本子網的其它節點向接入網關發送數據,如果有將繼續等待數據并進行數據的管理,計算節電狀態,丟包率,否則,為了使更多節點加入網絡,接入網關將重新回到公有信道,廣播網絡建立幀。
四、主要無線網絡質量參數的計算
1.節電狀態的統計。
節電狀態主要是反映該節點當前周期,是否向網關發送了數據幀,有在線和離線兩種狀態。
由于每一個節點的更新周期不同,從一個單位時間至五個單位時間可配置,這就意味著不可以僅僅根據當前周期是否收到數據來判斷節點的狀態。在節點每一個數據幀中會將本節點當前更新周期的這一項參數傳上來。那么接入網關就可以根據這一字節來判斷出節點的更新周期。我們設節點的更新周期為Tupdate,以及節點周期內收到數據報個數Tcounter,則計算節點更新周期的算法如式4-1所示。
NodeStatus=0,Tcounter%Tupdate=0
1,Tcounter%Tupdate≠0 (4.1)
在每個節點數據更新周期,每經過一個單位時間Tcounter就會加一,當還未到節點更新數據的那個單位時間的時候,Tcounter一定會小于Tupdate的值,則Tcounter對Tupdate取余的值不為零,這就代表這個周期節點本不應該傳上數據,所以接入網關也不會在這個單位時間段內判斷節點是否發送數據。直到節點應發數據時,Tcounter與Tupdate的值吻合,此時Tcounter對Tupdate取余的值為零,所以接入網關在余值為零的那個周期即可根據節點是否傳上數據來判斷節點的狀態。這樣方式既避免了忽略本應傳遞數據的單位周期,也避免了在每一個周期頻繁等待節點發送數據,提高了網關的效率。而下一節丟包率的計算也采用了基于節點狀態的計算方式。
2.基于貝努利試驗的節點丟包率的計算。
丟包率作為反映無線傳感網絡傳輸質量的重要參數,其計算對于無線傳感器網絡系統很重要的作用。1)通過丟包率的變化,可以使用戶直觀地觀察網絡運行狀態,及早發現網絡中存在的故障。2)丟包率的變化對于網絡節點及網關的布置有著有很大的指導性意義,對于丟包率,鏈路質量等參數持續不理想的子網,可以考慮通過改變網絡設備安放的位置,直到網絡參數運行滿足工業現場的基本要求。
本課題設計并實現可以提供分時段的子網絡的32個節點的丟包率,這樣做的好處在于,當網絡運行很長時間后,整段時間的網絡可靠性下降而帶來的丟包率的變化并不明顯,不利于上位機及時發現問題,所以分時段的測量非常重要,每個時段統計一次這一時段單獨的丟包率,這樣及時網絡傳輸質量發生細微的變化,也可及時發現問題。基于上述分析,本文提出了一種基于貝努力試驗計算方法,基本思想如下:在接入網關應用層中為每一個節點設置一個環形隊列,隊列的長度為K,隊列中的每一項為節點每個數據更新周期的狀態,用0來表示離線,而用1來表示在線,當節點的周期數超過K之后,將覆蓋之前的節電狀態值,這也是分時段丟包率的核心思想。在每次網關單位周期結束之前,統計每個節點的環形隊列所有項的和,得到的就是每個節點的最近的K個周期的狀態,也就是近一百次應收數據的周期實際收到數據幀的次數。
根據上一張節點狀態統計一節所述,考慮一次包的收發過程,可能會引發兩種事件:接收方成功接收或接收方接收失敗,這等價于一次貝努利試驗。令Pi為Bernoulli隨機變量,如果包成功接收,則Pi為1,否則為0。那么,對于k次發送,包接收率能夠被定義如式4.2所示。
Prr=Pi (4.2)
由于Pi為隨機變量,根據大數定理,Prr能夠被近似地表示為E(Pi),表示平均成功接收一個包的概率。
由Prr的定義及計算公式可知,采用包接收率可以檢測出好的鏈路,能夠自適應慢速地跟蹤鏈路質量的變化。在以時間T為周期的多個時間段內,k的取值決定了評估的精度。k值越大,評估越精確,但開銷較大;k值較小,開銷較少,但評估精度不高。
將每個節點統計后的數據放入隸屬于每個節點數據區丟包率的一項,上位機就可以看到分段實時的節點丟包率,并將每一時段的丟包率記錄下來,綜合得到每天,每月甚至每年的綜合丟包率,來評估網絡任一時段,任一時長的傳輸質量。
五、結語
本文主要討論了基于Zigbee無線網絡接入網關對于整個無線傳感網絡的管理,具體論述了接入網關對于無線數據和信道的管理,以及網絡中諸如節點狀態,丟包率等對于本套系統有重要應用以及的性能參數的計算方式。
參考文獻:
[1]Willig,A.,K.Matheus,andA.Wolisz,Wireless Technology in Industrial Networks. Proceedings of the IEEE,2005.93(6):p.1130-1151.
[2]唐忠,etal.,工業無線通信技術第十二章工業無線網絡與現場總線的互連方法研究.儀器儀表標準化與計量,2008(06):p.30-32+35.
[3]夏飛,基于Z-Stack協議的無線傳感器網絡節點研究.電子元器件應用,2009(12):p.74-76.