ZigBee-WiFi协同无线传感网络的节能技术

2015-12-20 06:59宋红霞
计算机工程与设计 2015年1期
关键词:信标时钟校正

董 哲,宋红霞

(北方工业大学 现场总线与自动化技术北京市重点实验室,北京100144)

0 引 言

监控环境的复杂性和不确定性等因素使无线传感节点的能量补给 (如人工更换电池、充电等)较为不便,网络寿命[1]是制约无线传感网络在工业应用中的最大障碍,因此探寻一套有效的低功耗能量管理策略成为不可忽视的关键问题。本文采用一种新的时间同步策略——ZigBee-WiFi协同方式,达到较高时钟同步精度,大大减小通信开销,降低系统功耗,取得了很好的节能效果。

1 系统结构

本文研究针对ZigBee-WiFi协同无线传感网络,信息感知层由ZigBee网络节点实现,大量的无线传感数据汇聚到无线网关,通过WiFi上传至中央服务器进行处理。上述无线传感网络的典型结构如图1所示,系统主要由ZigBee无线传感网络、无线网关和服务器3部分组成。ZigBee无线传感节点分布在被测环境中,组成庞大的传感器网络,网络拓扑一般采用多跳 (multi-hop)结构。网关用于信息汇聚和传输,具备ZigBee和WiFi两种网络接口,在ZigBee网络中,网关是协调器;在WiFi网络中,网关是终端节点,通过无线AP将底层数据上传至服务器。在该系统中,大量的无线传感器节点采用电池供电,无线网关及服务器采用电源供电。因此提高网络寿命[1]的核心是针对ZigBee节点研究并设计有效的休眠机制。本文重点研究在WiFi覆盖环境下的ZigBee网络节能问题,由于图1所示的网络结构在无线监测领域广泛应用,因此该研究具有普遍的应用价值。

图1 系统结构

2 休眠节能策略分析

本文分析针对多跳无线传感网络,该类网络中的节点根据其职能一般可分为:协调器 (中心节点),路由器 (中间节点),终端 (底层节点)。

休眠节能策略主要分为两类:异步时钟休眠和同步时钟休眠。异步时钟休眠机制:系统中每个节点都运行独立的时钟,执行独立的休眠计划。其详细通信机制如图2所示,协调器将命令或数据发送给指定终端设备的父节点,即路由器。因为时钟不同步,若终端节点处于睡眠状态,命令或数据由路由器保存。待终端节点睡醒后,首先向其父节点发送一个数据请求Request,查看是否有发给自身的数据[2]。父节点若保存有下发给子节点的数据,则在收到子节点的数据请求之后,立即下发数据,父节点若没有保存数据,则回一个无数据的应答信息Ack。终端节点在一次通信完成之后,或者收到父节点的Ack后,再次进入休眠。异步时钟休眠机制的优点是无线网络中的所有节点维持独立时钟,不用采用复杂的时钟同步算法,易于实现。缺点是:①由于时钟不同步,不论父节点有无数据,终端节点每次唤醒都要发送查询命令,产生无效通信开销。②由于父节点 (即路由节点)在终端节点唤醒前要保存数据。但是节点的存储资源有限,当子节点较多且通信量较大时容易造成数据溢出。③异步时钟通信机制中路由节点不能休眠,在复杂的大型网络中,路由节点越多能耗越大。④传感器无法实现主动上传数据,每次通信必须先由终端节点请求数据,再等待数据,产生不必要的通信开销。

图2 异步时钟休眠与通信机制

同步时钟休眠机制:系统中所有节点时钟同步,可以实现同时休眠,同时唤醒,唤醒后可以直接进行数据通信。主要优点:①在每次唤醒后,无需向父节点发送数据请求;②路由器可以实现休眠;缺点:传统时钟同步方法的实现难度较大,增加了通信开销,在较大的网络规模下精度不高。不同的时钟同步算法,能量消耗也不尽相同。

随着无线通信成本的日益降低,WiFi覆盖越来越广泛,由于WIFI(802.11)和ZigBee(802.15)都采用ISM频段[3],研究发现,802.15.4射频模块可以接收到802.11网络中的周期性Beacon信号。利用此特性,一些学者研究了基于ZigBee-WiFi网络协同的能耗管理、时钟同步等问题[4]。本文基于上述研究提出了一种新颖的无线传感网络同步休眠策略。该策略采用ZigBee-WIFI协同时钟同步机制,其原理为:802.15.4无线传感器可以检测工作在同一频段下的WiFi广播的信标帧,并采用它们作为参考时钟信号校正本地时钟。这种方法有几个关键优势:①不需要对802.11的AP 做任何改动,因此可以利用无处不在的WiFi。②覆盖范围大。测量结果显示,许多的WiFi AP 产品即使在一个很复杂的环境中,仍然有100 m 左右的通信范围。③802.15.4无线传感设备的分布比AP 密集,因此同一个无线传感网络的许多节点可以用同一个信标信号作为参考时钟。相对于常规的时钟同步算法[5],该方法可以不通过信息的交换而达到节点时间的同步。对于较大范围的网络,通过节点间并不频繁的信息交换达到整个网络的时间同步。这种时间同步算法在能耗和时钟同步准确性方面较其它同步协议有较大提升。下面就此方法做详细论述。

3 ZigBee-WiFi协同时钟同步算法

3.1 算法概述

本系统研究对象为ZigBee无线传感网络,网络中包含协调器、路由器、终端3类节点。ZigBee网络节点采用同步时钟休眠机制。网内节点采用统一的唤醒周期T,每个周期唤醒Tw时间,休眠Ts时间。若Tw 内无通信需求,节点唤醒后保持Tw 时间,再进入休眠状态。若有通信需求,则通信完成后进入休眠状态。若数据量较大,通信时间超过T,则节点保持唤醒状态多个周期,直到通信完毕再休眠。由于时钟同步存在误差,因此要求节点唤醒时间Tw必须大于最大误差,才能实现同步。Tw的选取跟时钟同步精度有关,设网内共有n个节点,ei表示节点i与其父节点的时钟误差,则

以保证所有节点在唤醒时间内都能收到来自子节点和父节点的通信请求。唤醒时间Tw与校正周期的关系将在第5部分详细介绍。

时钟同步精度由两个因素决定:授时精度和走时精度[6]。节点在首次入网后由其父节点对其进行授时,由于温度等因素的影响,晶振会产生偏差[7],因此每隔TC(校时周期)进行一次校时。本文采用了一种基于WiFi AP 信标 (beacon)周期的校时方法,其原理如下:

整个系统都在WiFi的覆盖范围之内,802.11标准为了网络管理,要求WiFi通过接入点 (AP)周期性的广播信标帧。802.11和802.15.4 都工作在无需身份认证的2.4 GHz的频段,它们定义的信道大多数是重叠的。工作在重叠的信道上,会相互干扰[8]。虽然802.15.4无线传感节点不能解码WiFi信号,但是可以通过接收信号强度指示器(RSSI)检测AP 广播的信标[9],RSS采样值如图3 所示。系统的RSS采样值经过采样、滤波、折叠放大处理,得到稳定的周期性WiFi信标帧,采用它们作为参考时钟信号校正802.15.4设备的本地时钟[4]。

图3 RSS采样值

假设t0为初始时间,t0以后流逝的时间记为Δt。基于本地时钟的测量,当前的本地时间可以表示如下

式中:nticks——t0之后走过的时钟滴答数,fnative——本 地时钟频率。由于授时误差及晶振误差,本地时钟与标准时钟会 逐 渐 偏 离。例 如,802.15.4 射 频 芯 片CC2530 装 有32.768KHz的晶体振荡器。该晶体振荡器的误差为-40~+40ppm,因此需对本地时钟频率进行校正。系统采用WiFi网络中AP周期性广播的信标帧作为参考时钟,频率定义为fbeacon,因此可通过采样得到fbeacon来校正fnative。WiFi默认的信标周期是100 ms,其相应的时钟频率是9.766Hz。本地标准时钟频率记为f*native,本地实际时钟频率记为fnative,它们的比值记为α

频率的比符合本地时钟的偏斜,所以α 代表本地时钟的偏斜。从式 (1)和式 (2)可知,逻辑时间t可以表示为

由于本地时钟频率会发生漂移,时钟偏斜α 是一个基于时间的变量,因此为了获得理想的计时准确性,系统需要动态的更新时钟偏斜α进行修正。

3.2 算法总体结构

图4是系统的算法结构。节点在校正周期到来后,首先通过RSS采样和滤波、RSS信号折叠、异常值处理等步骤提取WiFi的信标信号,用它们作为参考时钟校正本地时钟。

具体来说,节点唤醒后,到达校正时刻,首先读取ZigBee无线节点内置的接收信号强度指示器 (RSSI),然后经过滤波处理来减轻噪声的影响。在RSS折叠部分,RSS样本输入一种数字信号处理算法,称为折叠[10],它可以放大在RSS样本中周期性的信标信号。为了进一步减少信标退避和传输竞争对信号的影响,系统在折叠后检测信标值时丢弃异常值。剩余的信标具有很强的周期性,用作参考时钟。使用参考时钟输入时钟校正部分,测量当前的时钟偏斜 (在式 (2)中定义)。下面就各部分做详细论述。

图4 算法结构

3.3 WiFi信标信号的提取

3.3.1 RSS采样和滤波

采样:ZigBee射频唤醒后,RSS模块周期性自动采样。本文采用的射频芯片为TI CC2530,其时钟频率为32.768 kHz,每4个时钟周期采样一次,因此RSS采样周期为122 μs。由于WiFi信标的周期一般为100ms,为保证信标提取成功一般需采样5~10个信标周期,因此采样持续时间为500~1000ms。

滤波:原则1,由于Beacon信号强度较大,因此可设置合理的阈值,当采样信号强度大于阈值时,输出1,当信号强度小于阈值时为噪声,输出0;原则2:根据WiFi标准,信标信号的持续时间至少为2个RSS采样周期,因此如果某个RSS样本的前一个和后一个样本值均为零,则该样本值为0。经过采样和滤波后,将生成一个0,1 序列,下面通过信号折叠算法提取WiFi信标信号。

3.3.2 信号折叠

系统应用了一种数字信号处理技术称为折叠[10],它可以从RSS的时间序列中识别出WiFi的周期信标信号。折叠的目的是为了寻找周期为P的信号 (P为信标周期)。折叠过程如图5所示,假设R 代表的是RSS采样样本N 的时间序列,R [i](i∈ [1,N])指的是第i次采样时刻RSS样本的大小。在做信号折叠时,首先把时间序列分成长度为P几个子序列,用Fp表示,它的每个元素是N/P个初始元素之和。Fp的第i个元素由公式给出

Fp的最大元素指的是周期P的折叠峰值。如果折叠峰值明显高于其它元素,这表明在时间序列中存在一个周期为P的信号。折叠峰值在折叠结果Fp中出现时刻称为它的相位。

图5 信号折叠算法

在折叠过程中用到的RSS样本N 的数量会影响系统的表现。因为当使用较少的RSS样本时,折叠操作很容易出现错误的峰值,这个峰值由周期数据帧、信标延迟或者噪音产生。当RSS样本数量增加的时候,这种错误的影响会显著减少,折叠次数越多结果表现越好。然而较多的折叠次数需要更多的折叠样本,因此会消耗更多能量。综合考虑系统表现和能量消耗两个方面,经多次实验测得折叠次数为8时,系统表现最好。

3.3.3 异常值检测

3.4 时钟校正

3.4.1 方法一:补偿校正本地时钟偏差

(1)测量时钟偏斜

系统基于从折叠结果中检测到的周期信标信号来测量本地时钟偏斜。如3.3.2所述,假设系统执行第i次时钟校正,节点从采样窗口中找到折叠峰值,然后基于折叠峰值发生的相位计算本地时间

pi指的是第i次折叠峰值出现的时刻,si是采样窗口开始的时刻。Pi是第i次峰值出现的相位,它指的是从采样窗口开始到折叠峰值出现的时钟滴答数。pi,si和Pi的单位是本地时钟的滴答。

n*AP表示一个信标周期内本地标准时钟走过的时钟滴答,由式(6)知,由于信标周期是常量,所以n*AP也为常量

如果本地时钟是准确的,当两个采样窗口的间隔是信标周期的倍数时,折叠相位的峰值是不变的。于是,两个折叠结果峰值出现的时刻之间的间隔应该是信标周期的倍数。假设第i次和第 (i+1)次采样窗口之间的时间间隔是Ni个信标周期,finative指的是这段时间间隔中本地时钟的平均频率,两次校正时间的时间间隔为

第i次和第 (i+1)次采样窗口之间的时间间隔由频率比αi-1计算得出,所以推出

由式 (5)~式 (8),我们推导出αi如下

802.11信标的频率和本地时钟的准确频率分别为9.766Hz和32KHz,本地时钟的实际频率的初始值可以由时钟漂移率估算出。在式 (9)中,Pi+1-Pi可以用本地时钟测量,其它的量都是已知。

(2)校正本地时钟偏差

因此,系统逻辑时间Ti可以表示为

假设 每 隔100s 校 正 一 次,则nticks=335531,α1=0.99994,仿真结果如图6所示。

图6为1000次校正的结果,由于校正只根据本次测量的偏差,未考虑历史值,因此系统校正结果有一定波动并不能呈现稳定的收敛与良好跟踪特性。为此,利用dlqr和Kalman算法对系统进行最优化跟踪校正。

3.4.2 方法二:本地时钟偏差的最优化跟踪校正

ZigBee设备的本地时钟用tnative表示,本地频率用fnative表示。Tnative表示本地时钟的实际周期,T*native表示本地时钟的标准周期,n 表示n 个周期。T 表示本地时钟的实际测量时间,T*表示本地时钟的标准测量时间。由式 (2)得出

图6 方法一:真实时间与校正时间之差

由式 (3)推出,它的逻辑时间tnative=t0+Δt=t0+T·α+u,其中T 是本地时钟测得的在t0时刻后的流逝时间,α是本地时钟偏斜,u为输入的时钟校正值。

WiFi AP的标准时间用tAP表示,AP的标准频率用fAP表示。同上得,AP的逻辑时间tAP=t0+T·αAP,其中T是AP的时钟在t0在时刻后流逝时间。αAP是AP时钟偏差的校正值,因为从AP中提取到稳定的周期信号,因此tAP无需校正,αAP=1。

输入高斯白噪声为测量误差,白噪声的协方差Rv=E [v(k),v′(k)]。

ZigBee的本地时钟与AP 标准时间、频率的差,建立模型3

对该系统应用线性二次型最优控制 (dlqr)算法,求出最优化的反馈控制器K,K=dlqr(A,B,Q,R);其中加权阵Q,R 取单位阵

对模型1应用Kalman滤波算法,具体算法如下:

系统预测状态为:X(k|k-1)=A·X(k-1|k-1);

系统的测量值:Y(k|k-1)=CX(k|k-1)+V(k|k-1);

系 统 的 状 态 估 计:^X(k |k)=^X(k |k-1)+Kg(k)[z(k)-C·^X(k|k-1)]。

Kalman增益:Kg(k)=^P(k|k-1)C′[C^P(k|k-1)C′+Rv]-1,其中Rv是测量误差的方差。

预测状态的方差:^P(k|k-1)=A^P(k-1|k-1)A′,其中^P(k-1|k-1)是k-1时刻状态误差的方差。

更新状态方差:^P(k|k)=^P(k|k-1)-Kg(k)C^P(k|k-1)。

由Kalman滤波算法求出^X(k)代入式 (16)求出差值,再代入式 (18),求出校正输入u(k),再代入式 (15),如此迭代下去。

用matlab进行仿真,假设每隔100s校正一次,赋初值如 下:x (0) = [0.05;1];y (0) = [0.0518;0.99999941229];xn(0)= [0.03;0.99996];yn(0)=[0.03;0.99996];u (0)= [0;0];^X(0)= [0;0];^P(0)=1*eye(2)。

仿真结果如图7所示。

图7 方法二时间仿真

图7 (a)显示了节点经过100次校时后对标准时间的跟踪,图中曲线对比了测量值、估计值与真实值的差值,可以看出系统对噪声有很强的抑制能力;图7 (b)为节点时钟经过校正后与标准时钟的偏差。通过以上2幅图可以看到,系统经过Kalman滤波后,减小了噪声信号的影响,很好地跟踪了标准时钟,且通过最优化校正,使本地时钟收敛于标准时钟。

图8 (a)显示了时钟偏斜α 的测量值、估计值与标准值的情况,滤波后的估计值能很好地抑制噪声,跟踪标准值。图8 (b)显示了α的校正值随着校正次数的增多越来越逼近标准值,达到很好的跟踪效果。由以上仿真结果可以看出,方法二的校正效果明显优于方法一。

图8 方法二时钟偏斜α的仿真

4 同步时钟与异步时钟能耗对比

实验一:准备两组节点,每组3 个终端节点,没有路由器。甲组采用同步时钟机制,乙组采用异步时钟机制,每个节点每5s中发一次数据,一次发送20字节。异步时钟机制中,假设节点每次唤醒后向父节点询问数据的命令为10个字节。为了便于观察,两组所有节点采用PM2 休眠方式。

简单网络中同步时钟与异步时钟能耗对比,见表1。

表1 简单网络中同步时钟与异步时钟能耗对比

实验二:准备两组节点,每组2个路由节点,3个终端节点,甲组采用同步时钟机制,乙组采用异步时钟机制,每个节点每10min中发一次数据,一次发送20字节。异步时钟机制中,假设节点每次唤醒后向父节点询问数据的命令为10个字节。乙组若路由器休眠,则会造成信息的长时间延迟,没有实际应用价值,所以令乙组路由器不休眠。但是甲组路由器可以休眠,甲组所有节点同时休眠,同时唤醒,不会带来数据的延迟,这也是时钟同步机制的优势所在。为了便于观察,两组所有节点采用PM1 休眠方式。1小时之后,两组系统能耗如图9所示。

图9 同步时钟与异步时钟能耗对比

复杂网络中同步时钟与异步时钟能耗对比,见表2。

两个实验对比得出,在简单的网络结构中 (也就是没有路由器的时候),同步时钟与异步时钟的能耗非常接近。鉴于异步时钟机制简洁,而同步时钟的算法复杂而且需要一定的计算和通信开销。因为基于WiFi的时钟同步算法可以每隔20min校正一次,实验一时间较短没有考虑同步算法开销。WiFi的时钟同步算法一次校正能耗约为0.05904 J,远大于实验一的测量数据,所以简单网络中异步时钟较同步时钟更有优势。在复杂的大型网络中,数据融合汇聚到一点会经过多级路由,异步时钟机制中路由器不能休眠,此时系统的总能耗急剧上升。因此大型网络中同步时钟机制具有明显优势。

表2 复杂网络中同步时钟与异步时钟能耗对比

5 同步误差与校正周期的权衡

同步时钟机制要求节点唤醒时间必须大于系统时钟最大误差,才能实现同步。测得各节点误差的最大值为Tw,校正周期记为c ,c 越大,系统耗能越少,但是同步误差会增大,即Tw会增大,唤醒时间延长。假设没有数据传输的前提下,一定时间内,系统总能量为A,Ac代表时钟校正的能耗,Ad代表由时钟误差引起的唤醒持续时间的能耗,As代表休眠能耗。C代表总时间,这里设置为1小时。Pr代表接收功率,同时也代表唤醒后CPU 空闲的功率,S代表唤醒周期。假设S等于0.5*Tc,则:

As=Ps·Ts,Ts是休眠时间,给定总时间是C,则Ts=C-Tc·nc-Tw·nw。

Tw、Pc、Pd、Ps均可以由实验测得,仿真结果如图10所示。

由图10可以得出校正周期为11min时,系统总能耗最低,同步误差与校正周期达到最好的权衡。

6 结束语

利用周期性的WiFi信标作为参考时钟校正节点的本地时钟,平均校正周期在20分钟以上,校正过程中没有任何收发信息的开销,节能效果显著。全局时钟可以4小时校正一次,周期很长,其耗能可以忽略。异步时钟机制因为路由器不能休眠,在复杂网络中比简单网络能耗急速增加。若路由器休眠,则会带来很大的信息延迟,这在实际应用中是不允许的。因此采用WiFi信号使本地时钟同步,在时钟准确性,低功耗等方面都有很好表现,有较大推广利用价值。

图10 同步误差与校正周期的权衡

[1]Gandham S,Dawande M,Prakash R,et al.Energy efficient schemes for wireless sensor networks with multiple mobile base stations[C]//Proc of the IEEE GLOBECOM.Washington:IEEE Computer Society,2003:377-381.

[2]GAO Shouwei,WU Canyang.ZigBee technology practice tutorial[M].Beijing:Beihang University Press,2009 (in Chinese).[高守玮,吴灿阳.ZigBee技术实践教程 [M].北京:北京航空航天大学出版社,2009.]

[3]Yi Peizhong,Abiodun Iwayemi,Zhou Chi.Developing ZigBee deployment guideline under WiFi interference for smart grid applications[C]//IEEE Transactions on Smart Grid,2011.

[4]Hao Tian,Zhou Ruogu,Xing Guoliang,et al.WizSync:Exploiting WiFi infrastructure for clock synchronization in wireless sensor networks[C]//IEEE Transactions on Parallel and Distributed Systems,2013.

[5]WANG Cheng,DENG Geyan.Research on synchronization algorithm and energy consumption in wireless sensor networks[D].Wuhan:Huazhong University of Science and Technology,2009 (in Chinese). [王乘,邓戈燕.无线传感网络中的同步算法及能耗研究 [D].武汉:华中科技大学,2009.]

[6]WANG Guanling,LANG Lang,WANG Manhai.Research on clock timing system based on ZigBee and GPS radio television[J].Automation and Instrumentation,2008 (5):15-18 (in Chinese).[王冠凌,郎朗,王满海.基于ZigBee和GPS广播电视时钟授时系统的研究 [J].自动化与仪器仪表,2008(5):15-18.]

[7]Polastre J,Szewczyk R,Culler D.Telos:Enabling ultra-low power wireless research [C]//IPSN,2005:364-369.

[8]Huang J,Xing G,Zhou G,et al.Beyond co-existence:Exploiting WiFi white space for ZigBee performance assurance[C]//IEEE International Conference on Network Protocols,2010:305-314.

[9]Xing G,Sha M,Huang J,et al.Multi-channel interference measurement and modeling in low-power wireless networks[C]//Proceedings of the 30th IEEE Real-Time Systems Symposium,2009:248-257.

[10]Zhou Ruogu,Xiong Yongping,Xing Guoliang,et al.ZiFi:Wireless LAN discovery via ZigBee interference signatures[C]//Proc IEEE MOBICOM,2010:49-60.

猜你喜欢
信标时钟校正
别样的“时钟”
古代的时钟
劉光第《南旋記》校正
RFID电子信标在车-地联动控制系统中的应用
一类具有校正隔离率随机SIQS模型的绝灭性与分布
机内校正
有趣的时钟
时钟会开“花”
基于信标的多Agent系统的移动位置研究
无姿态补偿的水下信标绝对位置传递研究