发明内容
针对现有技术中无线传感器网络应用中存在同步效率低、可靠性差等不足之处,本发明提供一种智能的时间同步方法实现无线传感器网络中稳定、可靠的时间同步方法。
为了解决上述技术问题,本发明采用的技术方案是:
三个前提:1、无线设备能够在发送无线报文同时具有将发送时间戳放在无线报文中一起发送的能力;2、无线设备在接收无线报文时具有将接收时间以接收时间戳的形式保存下来的能力。3、一次发送和接收对应的发送时间戳和接收时间戳应当在相同的物理时刻记录各自维持的时间信息,即使不能够在相同的物理时刻记录时间戳,其时间差值也应当是可以通过计算得出其在相同物理时刻各自对应的时间信息。
本发明采用同步方法需要网络中具有时间基准源节点,基准源节点维持网络全局时间,其他节点通过直接或者间接的形式与基准源节点同步,使得自身的时间运转与基准源节点保持同步。
本发明主要包括如下步骤:
S100)点到点时间同步。时间基准源节点和同步完成节点周期性广播带有全局时间信息的同步广播报文(以下简称同步报文),待同步节点监听同步报文选择父节点,通过对父节点同步报文的监听进行时间校准和同步误差漂移计算,从而实现与父节点同步的目的。
S200)同步误差智能分析。同步完成节点通过分析与父节点之间的同步误差,结合接收同步报文同步误差漂移补偿的变化以及与父节点之间计时频率的差异智能分析并计算新的同步误差漂移补偿,从而获得更稳定的同步方法。
S300)网络同步扩散。网络中节点同步过程从基准时间源开始,使用步骤S100和步骤S200,依据距离基准时间源的远近逐步扩散到全网,实现全网时间同步。
进一步的,所述点到点时间同步包含如下步骤:
S101)处于同步状态节点周期广播发送带有全局时间信息的同步广播报文(以下简称同步报文),其他节点通过监听同步报文进行同步;
S102)时间源选择。节点维护时间源选择保护时间,该保护时间至少大于一个同步周期,保证节点能够将周围潜在时间源周期广播的同步报文尽可能多监听到。时间源选择方法,相同跳数(距离基准时间源同步跳数)信号强度大的优先;信号强度超过可通信门限(经验值可根据射频工作环境设定),跳数(距离基准时间源同步跳数)较小优先;
S103)待同步节点收到同步报文后,记录接收时间戳,并将本地时间按照全局时间更新。更新方法:同步报文中发送时间戳加上接收时间戳与转换时刻本地时间的差值所得结果更新为新的本地时间;
S104)待同步节点从第二次接收时间源节点同步报文开始计算误差漂移,首先,通过发送时间戳和接收时间戳的差值判断两次接收同步报文间隔时间内产生的误差;再次,计算两次同步间隔时间计数;时间计数除以误差得到本地多少次时间计数产生与时间源时间计数为1的误差漂移,称为单位误差漂移计数量;
S105)同步完成节点维护全局时间,本地时间通过漂移量补偿转为全局时间。转换方法如下:计算待转换时间与最后一次执行误差漂移计算的同步时间计数差值;计数差值除以单位漂移计数量获得待转换时间与全局时间的漂移;待转换时间补偿上述计算所得漂移可以获得对应全局时间。将全局时间转换为本地时间计算漂移方法同上,补偿方向(加/减)相反。
进一步的,所述同步误差智能分析如下:所述同步误差智能分析针对同步完成的节点,分析过程在步骤S104之后,同步完成节点通过同步误差智能分析动态维护单位误差漂移计数量;
S201)比较本地接收时间戳和发送时间戳,如果接收时间戳大于发送时间戳则本地时间计数频率高于同步源的计数频率,反之本地时间计数频率低于同步源计数频率;
S202)通过步骤S105将以本地时间记录的接收时间戳转换为全局时间(本地全局时间戳),本地全局时间戳与发送时间戳对比可以获得上次同步后经过一个同步周期产生的同步误差;
S203)比较步骤S202获得的同步误差,如果本地全局时间戳大于发送时间戳,当步骤S201判断本地时间计数频率高时,则说明补偿不足,反之当本地时间计数频率低说明补偿过量。如果本地全局时间戳小于发送时间戳,当S201判断本地时间计数频率高,则说明补偿过量,反之当本地时间计数频率低说明补偿不足;
S204)对步骤S203,当判断补偿不足时,如果步骤S104计算出的单位误差漂移计数量小于原有单位误差漂移计数量则取二者平均值作为新的单位误差漂移计数量,反之如果步骤S104计算出的单位误差漂移计数量大于原有单位误差漂移计数量则将原有单位误差漂移计数量减去一定数值作为新的单位误差漂移计数量,这里的一定数值属于经验值,可以设为原有单位误差漂移计数量的一定比例,如10%;当判断补偿过量时,如果步骤S104计算出的单位误差漂移计数量大于原有漂移量则取二者平均值作为新的单位误差漂移计数量,反之如果步骤S104计算出的单位误差偏移计数量小于原有单位误差漂移计数量则将原有单位误差漂移计数量加上一定数值作为新的单位误差漂移计数量,这里一定数值选取同上;
S205)通过步骤S204,同步节点以新的单位误差漂移计数量校正本地时间。
进一步的,所述网络同步扩散包括如下步骤:
S301)时间基准源节点上电后周期广播发送同步报文,某一待同步节点接收到同步报文后与时间基准源节点同步,同步完成后周期性广播发送同步报文;
S302)其他待同步节点通过步骤S102选择时间源,并通过持续监听时间源同步报文获得时间同步,同步完成后周期广播同步报文的形式将同步后的全局时间广播出去并可作为其他节点用于同步的潜在时间源,从而实现时间同步从时间基准源节点逐渐扩散到全网的过程。
与现有技术相比,本发明具有以下有益的技术效果:
1、本发明采用的无线传感器网络时间同步方法,通过时间源优化选择和单位误差漂移计数量计算时间漂移的补偿方法,提供了简单有效的时间同步方法。一般类型的无线传感器网络时间同步方法通过线性拟合或者多项式拟合的方式实现同步误差漂移补偿,需要多次同步报文交互和复杂的拟合算法,这对于资源有限的无线传感器网络带来了更大压力,本发明通过优化的时间源选择和单位误差漂移计数量进行同步误差漂移补偿,通过更简便的运算获得节点间同步误差漂移,有效降低了同步方法对运算资源的需求。
2、本发明通过智能的同步误差分析方法,通过对节点收到同步报文时的误差分析,结合节点间计数频率差异和新旧单位误差漂移计数量差异,智能维护同步节点与其时间源节点之间的单位误差漂移计数量,从而实现智能缩小同步误差的目的,为用户提供更稳定、可靠的无线传感器网络时间同步方法。
具体实施方式
如图1所示,本发明所述智能的无线传感器网络时间同步方法包括点到点时间同步、同步误差智能分析、网络同步扩散三个方面。
本发明所述方法涉及的无线设备,包括时间基准源节点、网络无线节点。
时间基准源节点一般为网络中的中心设备,如数据采集网络的中心节点、控制网络的中央控制管理设备等。时间基准源节点负责维护网络唯一的全局时间,网络无线节点通过与时间基准源节点进行同步获得与网络全局时间的同步。
所述时间基准源节点和网络无线节点应当能够在发送无线报文和接收无线报文时按照需求获得发送时间戳和接收时间戳,而且对于一次的同步报文交互,二者的时间应当在相同的物理时刻记录,即使不能够在相同的物理时刻记录时间戳,其时间差值也应当是可以通过计算得出其相同物理时刻各自对应的时间信息。如图2中发送节点和接收节点在相同的物理时刻t记录发送时间戳和接收时间戳。
图3所示为点到点时间同步过程,包括如下步骤:
步骤101:同步报文接收,同步接收过程如图2所示,在相同的物理时刻t,发送节点记录发送时间戳并将其放到无线报文中发送到接收节点,接收点在t时刻记录接收时间戳备用;
步骤102:时间源选择,待同步节点上电后维护一个时间源选择保护时间,该保护时间应当至少大于一个同步周期,保证节点能够将周围潜在时间源周期广播的同步报文尽可能多监听到。时间源选择方法,相同跳数(距离基准时间源同步跳数)信号强度大的优先;信号强度超过可通信门限,跳数(距离基准时间源同步跳数)较小优先。在时间源保护时间内,优先级高的潜在父节点将代替优先级低的,保护时间结束所选的父节点应当是所有收到无线报文中信号质量最好的潜在父节点,同时将本地时间更新为父节点时间;
步骤103:单位误差漂移计数量计算。单位误差漂移计数量定义为:本地时间计数产生与时间源时间计数为1的误差漂移时本地时间的计数量。具体计算方法如下:在经历时间源选择后,节点已经将本地时间更新为父节点时间,但是计数频率仍然以本地晶振计数,当再次收到父节点同步报文时,如图4所示,将会获得第二组发送时间戳Tsend2和接收时间戳Treceive2(Tsend1和Treceive1在时间源选择保护时间获得),根据发送时间戳更新本地时间同时计算单位误差漂移计数量Tskew如下:
步骤104:同步完成。经过步骤103后,节点完成与父节点之间的同步,后续将根据父节点的同步周期接收同步报文进行同步维护,同步维护主要维护单位误差漂移计数量,同时在每次接收到父节点的同步报文后根据发送时间戳更新本地时间。节点同步完成后将本地时间转化为全局时间方法如下(i表示第i次接收同步报文):
而将全局时间转化为本地时间方法如下:
步骤105:广播同步报文。同步完成的节点将周期性将本地维护的全局时间以同步报文的形式广播,由此同步完成可以作为其他待同步节点的潜在时间源。
图5为本发明所述同步误差智能分析流程图。同步误差智能分析是在步骤104同步完成的基础上进行,包括如下步骤:
步骤201:接收同步报文,同步完成后节点仍然要周期接收来自父节点的同步报文,通过接收同步报文更新本地时间和单位误差漂移计数量,同时进行同步误差智能分析;
步骤202:比较发送时间戳和接收时间戳大小,如果发送时间戳大于接收时间戳转到步骤203,否则转到步骤204;
步骤203:本地计时频率低。同步节点和同步源经过一个周期的同步运行,通过新的同步报文中的发送时间戳和同步节点的接收时间戳比较,当发送时间戳大于接收时间戳说明本地时间计数频率低于同步时间源计数频率;
步骤204:本地计时频率高。发送时间戳和接收时间戳的比较结果与步骤203相反,则说明本地时间计数频率高于同步时间源计数频率;
步骤205:根据本地接收同步报文计算新的单位时间漂移量,计算结果同步骤103;
步骤206:通过原有旧的(接收本次同步报文前)单位时间漂移量将接收时间戳转换为本地全局接收时间戳,转换方式同步骤104;
步骤207:比较本地全局接收时间戳与发送时间戳,如果本地全局接收时间戳大于发送时间戳则转入步骤208,否则转入步骤209;
步骤208:通过步骤202的判断已经得出本地计时频率的高低,如果本地计时频率高则转入步骤211,否则转入步骤210;
步骤209:通过步骤202的判断已经得出本地计时频率的高低,如果本地计时频率高则转入步骤210,否则转入步骤211;
步骤210:补偿过量。也就是说对本地时间的补偿超过了期望补偿值,由于步骤104中将本地时间转化为全局时间的补偿部分(Tlocal-Treceive(i))/Tskew中Tskew处于分母部分,因此Tskew小于期望值,转入步骤212;
步骤211:补偿不足。也就是说对本地时间的补偿小于了期望补偿值,同时根据步骤210中分析,Tskew大于期望值,转入步骤213;
步骤212:比较当前同步报文计算所得单位误差漂移计数量和正在使用的单位误差漂移计数量,如果新计算结果大于正在使用的单位误差漂移计数量则转入步骤216,否则转入步骤215;
步骤213:比较当前同步报文计算所得单位误差漂移计数量和正在使用的单位误差漂移计数量,如果新计算结果大于正在使用的单位误差漂移计数量则转入步骤214,否则转入步骤216;
步骤214:在步骤211补偿不足和步骤213判断新计算单位误差漂移计数量大于正在使用的数值,则说明新计算结果相对当前使用值偏移期望值更大,因此将当前单位误差漂移计数量缩小到原来的90%作为新的单位误差漂移计数量;
步骤215:在步骤210补偿过量和步骤212判断新计算单位误差漂移计数量小于正在使用的数值,则说明新计算结果相对当前使用值与期望值偏差更大,因此将当前单位误差漂移计数量扩大到原来的110%作为新的单位误差漂移计数量;
步骤216:新计算结果相对当前使用值更接近期望值,因此取新计算的单位误差漂移计数量和正在使用的单位误差漂移计数量的平均值作为新的单位误差漂移计数量;
步骤217:通过上述步骤获得新的单位误差漂移计数量,完成此次同步误差分析,并依据新的单位误差漂移计数量进行同步的维护和网络正常运行。
为实现网络同步,步骤如下:
步骤301:时间基准源节点上电,周期广播同步报文;
步骤302:待同步节点监听到时间基准源的同步报文后,按照步骤102、103和104完成与时间基准源节点的同步,由于网络初始化只有时间基准源节点广播同步报文,步骤102只能选择时间基准源节点作为时间源;
步骤303:完成与基准时间源节点同步的节点按照步骤105广播自身维护的全局时间;
步骤304:其他待同步节点监听周围同步报文,并按照步骤102选择自身时间源,然后按照步骤103和104完成与时间源的同步;
步骤305:完成同步的节点同样按照步骤105广播自身维护的全局时间,并可作为其他节点进行同步潜在的时间源,从而逐步实现时间同步扩散到全网。
本发明并不局限于上述实施例,无线传感器网络时间同步具体实现技术可以根据实际情况灵活使用,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。