1 时间同步技术的重要性 传感器节点的时钟并不完美,会在时间上发生漂移,所以观察到的时间对于网络中的节点来说是不同的。但很多网络协议的应用,都需要一个共同的时间以使得网路中的节点全部或部分在瞬间是同步的。 第一,传感器节点需要彼此之间并行操作和协作去完成复杂的传感任务。如果在收集信息过程中,传感器节点缺乏统一的时间戳(即没有同步),估计将是不准确的。 第二,许多节能方案是利用时间同步来实现的。例如,传感器可以在适当的时候休眠(通过关闭传感器和收发器进入节能模式),在需要的时候再唤醒。在应用这种节能模式的时候,节点应该在同等的时间休眠和唤醒,也就是说当数据到来时,节点的接收器可以接收,这个需要传感器节点间精确的定时。 2 时间同步技术所关注的主要性能参数 时间同步技术的根本目的是为网络中节点的本地时钟提供共同的时间戳。对无线传感器网络WSN(Wireless Sensor Networks)[1]的时间同步应主要应考虑以下几个方面的问题: (1)能量效率。同步的时间越长,消耗的能量越多,效率就越低。设计WSN的时间同步算法需以考虑传感器节点有效的能量资源为前提。 (2) 可扩展性和健壮性。时间同步机制应该支持网络中节点的数目或者密度的有效扩展,并保障一旦有节点失效时,余下网络有效且功能健全。 (3)精确度。针对不同的应用和目的,精确度的需求有所不用。 (4)同步期限。节点需要保持时间同步的时间长度可以是瞬时的,也可以和网络的寿命一样长。 (5)有效同步范围。可以给网络内所有节点提供时间,也可以给局部区域的节点提供时间。 (6)成本和尺寸。同步可能需要特定的硬件,另外,体积的大小也影响同步机制的实现。 (7)最大误差。一组传感器节点之间的最大时间差,或相对外部标准时间的最大差。 3 现有主要时间同步方法研究 时间同步技术是研究WSN的重要问题,许多具体应用都需要传感器节点本地时钟的同步,要求各种程度的同步精度。WSN具有自组织性、多跳性、动态拓扑性和资源受限性,尤其是节点的能量资源、计算能力、通信带宽、存储容量有限等特点,使时间同步方案有其特殊的需求,也使得传统的时间同步算法不适合于这些网络[2]。因此越来越多的研究集中在设计适合WSN的时间同步算法[3]。针对WSN,目前已经从不同角度提出了许多新的时间同步算法[4]。 成对(pair-wise)同步的双向同步模式 代表算法是传感器网络时间同步协议TPSN(Timing-Sync Protocol for Sensor Networks)[5~6]。目的是提供WSN整个网络范围内节点间的时间同步。 该算法分两步:分级和同步。第一步的目的是建立分级的拓扑网络,每个节点有个级别。只有一个节点与外界通信获取外界时间,将其定为零级,叫做根节点,作为整个网络系统的时间源。在第二步,每个i级节点与i-1(上一级)级节点同步,最终所有的节点都与根节点同步,从而达到整个网络的时间同步。详细的时间同步过程如图 1 所示。 图1 TPSN 同步过程 设R为上层节点,S为下层节点,传播时间为d,两节点的时间偏差为θ。同步过程由节点R广播开始同步信息,节点S接收到信息以后,就开始准备时间同步过程。在T1时刻,节点S发送同步信息包,包含信息(T1),节点R在T2接收到同步信息,并记录下接收时间T2,这里满足关系:21TTd 节点R在T3时刻发送回复信息包,包含信息(T1,T2,T3)。在T4时刻S接收到同步信息包,满足关系:43TTd 最后,节点S利用上述2个时间表达式可计算出的值:(21)(43)2TTTT TPSN由于采用了在MAC层给同步包标记时间戳的方式,降低了发送端的不确定性,消除了访问时间带来的时间同步误差,使得同步效果更加有效。并且,TPSN算法对任意节点的同步误差取决于它距离根节点的跳数,而与网络中节点总数无关,使TPSN同步精度不会随节点数目增加而降级,从而使TPSN具有较好的扩展性。TPSN算法的缺点是一旦根节点失效,就要重新选择根节点,并重新进行分级和同步阶段的处理,增加了计算和能量开销,并随着跳数的增加,同步误差呈线性增长,准确性较低。另外,TPSN算法没有对时钟的频差进行估计,这使得它需要频繁同步,完成一次同步能量消耗较大。 接收方-接收方(Receiver-Receiver)模式 代表算法是参考广播时间同步协议RBS(Reference Broadcast Synchronization)[7]。RBS是典型的基于接收方-接收方的同步算法,是Elson等人以“第三节点”实现同步的思想而提出的。该算法中,利用无线数据链路层的广播信道特性,基本思想为:节点(作为发送者)通过物理层广播周期性地向其邻居节点(作为接收者)发送信标消息[10],邻居节点记录下广播信标达到的时间,并把这个时间作为参考点与时钟的读数相比较。为了计算时钟偏移,要交换对等邻居节点间的时间戳,确定它们之间的时间偏移量,然后其中一个根据接收到的时间差值来修改其本地的时间,从而实现时间同步[11]。 假如该算法在网络中有n个接收节点m个参考广播包,则任意一个节点接收到m个参考包后,会拿这些参考包到达的时间与其它n-1个接收节点接收到的参考包到达的时间进行比较,然后进行信息交换。图2为RBS算法的关键路径示意图。 网络接口卡关键路径接收者1发送者接收者2 图2 RBS算法的关键路径示意图 其计算公式如下: ,,11,:[,]()mjkikkinjnoffsetijTTm 其中n表示接收者的数量,m表示参考包的数量,,rbT表示接收节点r接收到参考包b时的时钟。 此算法并不是同步发送者和接收者,而是使接收者彼此同步,有效避免了发送访问时间对同步的影响,将发送方延迟的不确定性从关键路径中排除,误差的来源主要是传输时间和接收时间的不确定性,从而获得了比利用节点间双向信息交换实现同步的方法更高的精确度。这种方法的最大弊端是信息的交换次数太多,发送节点和接收节点之间、接收节点彼此之间,都要经过消息交换后才能达到同步。计算复杂度较高,网络流量开销和能耗太大,不适合能量供应有限的场合。 发送方-接收方(Sender-Receiver)模式 基于发送方-接收方机制的时间同步算法的基本原理是:发送节点发送包含本地时间戳的时间同步消息,接收节点记录本地接收时间,并将其与同步消息中的时间戳进行比较,调整本地时钟。基于这种方法提出的时间同步算法有以下两种。 FTSP 算法[8] 泛洪时间同步协议FTSP(Flooding Time Synchronization Protocol)由Vanderbilt大学Branislav Kusy等提出,目标是实现整个网络的时间同步且误差控制在微秒级。该算法用单个广播消息实现发送节点与接收节点之间的时间同步。 其特点为:(1)通过对收发过程的分析,把时延细分为发送中断处理时延、编码时延、传播时延、解码时延、字节对齐时延、接收中断处理时延,进一步降低时延的不确定度;(2)通过发射多个信令包,使得接收节点可以利用最小方差线性拟合技术估算自己和发送节点的频率差和初相位差;(3)设计一套根节点选举机制,针对节点失效、新节点加入、拓扑变化等情况进行优化,适合于恶劣环境[12]。 FTSP算法对时钟漂移进行了线性回归分析。此算法考虑到在特定时间范围内节点时钟晶振频率是稳定的,因此节点间时钟偏移量与时间成线性关系,通过发送节点周期性广播时间同步消息,接收节点取得多个数据对,构造最佳拟合直线,通过回归直线,在误差允许的时间间隔内,节点可直接通过它来计算某一时间节点间的时钟偏移量而不必发送时间同步消息进行计算,从而减少了消息的发送次数并降低了系统能量开销。 FTSP结合TPSN和RBS的优点,不仅排除了发送方延迟的影响,而且对报文传输中接收方的不确定延迟(如中断处理时间、字节对齐时间、硬件编解码时间等)做了有效的估计。多跳的FTSP协议采用层次结构,根节点为同步源,可以适应大量传感器节点,对网络拓扑结构的变化和根节点的失效有健壮性,精确度较好。该算法通过采用MAC层时间戳和线性回归偏差补偿弥补相关的错误源,通过对一个数据包打多个时戳,进而取平均和滤除抖动较大的时戳,大大降低了中断和解码时间的影响。FTSP 采用洪泛的方式向远方节点传递时间基准节点的时间信息,洪泛的时间信息可由中转节点生成,因此误差累积不可避免。另外,FTSP的功耗和带宽的开销巨大。 DMTS 算法[9] 延迟测量时间同步DMTS (delay measurement time synchronization) 算法的同步机制是基于发送方-接收方的同步机制。DMTS 算法的实现策略是牺牲部分时间同步精度换取较低的计算复杂度和能耗,是一种能量消耗轻的时间同步算法。 DMTS算法的基本原理为:选择一个节点作为时间主节点广播同步时间,所有接收节点通过精确地测量从发送节点到接收节点的单向时间广播消息的延迟并结合发送节点时间戳,计算出时间调整值,接收节点设置它的时间为接收到消息携带的时间加上广播消息的传输延迟,调整自己的逻辑时钟值以和基准点达成同步,这样所有得到广播消息的节点都与主节点进行时间同步。发送节点和接收节点的时间延迟dt可由21()dtnttt得出。其中,nt为发送前导码和起始字符所需的时间,n为发送的信息位个数,t为发送一位所需时间;1t为接收节点在消息到达时的本地时间;2t为接收节点在调整自己的时钟之前的那一时刻记录的本地时间,21()tt是接收处理延迟。 DMTS 算法的优点是结合链路层打时间戳和时延估计等技术,消除了发送时延和访问时延的影响,算法简单,通信开销小。但DMTS算法没有估计时钟的频率偏差,时钟保持同步的时间较短,没有对位偏移产生的时间延迟进行估计,也没有消除时钟计时精度对同步精度的影响,因此其同步精度比FTSP略有下降,不适用于定位等要求高精度同步的应用。 基于发送方-接收方单向同步机制的算法在上述三类方法中需要发送的时间同步消息数目最少。发送节点只要发送一次同步消息,因而具有较低的网络流量开销和复杂度,减少了系统能耗。 4 结论 文章介绍了WSN时间同步算法的类型以及各自具有代表性的算法,分析了各算法的设计原理和优缺点。这些协议解决了WSN中时间同步所遇到的主要问题,但对于大型网络,已有的方法或多或少存在着一些问题:扩展性差、稳定性不高、收敛速度变慢、网络通信冲突、能耗增大。今后的研究热点将集中在节能和时间同步的安全性方面。这将对算法的容错性、有效范围和可扩展性提出更高的要求。