引言
无线传感器网络监控能够节省繁琐枯燥的人力劳动,甚至能对过去人工难以实时监控的危险区域进行监控,在国防军事、环境监测、智能家居、医疗健康和工业控制等领域有着良好的应用前景。通常节点电源能量有限,并且受工作环境限制不可能频繁更换电源,一旦电量耗尽将导致节点失效而退出网络,影响网络监测质量甚至导致网络瘫痪,因此延长节点的使用寿命问题亟待解决。
大多数研究表明:合理使用电池电量,能有效延长节点的工作时间,即通过对节点的耗电量分析,选择适合节点的传输方式,可最大化利用电池能量。而能量模型的建立与评估是进行能耗分析的关键,目前围绕无线传感器网络能量管理,大量能耗模型已被提出。其中大部分都基于MAC 层或路由协议能耗的优化策略[1]而建立的,计算过程复杂,对于计算能力有限的单片机,这些算法会消耗更多的能耗,而且这些理论模型与实际情况相比存在较大的差异,因此多用于仿真分析。
Ivan[2]等基于CC2420建立了一种用于评估IEEE 802.15.4低速无线个域网的能量模型,但IEEE 802.15.4模型只是规定了ZigBee协议底层标准,对使用基于ZigBee通信协议的无线网络产品节点的能量评估仍存在不足。参考文献[3]公开了无线传感器网络中的实际能量模型及功率优化控制方法,但该模型都是针对特定的节点,不具有通用性且算法复杂。为此本文提出一种采用无线传感器网络节点工作电压、无线传感器网络节点在发送状态和接受状态中各阶段的时长和工作电流、无线网络节点在休眠状态的工作电压和工作电流等参数,建立无线传感器网络节点处于发送状态、接收状态和休眠状态的能耗数学模型,该模型算法简单,参数容易测得,实验结果表明,能够准确预测无线传感器网络节点的能耗,适用于实际计算能力有限的传感器节点。
1能耗模型设计
1.1能耗模型提出
无线传感器网络节点由处理器单元、无线通信单元、传感器单元、电源4部分组成,各单元能耗分布[4]如图1所示。通过图1所示能耗分布,将无线传感器网络节点工作状态分为发送状态、接收状态以及空闲、休眠状态。

图1 典型节点各单元的能耗分布图
为了保证能耗模型简单,有较好的实用性和通用性,提出一种以节点工作电流、工作电压、数据发送与接收时长为参数的无线传感器网络节点能耗计算模型。为了获取能耗模型的相关参数,搭建实验平台,如图2所示。将示波器通过电阻R(R=1 Ω),分别与可调直流稳压电源和无线传感器网络节点装置相连接,分别测量实验中一个无线传感器网络簇首节点和一个无线传感器网络子节点在其工作电压下发送状态、接收状态的工作电流波形。

图2 实验平台
1.2能耗模型建立
无线传感器网络节点发送一个数据包的发送周期略——编者注,包括数据侦听和接收阶段1、数据发送阶段2、数据处理阶段3、等待阶段4四个阶段。数据侦听和接收阶段1是指当前并没有数据,但无线传感器网络节点处于接收状态以监听信道里面的信号,由于无线传感器网络节点在侦听和接收数据时功耗几乎没有区别,而在时间上也是连续的,因此将这两个过程等效为一个阶段。等待阶段4是无线传感器网络节点在发送数据之前使用CSMA-CA协议监听信道忙之后会回避的时间(无线传感器网络节点处于接收状态时不使用),时间长度与信道质量有关[5],因此等待阶段4时间不确定。为方便计算,将等待阶段4放大合并到数据侦听和接收阶段1,即一个完整发送周期简化为3个阶段,即数据侦听和接收阶段1、数据发送阶段2、数据处理阶段3。
无线传感器网络节点一个完整的接收周期略——编者注,包括确认帧发送阶段5、数据处理阶段6、数据侦听和接收阶段7三个阶段。为准确计算无线传感器网络节点总能耗,需得到:无线传感器网络节点发送一个数据包的发送周期时长TTrans;发送状态中数据侦听和接收阶段时长TRX、工作电流IRX,数据处理阶段时长TCON、工作电流ICON以及数据发送阶段工作电流ITX等参数;接收状态中确认帧发送阶段时长TACK、工作电流IACK,数据处理阶段时长TCON1、工作电流ICON1以及数据侦听和接收阶段工作电流IRX1;无线传感器网络节点发送有效数据包的数量M;无线传感器网络节点休眠电流ISleep、休眠时间TSleep以及节点工作电压V。
计算无线传感器网络节点处于发送状态的能耗ETX:

计算无线传感器网络节点处于接收状态的能耗ERX:

由于无线传感器网络节点的接收周期由发送周期决定,同一无线传感器网络节点可能按时间片接收几个节点数据。式(2)中,n为无线传感器网络节点在一个接收周期内接收数据包的个数,因而节点间一对一传输时,n=1。
计算无线传感器网络节点处于休眠状态的能耗ESleep:

由于存在丢包情况,对无线传感器网络节点发送有效数据包的数量M进行修正,可得:M=N/(lpack×(1+p))。式中,N为无线传感器网络节点发送数据包总字节数,lpack为一个数据包的有效字长度,p为统计1K个数据包的丢包率。
发送一个数据包实际时间与计算时间有差异,故计算一个比例因子k:k =(250×TTXL)/ ((lhead+lpack)×8)[6]。式中lhead为数据包头开销字节数,lpack为一个数据包中有效字节的长度,数据包头开销字节数lhead和一个数据包中有效字节的长度lpack为常数。发送一个固定长度的数据包,发送周期中的数据发送阶段的时长为TTXL。
无线传感器网络节点工作电流与电压存在一定关系。通过实验平台测试,实验数据如图3所示。实验结果表明,在节点的工作电压下,电流ITX、IAwait以及IRX与电压成线性关系。

图3 节点工作电流与工作电压关系图
2能耗计算实验
2.1模型参数计算
本实验中无线传感器网络节点一个数据包的发送周期TTrans为常量,设定TTrans为50 ms。在实际应用中,为获得实测时间与计算时间的比例因子k,采用如下步骤:首先,由无线传感器网络簇首节点发送一个长度为54字节的数据包,通过采用图2所示的测量方式,得到如图4所示的工作电流简化模型。

图4 发送状态简化工作电流波形图
发送周期的数据发送阶段2时长TTXL=2 ms,即实测时间为2 ms,依据实测时间TTXL=[(lhead+lpack)×8/250]×k,可以反推出k=250×TTXL/((lhead+lpack) ×8)=1.16,即无线传感器网络节点的实测时间与计算时间的比例因子k为1.16。通过已知的一个数据包的有效字节长度lpack、一个数据包头开销字节数lhead,计算发送一个数据包的数据发送阶段时长TTXL为:TTXL= [((lhead+lpack) ×8)/250] ×k =[(44+10) ×8/250] ×1.16≈2.0 ms。无线传感器网络路由子节点在一个接收周期中确认帧(确认帧长度为11字节)发送阶段的时长TACK为:TACK=88/250×k=88/250×1.16≈0.41 ms。若无线传感器网络节点为非可靠性传输,即无线网络节点在接收阶段不需要发送确认帧,则TACK=0。通过已知的无线传感器网络节点发送数据包总字节数N,统计1 K个数据包的丢包率p=1.25%,根据一个数据包的有效字节长度lpack,可计算无线传感器网络节点发送有效数据包的数量M为:M =N/lpack×(1+p) =709。节点接收状态时,通过采用图2所示的测量方式,得到如图5所示的工作电流简化模型。

图5 接收状态简化工作电流波形图
2.2模型能耗计算
无线传感器网络节点在3.3 V电压下工作,两个节点一对一收发数据,即簇首节点向路由子节点发送数据,路由子节点接收数据。实验如下:发送数据间隔设定为50 ms,每次发送100包数据,每包数据为10字节,共发送7次。为了实验方便,节点发送和接收过程中并没有对数据进行处理,所以发送和接收周期数据处理阶段的时长为0。簇首节点总的能耗为发送状态和空闲侦听的能耗,而路由子节点由于没有休眠状态,其总能耗为接收状态和空闲侦听的能耗。
由式(2)和式(3)计算可得,无线传感器网络簇首节点的发送状态能耗为:
Esend=ETX(TTrans,TCON,M)=M×V×[ITX×TTX+ICON×TCON+IRX×(TTrans-TTX-TCON)]=709×3.3×[96×2+29.5×48] ×10-6=3.762 24 J
无线传感器网络路由子节点的发送能耗为:
ERX(TTrans,TCON1,M)=M×V×{n×(IACK×TACK+ICON1×TCON1)+IRX1×[TTrans-n×(TACK+TCON1)]}=709×3.3×[0.41×96.0+49.59×29.5]= 3.514 85 J
其空闲侦听时间为t=100-709×50/1000=64.55 s,则空闲侦听的能耗为64.55×3.3×29.5×10-3=6.283 94 J。故根据模型计算得到,无线传感器网络簇首节点的总能耗为10.046 18 J,无线传感器网络路由子节点的总能耗为9.798 79 J。
2.3节点能耗实验结果
本实验采用图2所示的实验平台,利用示波器测得100 s内无线传感器簇首节点和路由子节点的能耗,实验结果略——编者注。簇首节点测试面积为3.155 Vs,由于测试的是1 Ω电阻,即测试结果实际上为3.155 As,由于供电电压是3.3 V,故100 s内无线传感器簇首节点的总能耗为10.411 5 J。路由子节点测试面积为3.086 Vs,测试结果为3.086 As,即100 s内无线传感器路由子节点的总能耗为10.183 8 J。为了保证测试的准确性,测试示波器在无输入时的100 s内波形面积即零点的总能耗为84.99 mVs×3.3/1 000=0.280 467 J,经计算可得,实际无线传感器簇首节点的总能耗为10.131 03 J,误差为0.84%,无线传感器路由子节点总能耗为9.903 33 J,误差为1.06%。
结语
本文对无线传感器网络的能耗模型进行了分析,引入以无线传感器网络节点工作状态以及网络层丢包率方式建立无线传感器网络节点能耗模型。实验结果表明,所提出的能耗模型更精确,更接近真实情况。文中对丢包率的统计方式欠缺灵活性,还需要进一步研究。