射频供能传感网链路质量感知的数据传输策略
2018-08-17邱树伟侯卫彪
邱树伟,曹 蓉,侯卫彪
(1.汕头职业技术学院 计算机系,广东 汕头 515000;2.汕头职业技术学院 自然科学系, 广东 汕头 515000;3.汕头职业技术学院 现代教育技术中心,广东 汕头 515000)
0 引 言
射频供能无线传感器网络(radio frequency powered wireless sensor network,RFP-WSN)由没有配备电池的无源传感器节点组成,节点通过环境中泛在的射频(radio frequency,RF)信号捕获能量,有效地解决了传统无线传感器网络(wireless sensor network,WSN)中节点能量受限的问题[1,2]。RFP-WSN节点运行所需的能量来自于电视塔、蜂窝基站或Wi-Fi等通信设施所发射的RF信号,能量捕获功率极低,文献[3]指出,RFP-WSN节点从RF信号中捕获能量的功率通常只有μW级。在能量捕获功率如此之极的情况下,节点用于数据传输的功率也随之降低,这会导致无线链路的误码率(bit error rate,BER)增加。而且,由于无线链路时常会受到周围电磁信号的干扰,无线链路的质量极不稳定。因此,设计一种能充分考虑链路质量的数据传输策略以提高无线链路的吞吐率是十分重要的。这是本文的研究动机所在。
在基于IEEE 802.11标准的无线域局网(wireless local area network,WLAN)[4]和基于IEEE 802.15.4标准的无线个域网(wireless personal area network,WPAN)[5]中,自动请求重传机制(automatic repeat request mechanism,ARQM)被广泛采用。ARQM的主要不足在于:只要接收方接收到的数据包出现比特错,发送方就需要重传整个数据包,直到接收方正确收到数据包或重传次数达到上限为止。诚然,在链路质量较好时,ARQM能很好地工作,但是,在链路质量较差的情况下,频繁的比特错会触发频繁的数据包重传,这不仅会浪费带宽,而且会增加收发双方的传输能耗和传输时延。
为了克服ARQM的不足,文献[6,7]提出基于网络编码的数据传输方案,文献[6,7]将一组数据包进行编码,生成一组编码包,接收方一旦收到固定数量的编码包就能解码并恢复原始的数据包。文献[8]利用Reed-Solomon编码,将节点的能耗、数据收集率、数据收集时延以及数据包的编码方案整合为一个优化问题,通过求解该优化问题,节点能够设置最优的数据包编码和重传参数。文献[9]提出了累积正确数据块(gathering error-free block,GEB)传输方案,GEB先将数据包进行分块,然后发送给接收方,接收方仅接收那些正确的数据块并丢弃发生错误的数据块,随后,发送方重传整个数据包,接着,接收方在重传的数据包中接收另一批正确的数据块,如此反复,直到所累积的正确数据块能够重组回原数据包为止。除了上述方案[6-9]之外,基于块确认的数据分片方案(data fragmentation scheme with block ACK,DFSBA)也有助于提高带宽利用率,在DFSBA中,节点先将数据包进行分片,再对每个分片单独加上首部和尾部,形成小数据包,然后将这些小数据包逐个传输给接收方,接收方收到这些小数据包之后,向发送方回复一个确认(acknowledgement,ACK)。接收方在ACK中指明哪些小数据包出错,发送方在收到ACK之后,仅重传那些出错的小数据包。
以上成果在一定程度上解决了ARQM存在的问题,然而,这些方案并没有考虑无线链路质量呈动态变化的特性,不能很好地适用于RFP-WSN。为了提高RFP-WSN中无线链路的吞吐率,本文提出一种链路质量感知的数据传输策略(link quality aware data transmission strategy,LQADTS),该策略能根据当前的链路质量进行传输机制自动切换:当链路质量较好时,节点采用ARQM;当链路质量较差时,节点自动切换为分块重传机制(blocking retransmission mechanism,BRM)。
1 LQADTS策略
现考虑RFP-WSN中任意两个互为邻居的节点S和R,S表示发送方,R表示接收方,以表示S和R之间的无线链路。RFP-WSN有一个RF供能点,不妨称之为供能基站(power supply base station,PSBS),如前所述,它可以是电视塔、蜂窝基站或Wi-Fi接入点等通信设施。RFP-WSN节点有“能量捕获(休眠)”和“传输(醒来)”这两种状态。首先,S和R从PSBS所发射的RF信号中捕获能量,当S和R所捕获的能量足够用于传输时,S开始向R传输数据,传输结束之后,S和R再次进入“能量捕获(休眠)”状态中。
1.1 ARQM和BRM
在LQADTS中,节点有ARQM和BRM两种数据传输机制可供选择,其中,BRM是对GEB[9]的改进。GEB每次重传时所传输的是整个数据包,而BRM每次重传时,数据包的有效载荷中仅包含上次传输中出错的数据块。值得一提的是,当数据包首部出错时,BRM也需要重传整个数据包,因为首部出错会导致整个数据包无法被接收方正确识别和处理。
ARQM的主要过程如下:S发送数据包给R,发送结束后启动重传计时器。若R正确接收到数据包,立即向S回复一个ACK以确认数据包收到。若数据包出现比特错,则R什么也不做。那么,S会在重传计时器超时之后立即重传数据包,若重传次数达到事先所设定的最大重传次数,S停止发送当前数据包。ARQM的数据包格式如图1所示。
图1 ARQM的数据包格式
图1中,首部包含“源地址”和“目的地址”等控制信息,尾部是帧校检序列(frame check sequence,FCS),用于校检数据包是否出错。
BRM的主要过程如下:S先将数据包的有效载荷划分为n块,每个块中包含数据和块校验序列(block check sequence,BCS)两个部分,BCS用于校验数据块是否出错。BRM的数据包格式如图2所示。图2中,首部和尾部与图1相同,HCS(header check sequence)是头部校验序列,D1,D2,…,Dn和B1,B2,…,Bn分别表示n个数据和n个BCS。接着,S将数据包发送给R,R接收到数据包之后,先采用尾部中的FCS对数据包进行校验,若正确,则向S回复一个ACK;若存在比特错,则先采用HCS对首部进行校验,若首部出错,则什么也不做,等待S重传;若首部正确,则依次采用B1,B2,…,Bn对数据块1,数据块2,…,数据块n进行校验,找出发生错误的数据块,然后向S回复一个负确认(negative acknowledgement,NACK)以告知S哪些数据块出错。随后,S向R重传一个其有效载荷中仅包含出错数据块的数据包。如此反复,直到R成功收到n个数据块或重传次数达到上限为止。
图2 BRM的数据包格式
1.2 LQADTS策略的操作流程
通过对比ARQM和BRM不难看出,在数据包首部正确的前提下,BRM每次仅重传那些出错的数据块,降低了能耗和时延,但增加了HCS和Bi(i=1,2,…,n)等额外开销,降低了数据包中的有效数据(数据包中除去头部、尾部以及校验序列等开销之后剩余的部分)率(effective data ratio,EDR)。而ARQM每次重传整个数据包,增加了能耗和时延,但它没有额外开销,EDR较高。那么,我们可以在链路质量较好(无需频繁重传)时,采用ARQM;在链路质量较差(需要频繁重传)时,则采用BRM。
基于以上考虑,我们需要在数据包首部中开辟一个字段,用于指明本次传输采用的是ARQM还是BRM。根据IEEE 802.15.4标准,数据包首部中有3个二进制位是保留位,可以将这3个保留位定义为(transmission mechanism,TM)字段,并规定,当TM=000时,表示链路中收发双方采用ARQM;当TM=111时,表示链路中收发双方采用BRM。
要让节点在ARQM和BRM之间进行切换,最为关键的问题在于如何让节点感知当前的链路质量,即TM字段何时设为000何时设为111。为了解决这个问题,我们给出了求解BRM中最优分块个数的优化问题OP_n,以n*表示OP_n的解,根据n*的值,可以实现节点对链路质量的感知,详见2.4节分析。
至此,可得到LQADTS的操作流程如下:
S的操作流程:
步骤1 从RF信号中捕获能量,持续时间为Th;
步骤2 求解OP_n得到数据包的最优分块个数n*;
步骤3 判断n*是否等于1,若n*等于1,则将TM字段置为000,按图1的格式生成数据包,采用ARQM传输数据;若n*大于1,则将TM字段置为111,按图2的格式生成数据包,采用BRM传输数据;
步骤4 结束。
R的操作流程:
步骤1 从RF信号中捕获能量,持续时间为Th;
步骤2 接收来自S的数据包,检查数据包首部中TM字段的值,若TM=000,按ARQM接收并处理数据包;若TM=111,按BRM接收并处理数据包;
步骤3 结束。
在上述流程的步骤1中,能量捕获时间Th由2.1节中式(3)所确定。
为了得到优化问题OP_n,需要先对节点的能量捕获时间、BRM中传输一个数据包的成功概率、平均时延等进行数学建模与分析。
2 数学模型
2.1 节点的能量捕获时间
在链路中,节点S和R的能量捕获时间对该链路的吞吐率有着重要的影响。以Ph表示节点的能量捕获功率,由Friss传输方程[10]可知
(1)
其中,Gs和Gr分别表示PSBS和节点的天线增益,λ是电磁波的波长,Plost是路径功率损耗,d是节点与PSBS之间的距离,Ps是PSBS的发送功率,μ是RF信号转换为电能的效率系数。
以e0表示节点的初始能量,以eth表示节点运行的能量阈值(只有当S和R这两个节点的剩余能量均大于或等于eth时,S才开始传输数据)。以τ表示节点从初始能量e0开始捕获能量直至其剩余能量达到eth所持续的时间,利用式(1)可得
τ=(eth-e0)/Ph
(2)
由式(1)可知,节点的能量捕获功率与距离d有关,当S和R与PSBS的距离不同时,它们各自的能量捕获时间是不同的。以τS和τR分别表示S和R的能量捕获时间,那么,从S和R开始捕获能量的时刻起直至它们的剩余能量均大于或等于eth所持续的时间为
Th=max{τS,τR}
(3)
2.2 数据包传输成功的概率
在BRM中,数据包是先分块再传输的。以l表示每个数据块的长度(单位为bit),由图2可知
(4)
其中,LPacket表示数据包的总长度,LHead表示首部的长度,LHCS表示头部校验序列的长度,LFCS表示尾部的长度。
为了便于描述,下文中以字符H表示首部和HCS。以b表示链路的误码率,那么,S传输一个数据包给R时,H传输成功的概率q以及每个数据块传输成功的概率p分别为
q=(1-b)LHead+LHCS
(5)
p=(1-b)l
(6)
下面,推导节点第k次传输成功的概率,k=1,2,…,K,K表示最大传输次数(即第1次传输加上最大重传次数)。值得注意的是,在BRM中,位于数据包尾部的FCS仅起到校验作用,FCS本身是否出错,并不会影响到数据块是否出错(如1.1节所述,若FCS校验出错,BRM会进一步采用HCS和BCS校验数据包首部和各数据块是否出错,若首部和各数据块均正确,则数据包正确),这一点与ARQM是截然不同的。因此,在推导数据包传输成功概率的过程中,不需要考虑数据包尾部的FCS。
设随机事件Bkx=“第k次传输H+x个数据块成功”,x=1,2,3,…,n;Dkx=“第k次传输H成功但有x个数据块失败”;Hk=“第k次传输H失败”。
以Pk(x)表示节点第k次传输H+x个数据块成功的概率。
首先,推导第1次传输成功的概率。由于第1次传输时,数据包中包含n个数据块,易知,第1次传输成功的概率为
P1(n)=P(B1n)=qpn
(7)
接着,推导第2次传输成功的概率。
第2次传输成功有两种情况:
第一种情况是“第1次H失败,第2次成功”,即事件H1B2n发生。在这种情况下,有
P(H1B2n)=P(H1)P(B2nH1)=
(1-q)qpn=(1-q)P1(n)
(8)
第二种情况是“第1次H成功但有x个数据块失败,x=1,2,…,n,第2次成功”,即事件D11B21∪D12B22∪D13B23∪…∪D1nB2n发生。在这种情况下,有
(9)
(10)
…
(11)
综合以上两种情况,可得到第2次传输成功的概率为
(12)
以此类推,可得到第k次传输成功的概率为
(13)
结合式(7)和式(13),可得到求解Pk(x)的递归式如下
(14)
易知,节点传输一个数据包成功的概率为
(15)
2.3 数据包的平均传输时延和链路的吞吐率
由BRM可知,节点第1次传输的数据包长度为(LHead+LHCS+nl+LFCS),第2次及第2次之后的每一次传输可能的数据包长度分别为(LHead+LHCS+l+LFCS),(LHead+LHCS+2l+LFCS),…,(LHead+LHCS+nl+LFCS),且传输这些长度的数据包均有相对应的概率。将这些长度与其对应的概率相乘,再累加起来,可求得每一次传输的平均(期望)比特数。以Ek(x)表示节点第k次传输长度为(LHead+LHCS+l+LFCS),(LHead+LHCS+2l+LFCS),…,(LHead+LHCS+xl+LFCS)的数据包及其对应概率的乘积的累加,x=1,2,…,n。与式(14)的推导过程类似,可得到Ek(x)的递归式如下
(16)
(18)
以M表示S向R传输数据包的总个数,则链路中的吞吐率为
(19)
其中,LBCS表示BCS的长度。
2.4 分块个数的优化和LQADTS策略
由式(19)可以看出,分块个数n的选取对吞吐率有重要的影响。结合图2我们也可以看到,当n较小时,每个数据块较长,有效数据增加,冗余开销减少,但重传的能耗和时延也会增加;反之,当n较大时,每个数据块较短,有效数据降低,冗余开销增加,但重传的能耗和时延会降低。那么,我们可以通过优化n的选取,使得链路的吞吐率最大。于是,得到优化问题OP_n如下
(20)
式中:nmin和nmax分别表示分块个数的下界和上界,nmin和nmax的取值见第3节分析。通过求解式(20)可得到数据包分块个数的最优值n*,当n*=1时,说明在当前链路环境下,数据包分为1块吞吐率最大,此时链路质量较好,由图2我们注意到,当数据包仅分为1块时,相比于图1,它增加了HCS和B1这两部分的开销,而实际上,在数据包仅分为1块的情况下,HCS和B1是没有必要的,因此,可设置数据包头部中TM字段为000,采用ARQM进行传输;当n*>1时,说明当前链路质量较差,需要将数据包分为2块以上(含2块)才能使吞吐率最大,那么,可设置TM字段为111,采用BRM进行传输。求解式(20)的方法详见第3节。
3 实验与性能分析
为了验证LQADTS的性能,采用MATLAB R2012b进行仿真实验,参数设置见表1。
表1 仿真参数
此外,在式(20)中,取nmin=1,同时,为了保证数据包的传输效率,我们令每个数据块的长度不小于LHead+LHCS,可得到nmax的计算公式如下
(21)
根据表1的参数值,可求得nmax=11。即在式(20)中,n∈[1,11],可通过枚举法求解最优分块个数n*。
我们将LQADTS与GEB和DFSBA进行比较。在实验中,分别设置链路的误码率BER=1000-1,2000-1,3000-1,4000-1,5000-1。S和R与PSBS之间的距离在5 m至15 m之间随机选取,S向R传输的数据包个数M=5000,节点接收或发送1比特数据的能耗为10 nJ。以上实验重复做500次并对实验结果取平均值。
实验中,我们分别对比了链路的吞吐率、有效数据率和收发双方的能耗等性能指标。其中,吞吐率=R接收到的有效数据的总比特数/(能量捕获时间+数据包传输总时延),有效数据率=R接收到的有效数据的总比特数/S向R发送的总比特数。实验结果如图3~图5所示。
图3 吞吐率对比
图4 有效数据率对比
图5 能耗对比
从图3~图5可以看出,LQADTS在吞吐率、EDR和能耗等方面均优于GEB和DFSBA。主要原因是LQADTS能根据链路的质量在ARQM和RBM之间进行切换,在信道质量较好时,采用ARQM能确保数据包中的EDR较高,而在信道质量不好时,采用BRM则能够确保在重传数据包时,仅重传出错的数据块,降低能耗和时延。虽然GEB和DSFSBA也对数据包进行分块,但GEB在数据包出错时重传的是整个数据包,而DFSBA在对数据包进行分片之后为每个分片单独加上首部和尾部形成小数据包,虽然小数据包的传输成功率较高,但增加了额外的首部和尾部开销,降低了EDR且增加了能耗和时延,最为关键的是,GEB和DFSBA均采用固定的数据传输机制,缺乏对动态链路质量的有效支持。
总之,LQADTS克服了GEB和DFSBA存在的不足,能明显提高RFP-WSN中无线链路的性能。
4 结束语
RFP-WSN利用环境中泛在的RF信号为节点供电,解决了传统WSN中节点需要更换电池的难题,然而,RFP-WSN节点从RF信号中捕获能量的功率和数据传输的功率极低,无线链路误码率高且容易受到干扰,链路质量呈现动态变化。为了高效利用RF能量,提高无线链路的吞吐率,本文提出了链路质量感知的数据传输策略LQADTS,该策略能够根据当前无线链路的质量进行数据传输机制自动切换。实验结果表明,LQADTS的性能优于GEB和DFSBA,说明LQADTS是行之有效的。
从文中我们也可以看到,RFP-WSN无线链路的吞吐率与节点的能量捕获时间有着密切的关系,如何根据环境中的RF能量捕获条件对能量捕获时间进行优化,将是进一步努力的方向。