张雪凡,刘 源,李 洪
1.上海大学特种光纤与先进通信国际合作联合实验室,上海200444
2.上海大学上海先进通信与数据科学研究院,上海200072
无线系统因无需布线而在物联网中的应用越来越广泛,如在安保系统、水电气三表数据收集系统、健身设备等设备中均添加了无线连接功能.无线网络一般由电池供电,这就需要极低的功耗,文献[1]对低功耗蓝牙BLE、ZigBee和ANT协议进行实际测试,其平均耗电仅为20 uA左右.在目前众多传感器领域的低功耗无线通信制式中,LoRa采用了扩频调制方式[2],它具有较好的抗干扰性,因此在传输距离上有优势.窄带无线物联网NB-IOT是未来无线物联网的理想选择[3-4],它不需要复杂的组网就可以直接对基站通信,但握手阶段的耗电较大,不适用于以小时为周期的数据上传,目前属于测试与初步推广阶段[5-6].IEEE 802.15.4协议是一种常用的无线传感网低功耗通信协议,新版本的无线测距功能精确到1 m[7].ZigBee在IEEE 802.15.4协议基础上添加了路由层与网络层,其终端设备功耗非常低,但因为需要多个全功能的路由器来中转信息,所以路由器不能睡眠,无法实现长寿命的电池供电.此外,且ZigBee在室内的应用受到一些条件限制,其2.4 GHz频段的电波绕射特性较差,容易被障碍物阻挡,且不可避免与Wi-Fi相互干扰[8].另外868/915 MHz频段与国内手机频段太近,容易引起干扰,低于1 GHz频段中又没有现成芯片支持.
用加长睡眠周期可换取无线传感网的节能,但会导致网络延时加长[9].本文借鉴ZigBee的节能思想,根据实际需求精简优化,并借助无线节能机制有效缓解了节能与睡眠之间的矛盾.在特定条件下相比于Zigbee网络,功耗更低,信息传输反应更快,成本更低,特别适用于网络规模较小、网络节点较固定、信息量较小、电池寿命较长的场所.
拓扑结构与路由密切相关,它对节能起到至关重要的作用,简洁的拓扑结构可以简化无线路由.星型网是最简单、最节能的结构但规模有限.为了增加网络规模,文献[10]提出二层结构的网络,外层采用低功耗的ZigBee,内层采用高数据率的Wi-Fi,但Wi-Fi耗电较大,因而无法实现长寿命的电池供电.如何在没有专用中转器条件下拓展网络规模是本文研究的重点.假设星型网是一个以R为半径的圆,那么采用一级中继后最大圆的半径为2R,假设圆内所有节点是均匀分布的,则二层结构的节点数目是单层星型结构的4倍,如图1所示.中转器的任务是收集周边节点信息然后转发到目标地址,Zigbee的中转器是不睡眠的,它属于全功能器件,不具有低功耗特性.
本文提出的拓扑控制结构把中转范围控制在节点之间的一跳距离,跳的方向就是控制中心,且由普通节点担当中转任务.仔细分析2R结构的大圆,并将其分成以R为中心的内圆和R以外的圆环,内圆节点可以直接与控制器通信,外层圆环节点通过内圆节点进行中转与控制器通信,图1(b)的A、B、C可以兼中转点.只要把中转功能设计得功耗非常低,那么所有传感器节点都是可以实现电池供电的,为实际应用提供了方便,而网络规模是单层星型结构的4倍.
图1 网络拓扑结构Figure 1 Network topology
为了实现图1(b)所示的无固定中继结构,本文设计的拓扑控制算法流程如图2所示.无线节点首先向控制器发送联网信号,然后根据能否直接与控制中心应答来判断自己处于哪个区域.由拓扑控制流程可知,节点发送信息若能直接与控制器通信,则可判定此节点属于内圆R区域;若节点不能在设定的次数n1内与控制器通信,则需发送一个唤醒序列信号去唤醒周边的中转节点,若在设定的次数n2内有应答,那么此节点属于外圆2R区域;若仍然没有应答,那么就要使节点靠拢中心一些,保证节点都在2R的正常通信区域内.
图2 二层网络拓扑控制Figure 2 Two layer network topology control
由于路由计算及路由的跳转都是消耗能量的,简洁的路由能够带来较低的能耗.文献[11]采用分布式路由算法获得延迟和能耗的均衡,文献[12-13]采用选举簇头法来节省能量并避免能量消耗的不均衡,经典的Zigbee采取不睡眠的专用路由器,它牺牲了路由器的睡眠节能来换取路由的高效率和稳定性.在能量受限的无线网络中,路由既要快速又要节能非常困难.节能路由需要解决以下两个主要问题:1)路由跳数最少.在本案网络中的任意节点,要么直接能与控制器通信,要么经一次中继就能到达终点,如图3(a)所示,11号节点不能以10号为中转,而以7号为中转是最佳的;2)路由时间最短.外层节点要发送数据给内层节点进行中转,而内层节点可能在睡眠,为此需要保证节能睡眠与快速中转两不误.
以图3(a)为例,内圆的节点1~7号可以直接与控制器通信,这就可以把时间控制得很短,而外圈的8~12号节点需要通过中转才能到达控制器,但是实际网络中节点的位置是随意布置的,每个节点程序都是一样的.本文设计的自动路由算法流程如图3(b)所示,如果是内层节点,除了直接发送数据外还要中转外层节点数据;如果是外层节点,那么首先要寻找中转节点,然后再请求中转.这个路由算法结合前面的拓扑控制,解决了路由跳数最少问题,外层节点最多二跳就可以到达中心控制器.
对于路由时间最短问题,外层节点主动地唤醒邻居节点,时刻表就近的节点最先被唤醒作为中转点.
图3 节能路由及算法流程示意图Figure 3 Schematic diagram of energy saving routing and algorithm fl ow
减少节点的工作时间是节能的关键.文献[14]提出以提高数据传输速率的方法来缩短传输时间从而达到节能目的,然而窄带低功耗系统中提高数据传输速率非常有限.分析图3(a)可知,所讨论的网络里中转节点是最耗能的,因此本文提出了快速节能侦听法.“快速”是尽量缩短工作时间,“节能”是使得工作电流最小,具体措施如下:1)无线接收机在睡眠苏醒过程中采用分段启动电路来检测空中无线信号,优化了监听时间和消耗的电流,如图4所示.2)为了提高网络反应速度,在数据上报的两个间隔之间插入快速侦听时隙,如图5所示.3)为了使得中转节点的侦听时隙最短,收发之间采用一种特殊的无线唤醒技术,既解决了时间同步问题又能使中转节点能耗最低.在图5中,外层节点平时侦听内层节点的时刻表,如果时间同步非常合拍,那么可以在t2时隙转发数据;当周期T1较长,而紧急事件处理需求比T1短得多时,可以采用快速侦听法取得同步并完成数据的中转.
节能侦听控制方法如下:将无线接收过程分3层控制.第1层是检测场强,在检测结果既无信号也无干扰情况下,马上退出接收,这个时间最短;第2层是检测到有场强情况下,继续判断是否有正确的前导逻辑,若逻辑错误则马上退出;第3层是检测到确实是有用信号情况下,再激活微处理器,由微处理器存储并处理数据.从图4的控制过程可以看出,当场强RSSI低于阈值时接收时间非常短,耗电很少;即使场强高于阈值,如果是干扰信号,那么侦听时间和耗电都较小;只有接收到正确的数据包才延长接收时间直至接收完成.
图4 节能侦听控制流程Figure 4 Control fl ow chart energy-saving listening
图5是外层节点通过内层节点中转的时序关系.数据采集过程分为普通数据上报与紧急事件上报,紧急事件指的偶然发生事件,比如报警信息.
1)在普通数据上报时,内层节点向控制中心发送数据,这个发送的数据也被外层节点侦听到,如t1时刻,外层节点经过适当延时可在t2时刻发送数据请求中转;
2)当外层节点有紧急事件触发需要快速上报时,外层节点可以在t3时刻附近发送n个唤醒包来唤醒内层节点,最后完成中转目的.这里的“唤醒”实质上是时间同步的概念,使内层节点能够侦听到外层节点的脉冲序列信号而同步.
图5 内外层节点之间的中转时序控制Figure 5 Transfer timing control between inner and outer nodes
对于时间同步,内层节点采用发送信标方式更易被外层节点检测到,本文方案不采用发信标,而是采用快速侦听接收,其原因如下:首先,接收的电流比发射更小,例如一般FSK无线芯片的接收电流为10~15 mA,而10 dBm微功率发射电流为25~30 mA,耗电相差一倍;其次,如果t3时刻是发数据,那么必定还需要接收应答,总的能耗是发送与接收的总和,能耗比较大.
外层节点在t3时刻发送n个连续的唤醒数据包,而不是常用的发与收交替的问答形式,如图6所示其原因如下:
a)发收交替形式侦听时间为Tc=Ta+Tb
b)连续发形式的侦听时间为Tc=Ta
连续发形式是发送一串带编号的唤醒包,唤醒包与包之间几乎不用间隔,接收机在完整检测到其中一个包后就不再睡眠,考虑到发送与接收之间存在的时间误差,采用发送n个唤醒包,如图6(b)所示,5个唤醒包后,再接收对方的应答ACK.因此,这种形式的无线唤醒方式适合发送方是偶发事件,使接收方侦听时间可以缩短到最小,对接收方来说非常节能.例如采样周期是3 min,那么内层节点有16个间隔是10 s的侦听时隙.
图6 两种无线唤醒的时间控制Figure 6 Two kinds of wireless wake-up time control
测试目的:1)测试无线网络中节点的耗电情况,以此来评估电池的寿命;2)测试网络通信的稳定性,测试外层节点通过中转到达控制中心的成功率;3)测试网络对应急事件的反应速度.
测试环境:72个无线节点分布在东西向大楼的3个楼层中,如图7所示.由于发射功率的限制,中心控制器可以直接与邻近的内层节点通信,而外层节点需要中转才能到达中心控制器.本次测试主要验证内外层的协调关系及节点的耗电情况,没有严格按照几何意义上内圆与外圆面积关系.
无线节点通信参数:输出功率为10 mW,接收灵敏度为-103 dBm,发送电流Ia为34 mA,接收电流Ib为17 mA,波特率19.2 kbit/s.
物理层数据包格式:前导码+同步字+数据长度+地址+数据域+CRC.其中,括弧代表byte数目,数据包总长度为24 byte.
接收和发送时间参数:
以单个数据包24 byte长度计算,在波特率19.2 kbit/s下,传输时间约为10 ms,所以单包发送时间Ta=10 ms,单包接收时间Tb=10 ms.场强侦听时间非常短,为了平滑掉噪声,场强侦听时间非常短,实际设置为3 ms,若在3 ms过程中发现有信号,则继续接收直到数据接收完毕.2个侦听时隙的间隔设置为10 s,是为了符合某些应用中要求反应时间不低于10 s、侦听间隔时间Td为10 s的要求.
图7 无线网络测试示意图Figure 7 Schematic diagram of wireless network testing
测试方法:1)在采样电阻上用示波器将电流转换成电压观察瞬态波形,根据波形的持续时间计算节点功耗;2)每个节点以约定好的定时间隔发送数据包,控制中心收集统计数据包的成功率.3)利用测试得到的电流值结合时序关系进行仿真实验,得出不同条件下的电池寿命情况.
4.2.1 无线节点电流测试
由于无线节点通常处于低功耗休眠状态,苏醒时工作时间在瞬间的ms级别,无法用万用表测量,必须用示波器在采样电阻上观察瞬态电压波形再推算电流值,时间值也是由波形测量得到.图8给出了无线接收的电流波形,从睡眠到苏醒需要大约1 ms预热过度期,进入正式接收的初期是由RSSI阈值判断的,若RSSI低于阈值就马上进入睡眠期;若RSSI大于阈值就进入帧头逻辑判断,若逻辑不正确则马上进入睡眠;若接收到正常逻辑帧头,则时间会延长,以便接收后续数据包.由于噪声的存在,实际RSSI是一个变动值,为了平滑掉噪声使得RSSI值相对稳定,设置侦听时间为3 ms.从图8的测试结果中看到,电流波形随场强RSSI的阈值不同而持续时间长短不同.
图8 不同RSSI阈值下接收电流的动态波形Figure 8 Dynamic waveform of receiving current at different RSSI threshold
4.2.2 无线网络通信稳定性测试
无线节点每隔3 min向控制中心发送数据包,单个数据包长为24 byte,传输波特率为19.2 kbit/s.从0点开始统计,以6 h为单元计算1次成功率,将1 d(天)分为4个单元.在正常情况下,6 h的计数值是120个包,以此计算1个单元时间的通信成功率.外层节点距离中心较远,需要中转才能到达,因此实验选择1个外层节点作为测试样本,如图9所示.从图9结果中可以看到,外层节点通信稳定性的成功率只有80%~90%,可能是电磁干扰导致中转有误码发生,也可能是软件设计不够稳健,但总体上方案是可行的.
图9 无线网络通信稳定性测试Figure 9 Stability test for wireless network communication
4.2.3 无线网络应急反应时间测试
在某些紧急事件触发时需要快速上报,3 min的报警延时太长了,因此本案采用了10 s的快速侦听方法,设计的应急反应时间测试方法如下:挑选最外层的节点为测试样本点,在其周围放置接收器可以稳定地接收数据包,记录收到数据包的时刻,将这个时刻与中心控制器收到数据包的时刻相减,得到应急反应时间,如图10所示.从结果来看,还有少量中转不能在第1次完成,需要在下一个10 s时隙才能完成,这有可能是侦听时间不够长,需要进一步改进.
图10 应急事件的网络延时测试Figure 10 Network delay time test for emergency events
4.2.4 无线节点功耗的仿真
下面对动态工作的无线节点进行功耗仿真.对于内层节点,有中转任务的额外功耗;对于外层节点,有主动发送同步序列脉冲的功耗,也可能有处理意外干扰的同步搜索功耗.
1)内层节点采用快速监听中转模式下的耗电
由图5时序可见,正常工作周期为T1,其中发送时间10 ms,接收时间10 ms,每经过10 s就有1个3 ms的快速监听时隙.若以3 min为T1的周期,那么期间个快速监听时隙N为17个,除了自己的数据包,还增加了中转的数据包.考虑1个内圈节点可以中转周边n个节点,设n=4,那么接收与发射的时间分别为50 ms,则平均电流为
若设T1为3 min,可得Iav1为16.5µA.
2)外层节点的耗电
外层节点要与中转节点取得联系后才能发送,首先要侦听邻居节点的时刻表,采用2个接收时隙去听邻居时刻.当紧急事件发生而需要10 s内发送时,用M个唤醒脉冲去与中转节点取得联系,然后发送信息,原理如图6(b)所示,其平均电流为
设M=5,T1=3 min,可得Iav2为6.3µA.
如果外层节点因干扰等因素暂时与内层节点失去同步,那么将同步窗口比正常时增大10倍即20个时隙,以便能保证同步
若设T1为3 min代入,则可得Iav3为21.7µA.
3)内层节点采用普通监听模式下的耗电
普通监听模式的时序如图6(a)所示,那么其平均电流为
式中,Ta1=Tb1=5 ms,是以最短收发时间5 ms计算,而不是以10 ms计算.
按照式(1)~(4)可以得到不同工作周期对应节点消耗的平均电流,如图11所示.
图11 不同条件下无线节点的耗电仿真Figure 11 Power consumption simulation of wireless nodes under different conditions
根据图11从侦听方式来比较,改进的快速侦听方式耗电明显低于普通侦听方式;从节点位置来比较,正常状态下内层节点耗电明显大于外层节点,这是因为内层节点每10 s的侦听工作用来中转任务.在图11中还可以看出,在有干扰的情况下,内外层节点之间可能时间不同步,外层节点需要增加额外的同步搜索时间,即便如此,当采样周期大于10 s时,内层节点耗电也大于外层节点耗电.在正常情况下,以1次采集周期3 min为例,平均电流为16.5µA,考虑漏电流等5µA,总平均电流约为22µA,设电池容量是3 500 mAh,以a(年)为单位计算工作寿命Y.
将电池容量3 500 mAh、平均工作电流22µA代入式(5),得到Y为18年.
工作寿命18年是理想情况,实际上电池也有自放电,不可能完全放出.若以80%折扣计算,得到Y为14a(年).
通过图11的测试与仿真可以看出,在网络的数据采集周期较短,如1次3 min时,节点平均功耗较大;随着采用周期的加长,如1次10 min,那么功耗明显降低;从消耗的电流曲线来看,快速监听法的功耗明显低于普通监听法的功耗.由此可以得出如下结论:1)快速监听法提高了网络的反应速度,功耗明显比传统方法低;2)在网络节点比较固定而且网络规模距离中心两跳范围内,可以通过普通节点实现中转功能,而且节点的功耗非常低.
本文提出了二层架构低功耗无线传感器网络,结合了拓扑结构控制、节能路由及时序控制而使整个无线网络无需专用的路由器,利用普通节点进行低功耗的数据转发,能够实现全部网络节点的电池供电.采用这种节能机制构建的网络比传统星型网控制面积大,且耗电非常低,一个常用的锂电池可以工作10a(年)以上,实用性较强.实验结果验证了本方法的可行性,不足之处是目前是单向传输,局限在一次中转,网络规模比较有限,此外系统稳定性也有待进一步提高改进.