张华南,金 红,王 峰
(1.广东培正学院数据科学与计算机学院,广东 广州 510830;2.湖北大学计算机与信息工程学院,湖北 武汉 430062;3.湖北文理学院计算机工程学院,湖北 襄阳 441053)
无线传感器网络WSNs(Wireless Sensor Networks)是一项成熟的技术,在环境监测、医疗保健和工业控制等领域有广泛应用[1]。WSNs由多个无线传感器节点组成,这些节点监视一个环境,信息数据通过无线通信发送到一个或多个名为sink的远程主机。无线传感器节点一般由处理单元、存储器、传感器和收发器等多个组件组成[2]。通常,这些设备由电池供电,因此使用寿命有限,这使得能源成为最宝贵的资源之一,尤其是在网络运行数月甚至数年的情况下。
Figure 1 Energy management(EM)structure
为了解决传感器能源消耗问题,一个可取的方法是能量收集EH(Energy Harvesting)与能量管理EM(Energy Management),节点由环境能源(如阳光、风、振动和水流等)提供动力。与传统的电池供电方式相比,使用EH可以将WSNs的寿命提高一个数量级,并实现能量中性操作ENO(Energy Neutral Operation)状态,即收获的能量大于或等于长期消耗的能量[3]。
对于能量管理Kansal等人[4]有相关研究,利用能量预测采收能量,并根据预测能量与观测能量差值计算占空比。Castagnetti等人[5]引入了闭环电源管理器CL-PM(Closed-Loop Power Manager),使用2种不同的能源管理策略,一种是使用环境能源;另一种用于收集能源低于固定阈值情况,也称零能源时隙。Renner等人[6]提出了一种基于预测能源的算法,以超级电容为储能装置的能量采集传感器节点,对消耗和收获的超级电容器能量储备进行预测。
针对无线传感器节点能量收集EH-WSNs引入一种新的能量管理EM,其任务是根据当前剩余能量,通过吞吐量来动态调整节点的性能,EM可与多种MAC协议协同使用。假设把时间分成相等的时间间隔T,当前剩余能量用eR表示,唤醒时隙用TWI表示。
2个子模块组成EM,如图1所示。图1中,τi表示节点数据传输状态,NS是状态数,Pi表示节点功耗,eR[k-1]表示EBC在时隙k-1的剩余能量,eb[k]表示节点在时隙k的能量预算,Tw[k]表示唤醒时隙,MACX和MACY表示不同的MAC协议。第1个模块是能量预算EBC(Energy Budget Computation)模块,评估节点在下一个时隙k中可以消耗的能量,以确保持续性,这部分能量称为能量预算,用eB[k]表示。相应地,时隙k-1的剩余能量和能量的变化量分别用eR[k-1]和ΔeR[k-1]表示,定义为:
ΔeR[k-1]=eR[k-1]-eR[k-2]
(1)
第2个模块是吞吐量计算TC(Throughput Computation)模块,根据能量预算eB[k]计算唤醒时隙TWI[k]。当拓扑结构是星型网络时,节点的唯一任务是将生成的数据发送到接收器。在多跳网络中,每个节点还必须中继其他节点发送的数据包。TC是特殊的星型网络,因此EM可以通过设计一个模块来代替TC,从而使其更容易适应多跳场景。TC负责分配多跳网络所需的感知和中继任务之间的能量预算。
Figure 2 Energy storage levels and rule
(2)
其中,δeB[k]为能量预算修正,根据剩余能量eR和能量的变化量△eR的当前值计算。环境影响评估有2个目标:一是在可获得的环境能源很少的情况下,找出一项能源预算,在释放速度和服务质量之间达成适当的折衷;二是当环境能源可用时,避免饱和或在充电率和服务质量之间找到一个好的折衷,可以通过调整能源预算值实现,该值取决于剩余能源及其变化。图2b所示为能量预算EBC策略。在表中,ΔeB是EM的一个正参数,当储能量处于ENI区间或处于饱和区间时,ΔeB对应于能量预算修正。选择ΔeB需要在EBC的反应和分配的能源预算的可变性之间进行折衷。选择的ΔeB值越高,导致EM的反应活性越高,但代价是能量预算的剧烈变化,这可能不适用于许多应用。另一方面,ΔeB值越低,EM的反应活性越低,能量平衡变化越平稳。因此,ΔeB的选择取决于能源来源和应用要求。从图2中可以考虑4种场景,后面将详细介绍。
(1)饱和风险。
(2)能量中性区间。
如果剩余能量属于ENI,则EBC的目标是保持节点处于ENO-MAX状态。当剩余能量相对保持恒定时,达到ENO-MAX状态,EBC修正ΔeR的能量预算,使节点保持在ENO-MAX状态。能量中性区间如图2b中R4,R5,R6所示。
(3)充电状态。
(3)
其中,MC和KC为充电策略调整参数。μC随着eR的增加而增加。当KC=1时,ΔeB随eR线性增加;当KC≤1时,随着剩余能量的增加,增长速率增大;而KC>1时,随着eR的增加,增长速率减小。充电状态如图2b中R3所示。
(4)放电状态。
(4)
其中,MD和KD为放电策略调整参数。μD随着eR的增加而减小,能量储存越少。KD和μD对放电策略的影响与KC和MC对充电策略的影响相似。放电状态如图2b中R2,R3所示。
吞吐量计算TC的目标是计算节点在一个时隙内的吞吐量,以消耗EBC指定的能量。由于无线通信最消耗能源,因此给定能量预算的节点吞吐量与MAC协议紧密相关[8]。
MAC协议传输一个数据包,通常需要很多步骤,比如接收/发送信标帧、发送数据帧、接收确认(ACK)帧等等。使用给定协议通信时节点可能处于的状态数用NS表示。每个状态由不同组件状态(MCU、无线电芯片和传感器)的组合定义。状态i∈{1,…,NS},单包传输过程用τi表示,节点相应的功耗用Pi表示。因此,执行测量和发送单个数据包的整个过程的能量是:
(5)
节点在一个时隙k上消耗的能量为:
(6)
(7)
将式(6)中的eC[k]替换为eB[k],得到相应的吞吐量(以每分钟包数计算)为:
(8)
通常MAC协议是基于伪异步方法,这使得τi值的估计具有挑战性。事实上,对于不同包的传输,空闲状态和接收状态下花费的时间差异很大。由于这些值的估计不准确,节点所消耗的能量可能与EBC计算的能量预算相差很大,这可能导致电力故障或能源浪费[9]。
为了评估不同MAC协议的能源效率,将能源利用系数EUC(Energy Utilization Coefficient)定义为吞吐量与能源预算的比值:
(9)
EUC根据可用的能源预算对MAC协议实现的吞吐量进行量化,结合式(7)~式(9),得到:
(10)
其中H定义为:
H=eT-τTPS
(11)
H是与给定硬件和MAC协议相关的常数。实际上,τT值依赖于MAC协议,而Pi值依赖于硬件。对于给定的硬件和MAC,EUC不是常数,而是随着能源预算eB的增加而增加。其次,EUC是有界的,其表达式为:
(12)
由式(12)可知,H值越小,ξ∞的值越大,因此H值越小越好。假设Pi值是固定的,睡眠状态PS的功耗应该比其他状态Pi的功耗小得多。这个假设适用于所有的WSNs。因此,通过最小化τi值来最小化H。为了使H最小,在每个数据包传输时只发送数据帧。然而,大多数MAC协议都引入了开销来同步节点或错误控制[10]。
无线传感器网络中MAC协议的设计与实现已经有了大量的研究。MAC可以分为3种模式:同步、伪异步和异步。在第1种模式中,同步相邻节点被同时唤醒。然而,在EH-WSNs环境下,环境电源提供的能量随时间和空间不断变化,使得同步模式不适用于此类应用场景。实际上,由能量收集提供动力的节点必须能够动态调整其占空比,伪异步和异步方案允许每个节点独立于其他节点选择其活动调度。传统伪异步方案依赖于占空比循环,其中节点根据自己特定时间表周期性地开关电源。
伪异步模式分为发送方发起和接收方发起,在发送方发起的方案中,接收节点被定期唤醒来监视信道,如果发现信道是空的,则在被短时间唤醒后返回睡眠状态。当一个节点有一个数据包要发送时,它将发送请求发送到目标节点,每个节点都有一个监听周期。目标节点醒来时获取传输请求,并通过一条消息回答传输节点,数据包被发送出去。在接收方发起的方案中,接收节点定期醒来并发送一个信号,并对信道进行短时间监控,如果没有检测到信号,就会返回睡眠状态。如果节点需要传输数据,它将侦听来自接收器的清除发送信号通道,并在接收后开始发送数据包[11]。
使用ULP WuRx(Ultra Low Power Wake-up Receiver)可以实现全异步通信。由于ULP WuRx技术尚处于发展阶段,且相对较新,目前对利用ULP WuRx设计通信协议研究较少。
使用ULP WuRx的星型网络SNW-MAC(Star Network WuRx-MAC)协议,是一种用于数据收集的星型网络协议。传统协议使用占空比循环方法来降低能源消耗,但是,该方案并不能消除由于空闲监听而产生的能量浪费,此外,传统协议容易发生冲突,这会降低它们的可伸缩性并增加能源消耗。SNW-MAC利用ULP WuRx实现异步通信,将传输数据包所需的能量降至最低,同一SNW-MAC网络的节点发送的数据包之间不发生冲突。
SNW-MAC是一种异步模式。使用SNW-MAC进行数据包传输的流程如图3所示,其中,Tx表示星型网络传输,Rx表示星型网络接收,节点n在时隙k进行数据传输。接收器通过发送包含特定传感器节点地址的唤醒信号WuB(Wake-up Beacon)来初始化通信,然后侦听信道接收数据包。目标传感器节点被其ULP WuRx唤醒,并开始发送数据包。每个传感器节点在数据包中携带其唤醒时隙[12]。sink保存一个更新后的表,该表关联每个节点的唤醒时隙,并在正确的时间轮询每个节点。接收器为每个节点设置一个用于承载数据包中唤醒时隙的计时器,并在计时器每次过期时轮询该节点。感知操作由每个节点在2个接收器轮询之间的任何时间执行,以确保数据准备好在接收器发送唤醒信标时发送。与传统的接收端发起协议相比,由于不需要汇聚过程,该方法降低了汇聚和节点的能量消耗,避免了不必要的周期性WuB发送,进一步降低了系统的能量消耗。由于唤醒时隙通常是16位整数,因此承载此信息所产生的开销很小。此外,接收器可以使用WuB来监测传感器节点的活动[13]。
Figure 3 SNW-MAC:packet transmission and Wake-up Beacon(WuB)
与传统的伪异步模式相比,SNW-MAC通过协调接收器上的数据包传输,消除了冲突风险,每个节点都是轮询的。然而,无线信道的干扰可能会导致帧的损坏,因此节能的错误控制和数据包重传是一个重要的问题。由于接收端完全负责协调数据包的传输,因此它负责检测传输错误并调度另一次尝试。每个WuB嵌入一个预期8位序列号的数据包。接收器保存一个更新后的表,该表为每个节点关联轮询的下一个数据包序列号。当一个传感器节点ULP WuRx获得一个WuB时,同时读取地址和序列号。由于ULP WuRx能够直接识别地址,它只有在地址有效时才唤醒节点微处理器MCU(MicroController Unit),然后使用串口将序列号发送给节点MCU。所有序列号低于接收序列号的数据包都被认为是成功接收或由于传输尝试次数过多而被丢弃了,因此将其从传输缓冲区中删除。然后节点发送具有接收请求的数据包,数据包携带了它的序列号。当接收器从给定的传感器节点成功接收到数据包时,接收器将检查数据包序列号。如果数据包的序列号是接收器期望的序列号,则接收器将递增与此节点关联的序列号。当接收器检测到传输失败时,例如接收到的数据包已损坏,不会增加序列号并设置随机回退。使用SNW-MAC,节点只发送数据帧,从而最小化每个数据包的能量消耗。此外,如果数据帧长度不变,每个数据包的能量消耗变化也会最小化。事实上,造成能源消耗变化的唯一可能原因是重新传输[14]。
利用多能源转换MESC(Multiple Energy Source Converter)架构的单路径体系结构中,只有一个储能装置,所有采集到的能量都用于给储能装置充电,储能装置通过DC-DC变换器直接为节点供电。图4所示为MESC的块结构,它可以与各种能源收割机(例如光伏电池、热电发电机和风力涡轮机)一起使用,使用适当的能量适配器来标准化输出能量[15]。选择超级电容器作为存储设备是因为它们比电池更耐用,能提供更高的功率密度。本文实验基于MESC架构的PowWow平台,采用CC1120无线电芯片。储能装置为0.9 F超级电容,最大电压5.0 V,节点供电所需的最小电压为2.8 V。剩余能量eR计算如下:
(13)
其中,C为超级电容,VC为电容器的电压。由于超级电容通过DC-DC变换器向节点供电,如图4所示,DC-DC变换器的效率随着输入电压的变化而变化,因此节点所消耗的功率取决于超级电容的充电情况。因此,可以测量DC-DC转换器在不同输入电压(2.8 V~5.0 V)下各τi的功耗Pi。实验所用参数如表1所示,表1中提供了MAC协议、物理层PHY和能量预算EBC的相关实验参数。
Figure 4 Hardware architecture of a WSNs node using the multiple energy source converter(MESC)
ULP WuRx采用开关键控OOK(On-Off
Table 1 Parameters of experiment
Keying)调制,是最简单的幅移键控ASK(Amplitude-Shift Keying)调制形式。当ULP WuRx检测到载波时,唤醒微控制器,微控制器读取嵌入到WuB中的地址并进行地址匹配。如果接收到的地址无效,微控制器将返回休眠状态,如果地址是有效的,将使用中断唤醒节点MCU。
图5所示为标准无线电电源管理架构UPMA(Unified Radio Power Management Architec-ture)-X-MAC和PW-MAC协议的比较。节点通过不断发送数据包来启动通信,直到接收到来自接收器的ACK帧为止。如果接收器检测到数据包并完全接收,则由sink节点发送ACK帧,如图5a所示。
Figure 5 UPMA-X-MAC and PW-MAC protocols
PW-MAC是一种接收端发起的协议,主要关注接收端和发送端的能源效率。使用PW-MAC的数据包传输如图5b所示。在接收端,接收器周期性地醒来并发送信标(BCN)帧。在发射端,每个节点都精确地预测接收器将在何时醒来。如果需要发送数据包,节点将在接收发送下一个信标之前醒来。一旦获得信标,节点将发送数据包并等待ACK帧。在每个数据包传输时,计算一个预测误差,节点根据该误差更新节点预测时间[16]。为了评估MAC协议的能量效率,测量单个数据包的传输和接收的能量消耗是很重要的。在10.2 Ω电阻和3.5 V电源串联的情况下,测量这3种评估协议的能量轨迹。除了允许对能耗进行详细分析外,这些微基准还用于设置式(5)中的τi值,并计算与EUC度量相关的H和ξ∞值。
Figure 6 Microbenchmarks of the MAC protocols
测量结果如图6所示,其中Pc为节点的功耗。图6a显示了与其他协议相比使用SNW-MAC协议发送数据包的功耗达到最低,它只需要发送数据帧(B)。如果数据有效载荷长度固定,则发送数据包的能量消耗是恒定的。对于图6b中的sink,可以看到数据包接收的2个阶段,发送WuB(A)然后接收数据帧(B)。由于与非WuB帧相比,发送WuB的比特率更低,传输功率更高,因此轮询节点对接收器的能量开销更大。这个结果会激发数据包中每个节点的唤醒时隙,允许接收器只在正确的时间轮询节点[17]。
在图6所示的MAC协议的测试中,显示了数据包的传输情况,图6c和图6d分别显示了使用PW-MAC进行分组传输和接收的能量消耗。使用此协议发送数据包需要接收信标(A)和帧ACK(C),这使得发送数据包的能量消耗高于使用SNW-MAC协议的。此外,发送方会在接收器发送信标之前短时间内醒来,以防止预测错误。这个时隙在每次传输时都是不同的,导致每个包传输的能量消耗是不恒定的。由于时钟漂移,预测误差变得非常大,当超过一个固定的阈值时,就会触发预测状态的更新,导致更高的能耗。使用SNW-MAC协议不需要传输ACK帧,与使用PW-MAC协议相比部分抵消了WuB传输所带来的能量开销[18]。
图6e显示了使用UPMA-X-MAC为节点发送数据包的能量消耗,在这种情况下,接收器在第6次尝试时成功接收到了数据包。对于每次尝试,都可以看到发送数据包(B)和侦听ACK(C)这2个阶段。如图6f所示,sink在第5次尝试(B)时醒来,因此没有接收到完整的数据包,它保持苏醒,以便在下一次尝试时接收数据包(B)并发送ACK(C)。使用UPMA-X-MAC发送一个数据包的消耗在不同的传输中有很大的差异,这是由接收唤醒时间相对于节点传输开始时间的随机性导致的。在成功接收数据包之前,节点必须等待接收器唤醒平均时隙的一半时间。在接收端,数据包接收的能量消耗也是可变的,除了传输ACK帧外,还需要监听平均一个半数据包[19]。使用这些微基准,测量式(5)的值,并使用Pi的最低测量值计算了不同MAC协议的H和ξ∞,从而得到H和ξ∞的最佳可实现值。表2给出了得到的结果,可以看出,使用SNW-MAC可以更好地利用能源预算。
ULP WuRx的功耗是非常低的,因为它总是处于活动状态,即使所有其他组件都处于睡眠状态也同样如此。ULP WuRx 测量功耗是1.83 μW。
Table 2 Best values of H and ξ∞ for the different MAC protocols
当可编程中断控制器处于活动状态时,ULP WuRx的功耗变得非常明显。EM和MAC协议是在一个由6个节点(包括一个sink)组成的实验台上以星型拓扑结构实现的。节点被布置在一个没有窗户的房间里,完全由室内荧光灯供电。每个节点都配备了一块太阳能电池板,且节点部署在不同光照条件下。每组实验均持续3 h,白天进行,只有在评估SNW-MAC协议时,节点才配备ULP WuRx。在可变光照条件下,将单个传感器节点暴露在室内环境的荧光灯下,观察节点剩余能量,然后在没有任何可用环境能量的情况下(关灯)放置2 h,观察能量变化,最后再次暴露节点在室内光线下,观察节点剩余能量的变化。
从星型网络实验结果(图7)中可以看出,使用SNW-MAC协议的吞吐量都高于使用PW-MAC协议的,说明SNW-MAC协议具有更好的能效。实验结果表明了EM在不同MAC协议下实现能量中性的能力,以及它与高效的SNW-MAC协议结合的好处,该协议利用ULP WuRx来支持异步通信[20]。
Figure 7 Results of the experiments on a star network
无线传感器网络能量收集与管理是解决能耗问题的重要环节。通过对能量收集与管理方案的研究,将异步MAC协议和超低功耗唤醒接收器配合使用。在星型拓扑结构数据采集传感器网络中的实验表明,与PW-MAC协议相比,SNW-MAC协议可获得更高的吞吐增益,提高了无线传感器网络的能源效率。