邱樹偉,曹 蓉,侯衛(wèi)彪
(1.汕頭職業(yè)技術學院 計算機系,廣東 汕頭 515000;2.汕頭職業(yè)技術學院 自然科學系, 廣東 汕頭 515000;3.汕頭職業(yè)技術學院 現(xiàn)代教育技術中心,廣東 汕頭 515000)
射頻供能無線傳感器網(wǎng)絡(radio frequency powered wireless sensor network,RFP-WSN)由沒有配備電池的無源傳感器節(jié)點組成,節(jié)點通過環(huán)境中泛在的射頻(radio frequency,RF)信號捕獲能量,有效地解決了傳統(tǒng)無線傳感器網(wǎng)絡(wireless sensor network,WSN)中節(jié)點能量受限的問題[1,2]。RFP-WSN節(jié)點運行所需的能量來自于電視塔、蜂窩基站或Wi-Fi等通信設施所發(fā)射的RF信號,能量捕獲功率極低,文獻[3]指出,RFP-WSN節(jié)點從RF信號中捕獲能量的功率通常只有μW級。在能量捕獲功率如此之極的情況下,節(jié)點用于數(shù)據(jù)傳輸?shù)墓β室搽S之降低,這會導致無線鏈路的誤碼率(bit error rate,BER)增加。而且,由于無線鏈路時常會受到周圍電磁信號的干擾,無線鏈路的質(zhì)量極不穩(wěn)定。因此,設計一種能充分考慮鏈路質(zhì)量的數(shù)據(jù)傳輸策略以提高無線鏈路的吞吐率是十分重要的。這是本文的研究動機所在。
在基于IEEE 802.11標準的無線域局網(wǎng)(wireless local area network,WLAN)[4]和基于IEEE 802.15.4標準的無線個域網(wǎng)(wireless personal area network,WPAN)[5]中,自動請求重傳機制(automatic repeat request mechanism,ARQM)被廣泛采用。ARQM的主要不足在于:只要接收方接收到的數(shù)據(jù)包出現(xiàn)比特錯,發(fā)送方就需要重傳整個數(shù)據(jù)包,直到接收方正確收到數(shù)據(jù)包或重傳次數(shù)達到上限為止。誠然,在鏈路質(zhì)量較好時,ARQM能很好地工作,但是,在鏈路質(zhì)量較差的情況下,頻繁的比特錯會觸發(fā)頻繁的數(shù)據(jù)包重傳,這不僅會浪費帶寬,而且會增加收發(fā)雙方的傳輸能耗和傳輸時延。
為了克服ARQM的不足,文獻[6,7]提出基于網(wǎng)絡編碼的數(shù)據(jù)傳輸方案,文獻[6,7]將一組數(shù)據(jù)包進行編碼,生成一組編碼包,接收方一旦收到固定數(shù)量的編碼包就能解碼并恢復原始的數(shù)據(jù)包。文獻[8]利用Reed-Solomon編碼,將節(jié)點的能耗、數(shù)據(jù)收集率、數(shù)據(jù)收集時延以及數(shù)據(jù)包的編碼方案整合為一個優(yōu)化問題,通過求解該優(yōu)化問題,節(jié)點能夠設置最優(yōu)的數(shù)據(jù)包編碼和重傳參數(shù)。文獻[9]提出了累積正確數(shù)據(jù)塊(gathering error-free block,GEB)傳輸方案,GEB先將數(shù)據(jù)包進行分塊,然后發(fā)送給接收方,接收方僅接收那些正確的數(shù)據(jù)塊并丟棄發(fā)生錯誤的數(shù)據(jù)塊,隨后,發(fā)送方重傳整個數(shù)據(jù)包,接著,接收方在重傳的數(shù)據(jù)包中接收另一批正確的數(shù)據(jù)塊,如此反復,直到所累積的正確數(shù)據(jù)塊能夠重組回原數(shù)據(jù)包為止。除了上述方案[6-9]之外,基于塊確認的數(shù)據(jù)分片方案(data fragmentation scheme with block ACK,DFSBA)也有助于提高帶寬利用率,在DFSBA中,節(jié)點先將數(shù)據(jù)包進行分片,再對每個分片單獨加上首部和尾部,形成小數(shù)據(jù)包,然后將這些小數(shù)據(jù)包逐個傳輸給接收方,接收方收到這些小數(shù)據(jù)包之后,向發(fā)送方回復一個確認(acknowledgement,ACK)。接收方在ACK中指明哪些小數(shù)據(jù)包出錯,發(fā)送方在收到ACK之后,僅重傳那些出錯的小數(shù)據(jù)包。
以上成果在一定程度上解決了ARQM存在的問題,然而,這些方案并沒有考慮無線鏈路質(zhì)量呈動態(tài)變化的特性,不能很好地適用于RFP-WSN。為了提高RFP-WSN中無線鏈路的吞吐率,本文提出一種鏈路質(zhì)量感知的數(shù)據(jù)傳輸策略(link quality aware data transmission strategy,LQADTS),該策略能根據(jù)當前的鏈路質(zhì)量進行傳輸機制自動切換:當鏈路質(zhì)量較好時,節(jié)點采用ARQM;當鏈路質(zhì)量較差時,節(jié)點自動切換為分塊重傳機制(blocking retransmission mechanism,BRM)。
現(xiàn)考慮RFP-WSN中任意兩個互為鄰居的節(jié)點S和R,S表示發(fā)送方,R表示接收方,以表示S和R之間的無線鏈路。RFP-WSN有一個RF供能點,不妨稱之為供能基站(power supply base station,PSBS),如前所述,它可以是電視塔、蜂窩基站或Wi-Fi接入點等通信設施。RFP-WSN節(jié)點有“能量捕獲(休眠)”和“傳輸(醒來)”這兩種狀態(tài)。首先,S和R從PSBS所發(fā)射的RF信號中捕獲能量,當S和R所捕獲的能量足夠用于傳輸時,S開始向R傳輸數(shù)據(jù),傳輸結(jié)束之后,S和R再次進入“能量捕獲(休眠)”狀態(tài)中。
在LQADTS中,節(jié)點有ARQM和BRM兩種數(shù)據(jù)傳輸機制可供選擇,其中,BRM是對GEB[9]的改進。GEB每次重傳時所傳輸?shù)氖钦麄€數(shù)據(jù)包,而BRM每次重傳時,數(shù)據(jù)包的有效載荷中僅包含上次傳輸中出錯的數(shù)據(jù)塊。值得一提的是,當數(shù)據(jù)包首部出錯時,BRM也需要重傳整個數(shù)據(jù)包,因為首部出錯會導致整個數(shù)據(jù)包無法被接收方正確識別和處理。
ARQM的主要過程如下:S發(fā)送數(shù)據(jù)包給R,發(fā)送結(jié)束后啟動重傳計時器。若R正確接收到數(shù)據(jù)包,立即向S回復一個ACK以確認數(shù)據(jù)包收到。若數(shù)據(jù)包出現(xiàn)比特錯,則R什么也不做。那么,S會在重傳計時器超時之后立即重傳數(shù)據(jù)包,若重傳次數(shù)達到事先所設定的最大重傳次數(shù),S停止發(fā)送當前數(shù)據(jù)包。ARQM的數(shù)據(jù)包格式如圖1所示。
圖1 ARQM的數(shù)據(jù)包格式
圖1中,首部包含“源地址”和“目的地址”等控制信息,尾部是幀校檢序列(frame check sequence,F(xiàn)CS),用于校檢數(shù)據(jù)包是否出錯。
BRM的主要過程如下:S先將數(shù)據(jù)包的有效載荷劃分為n塊,每個塊中包含數(shù)據(jù)和塊校驗序列(block check sequence,BCS)兩個部分,BCS用于校驗數(shù)據(jù)塊是否出錯。BRM的數(shù)據(jù)包格式如圖2所示。圖2中,首部和尾部與圖1相同,HCS(header check sequence)是頭部校驗序列,D1,D2,…,Dn和B1,B2,…,Bn分別表示n個數(shù)據(jù)和n個BCS。接著,S將數(shù)據(jù)包發(fā)送給R,R接收到數(shù)據(jù)包之后,先采用尾部中的FCS對數(shù)據(jù)包進行校驗,若正確,則向S回復一個ACK;若存在比特錯,則先采用HCS對首部進行校驗,若首部出錯,則什么也不做,等待S重傳;若首部正確,則依次采用B1,B2,…,Bn對數(shù)據(jù)塊1,數(shù)據(jù)塊2,…,數(shù)據(jù)塊n進行校驗,找出發(fā)生錯誤的數(shù)據(jù)塊,然后向S回復一個負確認(negative acknowledgement,NACK)以告知S哪些數(shù)據(jù)塊出錯。隨后,S向R重傳一個其有效載荷中僅包含出錯數(shù)據(jù)塊的數(shù)據(jù)包。如此反復,直到R成功收到n個數(shù)據(jù)塊或重傳次數(shù)達到上限為止。
圖2 BRM的數(shù)據(jù)包格式
通過對比ARQM和BRM不難看出,在數(shù)據(jù)包首部正確的前提下,BRM每次僅重傳那些出錯的數(shù)據(jù)塊,降低了能耗和時延,但增加了HCS和Bi(i=1,2,…,n)等額外開銷,降低了數(shù)據(jù)包中的有效數(shù)據(jù)(數(shù)據(jù)包中除去頭部、尾部以及校驗序列等開銷之后剩余的部分)率(effective data ratio,EDR)。而ARQM每次重傳整個數(shù)據(jù)包,增加了能耗和時延,但它沒有額外開銷,EDR較高。那么,我們可以在鏈路質(zhì)量較好(無需頻繁重傳)時,采用ARQM;在鏈路質(zhì)量較差(需要頻繁重傳)時,則采用BRM。
基于以上考慮,我們需要在數(shù)據(jù)包首部中開辟一個字段,用于指明本次傳輸采用的是ARQM還是BRM。根據(jù)IEEE 802.15.4標準,數(shù)據(jù)包首部中有3個二進制位是保留位,可以將這3個保留位定義為(transmission mechanism,TM)字段,并規(guī)定,當TM=000時,表示鏈路中收發(fā)雙方采用ARQM;當TM=111時,表示鏈路中收發(fā)雙方采用BRM。
要讓節(jié)點在ARQM和BRM之間進行切換,最為關鍵的問題在于如何讓節(jié)點感知當前的鏈路質(zhì)量,即TM字段何時設為000何時設為111。為了解決這個問題,我們給出了求解BRM中最優(yōu)分塊個數(shù)的優(yōu)化問題OP_n,以n*表示OP_n的解,根據(jù)n*的值,可以實現(xiàn)節(jié)點對鏈路質(zhì)量的感知,詳見2.4節(jié)分析。
至此,可得到LQADTS的操作流程如下:
S的操作流程:
步驟1 從RF信號中捕獲能量,持續(xù)時間為Th;
步驟2 求解OP_n得到數(shù)據(jù)包的最優(yōu)分塊個數(shù)n*;
步驟3 判斷n*是否等于1,若n*等于1,則將TM字段置為000,按圖1的格式生成數(shù)據(jù)包,采用ARQM傳輸數(shù)據(jù);若n*大于1,則將TM字段置為111,按圖2的格式生成數(shù)據(jù)包,采用BRM傳輸數(shù)據(jù);
步驟4 結(jié)束。
R的操作流程:
步驟1 從RF信號中捕獲能量,持續(xù)時間為Th;
步驟2 接收來自S的數(shù)據(jù)包,檢查數(shù)據(jù)包首部中TM字段的值,若TM=000,按ARQM接收并處理數(shù)據(jù)包;若TM=111,按BRM接收并處理數(shù)據(jù)包;
步驟3 結(jié)束。
在上述流程的步驟1中,能量捕獲時間Th由2.1節(jié)中式(3)所確定。
為了得到優(yōu)化問題OP_n,需要先對節(jié)點的能量捕獲時間、BRM中傳輸一個數(shù)據(jù)包的成功概率、平均時延等進行數(shù)學建模與分析。
在鏈路中,節(jié)點S和R的能量捕獲時間對該鏈路的吞吐率有著重要的影響。以Ph表示節(jié)點的能量捕獲功率,由Friss傳輸方程[10]可知
(1)
其中,Gs和Gr分別表示PSBS和節(jié)點的天線增益,λ是電磁波的波長,Plost是路徑功率損耗,d是節(jié)點與PSBS之間的距離,Ps是PSBS的發(fā)送功率,μ是RF信號轉(zhuǎn)換為電能的效率系數(shù)。
以e0表示節(jié)點的初始能量,以eth表示節(jié)點運行的能量閾值(只有當S和R這兩個節(jié)點的剩余能量均大于或等于eth時,S才開始傳輸數(shù)據(jù))。以τ表示節(jié)點從初始能量e0開始捕獲能量直至其剩余能量達到eth所持續(xù)的時間,利用式(1)可得
τ=(eth-e0)/Ph
(2)
由式(1)可知,節(jié)點的能量捕獲功率與距離d有關,當S和R與PSBS的距離不同時,它們各自的能量捕獲時間是不同的。以τS和τR分別表示S和R的能量捕獲時間,那么,從S和R開始捕獲能量的時刻起直至它們的剩余能量均大于或等于eth所持續(xù)的時間為
Th=max{τS,τR}
(3)
在BRM中,數(shù)據(jù)包是先分塊再傳輸?shù)?。以l表示每個數(shù)據(jù)塊的長度(單位為bit),由圖2可知
(4)
其中,LPacket表示數(shù)據(jù)包的總長度,LHead表示首部的長度,LHCS表示頭部校驗序列的長度,LFCS表示尾部的長度。
為了便于描述,下文中以字符H表示首部和HCS。以b表示鏈路的誤碼率,那么,S傳輸一個數(shù)據(jù)包給R時,H傳輸成功的概率q以及每個數(shù)據(jù)塊傳輸成功的概率p分別為
q=(1-b)LHead+LHCS
(5)
p=(1-b)l
(6)
下面,推導節(jié)點第k次傳輸成功的概率,k=1,2,…,K,K表示最大傳輸次數(shù)(即第1次傳輸加上最大重傳次數(shù))。值得注意的是,在BRM中,位于數(shù)據(jù)包尾部的FCS僅起到校驗作用,F(xiàn)CS本身是否出錯,并不會影響到數(shù)據(jù)塊是否出錯(如1.1節(jié)所述,若FCS校驗出錯,BRM會進一步采用HCS和BCS校驗數(shù)據(jù)包首部和各數(shù)據(jù)塊是否出錯,若首部和各數(shù)據(jù)塊均正確,則數(shù)據(jù)包正確),這一點與ARQM是截然不同的。因此,在推導數(shù)據(jù)包傳輸成功概率的過程中,不需要考慮數(shù)據(jù)包尾部的FCS。
設隨機事件Bkx=“第k次傳輸H+x個數(shù)據(jù)塊成功”,x=1,2,3,…,n;Dkx=“第k次傳輸H成功但有x個數(shù)據(jù)塊失敗”;Hk=“第k次傳輸H失敗”。
以Pk(x)表示節(jié)點第k次傳輸H+x個數(shù)據(jù)塊成功的概率。
首先,推導第1次傳輸成功的概率。由于第1次傳輸時,數(shù)據(jù)包中包含n個數(shù)據(jù)塊,易知,第1次傳輸成功的概率為
P1(n)=P(B1n)=qpn
(7)
接著,推導第2次傳輸成功的概率。
第2次傳輸成功有兩種情況:
第一種情況是“第1次H失敗,第2次成功”,即事件H1B2n發(fā)生。在這種情況下,有
P(H1B2n)=P(H1)P(B2nH1)=
(1-q)qpn=(1-q)P1(n)
(8)
第二種情況是“第1次H成功但有x個數(shù)據(jù)塊失敗,x=1,2,…,n,第2次成功”,即事件D11B21∪D12B22∪D13B23∪…∪D1nB2n發(fā)生。在這種情況下,有
(9)
(10)
…
(11)
綜合以上兩種情況,可得到第2次傳輸成功的概率為
(12)
以此類推,可得到第k次傳輸成功的概率為
(13)
結(jié)合式(7)和式(13),可得到求解Pk(x)的遞歸式如下
(14)
易知,節(jié)點傳輸一個數(shù)據(jù)包成功的概率為
(15)
由BRM可知,節(jié)點第1次傳輸?shù)臄?shù)據(jù)包長度為(LHead+LHCS+nl+LFCS),第2次及第2次之后的每一次傳輸可能的數(shù)據(jù)包長度分別為(LHead+LHCS+l+LFCS),(LHead+LHCS+2l+LFCS),…,(LHead+LHCS+nl+LFCS),且傳輸這些長度的數(shù)據(jù)包均有相對應的概率。將這些長度與其對應的概率相乘,再累加起來,可求得每一次傳輸?shù)钠骄?期望)比特數(shù)。以Ek(x)表示節(jié)點第k次傳輸長度為(LHead+LHCS+l+LFCS),(LHead+LHCS+2l+LFCS),…,(LHead+LHCS+xl+LFCS)的數(shù)據(jù)包及其對應概率的乘積的累加,x=1,2,…,n。與式(14)的推導過程類似,可得到Ek(x)的遞歸式如下
(16)
(18)
以M表示S向R傳輸數(shù)據(jù)包的總個數(shù),則鏈路中的吞吐率為
(19)
其中,LBCS表示BCS的長度。
由式(19)可以看出,分塊個數(shù)n的選取對吞吐率有重要的影響。結(jié)合圖2我們也可以看到,當n較小時,每個數(shù)據(jù)塊較長,有效數(shù)據(jù)增加,冗余開銷減少,但重傳的能耗和時延也會增加;反之,當n較大時,每個數(shù)據(jù)塊較短,有效數(shù)據(jù)降低,冗余開銷增加,但重傳的能耗和時延會降低。那么,我們可以通過優(yōu)化n的選取,使得鏈路的吞吐率最大。于是,得到優(yōu)化問題OP_n如下
(20)
式中:nmin和nmax分別表示分塊個數(shù)的下界和上界,nmin和nmax的取值見第3節(jié)分析。通過求解式(20)可得到數(shù)據(jù)包分塊個數(shù)的最優(yōu)值n*,當n*=1時,說明在當前鏈路環(huán)境下,數(shù)據(jù)包分為1塊吞吐率最大,此時鏈路質(zhì)量較好,由圖2我們注意到,當數(shù)據(jù)包僅分為1塊時,相比于圖1,它增加了HCS和B1這兩部分的開銷,而實際上,在數(shù)據(jù)包僅分為1塊的情況下,HCS和B1是沒有必要的,因此,可設置數(shù)據(jù)包頭部中TM字段為000,采用ARQM進行傳輸;當n*>1時,說明當前鏈路質(zhì)量較差,需要將數(shù)據(jù)包分為2塊以上(含2塊)才能使吞吐率最大,那么,可設置TM字段為111,采用BRM進行傳輸。求解式(20)的方法詳見第3節(jié)。
為了驗證LQADTS的性能,采用MATLAB R2012b進行仿真實驗,參數(shù)設置見表1。
表1 仿真參數(shù)
此外,在式(20)中,取nmin=1,同時,為了保證數(shù)據(jù)包的傳輸效率,我們令每個數(shù)據(jù)塊的長度不小于LHead+LHCS,可得到nmax的計算公式如下
(21)
根據(jù)表1的參數(shù)值,可求得nmax=11。即在式(20)中,n∈[1,11],可通過枚舉法求解最優(yōu)分塊個數(shù)n*。
我們將LQADTS與GEB和DFSBA進行比較。在實驗中,分別設置鏈路的誤碼率BER=1000-1,2000-1,3000-1,4000-1,5000-1。S和R與PSBS之間的距離在5 m至15 m之間隨機選取,S向R傳輸?shù)臄?shù)據(jù)包個數(shù)M=5000,節(jié)點接收或發(fā)送1比特數(shù)據(jù)的能耗為10 nJ。以上實驗重復做500次并對實驗結(jié)果取平均值。
實驗中,我們分別對比了鏈路的吞吐率、有效數(shù)據(jù)率和收發(fā)雙方的能耗等性能指標。其中,吞吐率=R接收到的有效數(shù)據(jù)的總比特數(shù)/(能量捕獲時間+數(shù)據(jù)包傳輸總時延),有效數(shù)據(jù)率=R接收到的有效數(shù)據(jù)的總比特數(shù)/S向R發(fā)送的總比特數(shù)。實驗結(jié)果如圖3~圖5所示。
圖3 吞吐率對比
圖4 有效數(shù)據(jù)率對比
圖5 能耗對比
從圖3~圖5可以看出,LQADTS在吞吐率、EDR和能耗等方面均優(yōu)于GEB和DFSBA。主要原因是LQADTS能根據(jù)鏈路的質(zhì)量在ARQM和RBM之間進行切換,在信道質(zhì)量較好時,采用ARQM能確保數(shù)據(jù)包中的EDR較高,而在信道質(zhì)量不好時,采用BRM則能夠確保在重傳數(shù)據(jù)包時,僅重傳出錯的數(shù)據(jù)塊,降低能耗和時延。雖然GEB和DSFSBA也對數(shù)據(jù)包進行分塊,但GEB在數(shù)據(jù)包出錯時重傳的是整個數(shù)據(jù)包,而DFSBA在對數(shù)據(jù)包進行分片之后為每個分片單獨加上首部和尾部形成小數(shù)據(jù)包,雖然小數(shù)據(jù)包的傳輸成功率較高,但增加了額外的首部和尾部開銷,降低了EDR且增加了能耗和時延,最為關鍵的是,GEB和DFSBA均采用固定的數(shù)據(jù)傳輸機制,缺乏對動態(tài)鏈路質(zhì)量的有效支持。
總之,LQADTS克服了GEB和DFSBA存在的不足,能明顯提高RFP-WSN中無線鏈路的性能。
RFP-WSN利用環(huán)境中泛在的RF信號為節(jié)點供電,解決了傳統(tǒng)WSN中節(jié)點需要更換電池的難題,然而,RFP-WSN節(jié)點從RF信號中捕獲能量的功率和數(shù)據(jù)傳輸?shù)墓β蕵O低,無線鏈路誤碼率高且容易受到干擾,鏈路質(zhì)量呈現(xiàn)動態(tài)變化。為了高效利用RF能量,提高無線鏈路的吞吐率,本文提出了鏈路質(zhì)量感知的數(shù)據(jù)傳輸策略LQADTS,該策略能夠根據(jù)當前無線鏈路的質(zhì)量進行數(shù)據(jù)傳輸機制自動切換。實驗結(jié)果表明,LQADTS的性能優(yōu)于GEB和DFSBA,說明LQADTS是行之有效的。
從文中我們也可以看到,RFP-WSN無線鏈路的吞吐率與節(jié)點的能量捕獲時間有著密切的關系,如何根據(jù)環(huán)境中的RF能量捕獲條件對能量捕獲時間進行優(yōu)化,將是進一步努力的方向。