基于耦合振荡器模型的WSN 时间同步算法
——以ZigBee网络为例
2013-02-22周春良屈卫清陆正球黄元君
周春良,屈卫清,程 萍,张 琪,陆正球,黄元君
1.宁波大红鹰学院 信息工程学院,浙江 宁波315157
2.嘉兴职业技术学院 机电与汽车分院,浙江 嘉兴314000
1 引言
ZigBee 是短距离通信的一种新兴技术,具备低功耗和低成本的显著特点,目前此类独立网络已在国内悄然出现,已引起学术界和工业界的广泛关注[1-3]。在ZigBee 网络中,各传感器节点都有自己的时钟,要实现数据采集、数据分析以及数据融合等各种功能和技术都需要网络节点之间的时钟同步。同时只有达到一定精确度的时钟同步,才能够保证网络中的传感器节点相互稳定、协调的工作,准确地记录各种任务请求、到达和完成的时间。因此相对于通常的分布式系统,ZigBee 技术对时间同步的需求尤为强烈,可以说时间同步是ZigBee技术的一项支撑。
国内外学者对时钟同步课题的研究已有了相当多的研究成果,在时间同步方面,提出了两两成对同步、一对多广播同步、随机游走同步和扩散同步等一些基本的同步机制和实现算法,但都或多或少地存在一些缺陷与不足[4-7],主要包括通信和计算开销大、抗干扰能力弱、能耗高、精度低、扩展性差、假定条件无法在工程实现中满足等。内容见表1 所示。
表1 主流的ZigBee网络同步技术性能指标
2 耦合振荡器网络模型
自然界中存在着很多脉冲同步现象,如互相邻近的萤火虫能够调整为同步闪耀,夏蝉可以达到群鸣的效果。早期科学家们对这类现象进行了很多猜想[9-10],但并没有给出确切的数学模型[11-14]。
1975 年,Peskin CS 建立了基于同步性的脉冲耦合振荡器模[15]型来模拟心肌细胞的同步收缩现象。在这个模型中,当一个振荡器放电时,会产生与其他振荡器之间的电耦合,提升其他振荡器的电量,使得整个振荡器的电量趋于相同,达到同步放电的效果。他把同步系统建模成许多个互相耦合的振荡器的集合,每个振荡器由一个状态变量x描述且满足:
令γ=0,S0=1/T,且t∈[0,T],可以得到dx/dt=1/T。对此微分方程两边进行积分可得x=t/T。令T为周期,φ=t/T为相位变量,则可得耦合振荡器模型如下:
鉴于此模型中状态变量x总是保持与相位变量φ相等,因此后面使用φ统一表示状态变量和相位变量。
最终该耦合的振荡器系统可以被建模为N个“集成-激发”(“integrate-and-fire”)的振荡器网络。每一个振荡器均按照上述的线性关系变化。当φi=1 时,第i个振荡器激发,并且瞬间跳回状态φi=0。同时,受其影响其余所有振荡器的状态变量增加一个增量,或者到达阈值被激发,即
其中,ε为振荡器i的耦合强度。假设所有的振荡器的耦合强度均为常量且分布在闭区间[a,b]上。
3 算法描述
上述同步模型已基本适合于在ZigBee 网络环境下实现,但网络受控同步能力因控制方式而异,控制律不同,在控制过程可能会引发节点之间的无限循环激发。因此,在设计算法时,引入“不应期”的理解来避免这一问题。在生物学中,在刺激一个生物的过程,若再次刺激该生物,该生物就不会做出回应。这个时间段称为“不应期”。通过实验令节点在激发之后的一段时间内停止接受网络节点发过来的数据包,以解决网络中重复激发的问题。
该算法主要分为三个过程:初始化过程、数据包处理过程以及激发处理过程。
CT检查腰椎间盘突出的确诊率为83.9%,MRI检查腰椎间盘突出的确诊率为95.2%,MRI诊断的确诊率高于CT诊断,对比具有统计学差异(P<0.05)。见表1。
(1)初始化过程
调整计数器的工作模式,初始化计数器的参数,以及节点的耦合强度。然后,启动计数器,进行计数,接收网络的中断,启动队列消息。
(2)数据包处理过程
完成初始化工作后,接受网络节点的耦合强度,如果该强度在超出不应期的范围,则将该数值加到自己的计数器中。判断计数器是否溢出,如果是则进行激发处理。
(3)激发处理过程
当计数器溢出时,进入激发过程。首先,重置网络计数器,组织新的网络节点,设置节点的耦合强度,将新的网络数据发送出去[16]。
4 实验与结果分析
4.1 实验环境
本实验在深联科技公司研发的基于GAINS-3 的无线传感器网络上实现的。时钟采用AT-mega128 上的1 号16位计数器,采用CTC 工作模式,将节点对应的周期保存在OCR1A 寄存器中,即节点从0 开始计时,当时间达到寄存器OCR1A 保存的数值时,计数器发出中断,然后继续从0开始计时。本实验使用ATMega128 的自中断功能,把设备中ATMega128 上的INT4 引脚连接起来,从引脚的下降沿产生中断,通过中断将计数器的数值传递到串口。具体的设备如图1 所示。
图1 ZigBee测试平台系统结构
4.2 算法实现
根据上文提供的算法,本实验通过32 位的计数器来描述节点的状态,计数器从0 开始计数,达到T时刻,就发送中断,直到本轮计数结束为止。在下一轮的计数中,如果该强度在超出不应期的范围,则将该数值加到自己的计数器中。
在节点初始化后,产生随机的周期和E 值,计数器开始工作,当计数器溢出中断时,便广播一个数据包,该数据包中包含了节点编号,周期,以及E 值;其数值通过公式EA=EBTB/TA来计算[17]。
每组的结果包含25 个32 位的整数,计算出每个节点的数据,对这些数据进行标准差计算,除去这些数据中的最大值和最小值,把剩下的数据取平均数作为实验的结果,最后除以时钟频率。在实验中,发现节点的耦合强度是均匀分布的,且满足:
其中,Ebase和d 均为整型参数。
4.3 实验结果
(1)不应期对网络同步的影响
使用第3 章的算法,设置参数为:T=230 400,Ebase=T, d分别取400,600,800,1 000。得出的实验结果如图2所示。其中横坐标r 表示为周期的比率的倒数,从实验结果看出,当r 比较小的时候,网络同步的标准差随着r 的增加而呈现略微减小的趋势,这是由于不应期太大了,而错过了接收本该接收的耦合。当r 超过5 的时候,网络同步精度的标准差明显增加,这是由于不应期没有超过节点间通信延迟的两倍,而没有产生作用。由于Gains-3 是一款兼容Mica2 的节点,因此可以引用对Mica2 的延迟测量结论,对Mica2的延迟进行了测量,起决定作用的延迟包括:发送/接收延迟0~100 ms,访问延迟0~500 ms,传送延迟10~20 ms。考虑到本文实验中,所有节点几乎同时广播数据,因此访问延迟应该高于平均值,假设为300 ms,加上其他两项延迟的平均值,总延迟为365 ms。除以周期2 s,结果不应期约为0.18,与实验结果1/5 相吻合。实验中,统一取r=5。
图2 不应期大小对同步精度的影响
(2)周期对网络同步的影响
分析周期对网络同步精度的影响,设置参数如下:Ebase=T,d=1 000,r=5,周期T 取2 s到60 s中的30 个偶数,实验结果如图3 所示。
从实验结果看,周期对精度的变化有较大的震荡,不同的周期得出的同步精度跨度较大。对实验结果进行了线性拟合,得出同步的标准差随着周期的增加而增加。
(3)耦合强度对网络同步的影响
分析耦合强度对同步精度的影响,设置Ebase为周期T的1/2,1/3 和1/4,计算同步标准差随d 的关系,得出的实验结果如图4 所示。
图3 周期大小对同步精度的影响
图4 耦合强度对同步精度的影响
从实验的结果看,当Ebase分布取1/2,1/3,1/4 时的标准差基本在0.008 附近,而和d 没有关系。这是由于各节点的周期相同,节点之间的耦合被屏蔽掉,因此Ebase和d 对同步精度没有影响。
(4)结论
通过以上的对比实验,得出下列结论:
不应期可以避免网络中的数据的重复激发问题。不应期不能设置过大,否则会屏蔽网络的耦合信息,而太小会不起作用;同步精度随着周期的增加而增大。增大了周期相当于增加了同步操作的间隔;耦合强度对于系统同步的精度没有影响。
5 总结与展望
基于耦合振荡器模型的ZigBee 网络时间同步算法是解决ZigBee 网络时间同步问题的新思路,该研究引入不应期的方法解决了延迟节点重复激发的问题。ZigBee 测试平台的结果显示,算法使得ZigBee 网络在物理层的传输精度相对于经典算法有较大的提高,提高了系统的时间精度使得整个ZigBee 网络趋向同步,准确地记录各种任务请求、到达和完成的时间。在实验过程发现影响算法精度的主要原因是,在算法趋向于同步的时候,各个节点几乎在同一时间发送数据包,导致通信的效率低下。如何找到一个机制可以避免此种情况的发生是今后要做的工作。
[1] 郑威.基于能量高效的传感器网络路由算法研究[D].杭州:浙江大学,2006.
[2] Elson J,Romer K.Wireless sensor networks:a new regime for time synchronization[J].SIGCOMM Comput Commun Rev,2003.
[3] Karl H.Protocols and architectures for wireless sensor network[M].Hoboken:Wiley,2005.
[4] 孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2005.
[5] 李虹.无线传感器网络中节能相关若干关键问题研究[D].合肥:中国科学技术大学,2007.
[6] Voigt T,Dunkels A,Alonso J.Solar-aware clustering in wireless sensor networks[C]//ISCC,2004.
[7] van Greunen J,Rabaey J.Lightweight time synchronization for sensor networks[C]//WSNA’03,2003.
[8] 徐朝农,徐勇军,李晓维.无线传感器网络时间同步新技术[J].计算机研究与发展,2008,45(1):138-145.
[9] Smith H M.Synchronous flashing of fireflies[J].Science,1935,82(2120):151-152.
[10] Buck J,Buck E.Mechanism of rhythmic synchronous flashing of fireflies[J].Science,1968,159(3821):1319-1327.
[11] Blair K G.Luminous insects[J].Nature,1915,96(2406):411-415.
[12] Richmond C A.Fireflies flashing in unison[J].Science,1930,71(1847):537-538.
[13] Buck J B.Synchronous rhythmic flashing of fireflies[J].The Quarterly Review of Biology,1938,13(3):301-314.
[14] Buck J.Synchronous rhythmic flashing of fireflies II[J].The Quarterly Review of Biology,1988,63(3):265-289.
[15] Peskin C S.Self-synchronization of the cardiac pacemaker[M]//Mathematical aspects of heart physiology.New York:New York University,1975:268-278.
[16] 安竹林,徐勇军.基于非漏电脉冲耦合振荡器模型的无线传感器网络时间同步算法[J].高技术通讯,2011,21(11).
[17] 朱冠男,徐宁.基于线性脉冲耦合振荡器模型的WSN 时间同步[J].武汉理工大学学报,2009,31(19).