一种无线自组织网络无外时钟网同步算法
技术领域
本发明涉及无线自组织网络时间同步技术领域,具体为一种无线自组织网络无外时钟网同步算法。
背景技术
在基于TDMA无线自组织网络中,网络时间同步就是使不同设备的时间精确对齐,使分布式***能够按照划分的TDMA时隙工作。因此,网络时间同步 (以下简称网同步)是基于TDMA无线自组织网络能够良好地协同工作的基础。获得网同步的最直接办法就是利用外部时钟源,一般的外时钟信号大多为全球定位***(GPS)。但是,在很多应用环境中,受到价格、功耗、环境和安全性等因素的考虑,并不能保证GPS是可用的,因此没有这样一个能够广播时间消息的外时间源。另一方面,由于网络的无中心特征,网络构架本身也不存在一个确知的可以给其他节点提供时钟的中心节点。节点与节点之间的同步只能依赖于互相同步(即网络中的所有节点都与根节点选择算法选定的某个节点的时钟精确对齐)。这就需要同步的***自身主动建立一个内部***时钟,***内各用户都同步于这个建立的内部***时间,在***时间建立过程中各个分布***节点都要主动或被动的参与时间的建立。这就是本发明所要设计网络时间同步算法的应用背景。
本发明所应用的背景模型为无线自组织网络***,针对该***的时间同步算法已经进行了很多研究,主要的专利有:
中国专利201310375545.6中披露了“一种自组织网络中节点间时间同步的方法”,该发明中提出一种无线自组织网中网元间时间同步的方法,节点之间相互发送同步时标,当来收到高优先级节点发送的同步时标,则更新本节点的时间信息。中国专利200410073329.7中披露了一种“移动无线自组织网络的互同步方法”,该发明中通过网络中相邻节点之间相互交互各自的时间基准,从而完成网络同步过程。然而上述两个发明未考虑信号传播时延对同步精度的影响,当时隙长度很短时(例如时隙长度设定为1ms),传输距离为30 公里时,传输时延为0.1ms,该传输时延相对于时隙长度已经很大了,必须消除其对通信的影响,否则可能造成通信的中断。
中国专利201510106248.0中披露了“一种无线AdHoc网络中的节点同步方法”,该发明采用一种长的复帧和短的基本帧互相配合的方法在网络中精确地传递时间,到达网络中的每一个节点。中国专利201610055416.2中披露了“一种无线自组织网络同步方法”,在该发明中,节点间通过发送轮询信号,来调整各自的基准时间***原点,因此这种方法,不需中心站点和GPS信号,就能实现网络中各个移动节点的同步工作。然而上述两个专利没有考虑每个节点的时钟飘移对同步性能的影响,因此时钟飘移对整个网络的同步性能有很大的影响:当时钟飘移严重且时隙长度短时,需要加快节点之间的同步更新速度,避免出现同步失败;当网络中的时钟精度高且时隙长度较长时,可降低同步更新速度,从而减小网络开销。
中国专利201210101880.2中披露了“一种分级分簇无线自组织网络的分布式时钟同步方法”,该发明中,网络中节点分成很多个簇,定义为二级网络,而这些簇头又组成一新的簇,定义为一级网络,在每个簇中,簇成员向簇头同步,这样自下而下完成整个网络同步。然而该发明不涉及簇重新选举方法,当网络中出现簇头与本簇中所有节点同步失败后,需要所有簇成员与簇头节点重新同步,因此该发明的同步方法会造成同步时间过长。
综上所述,本发明提出一种无线自组织网络无外时钟网同步算法,通过节点之间完成三次握手计算出传输时延,从而获取精确时间信息;为了消除时钟飘移的影响,节点之间进行同步保持,通过交互一次数据计算出时钟偏移量;此外,为了使未同步节点或同步失败的节点迅速完成同步过程,设计一种网络同步调整机制,通过减少需要同步节点的数目,使得网络中所有节点迅速同步到同一时钟源上。
发明内容
本发明的目的在于提供一种无线自组织网络无外时钟网同步算法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种无线自组织网络无外时钟网同步算法,算法可分为同步获取、同步保持和网络同步调整等三个阶段;
同步获取阶段:在刚开机或同步失败后,节点与网络中已同步节点交互信息,从而获取精确时间信息,进而可以按照TDMA帧结构开始工作;
同步保持阶段:在获得精确时间信息后,为了避免时钟飘移带来的同步失败问题,节点需要定期与高同步优先级节点交互信息,以获得时钟飘移值,从而保证节点间的时间值差别小、同步精度高;
网络同步调整阶段:当网络中某些个节点同步失败或在同步获取阶段形成了多个同步网络时,即为了避免出现多个同步时钟源,需要使得一些节点重新进行同步获取,使网络中所有节点尽快同步到同一个时间源上。
优选的,所述的同步获取阶段,节点会定期发送同步广播包,当收到其他节点发送的同步广播包时,判断是否满足与其时间同步的条件:若满足,则与该节点通过三次数据交互过程,即三次握手,获得精确时间信息以及同步保持阶段收发数据顺序;否则丢弃收到的同步广播包。具体包括以下步骤:
步骤101,对于刚开机或同步失败后的节点,首先会产生一个随机数R,然后会在R秒后对外发送同步广播包,该同步广播包包含本节点编号(ID),自己的时钟信息(TID),同步网络编号(NWID,可预设为本节点编号),同步网络生存时间(TTNWID,当前设定为该节点开机后所经历的时间),同步优先级(SL,优先级随着SL值增加而降低,SL=0表示同步优先级最高,SL=99表示该节点未同步,对于刚开机或同步失败后的节点SL值设定为99),该同步网络中包含的节点数目(Num_totalNWID,将同步到一个时钟源的所有节点构成的网络定义为一个同步网络)以及直接或间接与节点ID同步的节点数目(NumID),而对于已同步节点会定期发送同步广播包;
步骤102,当节点收到广播包后,若发送节点为已同步节点或为未同步节点且同步网络生存时间比自己的长,则与该发送节点同步时间信息,否则直接丢弃该广播包,若满足上述时间同步条件,则解析广播内容(假设收到同步广播包所包含的信息为IDA,TIDA,NWIDA,TTNWA和SLA),即可获得包含传输时延的网络时间信息,此时将未同步节点定义为粗同步节点,为了消除传输时延,粗同步节点向节点IDA发送传输时延测量请求包,该数据包包含本节点 ID(以IDB为例),同步优先级(SLB),发送时间t1;
步骤103,当节点IDA收到节点IDB发送的传输时延测量请求包时,记录接收时间t2,产生测量请求反馈包发送给节点IDB,该测量请求反馈包包含发送节点ID,目的节点ID,传输时延测量请求包的发送和接收时间(t1和t2) 以及测量请求反馈包的发送时间t3,当节点IDA为未同步节点时,在发送测量请求反馈包前需将自己的同步优先级调整为0;
步骤104,节点IDB收到节点IDA发送的测量请求反馈包时,记录接收时间t4,并解析数据包获取其它三个时间值,通过这四个时间值可计算出节点 IDA与节点IDB之间的传输时延Tdelay,计算公式为
Tdelay=(t4-t1-t3+t2)/2
然后将TIDA减去传输时延Tdelay即获得精确的时钟信息,同时将节点IDB的同步优先级定为SLA+1,属于的同步网络编号设定为NWIDA,并后续的工作中自动更新同步网络生存时间,即步骤102收到的TTNWA值加上收到该信息后所经历的时间。
在上述过程中需要注意以下情况,当节点IDB在发送传输时延测量请求包后的Δt秒内未收到节点IDA发送的测量请求反馈包,则节点IDB重新发送传输时延测量请求包,若向某一同步节点重复发送三次传输时延测量请求包后并未收到反馈信息,则放弃与该同步进行同步获取过程,清除其发送同步广播包的信息,继续接收其它节点进行同步时间获取过程。
优选的,所述的同步节点定期与其上级同步节点(定义帮助未同步节点完成同步获取过程的节点为该节点的上级同步节点)周期***互一次信息,以避免由时钟飘移造成节点间同步失败。在节点完成时间同步过程后,每隔T Δ+toffset秒发送一次同步广播包进行同步保持,其中toffset为每次发送前随机产生的偏移量假设节点,可降低节点间的碰撞,而TΔ值的选取需要考虑节点时钟精度和时隙长度这两方面因素,在同步保持阶段,具体步骤如下:
步骤201,节点按照设定的时间发送同步广播包,即步骤102所述的同步广播包;
步骤202,在收到上级同步节点发送的数据包后,节点记录数据包接收时间trec,通过数据包内的发送时间tsend可计算出时间调整值tadjust=trec-tsend-Tdelay,然后将节点的时间信息值减去时间调整值tadjust,即可得更新后的时间信息;
步骤203,在收到下级同步节点发送的数据包后,若发送节点为已同步节点,则本节点记录该发送节点的NumID信息,用于计算直接或间接与本节点同步的节点数目,若发送节点为未同步节点,且发送的是发送传输时延测量请求包,则按照步骤103所述,负责该发送节点完成传输时延测量过程。
优选的,所述的对于网络中某些个节点同步失败或在同步获取阶段形成了多个同步网络,通过Num_totalNWID和TTNW这两个值,判断哪些节点需要重新进行同步获取阶段,从而实现网络快速同步到同一时钟信息上,具体包括以下步骤:
步骤301,当节点IDA与其上级同步节点IDB同步失败后,节点IDA会将直接或间接与节点IDA同步的节点重新定义为一个新的网络,同步网络编号NWIDA=IDA′,同步网络生存时间TTNWIDA从零开始计数,该同步网络中包含的节点数目Num_totalNWIDA=NumIDA,节点IDB′迅速通知其上级节点更新包含的节点数目;
步骤302,当同步网络优先级最高的节点(假设节点编号为IDC)收到其他同步节点发送的同步广播包后,获取数据包中的NWID′,TTNWID′和Num_totalNWID′值:
若Num_totalNWIDC<Num_totalNWID′时,节点IDC通知网络NWIDC的所有节点调整为未同步状态,与网络NWID′的节点完成同步获取过程;
若Num_totalNWIDC=Num_totalNWID′时,同步网络生存时间短的网络,将其所有节点调整为未同步状态,与另一个网络的节点完成同步获取过程,当两个同步网络生存时间相同,则随机将一个网络中的节点置为未同步状态;
若Num_totalNWIDC>Num_totalNWID′时,节点ID′通知网络NWID′的所有节点调整为未同步状态,与网络NWIDC的节点完成同步获取过程。
与现有技术相比,本发明的有益效果是:一种物流设备故障自动诊断报警及远程监控***;
1)无须提前预设定网络中心节点,通过步骤101中设置随机发送时间,从而自动选定网络中心节点;
2)在节点周期性发送同步广播包时,引入时间偏移量toffset,降低节点间的碰撞概率;
3)同时考虑传输时延和时钟飘移对网络同步的影响,获得的同步时间信息精度高;
4)当网络存在多个同步时钟源时,通过减少重新同步节点数目,从而使整个网络快速同步到同一时钟源。
附图说明
图1为一种无线自组织网络无外时钟网同步算法的状态转移图;
图2为同步获取阶段的流程图;
图3为传输时延测量过程示意图;
图4为同步保持阶段的流程图;
图5为网络同步调整的框图;
图6为网络变化示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-6,本发明提供一种技术方案:一种无线自组织网络无外时钟网同步算法,算法可分为同步获取、同步保持和网络同步调整等三个阶段;
同步获取阶段:在刚开机或同步失败后,节点与网络中已同步节点交互信息,从而获取精确时间信息,进而可以按照TDMA帧结构开始工作;
同步保持阶段:在获得精确时间信息后,为了避免时钟飘移带来的同步失败问题,节点需要定期与高同步优先级节点交互信息,以获得时钟飘移值,从而保证节点间的时间值差别小、同步精度高;
网络同步调整阶段:当网络中某些个节点同步失败或在同步获取阶段形成了多个同步网络时,即为了避免出现多个同步时钟源,需要使得一些节点重新进行同步获取,使网络中所有节点尽快同步到同一个时间源上。
图1显示了一种无线自组织网络无外时钟网同步算法中三个阶段之间的跳转关系,节点开机后进入同步获取阶段,当节点获取精确时间信息后,就跳转至同步保持阶段。在同步保持阶段,节点周期性的与上级同步节点交互信息,计算出时间飘移值,更新时间信息。当与上级同步节点同步失败后,节点进入网络同步调整阶段,通过邻居节点发送的Num_totalNWID和TTNW这两个值,来判断哪些节点需要重新同步,即进入同步获取阶段。
阶段一:同步获取
如图2所示,在同步获取阶段,节点会定期发送同步广播包,当收到其他节点发送的同步广播包时,判断是否满足与其时间同步的条件:若满足,则与该节点通过三次数据交互过程,即三次握手,获得精确时间信息以及同步保持阶段收发数据顺序;否则丢弃收到的同步广播包。具体包括以下步骤:
步骤101,对于刚开机或同步失败后的节点,首先会产生一个随机数R=4,然后会在4秒后对外发送同步广播包,该同步广播包包含本节点编号(ID),自己的时钟信息(TID),同步网络编号(NWID,可预设为本节点编号),同步网络生存时间(TTNWID,当前设定为该节点开机后所经历的时间),同步优先级(SL,优先级随着SL值增加而降低,SL=0表示同步优先级最高,SL=99表示该节点未同步,对于刚开机或同步失败后的节点SL值设定为99),该同步网络中包含的节点数目(Num_totalNWID,将同步到一个时钟源的所有节点构成的网络定义为一个同步网络)以及直接或间接与节点ID同步的节点数目(NumID),而对于已同步节点会定期发送同步广播包;
步骤102,当节点收到广播包后,若发送节点为已同步节点或为未同步节点且同步网络生存时间比自己的长,则与该发送节点同步时间信息,否则直接丢弃该广播包,若满足上述时间同步条件,则解析广播内容(假设收到同步广播包所包含的信息为ID=1,T1=100.120301秒,NW1=1,TT1=100.120301秒和SL1=0),即可获得包含传输时延的网络时间信息,此时将未同步节点定义为粗同步节点,为了消除传输时延,粗同步节点向节点1发送传输时延测量请求包,该数据包包含本节点ID=2,同步优先级(SL2=99),发送时间填 t1=100.233402秒;
步骤103,当节点1收到节点2发送的传输时延测量请求包时,记录接收时间t2=100.240526秒,产生测量请求反馈包发送给节点2,该测量请求反馈包包含发送节点ID,目的节点ID,传输时延测量请求包的发送和接收时间(t1 和t2)以及测量请求反馈包的发送时间t3=103.234519秒;
步骤104,节点2收到节点1发送的测量请求反馈包时,记录接收时间 t4=103.227731秒,并解析数据包获取其它三个时间值,如图3所示,通过这四个时间值可计算出节点1与节点2之间的传输时延Tdelay,计算公式为
Tdelay=(t4-t1-t3+t2)/2;
然后将TIDA减去传输时延Tdelay=168微秒,即获得精确的时钟信息,同时将节点IDB的同步优先级定为1,属于的同步网络编号设定为1,并后续的工作中自动更新同步网络生存时间,即步骤102收到的TTNWA值加上收到该信息后所经历的时间。
在上述过程中需要注意以下情况,当节点2在发送传输时延测量请求包后的5秒内未收到节点1发送的测量请求反馈包,则节点2重新发送传输时延测量请求包。若向某一同步节点重复发送三次传输时延测量请求包后并未收到反馈信息,则放弃与该同步进行同步获取过程,清除其发送同步广播包的信息,继续接收其它节点进行同步时间获取过程。
阶段二:同步保持
如图4所示,在同步保持阶段中,同步节点定期与其上级同步节点(定义帮助未同步节点完成同步获取过程的节点为该节点的上级同步节点)周期***互一次信息,以避免由时钟飘移造成节点间同步失败。在节点完成时间同步过程后,每隔TΔ+toffset秒发送一次同步广播包进行同步保持,其中toffset为每次发送前随机产生的偏移量假设节点,可降低节点间的碰撞概率。而TΔ值的选取需要考虑节点时钟精度和时隙长度这两方面因素。在同步保持阶段,具体步骤如下:
步骤201,节点按照设定的时间发送同步广播包,即步骤102所述的同步广播包;
步骤202,在收到上级同步节点发送的数据包后,节点记录数据包接收时间trec,通过数据包内的发送时间tsend可计算出时间调整值tadjust=trec-tsend-Tdelay,然后将节点的时间信息值减去时间调整值tadjust,即可得更新后的时间信息;
步骤203,在收到下级同步节点发送的数据包后,若发送节点为已同步节点,则本节点记录该发送节点的NumID信息,用于计算直接或间接与本节点同步的节点数目,若发送节点为未同步节点,且发送的是发送传输时延测量请求包,则按照步骤103所述,负责该发送节点完成传输时延测量过程。
阶段三:网络同步调整
如图5所示,当网络中某些个节点同步失败或在同步获取阶段形成了多个同步网络,需要进行网络同步调整,网络同步调整机制为通过Num_totalNWID和TTNW这两个值,判断哪些节点需要重新进行同步获取阶段,从而实现网络快速同步到同一时钟信息上,具体包括以下步骤:
步骤301,当节点IDA与其上级同步节点IDB同步失败后,节点IDA会将直接或间接与节点IDA同步的节点重新定义为一个新的网络,同步网络编号 NWIDA=IDA′,同步网络生存时间TTNWIDA从零开始计数,该同步网络中包含的节点数目Num_totalNWIDA=NumIDA,节点IDB′迅速通知其上级节点更新包含的节点数目;
步骤302,当同步网络优先级最高的节点(假设节点编号为IDC)收到其他同步节点发送的同步广播包后,获取数据包中的NWID′,TTNWID′和Num_totalNWID′值:
若Num_totalNWIDC<Num_totalNWID′时,节点IDC通知网络NWIDC的所有节点调整为未同步状态,与网络NWID′的节点完成同步获取过程;
若Num_totalNWIDC=Num_totalNWID′时,同步网络生存时间短的网络,将其所有节点调整为未同步状态,与另一个网络的节点完成同步获取过程,当两个同步网络生存时间相同,则随机将一个网络中的节点置为未同步状态;
若Num_totalNWIDC>Num_totalNWID′时,节点ID′通知网络NWID′的所有节点调整为未同步状态,与网络NWIDC的节点完成同步获取过程。
考虑图6所示的网络变化情况,当节点1和节点同步失败后,与节点2 直接或间接同步的节点重新组成一个同步网络,即节点2、节点4、节点5、节点7、节点8,该同步网络的编号为2,且Num_total2=5。节点1与节点3、节点6以及节点10组成一个同步网络1,且Num_total1=4。当节点2收到网络1中的节点发送同步广播包后,发现Num_total2>Num_total1,因此网络2 不需要重新同步。当节点1收到网络2中的节点发送的同步广播包后,发现 Num_total1>Num_total2,因此节点1会通知节点3、节点6和节点10与网络 2同步;
无须提前预设定网络中心节点,通过步骤101中设置随机发送时间,从而自动选定网络中心节点;在节点周期性发送同步广播包时,引入时间偏移量toffset,降低节点间的碰撞概率;同时考虑传输时延和时钟飘移对网络同步的影响,获得的同步时间信息精度高;当网络存在多个同步时钟源时,通过减少重新同步节点数目,从而使整个网络快速同步到同一时钟源。
在本发明的描述中,需要理解的是,术语“同轴”、“底部”、“一端”、“顶部”、“中部”、“另一端”、“上”、“一侧”、“顶部”、“内”、“前部”、“中央”、“两端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明中,除非另有明确的规定和限定,术语“安装”、“设置”、“连接”、“固定”、“旋接”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。