曾 閔,郭秋梅,江 虹
(西南科技大學信息工程學院,四川 綿陽 621010)
傳統的無線傳感器網絡(wireless sensor network,WSN)通常工作于戶外,采用電池供電,主要傳送環境感知信息,對實時性要求不高。基于成本考慮,網絡節點功能單一、無線發射功率較小,并且信道監聽和抗干擾能力有限,易受到干擾,從而導致通信失敗。隨著生活水平的提高,人們對無線傳感器網絡的數據更新頻率、數據實時性和可靠性都提出了更高的要求,而傳統的無線傳感器網絡無法滿足人們日益增長的需求。
無線傳感器網絡在要求低能耗的同時,又必須滿足用戶對網絡傳輸帶寬和數據傳輸實時性的需求。例如無線傳感器網絡在商場地下車庫的應用[1]和智能安防系統[2]等方面的應用。在智能安防應用中,網絡通常布置于室內環境,無線傳感器網絡所覆蓋的無線通信范圍容易受到其他同頻率干擾,并且無線傳感器網絡需要實時監測各個檢測點狀態信息。這對無線傳感器網絡的抗干擾性和實時性,提出了較高的要求。
傳統的無線傳感器網絡通信方式有多種,如通用分組無線業務[3](general packet radio service,GPRS)、ZigBee(2.4 GHz或433 MHz)網絡[4]、WiFi(2.4 GHz或5 GHz)網絡[5]等。上述通信頻率段均屬于全球免申請工業、科學和醫療(industrial scientific medical,ISM)專用頻段,極易受到同頻段干擾[6],并且通過GPRS進行通信會產生一定的費用。針對信道干擾問題,文獻[7]和文獻[8]作了相關方面改進。但是該調整只針對信道,無線傳感器網絡節點仍然會受到干擾,并且調整后的信道會對該信道上其他節點產生二次干擾。
基于以上考慮,本文采用乒乓方式,利用無線傳感器網絡節點空余時間監聽網絡,從而進行數據發送;充分利用網絡帶寬,提高數據傳輸實時性。
無線傳感器網絡節點通常受到能量限制,其大部分時間均處于低功耗狀態(休眠)。無線傳感器網絡節點通過喚醒的方式感知數據并進行傳輸,工作狀態切換如圖1所示。無線傳感器節點在休眠狀態下無法進行數據采集和傳輸,故本文將該部分狀態進行省略,不單獨進行描述。

圖1 WSN節點工作狀態切換圖 Fig.1 Switching graph of WSN node working state
對無線傳感器網絡的路由算法、電池能耗、服務質量等方面進行較為深入的研究。路由算法有低功耗自適應集簇分層型路由協議(low energy adaptive clustering hierarchy,LEACH)[9]、Bezier曲線路由算法[10]等,但很少有針對無線數據健壯性傳輸的研究。
在眾多的路由算法中,LEACH路由算法較為經典。LEACH路由算法將無線傳感器網絡劃分為若干簇,依靠簇頭對某一區域內的節點進行管理;通過時分多址(time division multiple access,TDMA)的方式進行通信,避免同一簇內的節點相互干擾。采用TDMA的方式,在一定程度上解決了同一簇內的頻率干擾,但是降低了無線數據更新速度,相鄰簇之間也會互相干擾,導致無線數據丟失。本文采用乒乓效應的解決方案,基于現有的無線傳感器網絡硬件基礎和路由協議,在保持數據采樣率不變的同時,兼顧數據傳輸,減少數據因網絡受阻而出現的丟包現象。
傳統的無線傳感器網絡節點工作流程主要有循環獲取數據和固定頻率獲取數據2種方式,其工作流程如圖2所示。圖2(a)為方式1,即循環獲取數據,節點在任意時刻獲取數據后直接傳輸數據;圖2(b)為方式2,即固定頻率獲取數據方式,每次采集完成后再通過無線的方式進行數據傳輸。

圖2 傳統網絡節點工作流程圖 Fig.2 Workflow diagram of traditional network node
采用以上2種方式,在網絡擁塞嚴重時,會出現傳感器數據無法傳輸或節點無法固定采樣率的現象。如采用方式1,節點完成數據采集后,當監聽到網絡一直處于忙狀態,會一直處于等待數據發送狀態,而長時間監聽網絡會導致網絡節點延遲下一次數據采集。如采用方式2,雖然對方式1中時效性問題有一定程度的緩解,但是無線傳感器網絡節點每次采樣完成后依然會監聽網絡。只有在網絡出現空閑時,才會發送數據。如果在下一個采樣時刻到來時,網絡一直處于忙狀態,則無法傳輸當前采樣數據,會導致數據丟包。
針對方式1和方式2中出現的問題,本文提出基于乒乓效應的解決方式,即將無線傳感器節點分為數據獲取和數據發送2個階段,其運行流程如圖3所示。在無線傳感器節點喚醒狀態下,節點工作于數據采集狀態或數據傳輸狀態。為保證數據的可靠性,數據采集采用固定采樣周期,并且數據采集完成后不進行直接傳輸,而是將數據存于片內的先入先出存儲器(first in first out,FIFO)中。FIFO中的數據采用循環指針的方式進行存儲和發送。當無線傳感器節點完成數據采集,立即進入數據傳輸階段。數據傳輸階段又分為網絡監聽和發送2個時期。

圖3 乒乓效應工作流程圖 Fig.3 Workflow diagram of ping-pong effect
在網絡監聽時,無線傳感器網絡節點讀取FIFO數據,一旦發現網絡出現空閑,節點立即將FIFO數據上傳到網絡中。數據傳輸需滿足節點處于工作狀態、FIFO內數據1幀以上和網絡出現空閑狀態3個條件。
在數據傳輸過程中,無線傳感器節點一旦監測到以下3種事件中的任意1種,即到達采樣時刻事件、FIFO數據為空事件、信道忙事件或節點進入休眠事件,則立即退出數據傳輸。
LantronixxPico-WiFi的主要參數如表1所示。

表1 主要參數Tab.1 Main parameters
為實現上述方案,設計了無線傳感器網絡節點。該節點采用固定2 kHz數據獲取率,每次獲取8×16 bit數據并進行組幀。無線傳感器網絡節點采用12 V鋰電池供電。STM32F405微處理器作為控制核心。采用LantronixxPico-WiFi無線傳輸模塊,將STM32F405微處理器采集的數字信號轉換為無線信號。通信接口采用USART,波特率采用1.3 Mbit/s(用戶自定義模式)。
通過TL-WDR7400無線路由器建立無線網絡,采用TCP協議減少網絡環境引起的數據包丟失。LantronixxPico-WiFi設置為服務器模式,與TL-WDR7400路由器進行連接。用戶計算機采用客戶端模式與TL-WDR7400路由器進行連接。網絡結構如圖4所示。

圖4 網絡結構示意圖 Fig.4 Network structure diagram
為真實地模擬無線數據傳輸過程中受到的無線干擾,將無線傳感器網絡置于無線網絡覆蓋較為復雜的環境中,無線傳感器節點連接無線路由信號強度為-32 dBm。在無線傳感器節點所處的無線覆蓋區域內,存在14個同頻率、無線信號強度高于-80 dBm的干擾源,其中信號強度高于-70 dBm的干擾源有10個。
在驗證乒乓方法之前,本文針對傳統的方式2進行測試試驗。
試驗一為無FIFO、無干擾環境下的傳輸試驗。
將網絡環境設置為無干擾,使無線傳感器節點固定采樣頻率為2 kHz,單次采樣所發送數據幀長度為21 B,則需要傳輸的實際速率為42 KB/s,數據采樣點數為10 000點。數據采樣完成后,無線傳感器節點需要發送2.1×105B的數據包。無線傳感器網絡節點USART通信速率為1.3 Mbit/s,遠高于實際傳輸帶寬。
完成準備工作后,通過示波器觀察采樣標志信號以及UASRT發送TTL電平信號可以看出,出現2 kHz采樣標志信號后,TTL發送電平呈均勻分布的狀態。
在無干擾環境下,單次采樣所產生的21 B數據需要150 μs傳輸完成,并且采樣時間點前后數據流基本相同。傳統模式下,無干擾上位機TCP&UDP測試軟件所接收的數據包數量為2.1×105B,與理論值一致。該結果說明在無干擾環境下,當傳輸帶寬大于數據傳輸所需帶寬時,所采集的無線數據能夠完整傳輸。
試驗二為無FIFO、有干擾環境下的傳輸試驗。
將無線傳輸網絡環境處于干擾環境下,存在14個無線信號強度高于-80 dBm的干擾源。重復試驗一操作步驟,通過示波器觀察數據傳輸波形,得到試驗結果:出現2 kHz采樣標志信號后,TTL發送電平出現無均勻分布的狀態;通過TCP&UDP測試工具,觀察上位機接收數據,得到接收數據包數量為201 894個,即出現丟包現象。
在干擾環境下,無線傳感器節點完成數據采集后,直接傳輸,數據流不完整,會導致數據丟失。TCP&UDP測試工具所接收的數據包為201 894 B,所接收到的數據包小于2.1×105B,證明數據傳輸過程中發生丟包。在干擾環境下,即使傳輸帶寬大于數據傳輸所需帶寬時,無線數據也不能完整傳輸。
試驗三為有FIFO、無干擾環境下的傳輸試驗。
對乒乓方式進行測試試驗,將無線傳感器節點放置于無干擾環境,重復試驗一操作步驟。通過示波器觀察波形輸出,得到的試驗結果與試驗一一致。通過TCP&UDP測試工具所接收的數據包無丟失。在無干擾環境下,傳統傳輸方式與乒乓方式并沒有區別。
試驗四為有FIFO、有干擾環境下的傳輸試驗。
將傳輸試驗處于如試驗二相同干擾環境中,測試步驟與試驗二相同,通過示波器可得出2種現象。現象一,干擾環境下,無線信號受到干擾,流量控制導致單次采樣所產生的21 B無法一次性傳輸,并且傳輸時間為90 μs左右。現象二,單次傳輸時間達到了300 μs左右,但實際單次采樣所產生的數據需傳輸時間為150 μs,說明在本次傳輸空余時間段內,無線傳感器節點用于傳輸其他時間點所產生的無線數據。最終數據傳輸完成后,上位機軟件所接收的數據包為2.1×105B。在干擾環境下,無線傳感器網絡節點能夠對數據進行緩存;當達到帶寬條件時,再將緩存數據進行傳輸。
通過測試試驗可以看出,與傳統模式相比,當無線傳感器節點在傳輸相同數據量時,乒乓模式能夠有效利用網絡空余帶寬,實現數據完整傳輸。在網絡處于忙狀態時,無線傳感器節點將所產生的無線數據緩存于FIFO中,一旦網絡出現空閑,則進行數據傳輸。采用該方式能夠最大程度上利用網絡寬帶資源,減少數據丟包率。與此同時,FIFO設置大小、采集數據量大小以及網絡干擾程度三者緊密相關。在無線網絡長時間無法進行數據傳輸時,FIFO中的數據也會被覆蓋。所以,在實際的應用過程中,還需要對網絡環境進行評估,從而設置合適的緩存,以達到最佳的傳輸效果。
參考文獻:
[1] 呂紅芳,顧幸生.基于蟻群神經網絡的兩級信息融合算法[J].上海交通大學學報,2016,50(8):1323-1330.
[2] 楊靖,林益,李捍東,等.基于ARM和WSNs的智能家居安防系統設計[J].自動化儀表,2012,33(3):38-41.
[3] 馬為紅,范晉偉,吳華瑞,等.面向大規模、多區域的可燃氣體遠程監測預警技術[J].北京工業大學學報,2016,42(5):650-659.
[4] 滕志軍,張明儒,張力,等.認知視角下能量感知的ZigBee網絡樹型路由優化算法[J].哈爾濱工業大學學報,2016,48(11):109-115.
[5] 彭康,趙澤,陳海明,等.EasiARS:多模通信傳感網的動態WiFi鏈路接入及自適應組網方法[J].計算機研究與發展,2015(12):2736-2749.
[6] 張招亮,陳海明,黃庭培,等.無線傳感器網絡中一種抗無線局域網干擾的信道分配機制[J].計算機學報,2012,35(3):504-517.
[7] 趙澤,尚鵬飛,陳海明,等.無線傳感器網絡干擾分類識別機制的研究[J].通信學報,2013(10):28-36.
[8] 向亦宏,朱燕民.無線傳感器網絡中高效建立干擾模型的研究[J].計算機工程,2014,40(8):1-5.
[9] 黃成,張潤,吳曉蓓,等.三維空間下基于簇首優化機制的LEACH路由算法[J].南京理工大學學報(自然科學版),2015,39(2):241-245
[10]萬少華,張引.無線傳感器網絡中高能效的Bezier曲線路由算法[J].計算機研究與發展,2016,53(7):1532-1543.