曾 閔,郭秋梅,江 虹
(西南科技大學(xué)信息工程學(xué)院,四川 綿陽(yáng) 621010)
傳統(tǒng)的無線傳感器網(wǎng)絡(luò)(wireless sensor network,WSN)通常工作于戶外,采用電池供電,主要傳送環(huán)境感知信息,對(duì)實(shí)時(shí)性要求不高?;诔杀究紤],網(wǎng)絡(luò)節(jié)點(diǎn)功能單一、無線發(fā)射功率較小,并且信道監(jiān)聽和抗干擾能力有限,易受到干擾,從而導(dǎo)致通信失敗。隨著生活水平的提高,人們對(duì)無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)更新頻率、數(shù)據(jù)實(shí)時(shí)性和可靠性都提出了更高的要求,而傳統(tǒng)的無線傳感器網(wǎng)絡(luò)無法滿足人們?nèi)找嬖鲩L(zhǎng)的需求。
無線傳感器網(wǎng)絡(luò)在要求低能耗的同時(shí),又必須滿足用戶對(duì)網(wǎng)絡(luò)傳輸帶寬和數(shù)據(jù)傳輸實(shí)時(shí)性的需求。例如無線傳感器網(wǎng)絡(luò)在商場(chǎng)地下車庫(kù)的應(yīng)用[1]和智能安防系統(tǒng)[2]等方面的應(yīng)用。在智能安防應(yīng)用中,網(wǎng)絡(luò)通常布置于室內(nèi)環(huán)境,無線傳感器網(wǎng)絡(luò)所覆蓋的無線通信范圍容易受到其他同頻率干擾,并且無線傳感器網(wǎng)絡(luò)需要實(shí)時(shí)監(jiān)測(cè)各個(gè)檢測(cè)點(diǎn)狀態(tài)信息。這對(duì)無線傳感器網(wǎng)絡(luò)的抗干擾性和實(shí)時(shí)性,提出了較高的要求。
傳統(tǒng)的無線傳感器網(wǎng)絡(luò)通信方式有多種,如通用分組無線業(yè)務(wù)[3](general packet radio service,GPRS)、ZigBee(2.4 GHz或433 MHz)網(wǎng)絡(luò)[4]、WiFi(2.4 GHz或5 GHz)網(wǎng)絡(luò)[5]等。上述通信頻率段均屬于全球免申請(qǐng)工業(yè)、科學(xué)和醫(yī)療(industrial scientific medical,ISM)專用頻段,極易受到同頻段干擾[6],并且通過GPRS進(jìn)行通信會(huì)產(chǎn)生一定的費(fèi)用。針對(duì)信道干擾問題,文獻(xiàn)[7]和文獻(xiàn)[8]作了相關(guān)方面改進(jìn)。但是該調(diào)整只針對(duì)信道,無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)仍然會(huì)受到干擾,并且調(diào)整后的信道會(huì)對(duì)該信道上其他節(jié)點(diǎn)產(chǎn)生二次干擾。
基于以上考慮,本文采用乒乓方式,利用無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)空余時(shí)間監(jiān)聽網(wǎng)絡(luò),從而進(jìn)行數(shù)據(jù)發(fā)送;充分利用網(wǎng)絡(luò)帶寬,提高數(shù)據(jù)傳輸實(shí)時(shí)性。
無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)通常受到能量限制,其大部分時(shí)間均處于低功耗狀態(tài)(休眠)。無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)通過喚醒的方式感知數(shù)據(jù)并進(jìn)行傳輸,工作狀態(tài)切換如圖1所示。無線傳感器節(jié)點(diǎn)在休眠狀態(tài)下無法進(jìn)行數(shù)據(jù)采集和傳輸,故本文將該部分狀態(tài)進(jìn)行省略,不單獨(dú)進(jìn)行描述。
圖1 WSN節(jié)點(diǎn)工作狀態(tài)切換圖 Fig.1 Switching graph of WSN node working state
對(duì)無線傳感器網(wǎng)絡(luò)的路由算法、電池能耗、服務(wù)質(zhì)量等方面進(jìn)行較為深入的研究。路由算法有低功耗自適應(yīng)集簇分層型路由協(xié)議(low energy adaptive clustering hierarchy,LEACH)[9]、Bezier曲線路由算法[10]等,但很少有針對(duì)無線數(shù)據(jù)健壯性傳輸?shù)难芯俊?/p>
在眾多的路由算法中,LEACH路由算法較為經(jīng)典。LEACH路由算法將無線傳感器網(wǎng)絡(luò)劃分為若干簇,依靠簇頭對(duì)某一區(qū)域內(nèi)的節(jié)點(diǎn)進(jìn)行管理;通過時(shí)分多址(time division multiple access,TDMA)的方式進(jìn)行通信,避免同一簇內(nèi)的節(jié)點(diǎn)相互干擾。采用TDMA的方式,在一定程度上解決了同一簇內(nèi)的頻率干擾,但是降低了無線數(shù)據(jù)更新速度,相鄰簇之間也會(huì)互相干擾,導(dǎo)致無線數(shù)據(jù)丟失。本文采用乒乓效應(yīng)的解決方案,基于現(xiàn)有的無線傳感器網(wǎng)絡(luò)硬件基礎(chǔ)和路由協(xié)議,在保持?jǐn)?shù)據(jù)采樣率不變的同時(shí),兼顧數(shù)據(jù)傳輸,減少數(shù)據(jù)因網(wǎng)絡(luò)受阻而出現(xiàn)的丟包現(xiàn)象。
傳統(tǒng)的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)工作流程主要有循環(huán)獲取數(shù)據(jù)和固定頻率獲取數(shù)據(jù)2種方式,其工作流程如圖2所示。圖2(a)為方式1,即循環(huán)獲取數(shù)據(jù),節(jié)點(diǎn)在任意時(shí)刻獲取數(shù)據(jù)后直接傳輸數(shù)據(jù);圖2(b)為方式2,即固定頻率獲取數(shù)據(jù)方式,每次采集完成后再通過無線的方式進(jìn)行數(shù)據(jù)傳輸。
圖2 傳統(tǒng)網(wǎng)絡(luò)節(jié)點(diǎn)工作流程圖 Fig.2 Workflow diagram of traditional network node
采用以上2種方式,在網(wǎng)絡(luò)擁塞嚴(yán)重時(shí),會(huì)出現(xiàn)傳感器數(shù)據(jù)無法傳輸或節(jié)點(diǎn)無法固定采樣率的現(xiàn)象。如采用方式1,節(jié)點(diǎn)完成數(shù)據(jù)采集后,當(dāng)監(jiān)聽到網(wǎng)絡(luò)一直處于忙狀態(tài),會(huì)一直處于等待數(shù)據(jù)發(fā)送狀態(tài),而長(zhǎng)時(shí)間監(jiān)聽網(wǎng)絡(luò)會(huì)導(dǎo)致網(wǎng)絡(luò)節(jié)點(diǎn)延遲下一次數(shù)據(jù)采集。如采用方式2,雖然對(duì)方式1中時(shí)效性問題有一定程度的緩解,但是無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)每次采樣完成后依然會(huì)監(jiān)聽網(wǎng)絡(luò)。只有在網(wǎng)絡(luò)出現(xiàn)空閑時(shí),才會(huì)發(fā)送數(shù)據(jù)。如果在下一個(gè)采樣時(shí)刻到來時(shí),網(wǎng)絡(luò)一直處于忙狀態(tài),則無法傳輸當(dāng)前采樣數(shù)據(jù),會(huì)導(dǎo)致數(shù)據(jù)丟包。
針對(duì)方式1和方式2中出現(xiàn)的問題,本文提出基于乒乓效應(yīng)的解決方式,即將無線傳感器節(jié)點(diǎn)分為數(shù)據(jù)獲取和數(shù)據(jù)發(fā)送2個(gè)階段,其運(yùn)行流程如圖3所示。在無線傳感器節(jié)點(diǎn)喚醒狀態(tài)下,節(jié)點(diǎn)工作于數(shù)據(jù)采集狀態(tài)或數(shù)據(jù)傳輸狀態(tài)。為保證數(shù)據(jù)的可靠性,數(shù)據(jù)采集采用固定采樣周期,并且數(shù)據(jù)采集完成后不進(jìn)行直接傳輸,而是將數(shù)據(jù)存于片內(nèi)的先入先出存儲(chǔ)器(first in first out,F(xiàn)IFO)中。FIFO中的數(shù)據(jù)采用循環(huán)指針的方式進(jìn)行存儲(chǔ)和發(fā)送。當(dāng)無線傳感器節(jié)點(diǎn)完成數(shù)據(jù)采集,立即進(jìn)入數(shù)據(jù)傳輸階段。數(shù)據(jù)傳輸階段又分為網(wǎng)絡(luò)監(jiān)聽和發(fā)送2個(gè)時(shí)期。
圖3 乒乓效應(yīng)工作流程圖 Fig.3 Workflow diagram of ping-pong effect
在網(wǎng)絡(luò)監(jiān)聽時(shí),無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)讀取FIFO數(shù)據(jù),一旦發(fā)現(xiàn)網(wǎng)絡(luò)出現(xiàn)空閑,節(jié)點(diǎn)立即將FIFO數(shù)據(jù)上傳到網(wǎng)絡(luò)中。數(shù)據(jù)傳輸需滿足節(jié)點(diǎn)處于工作狀態(tài)、FIFO內(nèi)數(shù)據(jù)1幀以上和網(wǎng)絡(luò)出現(xiàn)空閑狀態(tài)3個(gè)條件。
在數(shù)據(jù)傳輸過程中,無線傳感器節(jié)點(diǎn)一旦監(jiān)測(cè)到以下3種事件中的任意1種,即到達(dá)采樣時(shí)刻事件、FIFO數(shù)據(jù)為空事件、信道忙事件或節(jié)點(diǎn)進(jìn)入休眠事件,則立即退出數(shù)據(jù)傳輸。
LantronixxPico-WiFi的主要參數(shù)如表1所示。
表1 主要參數(shù)Tab.1 Main parameters
為實(shí)現(xiàn)上述方案,設(shè)計(jì)了無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)。該節(jié)點(diǎn)采用固定2 kHz數(shù)據(jù)獲取率,每次獲取8×16 bit數(shù)據(jù)并進(jìn)行組幀。無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)采用12 V鋰電池供電。STM32F405微處理器作為控制核心。采用LantronixxPico-WiFi無線傳輸模塊,將STM32F405微處理器采集的數(shù)字信號(hào)轉(zhuǎn)換為無線信號(hào)。通信接口采用USART,波特率采用1.3 Mbit/s(用戶自定義模式)。
通過TL-WDR7400無線路由器建立無線網(wǎng)絡(luò),采用TCP協(xié)議減少網(wǎng)絡(luò)環(huán)境引起的數(shù)據(jù)包丟失。LantronixxPico-WiFi設(shè)置為服務(wù)器模式,與TL-WDR7400路由器進(jìn)行連接。用戶計(jì)算機(jī)采用客戶端模式與TL-WDR7400路由器進(jìn)行連接。網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 網(wǎng)絡(luò)結(jié)構(gòu)示意圖 Fig.4 Network structure diagram
為真實(shí)地模擬無線數(shù)據(jù)傳輸過程中受到的無線干擾,將無線傳感器網(wǎng)絡(luò)置于無線網(wǎng)絡(luò)覆蓋較為復(fù)雜的環(huán)境中,無線傳感器節(jié)點(diǎn)連接無線路由信號(hào)強(qiáng)度為-32 dBm。在無線傳感器節(jié)點(diǎn)所處的無線覆蓋區(qū)域內(nèi),存在14個(gè)同頻率、無線信號(hào)強(qiáng)度高于-80 dBm的干擾源,其中信號(hào)強(qiáng)度高于-70 dBm的干擾源有10個(gè)。
在驗(yàn)證乒乓方法之前,本文針對(duì)傳統(tǒng)的方式2進(jìn)行測(cè)試試驗(yàn)。
試驗(yàn)一為無FIFO、無干擾環(huán)境下的傳輸試驗(yàn)。
將網(wǎng)絡(luò)環(huán)境設(shè)置為無干擾,使無線傳感器節(jié)點(diǎn)固定采樣頻率為2 kHz,單次采樣所發(fā)送數(shù)據(jù)幀長(zhǎng)度為21 B,則需要傳輸?shù)膶?shí)際速率為42 KB/s,數(shù)據(jù)采樣點(diǎn)數(shù)為10 000點(diǎn)。數(shù)據(jù)采樣完成后,無線傳感器節(jié)點(diǎn)需要發(fā)送2.1×105B的數(shù)據(jù)包。無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)USART通信速率為1.3 Mbit/s,遠(yuǎn)高于實(shí)際傳輸帶寬。
完成準(zhǔn)備工作后,通過示波器觀察采樣標(biāo)志信號(hào)以及UASRT發(fā)送TTL電平信號(hào)可以看出,出現(xiàn)2 kHz采樣標(biāo)志信號(hào)后,TTL發(fā)送電平呈均勻分布的狀態(tài)。
在無干擾環(huán)境下,單次采樣所產(chǎn)生的21 B數(shù)據(jù)需要150 μs傳輸完成,并且采樣時(shí)間點(diǎn)前后數(shù)據(jù)流基本相同。傳統(tǒng)模式下,無干擾上位機(jī)TCP&UDP測(cè)試軟件所接收的數(shù)據(jù)包數(shù)量為2.1×105B,與理論值一致。該結(jié)果說明在無干擾環(huán)境下,當(dāng)傳輸帶寬大于數(shù)據(jù)傳輸所需帶寬時(shí),所采集的無線數(shù)據(jù)能夠完整傳輸。
試驗(yàn)二為無FIFO、有干擾環(huán)境下的傳輸試驗(yàn)。
將無線傳輸網(wǎng)絡(luò)環(huán)境處于干擾環(huán)境下,存在14個(gè)無線信號(hào)強(qiáng)度高于-80 dBm的干擾源。重復(fù)試驗(yàn)一操作步驟,通過示波器觀察數(shù)據(jù)傳輸波形,得到試驗(yàn)結(jié)果:出現(xiàn)2 kHz采樣標(biāo)志信號(hào)后,TTL發(fā)送電平出現(xiàn)無均勻分布的狀態(tài);通過TCP&UDP測(cè)試工具,觀察上位機(jī)接收數(shù)據(jù),得到接收數(shù)據(jù)包數(shù)量為201 894個(gè),即出現(xiàn)丟包現(xiàn)象。
在干擾環(huán)境下,無線傳感器節(jié)點(diǎn)完成數(shù)據(jù)采集后,直接傳輸,數(shù)據(jù)流不完整,會(huì)導(dǎo)致數(shù)據(jù)丟失。TCP&UDP測(cè)試工具所接收的數(shù)據(jù)包為201 894 B,所接收到的數(shù)據(jù)包小于2.1×105B,證明數(shù)據(jù)傳輸過程中發(fā)生丟包。在干擾環(huán)境下,即使傳輸帶寬大于數(shù)據(jù)傳輸所需帶寬時(shí),無線數(shù)據(jù)也不能完整傳輸。
試驗(yàn)三為有FIFO、無干擾環(huán)境下的傳輸試驗(yàn)。
對(duì)乒乓方式進(jìn)行測(cè)試試驗(yàn),將無線傳感器節(jié)點(diǎn)放置于無干擾環(huán)境,重復(fù)試驗(yàn)一操作步驟。通過示波器觀察波形輸出,得到的試驗(yàn)結(jié)果與試驗(yàn)一一致。通過TCP&UDP測(cè)試工具所接收的數(shù)據(jù)包無丟失。在無干擾環(huán)境下,傳統(tǒng)傳輸方式與乒乓方式并沒有區(qū)別。
試驗(yàn)四為有FIFO、有干擾環(huán)境下的傳輸試驗(yàn)。
將傳輸試驗(yàn)處于如試驗(yàn)二相同干擾環(huán)境中,測(cè)試步驟與試驗(yàn)二相同,通過示波器可得出2種現(xiàn)象?,F(xiàn)象一,干擾環(huán)境下,無線信號(hào)受到干擾,流量控制導(dǎo)致單次采樣所產(chǎn)生的21 B無法一次性傳輸,并且傳輸時(shí)間為90 μs左右?,F(xiàn)象二,單次傳輸時(shí)間達(dá)到了300 μs左右,但實(shí)際單次采樣所產(chǎn)生的數(shù)據(jù)需傳輸時(shí)間為150 μs,說明在本次傳輸空余時(shí)間段內(nèi),無線傳感器節(jié)點(diǎn)用于傳輸其他時(shí)間點(diǎn)所產(chǎn)生的無線數(shù)據(jù)。最終數(shù)據(jù)傳輸完成后,上位機(jī)軟件所接收的數(shù)據(jù)包為2.1×105B。在干擾環(huán)境下,無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)能夠?qū)?shù)據(jù)進(jìn)行緩存;當(dāng)達(dá)到帶寬條件時(shí),再將緩存數(shù)據(jù)進(jìn)行傳輸。
通過測(cè)試試驗(yàn)可以看出,與傳統(tǒng)模式相比,當(dāng)無線傳感器節(jié)點(diǎn)在傳輸相同數(shù)據(jù)量時(shí),乒乓模式能夠有效利用網(wǎng)絡(luò)空余帶寬,實(shí)現(xiàn)數(shù)據(jù)完整傳輸。在網(wǎng)絡(luò)處于忙狀態(tài)時(shí),無線傳感器節(jié)點(diǎn)將所產(chǎn)生的無線數(shù)據(jù)緩存于FIFO中,一旦網(wǎng)絡(luò)出現(xiàn)空閑,則進(jìn)行數(shù)據(jù)傳輸。采用該方式能夠最大程度上利用網(wǎng)絡(luò)寬帶資源,減少數(shù)據(jù)丟包率。與此同時(shí),F(xiàn)IFO設(shè)置大小、采集數(shù)據(jù)量大小以及網(wǎng)絡(luò)干擾程度三者緊密相關(guān)。在無線網(wǎng)絡(luò)長(zhǎng)時(shí)間無法進(jìn)行數(shù)據(jù)傳輸時(shí),F(xiàn)IFO中的數(shù)據(jù)也會(huì)被覆蓋。所以,在實(shí)際的應(yīng)用過程中,還需要對(duì)網(wǎng)絡(luò)環(huán)境進(jìn)行評(píng)估,從而設(shè)置合適的緩存,以達(dá)到最佳的傳輸效果。
參考文獻(xiàn):
[1] 呂紅芳,顧幸生.基于蟻群神經(jīng)網(wǎng)絡(luò)的兩級(jí)信息融合算法[J].上海交通大學(xué)學(xué)報(bào),2016,50(8):1323-1330.
[2] 楊靖,林益,李捍東,等.基于ARM和WSNs的智能家居安防系統(tǒng)設(shè)計(jì)[J].自動(dòng)化儀表,2012,33(3):38-41.
[3] 馬為紅,范晉偉,吳華瑞,等.面向大規(guī)模、多區(qū)域的可燃?xì)怏w遠(yuǎn)程監(jiān)測(cè)預(yù)警技術(shù)[J].北京工業(yè)大學(xué)學(xué)報(bào),2016,42(5):650-659.
[4] 滕志軍,張明儒,張力,等.認(rèn)知視角下能量感知的ZigBee網(wǎng)絡(luò)樹型路由優(yōu)化算法[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2016,48(11):109-115.
[5] 彭康,趙澤,陳海明,等.EasiARS:多模通信傳感網(wǎng)的動(dòng)態(tài)WiFi鏈路接入及自適應(yīng)組網(wǎng)方法[J].計(jì)算機(jī)研究與發(fā)展,2015(12):2736-2749.
[6] 張招亮,陳海明,黃庭培,等.無線傳感器網(wǎng)絡(luò)中一種抗無線局域網(wǎng)干擾的信道分配機(jī)制[J].計(jì)算機(jī)學(xué)報(bào),2012,35(3):504-517.
[7] 趙澤,尚鵬飛,陳海明,等.無線傳感器網(wǎng)絡(luò)干擾分類識(shí)別機(jī)制的研究[J].通信學(xué)報(bào),2013(10):28-36.
[8] 向亦宏,朱燕民.無線傳感器網(wǎng)絡(luò)中高效建立干擾模型的研究[J].計(jì)算機(jī)工程,2014,40(8):1-5.
[9] 黃成,張潤(rùn),吳曉蓓,等.三維空間下基于簇首優(yōu)化機(jī)制的LEACH路由算法[J].南京理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,39(2):241-245
[10]萬(wàn)少華,張引.無線傳感器網(wǎng)絡(luò)中高能效的Bezier曲線路由算法[J].計(jì)算機(jī)研究與發(fā)展,2016,53(7):1532-1543.