2024年6月10日发(作者:)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN2.2

(22)申请日 2007.12.28

(71)申请人 中国科学院软件研究所

地址 100080 北京市海淀区中关村南四街4号

(72)发明人 皇甫伟 周新运 舒坚 孙玉砚

(74)专利代理机构 北京君尚知识产权代理事务所(普通合伙)

代理人 余长江

(51)

(10)申请公布号 CN 101471766 A

(43)申请公布日 2009.07.01

权利要求说明书 说明书 幅图

(54)发明名称

无线传感器网络的时间同步方法

(57)摘要

本发明公开了一种无线传感器网络

的时间同步方法。属于无线传感器网络通

信技术领域。本发明技术方案概述如下:

网络中的汇聚节点向全网普通节点以洪泛

的方式广播包含逐跳调整量,发送时间戳

和累计下行延时的下行时间同步调整分

组;普通节点在收到上述分组并调整时间

后按照一定的概率生成上行反馈分组并按

照下行洪泛路径的相反方向向上发送该上

行反馈分组直至汇聚节点;该分组包含发

送时间戳和累计上行延时,及源节点至汇

聚节点之间的跳数和累计下行延时;汇聚

节点根据其收到的上行反馈分组计算新的

逐跳调整量,并开始新的时间调整轮次。

和现有技术相比,本发明具有收敛快,精

度高,扩展性强和资源消耗可控的优势。

法律状态

法律状态公告日

法律状态信息

法律状态

权 利 要 求 说 明 书

1.一种无线传感器网络的时间同步方法,包含:

网络中的汇聚节点向全网普通节点以洪泛的方式广播下行时间同步调整分组,所述

普通节点在收到该时间同步调整分组后调整时钟相位并继续广播本次下行时间同步

调整分组,逐层深入直至覆盖全网;所述下行时间同步调整命令分组包含逐跳调整

量,发送时间戳和累计下行延时;

网络中的普通节点在收到上述下行时间同步调整分组并调整时钟相位后生成上行反

馈分组并按照下行洪泛路径的相反方向向上一跳节点发送该上行反馈分组,节点在

收到该上行反馈分组后继续向更上行普通节点转发上行反馈分组,逐层往上直至汇

聚节点;所述上行反馈分组包含发送时间戳和累计上行延时,及生成该上行反馈分

组的源节点至汇聚节点之间的跳数和累计下行延时;

汇聚节点根据其收到的上行反馈分组计算新的逐跳调整量,并开始新的时间调整轮

次。

2.如权利要求1所述的一种无线传感器网络的时间同步方法,其特征在于,网络中

的普通节点只有部分生成并发送上行反馈分组。

3.如权利要求2所述的一种无线传感器网络的时间同步方法,其特征在于,网络中

的普通节点在收到下行时间同步调整分组并调整时钟相位后生成一个随机数字,当

该数字低于设定的阈值时,生成并发送上行反馈分组;或当该数字高于设定的阈值

时,生成并发送上行反馈分组;所述的阈值在下行时间同步调整分组中设定。

4.如权利要求1所述的一种无线传感器网络的时间同步方法,其特征在于,网络中

的普通节点在收到下行时间同步调整分组时调整时钟频率。

5.如权利要求4所述的一种无线传感器网络的时间同步方法,其特征在于,网络中

的普通节点在收到下行时间同步调整分组后根据上一个时间调整轮次中本节点在时

钟相位调整前后的时间和本次时钟相位调整前后的时间计算本地时钟的歪斜系数,

以矫正本地时钟频率。

6.如权利要求1所述的一种无线传感器网络的时间同步方法,其特征在于,汇聚节

点周期工作;空闲一段时间之后,进入开始同步状态,尝试发送下行时间同步调整

分组,发送成功则进入等待响应状态,否则进入空闲状态;在等待响应状态,汇聚

节点接收上行反馈分组并储存,该状态持续一段时间之后,汇聚节点进入空闲状态,

处理已经获得的上行反馈分组并计算逐跳调整量;汇聚节点只在开始同步状态发送

下行时间同步调整分组,只在等待响应状态接收上行反馈分组。

7.如权利要求1所述的一种无线传感器网络的时间同步方法,其特征在于,上行反

馈分组包含生成该分组的源节点实际发生的时间调整量,汇聚节点根据其收集到上

行反馈分组确定当前网络节点的同步精度,据此确定两次同步操作之间的间隔。

8.如权利要求1所述的一种无线传感器网络的时间同步方法,其特征在于,所有的

下行时间同步调整分组和上行反馈分组均包含唯一的序列号,网络中的所有节点在

收到和已处理的分组具有相同序列号的分组后将其抛弃,不作处理。

9.如权利要求1所述的一种无线传感器网络的时间同步方法,其特征在于,发送节

点在发送下行时间同步调整分组时的时间戳字段位于下行时间同步调整分组中各字

段的最后,并在该分组的无线传输开始时更新该时间戳。

10.如权利要求1所述的一种无线传感器网络的时间同步方法,其特征在于,网络

中的所有节点均具有唯一的节点号,所有的下行时间同步调整分组和上行反馈分组

均包含生成或转发该分组的节点的节点号。

说 明 书

技术领域

本发明涉及一种无线传感器网络的时间同步方法。属于无线传感器网络通信技术领

域。

背景技术

无线传感器网络是由大量的感知节点组成,节点间通过无线通信的方式逐跳传递信

息,协作的完成所覆盖区域的信息采集任务。节点采集的信息具有时序性,即用户

需要了解采集事件发生的时刻和先后关系。因此,无线传感器网络通常必须支持时

间同步,即节点具有全局的时钟。

目前已存在的典型的时间同步技术包括RBS,DMTS,TPSN和FTSP四种。

RBS(Refenence Broadcast Synchronization)(参见,

and ained Network Time Synchronization using refernce Broadc

.5thSymposium on Operating System Design and Implementation(OSDI 2002),

Vol 36,pp147-163,2002)称为参考广播同步协议,利用了无线信道的广播特性,

一个节点发送广播消息,在同一个广播范围内的另外两个节点会几乎同时收到,随

后这两个节点比较各自记录的本地时间就可以实现它们之间的时间同步。

DMTS(Delay Measurement TimeSynchronization)(参见

Ping Measurement time synchronization for wirelesssensor Resea

rch Berkeley Lab,Jun 2003)称为延时测量时间同步协议,通过广播和转发同步消息

来完成时间同步,在同步过程中对消息在传输路径上的各种延时做简单的估计和补

偿,以提高时间同步精度。TPSN(Time-sync Protocol for SensorNetwork)(参见

Ganeriwal S,Kumar R,Srivastava M.B Time-

sync Protocol for 1st Int’l Conf on Embedded Networked Sensor Sy

stems(SenSys 2003),Los Angels, 5-7,138-149)时间同步协议类似

于传统互联网的NTP协议,即网络采用分层结构,每层节点和上一级的节点进行

时间同步,在具体的节点对同步技术上,根据接收和发送的对称性,估算节点间的

传播延时和时钟偏差。FTSP(FloodingTime Synchronization Protocol)(参见Maroti M,

Kusy B,Simon G,

Ledeczi ng timeSynchronization in wireless sensor Sensys’04,

Nov 3-5,2004,Baltinore,Maryland)洪泛时间同步协议,由汇聚节点周期广播同

步消息,普通节点记录不同周期的同步消息的发送时间戳和接收时间戳,通过解回

归方程的方法,计算与根节点的时间偏差和频率偏差,实现全网的同步。

目前时间同步的主要问题是,对于主要考虑局部范围或者两个节点间的时间同步技

术如RBS,TPSN,通常资源消耗量大,全网级别的同步时间长,收敛慢;对于按

层次同步的时间同步技术如DMTS,尽管提高了同步速度,但精度较差;对于洪

泛转发的技术如FTSP,由于需要大量样本求解回归方程,收敛较慢且需要耗费大

量的CPU计算资源。

发明内容

针对目前无线传感器网络时间同步技术在收敛速度、同步精度和资源消耗等多项技

术指标上存在的不足,本专利提供了一种收敛快,精度高和资源消耗可控的时间同

步技术。

为了实现上述目的,本发明采用了如下技术方案:

网络中的汇聚节点向全网普通节点(汇聚节点以外的节点)以洪泛的方式广播下行时

间同步调整分组,所述普通节点在收到该时间同步调整分组后调整时钟相位并继续

广播本次下行时间同步调整分组,逐层深入直至覆盖全网;所述下行时间同步调整

命令分组包含逐跳调整量,发送时间戳和累计下行延时。逐跳调整量指的是在下行

时间同步调整分组的洪泛过程中,每次转发的接收节点所作的时间调整量。预设的

逐跳调整量可以是0或者已经测定的延时值。下行延时指的是收到下行时间同步调

整分组的节点,用自身的接收时刻减去该分组的发送时刻的差值,而累计下行延时

是这些差值在下行洪泛过程中的累计值;

网络中的普通节点在收到上述下行时间同步调整分组并调整时钟相位后生成上行反

馈分组并按照下行洪泛路径的相反方向向上一跳节点发送该上行反馈分组,节点在

收到该上行反馈分组后继续向更上行普通节点转发上行反馈分组,逐层往上直至汇

聚节点;所述上行反馈分组包含发送时间戳和累计上行延时,及生成该上行反馈分

组的源节点至汇聚节点之间的跳数和累计下行延时。跳数指的是普通节点收到下行

时间同步调整分组时,该分组被转发的次数;上行延时指的是上行反馈分组中沿着

洪泛相反的路径传输过程中,用自身的接收时刻减去该分组的发送时刻的差值,而

累计上行延时是这些差值在上行路径中的累计值;

汇聚节点根据其收到的上行反馈分组计算新的逐跳调整量,并开始新的时间调整轮

次。

进一步,为了优化本发明方法所使用的系统的运行效率,网络中的普通节点只有部

分生成并发送上行反馈分组。该机制的实现可以有多种方法,比如所述普通节点在

收到下行时间同步调整分组并调整时钟相位后生成一个随机数字,当该数字低于设

定的阈值时,生成并发送上行反馈分组;或当该数字高于设定的阈值时,生成并发

送上行反馈分组;所述的阈值在下行时间同步调整分组中设定。

网络中的普通节点在收到下行时间同步调整分组时调整本节点的时钟相位和频率,

该机制的实现同样可以有多种方法。比如普通节点计算收到的下行时间同步调整分

组中的发送时间戳和逐跳调整量之和,获得接收时刻的目标时刻,把本地时钟调整

到目标时刻即完成对时钟相位的调整;基于两次下行时间同步调整分组计算得到的

目标时刻的差值和本地时钟未调整前的差值,可以比较本地时钟相对于标准时钟的

快慢,两者之商即本地时钟的歪斜系数。在节点的运行期内,节点的时刻可以由节

点的本地时钟、本地时钟的相位调整量和节点时钟的频率调整量共同决定。

汇聚节点周期工作;空闲一段时间之后,进入开始同步状态,尝试发送下行时间同

步调整分组,发送成功则进入等待响应状态,否则进入空闲状态;在等待响应状态,

汇聚节点接收上行反馈分组并储存,该状态持续一段时间之后,汇聚节点进入空闲

状态,处理已经获得的上行反馈分组并计算逐跳调整量;汇聚节点只在开始同步状

态发送下行时间同步调整分组,只在等待响应状态接收上行反馈分组。本发明汇聚

节点两次时间同步调整分组之间的时间间隔可以根据网络状况自由控制,其机制如

下:上行反馈分组包含生成该分组的源节点实际发生的时间调整量,汇聚节点根据

其收集到上行反馈分组确定当前网络节点的同步精度,据此确定两次同步操作之间

的间隔。同时,上述时间调整过程可以周期性地执行,也可以基于用户需要非周期

地执行。

为了避免网络中的普通节点在接收到了相同的下行或者上行分组之后重复执行操作,

本发明所有的下行时间同步调整分组和上行反馈分组均包含唯一的序列号,网络中

的所有节点在收到和已处理的分组具有相同序列号的分组后将其抛弃,不作处理。

更进一步,本发明发送节点在发送下行时间同步调整分组时的时间戳字段位于下行

时间同步调整分组中各字段的最后,并在该分组的无线传输开始时更新该时间戳。

网络中的所有节点均具有唯一的节点号,所有的下行时间同步调整分组和上行反馈

分组均包含生成或转发该分组的节点的节点号。

本发明方法的基本原理可用附图1表示,其中SINK表示汇聚节点,H1表示汇聚

节点的下行普通节点,H2表示H1的更下行普通节点。根据该图,下行方向的累

计下行延时为Td=(T2-T1)+(T4-T3),上行方向的累计上行延时为Tu=(T6-

T5)+(T8-T7)。其中T1、T8为SINK时刻,T2、T3、T6、T7为H1时刻,T4、T5

为H2时刻。经计算可得逐跳调整量d为上行下行总累计延时除以跳数的2倍,即

d=(Td+Tu)/4=((T2-T1)+(T4-T3)+(T6-T5)+(T8-T7))/(2*2)。

和现有技术相比,本发明的有益效果是:

1.时间同步收敛速度快,若已知调整量,则一次洪泛过程就可以完成全网的时间同

步;若未知调整量,第一次洪泛过程可以完成全网的粗同步,第二次可以完成全网

的时间同步。

2.时间同步精度高。本专利的时间同步方法在时间精度上接近或者优于TPSN方法。

3.资源消耗量很低,全网同步仅需要一次下行的洪泛和部分节点的上行反馈,上行

过程还可以进一步结合数据融合技术降低通信开销。协议简化,节点无需仅需保留

少量状态,允许节点休眠,而不会破坏同步状态。

4.扩展性强,无需路由支持,适合于通用的网络结构。

附图说明

图1为本发明时间同步方法基本原理示意图;

图2(a)为本发明实施例下行时间同步调整分组字段内容;

(b)为本发明实施例上行反馈分组字段内容;

图3为本发明实施例普通节点的状态图;

图4为本发明实施例汇聚节点的状态图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细描述。

本实施例采用的硬件节点的配置为:主控制器采用TI公司的MSP430芯片,射频

芯片采用TI公司的CC2420芯片。主控制器外接时钟晶振为32768Hz,可提供大

约30μs的时钟精度。本实施例采用的软件操作系统为TinyOS,版本为2.0。本实

施例的硬件和软件配置是国际上广泛使用的无线传感器网络节点的配置。

本实施例采用如附图2所示的上下行分组内容。其中,时间戳采用了6字节无符号

数表示,单位为1/65536秒,约为15μs,可表示的最大时间跨度约为136年。

下行时间同步调整分组记为TS_DOWN_PACKET,其中的典型字段设计如下:

SEQUENCE表示该下行时间同步调整分组的序列号,用于唯一标识本次时间同步

操作。连续两次的时间同步操作中,序列号保证是不同的。若节点连续收到两次

(或以上)重复序列号的分组,则仅有第一个分组是有效的,其余分组被忽略。

SYSTEM_TIME表示SINK节点生成该下行时间同步调整分组的时间;

FEEDBACK_PROB表示反馈概率阈值,是1字节的无符号数。各节点在收到下行

时间同步调整分组后生成一个均匀分布于[0,254]的随机整数,若随机数严格小于

本阈值,则该节点向上反馈数据,否则不执行反馈操作。举例来说,若设定该阈值

为25,则大约有10%的节点向上反馈数据,可见,通过改变本字段的设定值,可

以在上行的资源消耗量和统计数据量之间进行合理的平衡。

HOP表示该下行时间同步调整分组被转发的次数,或者称为跳数,对SINK节点为

0,直接收到SINK的数据的节点为1,依次类推。在下行洪泛过程中,每次被转

发时该字段增加1。

RESEND_NODE表示向下行发送下行时间同步调整分组的节点的节点号;

RESEND_TIME表示向下行发送下行时间同步调整分组的节点的发送时间,

RESEND_TIME被设计在分组的最后,是为了方便在发送过程中设定时间戳的需

要。

DELAY_PER_HOP表示逐跳调整量,收到下行时间同步调整分组的节点,应该把

自身的时间设置为RESEND_TIME+DELAY_PER_HOP;DELAY_PER_HOP的单

位为1/65536秒,最大可表示范围为1秒。

SUM_DOWNLINK_DELAY表示累计下行延时。

上行分组记为TS_UP_PACKET,其中的典型字段设计如下:

SEQUENCE表示该上行反馈分组的序列号,该序列号和节点收到的本次下行洪泛

命令的序列号相同,用于唯一标识本次时间同步操作;

FEEDBACK_NODE表示生成上行反馈信息的节点节点号,即上行反馈信息的源节

点号,

FEEDBACK_HOP表示上行反馈信息的源节点的跳数。

FEEDBACK_ADJUST表示上行反馈源节点本次的时间调整量,正数表明本节点时

间向前调整,负数表示本节点时间向后调整,该值反馈到SINK节点经统计分析确

定当前网络的同步精度。

SUM_DOWNLINK_DELAY表示上行反馈信息的源节点处的累计下行延时,

SUM_UPLINK_DELAY表示自上行反馈信息的源节点沿洪泛路径的相反方向到达

本节点时的累计上行延时;该字段原始值为0,也就是说在上行反馈信息的源节点

发送上行反馈信息分组时,该字段的设定值为0。

RESEND_NODE表示上行反馈分组逐跳到达SINK的过程中,实际转发该分组的

节点的节点号;

RESEND_TIME是转发该分组的节点的发送时刻。

本实施例具体的下行洪泛流程为,汇聚节点广播下行时间调整命令分组,其中包含

序列号、反馈概率阈值、逐跳调整量和下行累计延时(设置为0)、跳数(设置为0)和

发送时间戳。节点收到该命令后首先调整自身时间;随后计算下行延时并和分组中

的累计下行延时的值相加,得到新的下行累计延时;计算节点自身的跳数为分组中

的跳数值加1;最后以更新后的下行累计延时、跳数和新的发送时间戳继续广播

(其余字段维持不变),直至覆盖全网。

具体的上行反馈流程为,节点收到时间调整分组后根据反馈概率做出独立的随机决

策,若决策表明应向汇聚节点反馈数据分组,则启动上行反馈分组发送流程,否则

不启动上行反馈分组发送流程。无论节点是否启动上行反馈分组发送流程,其均承

担转发其他节点上行反馈分组的责任。节点发送的上行反馈分组包括本次的源节点

时间调整量、跳数、节点处的下行累计延时、原始的上行累计延时(设置为0)和发

送时间戳。节点的上行反馈分组沿洪泛方向的相反路径发送。收到上行反馈分组的

节点更新上行累计延时和发送时间戳,其余字段保持不变,继续沿洪泛方向的相反

路径转发分组直至到达汇聚节点。

在普通节点内部,存储了一系列和时间同步有关的状态。影响节点状态的事件包括

两类,即收到下行时间同步调整分组事件和收到上行反馈分组事件。附图3表示了

普通节点的状态转移。节点始终处于单一的工作状态,仅依据接收的分组更新内部

状态变量。该设计实现简单,降低了协议交互的复杂度。具体来说,节点的时间调

整过程包括两个内容,即相位的校准和频率的校准,均在收到下行时间同步命令分

组的时候执行。具体的调整方式可以根据节点主控制器的运算速度和存储空间及功

率消耗决定。本实施例采用了一种比较简单实用的调整方法。节点存储了一个本地

时间值,该时间完全由本地的晶振脉冲累计得到。考虑到节点时钟的相位和频率不

准确,实际的节点时刻由公式(I)得到:

TNow=(TNodeNow-TNodeBase)*TNodeSkew+TBase

公式(I)

其中TNow是节点矫正后的时间,TNodeNow是节点的本地时间,TNodeSkew是

时间的歪斜系数(对标准时钟为1),TNodeBase和TBase是上次时间同步调整时刻

的节点本地时间和调整的目标时间。

节点收到下行调整命令后,首先进行时间频率的矫正:设当前的本地时刻为

TNodeNow,待调整到的目标时间T=RESEND_TIME+DELAY_PER_HOP,则歪

斜系数为TNodeSkew=(T-TBase)/(TNodeNow-TNodeBase)。重新设置TNodeBase

为节点的本地时刻,重新设置TBase为调整的目标时刻即

RESEND_TIME+DELAY_PER_HOP。此后本地时间的计算按照参数更新后的公式

(I)进行计算。

节点收到下行调整命令并完成频率和相位矫正后,再计算下行延时和累计下行延时。

附图4表示了汇聚节点的状态转移,通常情况下汇聚节点处于“空闲态”,并启动定

时器。当定时器时间到,进入“开始同步”态,此时尝试发送下行时间调整命令,若

命令发送成功,则转入“等待响应”状态,否则转入“空闲态”。在“等待响应”状态,

节点接收上行反馈分组,并储存数据,同时设定超时定时器。若定时器超时,则不

再接收上行反馈分组,同时根据已经获得的上行反馈分组计算新的逐跳调整量,即

计算上行累计延时和下行累计延时之和,并除以上行反馈信息的源节点的跳数的两

倍,作为新的逐跳调整量,若未收到任何反馈结果,则维持逐跳调整量不变。此后

转入“空闲态”,直到新一轮的调整操作。

汇聚节点可以根据上行反馈分组中源节点的时间调整量判定全网的时间同步效果,

可以据此改变或者不改变时间调整操作的周期。本实施例采用上行反馈分组中最大

的源节点的时间调整量作为同步效果的判断标准。若当前网络的同步效果较差,则

缩短两次同步操作的间隔;若当前网络的同步效果较好,则延长两次同步操作的间

隔。两次同步操作的间隔应不低于设定的下限,亦不高于设定的上限。

汇聚节点同时可以根据反馈结果的数量判定是否需要调整或者不调整反馈概率。

本实施例中下行分组含有汇聚节点的发送时刻,它的主要作用是防止意外的错误,

即节点若根据上一跳的发送时间戳和逐跳调整量计算的时间和汇聚节点发送时刻有

明显不合理的差异,则应以汇聚节点的发送时刻为准。

本例采用的射频芯片CC2420在分组通过无线发送的过程中,会在引脚SFD上给

出高电平信号,此时可以引发主控制器中断,以允许用户在该瞬间修改分组内容

(一般来说是更新时间戳),这样能使得时间戳更精确,可以有效的降低时间同步误

差。由于主控制器处理能力有限,发送时间戳位于数据分组的尾部,可以为主控制

器的处理计算留出更多的时间。