专利名称:面向测量与控制的精确时间同步方法与系统的制作方法
技术领域:
本发明涉及自动控制领域,尤其涉及自动控制系统中网络测量与控制设备间的同步技术。
背景技术:
目前应用于工业控制网络测量的时间同步协议主要是IEEE1588,针对协议的不同实现方法具有不同的时间同步精度。但在实际的工业控制网络中,还应考虑实现精确时间同步协议引擎模块、主时钟、本地时钟同步、发送与接收控制模块对时间同步精度的影响。本发明针对上述影响因素分别优化了最佳主时钟算法、改进了本地时钟同步算法、优化了PTP报文发送与接收的控制过程,从而达到了理想的同步精度,可满足自动控制领域中测量与控制对精确同步的要求。
发明内容
本发明设计了一种精确时间同步系统,通过构建精确时间同步(PTP)协议引擎模块体系结构,采用最佳主时钟算法、时钟变量算法、本地时钟同步算法,优化了PTP报文发送与接收的控制过程。所构建精确时间同步协议体系结构,包括如下功能模块PTP协议引擎模块,PTP接收控制模块,PTP发送控制模块和数据集服务器。
PTP协议引擎模块是整个精确时间同步实现的核心,它完成协议状态机的转化、报文计算,时钟同步计算,还完成与本地时钟、数据集服务器和接收发送模块进行数据交互及总体控制,PTP协议引擎模块具体包括PTP协议状态机模块、最佳主时钟算法模块、本地时钟同步模块、时钟变量算法模块。
PTP接收控制模块,用于定义报文的处理流程,以便有效合理更新各个数据集,通过用户数据报协议UDP通信接口实现PTP协议报文的接收,包括,同步报文接收部分、跟随报文接收部分、时延请求报文接收部分、时延响应报文接收部分、管理报文接收部分。
PTP发送控制模块,调用UDP服务,通过UDP通信接口实现PTP协议报文的发送,完成同步报文发送、跟随报文发送、时延请求报文发送、时延响应报文发送。
数据集服务器部分,存放本地时钟系统属性特征信息和远程主时钟系统属性特征信息,为PTP协议的配置和计算提供数据源,包括缺省数据集、当前数据集、父类数据集、全局时间数据集、端口配置数据集和外来主时钟数据集。
本发明还提出一种精确时间同步实现方法,通过构建精确时间同步(PTP)协议引擎模块体系结构,采用状态决策算法、最佳主时钟算法、时钟变量算法来选择PTP协议报文中最佳的时间值;采用定时器步长补偿的方式获取时间的抖动误差;计算出通信链路时延和从时钟与主时钟的时间偏差;PTP发送/接收控制模块调用UDP服务,通过UDP通信接口实现PTP协议报文的发送/接收,优化了PTP报文发送与接收的控制过程。
本发明具有与IEEE1588协议的严格一致性,降低了其他影响时间同步精度的因素,提高了系统的同步精度,主要用于各种需要精确同步的网络及网络设备。
说明书附1精确时间同步系统的体系结构示意2PTP状态机转化示意3数据集比较算法流程4状态决策算法流程5PTP同步报文的通信流程6同步报文的接收流程7精确报文处理流程8时延请求报文处理流程9时延响应报文接收流程10PTP报文发送流程图具体实施方式
本发明提出的精确时间同步实现方法主要是利用了通信链路时延的对称性,通过从时钟与主时钟的三次通信握手过程,在从时钟系统上通信过程的四个时间戳,从而计算出通信链路时延和从时钟与主时钟的时间偏差。为了提供时间同步的精度,本系统作了三个方面的改进一是网络报文处理,接收报文时触发网络中断,在中断中记下接收时间,发送网络报文时,在提交给网络通信栈的物理层时记下发送时间戳,这样可以避免通信栈引起的时间偏差;二是通过状态决策算法、最佳主时钟算法、时钟变量算法来选择PTP协议报文中最佳的时间值,进行时延和时间偏差的计算;三是获取系统时间时,采用定时器步长补偿的方式减少获取时间的抖动误差。
精确时间同步(PTP)系统的体系结构如
图1所示。它包括PTP协议引擎模块、PTP接收控制模块、PTP发送控制模块三个主要模块,以及数据集服务器(具体包括缺省数据集、当前数据集、父类数据集、全局时间数据集、端口配置数据集和外来主时钟数据集)。其中,PTP协议引擎模块是整个精确时间同步实现的核心,它完成协议状态机的转化、报文计算,时钟同步计算,此外,还完成与本地时钟、几个数据集和接收发送模块进行数据交互和总体控制;数据集服务器存放本地时钟系统属性特征信息和远程主时钟系统属性特征信息,为PTP协议的配置和计算提供数据源;PTP接收、发送控制模块通过用户数据报协议(UDP)通信接口实现PTP协议报文的接收和发送,同时在网络通信栈的物理层上,把此刻发送或接收网络报文的时间记录下来,这样可以增加同步的精度。
PTP协议引擎模块主要包括以下四个部分PTP协议状态机模块、最佳主时钟算法模块、本地时钟同步算法模块和时钟变量算法模块。PTP协议状态机考虑了协议引擎在设备上电时的初始化状态、出现异常情况下的故障状态、通常情况下的侦听状态、主时钟状态、从时钟状态和未校准状态,以及各状态之间的转化。最佳主时钟算法模块是在一个网络出现多个主时钟情况下,比较多个主时钟的关键属性值,为本地时钟提供一个最优时钟系统源。本地时钟同步算法模块的主要功能是分析本地时钟接收外来主时钟的同步报文时,当本地时钟处于从时钟状态时,需要判别当前的主时钟是否为最佳主时钟,如果是最佳主时钟且有跟随报文的话,则记下接收同步报文的精确时间T2,并且等待跟随报文;等到跟随报文时,就可以记录下主时钟发送本次协议报文的精确时间T1,为了计算与主时钟的偏差和通信链路的时延,本地时钟发起时延请求报文,并且记录发送时延请求协议报文的精确时间T3;主时钟收到时延请求报文后,会记下接收时延请求报文的精确时间T4,同时通过时延响应报文把T4回送本地时钟系统,整个的时钟同步的通信过程,请见图5;当从时钟收到时延响应报文后,就可以按照如下的公式计算从时钟与主时钟的时间偏差和通信链路的时延。
Toffset=T2-Ti-TD①TD=((T2-T1)+(T4-T3))/2 ②时钟变量是本地时钟的一个重要特性,通过周期性采集原子时钟值(或其他高精度时钟值)和本地时钟值,统计本地时钟晶振频率的偏差属性,按照Allan公式进行时间偏差计算,并将计算的结果值存放在时钟变量寄存器。
(1)PTP协议状态机PTP协议状态机考虑设备上电后可能的各种状态初始化状态、故障状态、从时钟、主时钟状态、侦听状态、未校准状态,以及各个状态的许可行为和状态之间的转化过程,为时钟系统提供可靠运行机制。上电后或收到系统的初始化时钟命令,时钟系统处于初始化,它需要完成定时器队列的初始化、为各数据集分配缓冲区、时钟端口配置、通信协议栈初始化等操作。完成初始化操作后,系统应进入侦听状态,侦听网络上的PTP协议报文。如果此时出现系统性错误,则自动进入到故障状态,并要求用户对故障进行相应的处理,如果故障清除,系统则重新进入到初始化状态,否则将一直处于故障状态。为了防止系统长期处于侦听状态,我们需要设定侦听外来同步报文的定时器,如果定时器超时,系统自动进入到主时钟状态。在侦听时如果通信端口收到相应的PTP协议报文,应该进行最佳主时钟算法,如果发现本地时钟系统是最优的,那么它将进入一个预备的主时钟状态,在一个规定的时间内,如果没有发现更好的时钟的话,它将正式进入到主时钟状态,处于主时钟状态的系统将周期性向外发送同步报文和跟随报文,以便其他时钟能够协调时间。如果发现其他时钟优于本系统,系统进入到从时钟状态,进入从时钟状态后,从时钟将启动同步机制。如果同步过程中,发现当前的最佳主时钟和先前同步的主时钟不相符或发现同步过程发生了错误,则系统进入到未校准状态。未校准状态将调用最佳主时钟算法算出最佳时钟后,又将重新进入从时钟状态。整个PTP协议状态机转化如图2所示。
(2)最佳主时钟算法最佳主时钟算法主要用于选择本地网络中的最佳时钟作为主时钟,同时决定本地时钟所应处的状态。计算最佳主时钟的方法包括以下两个步骤首先从本地时钟系统通信端口中选出一个质量最好的同步报文;根据上述结果,比较此时的主时钟和本地时钟属性,决定本地设备PTP协议引擎所处的状态。上面的第一个步骤采用数据集比较算法,而判断PTP协议引擎所处的状态采用状态决策算法完成。
①数据集比较算法实现数据集比较算法主要是分析数据集A和数据集A中的时钟变量值、最高主时钟的层次、报文中间路由的次数、主时钟是否优先选择标记等关键变量的性能,为系统从这些数据集选出质量最佳的同步报文,并与它的时钟进行同步,调整本地时间。数据集比较算法的流程如图3所示,包括以下几个步骤 依次比较数据集中最高主时钟的层次、它到本地时钟的中间节点数、它的时钟变量值,它是否为优先选择等关键变量,如果能分出一个最优的最高主时钟的话,则选择包含这个最高主时钟的同步报文。
如果上述的性能变量值完全相同,比较数据集中的最近一次同步报文的序号,取其值大的同步报文。
②状态决策算法采用状态决策算法判断当前PTP协议引擎所处的状态。状态决策算法流程如图4所示,其中时钟C0的缺省数据集以D0表示,Ebest是通过使用数据集比较算法得来的时钟C0的最优同步报文,Erbest是时钟C0的第r号通信端口的最优报文。
状态决策算法首先判断缺省数据集D0中最高主时钟的层次,如果是位于第一或第二层,则按照数据集比较算法比较D0和时钟C0的第r号通信端口的同步报文Erbest,如果Erbest性能属性优于D0,则本地时钟根据Erbest的属性值来确定主时钟,系统应进入主时钟状态,否则本地时钟进入从时钟状态。如果D0中最高主时钟不位于第一或第二层,则根据同样的办法来比较D0和C0的Ebest。
(3)时钟变量算法时钟变量是描述本时钟性能的关键指标之一,它存放于各个数据集和同步报文中,最佳主时钟算法和状态决策算法需要使用它来选择最佳主时钟。
时钟变量的计算是基于时钟的艾伦(Allan)偏差,Allan偏差公式如下σy(τ)=12(N-1)τ2×Σk=1N-2(xk+2-2xk+1+xk)]]>上式表明每间隔时间τ就采样一次此刻的本地时钟值。假设第K个采集点的时间值为xk,第K+i个采集点的时间值为xk+1,第K+2个采集点的时间值为xk+2,系统共采集N-1个时间值,σy(τ)是时钟y采集时间间隔为τ的Allan偏差值,从公式中可知Allan偏差主要是用于统计本地时钟振荡器的频率偏差。PTP时钟变量σPTP与Allan偏差σy(τ)关系如下σPTP2=τ2×13σy2]]>从上式可得到PTP时钟变量σPTP与各采集点的关系σPTP2=13[12(N-2)×Σk=1N-2(xk+2-2xk+1+xk)2]]]>(4)本地时钟同步算法本地时钟同步算法是PTP协议中十分关键的部分,主要用来调整本地时间,与主时钟的基准时间保持一致性。
本地时钟主要通过与主时钟交互时间戳来完成同步过程,如图5所示。主时钟以一定的周期广播或组播时间同步报文,同时把发送的当前时间T1记录在报文中,从时钟设备在接收到测试报文后记下接收时间T2,如果主时钟支持报文,则等待报文的到来。如果从时钟的数据集中已存有相应的通信时延,则可以通过下面的公式1算出时间偏差,否则,就在T3的时刻发送时延请求报文,主时钟接收时延请求报文时记下时刻T4,并通过时延响应报文把时刻T4传送从时钟时间。计算方法如公式2。
假设从时钟与主时钟通信延迟为TD、时钟偏差为Toffset则Toffset=T2-T1-TD①TD=((T2-T1)+(T4-T3))/2 ②3、PTP接收控制模块该模块主要用来分析、控制接收到的各种网络报文,把符合PTP协议的报文接收到PTP协议引擎中,并负责检查PTP协议报文的有效性。
PTP接收控制模块主要包括以下四个部分同步报文接收模块、跟随报文接收模块、时延请求报文接收模块、时延响应报文接收模块。下面进一步分析上述报文的处理过程。
(1)同步报文接收过程当同步报文接收时,应该对关联的数据集进行更新升级,通常同步报文来自于主时钟,因此同步报文的接收是时间同步的一个前提,同步报文质量影响到时间同步的精度。
同步报文的处理流程可见图6。同步报文的处理中,首先应该要判断PTP协议引擎所处的状态,如果是处于初始化或故障状态,则直接退出,否则就要分析同步报文中的同步突发标记位,如果这位置1的话,说明同步报文是突发性的,可能需要特殊处理。接下来需要分析一下协议引擎是否处于从时钟状态,如果不处于从时钟状态,就只需要更新外来主时钟数据集。如果处于从时钟状态而且同步报文是来自当前的主时钟则更新当前主时钟的数据集,假如同步报文的同步辅助位没有置1的话,就可以使用时间同步算法来调整时间,如果置1的话,则启动定时器等待跟随报文的到来。
(2)跟随报文接收主时钟在发送同步报文时,报文中的发送时间往往是不准确的,因此如果主时钟支持更高精度的时间同步的话,往往会通过另外一个报文把同步报文发送的准确时间发送到网络上,这样可以减少同步计算时的误差。
跟随报文的接收如图7所示。与同步报文处理流程相似,接收到跟随报文时也需要判断和分析PTP协议引擎是否处于初始化、故障状态、从时钟状态,判断和分析跟随报文中的同步突发标记是否置1,跟随报文是否是当前主时钟发送的,判断跟随报文是否关联上一次的同步报文,如果是的话,就可完成本地时间的调整工作。
(3)时延请求报文接收如果只接收同步报文和跟随报文,可以收到主时钟的同步报文发送的准确时间,但是如果需要计算通信链路的通信时延的话,那么就得向主时钟发送一个时延请求报文,要求对方给一个时延响应报文,再把主时钟接收时延请求报文的时间送过来,因此时延请求报文的接收是对主时钟而言的。
时延请求报文接收流程如图8。判断PTP协议引擎是否处于主时钟状态,如果是,打上时间戳,发送时延响应报文,当时延请求报文到达时,设备启动网络中断,在网络中断中记下此刻报文达到的时间,并发送包含有这个时间的时延响应报文,如果时延请求报文中的同步突发标志位置1的话,还应再发送一个同步报文。
(4)时延响应报文接收时延响应报文接收带有主时钟接收时延请求报文的准确时间,这个时间用于计算通信链路时延时间。
时延响应报文接收流程如图9所示。只有在从时钟状态的时候,系统才能有效接收时延响应报文,当收到有效的时延响应报文后,首先应该判断此报文是否是当前主时钟发送的,是否对应于系统发送的时延请求报文,如果是的话,那么就可以开始计算通信链路的时延。
4、PTP发送控制模块PTP发送控制模块用于发送同步报文、跟随报文、时延请求报文、时延响应报文,因此发送模块的主要任务就是编码封装PTP协议报文,以及何时发送这些报文,PTP发送控制模块要受到定时器事件、PTP报文事件和设备异常事件的影响。
PTP发送控制流程如图10所示。PTP发送模块主体是一个循环,只有PTP协议引擎处于从时钟或主时钟状态时候(故障状态,循环退出),才有可能发送协议报文。当处于从时钟状态时,如果收到同步报文、跟随报文且通信链路更新定时器时间超时,那么应该根据此时同步报文更新的数据集,封装一个时延请求报文发送。但是如果长时间收不到同步报文,同步接收定时器超时或者本系统时钟在网络中的性能最优,那么从时钟有可能会转化到主时钟状态,就应该启动同步报文发送定时器,定时器超时即可发送同步报文,如果协议引擎支持同步辅助位的话,还应立即送出一个跟随报文,发出上述报文后,从时钟会发送一些时延请求报文,因此主时钟还应对这些从时钟作出自己的时延响应报文。
5、数据集服务器,包括缺省数据集、当前数据集、父类数据集、全局时间数据集、端口配置数据集和外来主时钟数据集。
缺省数据集描述了本地时钟的固有属性,当本地时钟成为网络中的主时钟时需要使用此数据集的相关属性。该数据集主要包括本地时钟标识符、本地的PTP时钟变量、PTP域名、同步间隔、优先选择标记、同步辅助标记以及外来主时钟记录最大值等数据。
当前数据集主要描述本地时钟与当前主时钟关联属性,主要包括主时钟到从时钟的中间节点数、主时钟到从时钟的通信链路时延等数据。
父类数据集主要描述了本地时钟关联主时钟的关键属性,主要用于数据集比较和选择最优主时钟,主要包括父类(或称主时钟)的时钟标识符、PTP时钟变量、同步辅助标记、最近一次同步报文的序号以及最高级主时钟的时钟标识符、PTP时钟变量、同步辅助标记、最近一次同步报文的序号等数据。
全局时间数据集主要描述协议对时间的相关约定,主要包括协议的基准时间、闰秒标记、与世界统一时间的偏差值等数据。
端口配置数据集主要提供本地时钟的网络通信端口的基本配置信息,在封装数据报文的时候往往需要使用此数据集,它主要包括本端口的协议引擎状态、域名地址、标识符、接收到最近一次同步报文的序列号、同步突发标记等数据。
外来主时钟数据集主要统计主时钟的摘要信息,包括主时钟使用的通信技术、主时钟标识符、接收到主时钟的同步报文数量等数据。
本发明提出一种精确时间同步实现方法,通过构建精确时间同步(PTP)协议引擎模块体系结构、采用PTP协议状态机的决策算法、主时钟的最佳算法与时钟变量算法、本地时钟同步实现方法、优化了PTP报文发送与接收的控制过程,满足自动控制领域中测量与控制器件对同步的高精确度要求。
权利要求
1.一种面向测量与控制的精确时间同步PTP的实现方法,其特征在于通过构建精确时间同步协议引擎模块,采用PTP协议最佳主时钟算法、时钟变量算法、本地时钟同步算法选择PTP协议报文中最佳的时间值,计算从时钟与主时钟的时间偏差和通信链路的时延;优化PTP发送/接收控制模块,为测控网络设备提供一个统一的时间基准。
2.根据权利要求1所述的实现方法,其特征在于,所述PTP协议最佳主时钟算法包括从端口选择质量最好的同步报文,选择本地网络中的最佳时钟作为网络的主时钟,同时决定PTP协议引擎所应处的状态。
3.根据权利要求1所述的实现方法,其特征在于,通过统计本地时钟晶振频率的偏差属性,采用基于艾伦(Allan)偏差的算法计算时钟变量,本地时钟同步算法通过与主时钟交互时间戳来完成同步过程。
4.根据权利要求2所述的实现方法,其特征在于,采用数据集比较算法,选择本地网络中的最佳时钟作为主时钟,采用状态决策算法判断PTP协议引擎所处的状态。
5.一种实现精确时间同步的系统,通过构建精确时间同步协议引擎模块实现,其特征在于,该系统包括PTP协议引擎模块它完成协议状态机的转化,报文计算,时钟同步计算,与本地时钟、各个数据集和接收/发送模块进行数据交互;PTP接收控制模块调用用户数据报文UDP服务,通过UDP通信接口实现PTP协议报文的接收;PTP发送控制模块调用UDP服务,通过UDP通信接口实现PTP协议报文的发送;数据集服务器部分存放本地时钟信息、主时钟特征信息,为协议的配置和计算提供数据源。
6.根据权利要求5所述的系统,其特征在于,所述PTP协议引擎模块包括,PTP协议状态机模块定义PTP协议引擎在各个状态之间的转化行为;最佳主时钟算法模块为本地时钟有效选择一个质量最好的同步报文用于同步计算,同时确定PTP协议引擎应处的状态;本地时钟同步模块通过计算从时钟与主时钟的偏差,调整本地的时钟;时钟变量算法模块周期性对本地时钟的频率特性进行统计。
7.根据权利要求5所述的系统,其特征在于,PTP接收控制模块包括同步报文接收模块、跟随报文接收模块、时延请求报文接收模块、时延响应报文接收模块;PTP发送控制模块包括同步报文发送模块、跟随报文发送模块、时延请求报文发送模块、时延响应报文发送模块。
8.根据权利要求5所述的系统,其特征在于,所述数据集部分包括缺省数据集描述了本地时钟的固有属性;当前数据集描述本地时钟与当前主时钟关联属性;父类数据集描述与本地时钟关联的主时钟的关键属性;全局时间数据集描述协议对时间的相关约定;端口配置数据集提供本地时钟网络通信端口的基本配置信息;外来主时钟数据集用于统计主时钟的摘要信息。
9.根据权利要求6所述的系统,其特征在于,所述最佳主时钟算法模块采用数据集比较算法选择本地网络中的最佳时钟作为主时钟,采用状态决策算法决定当前PTP协议引擎所处的状态;所述本地时钟同步模块通过与主时钟网络通信,获得主时钟的有效时间戳,调整本地时间保持与主时钟的基准时间一致。
全文摘要
本发明请求保护一种面向测量与控制的精确时间同步方法与系统,涉及自动控制领域。本发明通过构建精确时间同步PTP协议引擎模块体系结构、采用PTP协议状态机的决策算法、最佳主时钟算法、时钟变量算法、本地时钟同步算法,优化了PTP报文发送与接收的控制过程,满足自动控制领域中测量与控制器件对同步的高精确度要求。所构建精确时间同步协议体系结构包括如下功能模块PTP协议引擎模块,PTP接收控制模块,PTP发送控制模块和各种数据集。
文档编号H04L29/06GK1845546SQ200610054138
公开日2006年10月11日 申请日期2006年3月15日 优先权日2006年3月15日
发明者谢昊飞, 王平, 向敏, 孙攀 申请人:重庆邮电学院