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

文档序号:7713906阅读:290来源:国知局
专利名称:实现无线传感器网络时间同步的方法
技术领域
本发明主要涉及信息技术领域,尤其涉及一种实现无线传感器网络时间同步的
方法。
背景技术
无线传感器网络的应用越来越广泛,针对无线传感器网络时间同步所面临的挑 战-传输延迟的不确定性、低功耗、低成本、可扩展性等特点,在无线传感器网络领域出 现了一些典型的时间同步协议。典型的无线传感器网络事件同步协议可分为发送者-接 收者同步和接收者-接收者同步两类。TPSN(Time Protocol for Sensor Networks)协议是 典型的发送者-接收者同步协议,它通过MAC层时间戳技术及双向报文交换方法来抑 制和减小传输延迟及延迟不确定的影响。RBS(Reference Broadcast Synchronization)协 议是典型的接收者-接收者同步协议,除了直接对接收者间的时间偏移进行估算外,它 通过对接收者时钟漂移(clock skew)进行动态估计来进一步降低同步误差。在多跳网络 的时间同步协议中,除RBS协议中提出的"时间路由"方法外,具有代表性的工作还 有LTS(Lightweight Tree-based Synchronization)协议、HRTS(Hierarchy Referencing Time Synchronization)协议、FTSP(Flooding Time Synchronization Protocol)协议和GCS(Global Clock Synchronization)协议。这些典型的时间同步算法侧重同步精度和同步能耗的需求。
所述无线传感器网络是由传感器节点组成的分布式系统。节点之间相互独立并 以无线方式通信,每个节点维护一个本地时钟。本地时钟的计时信号一般由晶体振荡器 (简称晶振)提供。 在实施本发明的过程中,发明人发现由于晶振制造工艺的限制,晶振在运行过 程中易受外界因素影响,进而导致网络中节点的计时速率的偏差,造成了网络节点时间 的失步。因此,时间同步问题是无线传感器网络要解决的一个重要问题。
目前,在定位、测距、数据融合、MAC层协议、睡眠调度、路由协议、协作 传输、数据库同步等几乎所有的场合都对时间同步有明确的要求。与传统的分布式系统 的时间同步不同,无线传感器网络的时间同步不仅有着高精度的要求,而且还面临着能 耗、可扩展性、无线传输不可靠性等新的挑战。

发明内容
本发明的目的在于提供一种实现无线传感器网络时间同步的方法,现有技术由 于晶振的影响导致网络节点时间失步的问题。 本发明所述的一种实现无线传感器网络时间同步的方法,包括以下步骤初始 化计数器;启动计数器,打开中断,启动消息队列;根据收到的数据包修改线性振荡器 的计数值。 本发明所述的实现无线传感器网络时间同步的方法通过修改线性振荡器的计数 值达到无线传感器网络时间同步的目的,解决了现有技术中,由于晶振在运行过程中易受外界因素影响,进而导致网络中节点的计时速率的偏差,造成了网络节点时间的失步 的问题。


图1为本发明具体实施例所述的实现无线传感器网络时间同步的方法的流程 图; 图2为本发明具体实施例所述的实现无线传感器网络时间同步的方法中收到数 据包的处理流程图; 图3为本发明具体实施例所述的实现无线传感器网络时间同步的方法中计数器 溢出的处理流程图; 图4为本发明具体实施例所述的实现无线传感器网络时间同步的方法中所述T。 取2T、 4T、 8T、 16T时同步结果的标准差随d的变化情况; 图5-7为本发明具体实施例所述的实现无线传感器网络时间同步的方法中所述e 分别取1/8、 1/4、 1/2时,同步结果的标准差随d的变化情况。
具体实施例方式
为使本发明更加清楚明白,以下结合本发明在无线传感器网络中的具体实施过 程和结果,并参照附图,对本发明进一步详细说明。 下述实施过程是在基于GAINS-3节点的无线传感器网络测试床上实现的。所述 GAINS-3节点主要由一个ATMegal28单片机和一个CC1000无线收发器组成,同时还有 一个串口,负责编程和数据的可靠收发。所有节点的串口均通过串口到以太网的转换模 块连接到一个以太网中,该以太网中的一个Web服务器负责对节点的编程,向节点发送 命令以及接收节点返回的数据。另外,为了同时对所有的节点的时钟(计数器)进行采 样,所有节点上ATMegal28的INT4引脚被连接到一起,该引脚上的下降沿会触发所有的 节点向Web服务器发送采样结果。 在实施时,将振荡器相位小从[O, l]区间放大到[O, T],即将振荡器的相位使 用32位的计数器来表示,该计数器单调的增加到T(即周期),然后发出一个数据包,所 述数据包包括流水号、节点号和周期T,接收到该数据包的节点根据数据包中的T,使用 公式错误!未找到引用源。计算出耦合增量,然后将该增量加到自己的相位上去。以下 结合具体实施例,并参照附图,对本发明进一步详细说明。 如错误!未找到引用源。所示,本发明所述的实现无线传感器网络时间同步的 方法包含以下步骤 步骤IOI,初始化计数器,包括 设置计数器的工作模式、最大计数值(即T); 设置节点号和周期T以及耦合强度。
在实施过程中将节点i的周期1设为 1 = T。+(i-l)*d 其中,T。为周期的基数;d描述相邻编号节点的周期差异。 步骤1Q2,启动计数器开始计数,打开中断,允许计数器溢出,以及数据包的接收等中断,最后启动消息队列。 节点在收到数据包之后,根据数据包中所包含的激发节点的数据计算相位增 量,然后将该增量加到自己的相位上去。接下来判断自己是否激发,并执行相应的处理 过程。如图2所示,具体步骤如下 步骤201:从接收到的数据包中获得激发节点的节点号,和激发节点的周期T。
步骤202:判断相位是否大于某一阈值L,如果大于该阈值才计算相位增量。设 置阈值L的原因是,当某节点A发出数据包并使节点B激发,节点A会收到B发出的激 发数据包,如果不设置这一阈值会导致A的相位因为B的激发而增加。因此,设置阈值 可以防止这种情况的发生。 步骤203:由步骤201所获得的激发节点的周期,根据公式错误!未找到引用 源。计算出相位增量。然后停止计数器,将相位增量增加到计数器上去,最后再次启动 计数器。 步骤204 :判断经过步骤203增加之后的计数器是否已经溢出,如果溢出则说明 该节点激发,调用步骤3进行相关的溢出处理。否则,处理过程结束。
当计数器溢出时,需要重置计数器,组织包含流水号、节点号和周期T的数据 包,然后将该数据包发送出去。如图3所示具体步骤如下 步骤301:停止计数器,将计数器的计数值设为O,然后重新启动计数器。
步骤302 :将流水号自加1,然后将其和节点号、周期T以及保存到数据包相应 的数据结构中,然后将此数据包广播出去。 由于无线传感器采用低成本低功耗的处理器,因此无法进行复杂的函数计算。 在本发明中使用的线性振荡器,在保证精度的同时,避免了大量的非线性计算,节省了 同步能耗。 同时,该方法避免了对振荡器晶振频率相同这一假设,特别是对于大规模的无 线传感器网络,这点显得尤为重要。 另外,该方法在同步的过程中只需要一个计数器,不需要保存其它状态信息, 也不需要基于任何的拓扑信息,因此同经典的同步方法相比节省了计算时间和存储空 间,同时还具有较好的扩展性。 为了说明该方法的有效性,并且进一步讨论在实际应用中如何选取各项参数, 我们在由15个节点组成的无线传感器网络测试床上对该方法进行了实际的测试。节点振 荡器的频率(T。。u^)是115200Hz。 O号节点在周期执行到大致一半的时候会发出一个中断 信号使所有的节点同时向Web服务器发送自己的计数器数值。计算除了 0号节点外的所 有节点的计数器的标准差来衡量这一组数据的精度,在收集完所有数据之后,再计算所 有标准差的算数平均值作为最终的结果。另外,在计算最后的算术平均值时,若干组最 大最小值被从结果中取出,以避免随机因素的影响。 首先,讨论实验周期如何影响同步的精度。将e固定为1/4,对于每一组T。,令 d以步长500遍历区间[500, 40000],在计算最终结果时,舍去最大和最小的5组数据。 图4为T。分别取T。。u自的2、 4、 8、 16倍,同步结果的标准差随d的变化情况。从图中 可以看出,对于T。的每个取值,变化过程分为三个阶段。当d很小时,标准差跟T。和 d的相关性很小,随着d的增加同步标准差首先稳定在某一固定值,然后随着d的增加而增加。这是由于,当d很小时,各节点的周期非常接近,由于阈值L的作用,会使计数 器进入一种锁步(phase-locked)的状态;随着d的增加,节点间进入正常的同步阶段;而 当d过大,而使同步保持条件错误!未找到引用源。无法被满足的时候,同步标准差则 会明显的增加。在本实验中,有
T腿=Tq, T腿=T。+14d and e = 1/4 代入错误!未找到引用源。中,可得 K 1
r0+i 4
解得
56 当T。分别等于^e。她r,4Te。unter,8Te。unter和16Te。unter时,由上式计算出来的d分
别为4114, 8228, 16457和32914。
这些结果与图4吻合的非常好。
为了进一步研究T。的4种取值在上述同步稳定阶段的同步精度。我们进行了进 一步的实验。实验的相关的参数与上一个实验相同,只是d以步长10遍历区间[3000, 3500],为了使结果更加稳定,我们除去了最大和最小的15个结果。实验结果如图5所 示,从图中可以看出较小的T。可以获得更高的精度,这是因为周期越短,节点调整自己 的相位越频繁,因此会越快的达到同步。 接下来,讨论耦合强度e对同步精度的影响。在此实验中,将T。固定在 2Tc。untCT,对于不同的e,令d以步长100遍历区间[100, 10000],在计算最终结果时,舍 去最大和最小的15组数据。图6为e分别取1/16、 1/8、 1/4、 1/2时,同步结果的标准 差随d的变化情况。同第一个实验类似,标准差的变化过程分为三个阶段。但是在二、 三阶段的交点的计算略有差别,对于上述实验条件有
T腿=2T咖咖=230400, T腿=T。+14d = 230400+14d
代入错误!未找到引用源。中,可得 230400
230400+ 14d
解得
h115200 当e分别为1/16、 1/8、 1/4、 1/2时,由上式计算出来的d分别为1028, 2057, 4114, 8228。 这与实验结果也是吻合的。 如图7所示,为同样实验条件下,以步长10遍历[1000, 2000]的实验结果。为 了使结果的展示更加清楚,e =1/2, e =1/4和e = 1/8分别分别画在a), b)和c)这 三个子图中。在比较这三幅图的时候,可以发现当e = 1/4时结果更加稳定。原因可 能是,当e很小时,两个节点之间的耦合太弱,因此会轻易的被破坏;而当e太大的时 候,节点更加容易与其它节点同步,因此两个节点之间的耦合又会轻易的被其它节点影 响。因此,要获得一个稳定的同步结果,必须选择一个合适的e值。
上述的实验讨论了T。, e和d如果影响同步结果的精度。通过对实验的分析, 可以得出如下结论
6
在d不太小,而且同步保持条件也能够被满足的情况下,通过可以很好的同
步,最好的精度在ioo微妙左右。 T。决定同步的周期,较小的T。可以获得较高的同步精度。必须仔细的选择e 的大小,较小和较大的e都会降低同步精度。综上所述,通过实验验证了该方法能够对 无线传感器网络节点进行同步,获得较好的同步结果。
权利要求
一种实现无线传感器网络时间同步的方法,其特征在于,包括以下步骤初始化计数器;启动计数器,打开中断,启动消息队列;根据收到的数据包修改线性振荡器的计数值。
2. 根据权利要求1所述的方法,其特征在于,所述初始化计数器,包括 设置计数器的工作模式、最大计数值;设置节点号和周期T以及耦合强度。
3. 根据权利要求1或2所述的方法,其特征在于,设置节点i的周期1为Tt = T0+(i-l)*d其中,T。为周期的基数;d描述相邻编号节点的周期差异。
4. 根据权利要求1中所述的方法,其特征在于,还包括节点上的计数器线性计数,计数值到达T时发出一个包含了改节点周期的数据包,然后将计数器置0,重复这一过程;接收节点收到所述包含周期的数据包之后,使用如下公式得到自己的新的计数值其中小'j为新的计数值;气为接收节点计数器在收到数据包之前的计数值;Tt 为发送节点的周期;Tj为接收节点的周期;e为耦合强度。
5. 根据权利要求4所述的方法,其特征在于如果所述小'j的计算结果超出所述 接收节点的周期值,所述接收节点回到初始值并发出一个包含所述接收节点周期的数据 包。
6. 根据权利1中所述的方法,其特征在于所述线性振荡器的周期的概率密度函数 有界。
7. 根据权利要求6所述的方法,其特征在于所述线性振荡器的周期满足其中T皿为所述线性振荡器周期的最小值;T皿为所述线性振荡器周期的最大值; e为耦合强度。
全文摘要
本发明公开了本发明所述的一种实现无线传感器网络时间同步的方法,包括以下步骤初始化计数器;启动计数器,打开中断,启动消息队列;根据收到的数据包计算出计数器增量并据此修改计数器值。本发明所述的实现无线传感器网络时间同步的方法通过周期性修改线性振荡器的计数值达到无线传感器网络时间同步的目的,解决了现有技术中,由于晶振在运行过程中易受外界因素影响,进而导致网络中节点的计时速率的偏差,造成了网络节点时间的失步的问题。
文档编号H04W84/18GK101692743SQ20091017691
公开日2010年4月7日 申请日期2009年9月24日 优先权日2009年9月24日
发明者姜鹏, 安竹林, 徐勇军, 李晓维, 郑哲 申请人:宁波高新区深联科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1