首页 > 文章中心 > 正文

用于WSN的时间同步方式研究

用于WSN的时间同步方式研究

本文作者:徐顶鑫易卫东陈永锐孙昊作者单位:中国科学院研究生院信息科学与工程学院

0引言

无线传感器网络(wirelesssensornetworks,WSN)是由部署在监测区域内大量的微型传感器节点组成,通过无线通信方式形成的1个多跳自组织网络。它以低功耗、低成本、分布式和自组织的特点带来了信息感知的一场变革。

在过去的十几年中,国内外学者对WSN的研究与应用投入了极大的热情。在环境感知与监测[1]、无线定位与跟踪[2]、医疗监护[3]、智能家居[4]等领域都展现出广泛的应用前景。时间同步是WSN的1项关键支撑技术[5]。WSN是一种分布式系统,各个节点的本地时钟相互独立,这就导致各个节点的系统时间互不相同。许多WSN应用需要各节点协同工作,单个节点采集的原始数据需要和其他节点数据统一处理才能获取有用信息[6]。另一方面,时间同步在WSN通信协议的设计方面也有重要的应用。

MAC协议的设计目标主要包括节省能耗和防止冲突碰撞。TDMA在这方面具有先天的优势,而时间同步是TDMA的基础。传感器节点的系统时间由计时器产生,计时信号一般由晶体振荡器提供。由于晶振的制造工艺有差别,运行环境有变化,计时频率很难保持一致,导致各个节点的时间很容易失去同步。因此需要设计专门的同步算法来保证网络中节点的时间同步。传统的时间同步方法主要有NTP(networktimeprotocol)[7]和GPS(globalpositioningsystem)。NTP是Internet上的标准时间同步协议,主要为互联网中所有主机提供标准UTC(coordinateduniversaltime)时间。GPS用于进行全球高精度导航和定位。NTP和GPS都需要特定的设备或专用节点才能实现同步。由于传感器节点硬件资源有限,节能要求比较高等特点使得这2种传统时间同步方法都无法直接在WSN中使用。

目前针对WSN的时间同步方案主要分为以下3种[8]:1)基于发送者-接受者的方法。例如FTSP(floodingtimesynchronizationprotocol)[9],参考节点(发送方)在同步包中加入其本地时钟信息,待同步节点(接收方)收到同步包后,提取出时间信息,并据此校准自己的时钟。2)基于发送者-接收者交互的时间同步算法。例如TPSN(timing-syncprotocolforsensornetworks)[10],同步包的数据流向为待同步节点-参考节点-待同步节点,通过双向发送同步包,抵消传播时延。3)基于接收者-接收者交互的时间同步算法。例如RBS(referencebroadcastsynchronization)[11],其原理是利用同步包同步多个接收者之间的时间。参考节点广播域内的每个接收者将同时接收到来自参考节点的同步包,据此可以根据各个接收者接收到同步包时的时钟偏差进行校准。

现有的时间同步算法[12-13],大都将时间同步作为1个独立于通信协议的中间层单独设计,以使其适应各种不同的协议应用。这虽然会增强其通用性,但是却大大增加了复杂度和维护的困难性。同时会带来大量的维护开销,增加节点额外的能耗,造成通信协议能量效率的下降。因此,1个好的时间同步方案应当在不牺牲同步精度的前提下尽量减小同步带来的能耗。通用性和专一性是一对矛盾,而WSN是面向应用的。大量的研究实践表明,对于WSN的协议设计,很难做到像Internet一样的标准化和通用化,而必须针对不同的应用场景做特定的优化。从这种思想出发,本文针对数据采集这一WSN典型应用场景,设计了1个低能耗、高精度的时间同步方案LCTS(lightweightcollectiontreebasedsynchronization)。

1LCTS的设计原理

1.1同步包时延分析

不同节点之间的时间同步必须依靠同步包的收发来对相关节点的时钟进行校准。同步包的收发必然带来时延,因此在校准时必须对这部分的时延进行补偿。时间同步的难点在于该时延的分布具有随机性。为了精确的补偿,我们首先必须分析时延的特性,如表1所示。从表1可以看出,同步包的时延组成比较复杂,而且各部分时延分布特性很不一样。时延分布不确定性的最大来源是信道接入,这一点对于WSN尤为突出。本文的设计思路是尽量减少不确定性时延,为此我们将同步包的收发置于软件所能控制的最底层———物理层的驱动程序中。同步包一旦打上时间戳就可以立即被发送。此时,时延的组成将主要由节点硬件决定(传输时延,编解码时延),而由复杂多变的无线信道引入的时延可以剔除。对于接受方由于中断响应被关闭引入的延时不确定性,我们可以通过周期性重复发送同步包来解决。

1.2周期性同步

同步包的周期性发送具有重要意义。从长时间看,节点晶振具有频偏,导致节点计时不稳定。但是在短时间内,可以认为晶振是稳定的,从而计时是相对准确的。因此我们可以通过周期性的同步来解决长时频率飘移的问题。数据包的周期性发送会产生能耗,但是从协议栈整体来看,用于网络维护的周期性控制包例如路由信息等是不可缺少的,因此我们可以将同步包完全嵌入上层协议栈产生的协议控制包中,将时间戳打在周期性的控制包包尾。这样,时间同步将不会带来任何额外的数据包开销,而只是将已有的包长度增加几个字节,可以大大节省用于时间同步的能耗。事实上,在我们的实现中,同步包只需在MAC层的BEACON控制包包尾添加9个字节,就能统一实现同步、路由和网络维护等功能。

1.3树形拓扑

正如前文所讲,WSN是面向应用的。本文设定的应用场景是数据采集,此类应用中,通常网络层会维护1个以SINK节点为根节点的数据采集树。网络中所有的数据流向都是从子结点流向根节点并最终流向SINK节点。每一个节点都只与其父节点同步,只要树形拓扑存在,就能最终实现全网同步。时间同步是为了数据交换,在数据采集树中,所有的数据交换都是在父节点-子节点对中进行,只要保证子节点与父节点同步,就能实现高效数据传输。

2LCTS的设计与实现

2.1节点时间的表示

在Tmote-Sky节点中,节点时间由外部时钟源(晶振)产生。其计时方法涉及到3个(寄存器)变量:TAR,TACCR1和count。TAR是1个16位的硬件寄存器,根据外部时钟源计数,能够得到以tick(1tick=2-15s)为单位的时间,计时精度达到微秒级。TACCR1是捕获寄存器,当TAR=TACCR1时能产生TIMER中断,通过将TACCR1的递增步长设定为固定值INTERVAL可以对TIMER中断计数,实现更大范围计时。count是1个32位的软件计数器,记录TIMER中断次数,从而得到毫秒级计时。

2.2同步包的设计

所谓同步包,即是在包尾打上时间戳的BEACON包,其格式如图1所示。TYPE为标志位,表明是否需要同步;SenderAddr为发送者地址,接收者据此判断是否为其父节点,从而决定是否需要与其同步;TAR和count为时间戳,表明发送节点当前系统时间。TACCR1的值,可以由TAR和count推出,因此不必发送。

2.3时钟校准

由于节点时间由TAR、TACCR1和count唯一确定,所以如果能保证2个节点的这3对参数一致,即能实现时间同步。当接收者接收到同步包后可以根据时间戳信息校准自己时间,校准原理如下:(略)。TAR1和count1都可以直接从同步包中提取出来,INTERVAL是常量,因此只有1个未知量ΔT。ΔT是同步包的时延,需要进行估计。ΔT是1个非常重要的参数,对ΔT估计的精度直接影响同步精度。

2.4同步过程描述

网络在初始化时会建立1个以SINK节点为根节点的数据采集树。SINK节点周期性地发送包含时间戳的BEACON包,子结点在收到BEACON包后解析出时间戳,并按照式(1)~式(3)校准自己的时钟。每个节点在完成同步(亦即入网)后也会按照SINK节点的方式广播BEACON包,以方便新节点的加入。新节点加入时会首先侦听一段时间,收集到邻居节点的BEACON后会选取1个父节点,并与之同步,从而完成入网。当拓扑发生变化时,掉网的节点会首先侦听一段时间,重新选择父节点,并完成同步入网。

3试验结果与分析

3.1实验平台与实验方法

本文采用Tmote-Sky[14]硬件平台和Contiki[15]操作系统。Tmote-Sky是1个广泛应用的节点硬件平台,它包括8MHzMSP430MCU,10KBRAM,48KBflash,250Kb/s射频收发器。Contiki是1个轻量级多任务WSN操作系统。它完全由C语言实现。我们首先分析同步时延与包长的关系,依次改变同步包长度并记录同步时延。在此基础上分别提出定值校正法和跟踪校正法2种估计同步时延的方法,分别进行测试,得出各自同步误差。详细结果分析如下。

3.2同步时延与包长的关系。

根据1.2.1节的分析,本文采用的同步方法引入的同步包时延主要包括传输时延,而它是与包长直接相关的。实验所得ΔT与包长的关系如图2所示。图2表明时延与包长呈线性相关性,经过线性拟合可得如下经验公式:(略)。给定包长L,我们可以得到ΔT,然后根据式(1)可以进行校准,我们称此方法为定值校正法。下面我们来分析该方法的同步误差。

3.3定值校正法

定值校正法的校准公式如式(5)所示:(略)。图3所示为定值校正法的误差分布图,其数据的概率统计结果见表2,可见其同步误差均值为0.968tick,即29.54μs,均方差为1.2054tick。为进一步分析同步误差随时间的变化,得到同步误差的时序图如图4所示。该图表明在短时间小区间内同步误差较为稳定,而在长时间大区间内同步误差呈周期性变化。根据这一特性,我们可以采用跟踪校正法来估计同步误差。

3.4跟踪校正法

跟踪校正法的校正公式如式(6)所示:(略)。其同步误差分布如图5所示,其数据的概率统计结果如表2所示。可见其同步误差为0.4114tick,即12.55μs,均方差为0.7003tick。对误差的时序进行分析得到同步误差的时序图如图6所示。与定值校正法对比,可以发现跟踪校正法性能有较大的提升,既能保证较高的精度(平均误差减少57.5%),又能保证较好的稳定性(均方差减少49%)。因此在同步精度较高的场所可以采用跟踪校正法。在同步精度低的场合可使用简单的定值校正法。RBS[11]和TPSN[10]的同步误差分别为29.13μs和16.9μs,与LCTS相当,但是LCTS在能耗方面更有优势。

3.5能量分析

WSN节点的能耗主要由射频模块的数据收发产生,因此我们可以通过同步包收发次数来比较不同同步算法的能耗。考虑在1个广播域内1个参考节点n个接收节点时各算法的同步开销如表3所示[16]。其中K为RBS算法时间记录次数,K越大同步精度越高。从表3中可以看出与RBS和TPSN相比,LCTS可以大大减少同步包的收发次数,因此可以降低能耗。

4结论

本文针对面向数据采集应用的WSN提出了1个轻量级的基于数据采集树的低能耗、高精度时间同步方案LCTS,并进一步在该方案的基础上提出了定值校正法和跟踪校正法2种同步校正方法。通过在Tmote-Sky平台上对该方案进行实验评估,得出了同步误差的概率分布图以及时域变化特性。大量长时间的实验测试表明,LCTS可以实现μs级(<100μs)的同步,同时具有低开销、低能耗的特点。跟踪校正法相对于定值校正法具有更高的精度,同步误差的均值和均方差分别下降约57.5%和49%。