一种基于ieee1588协议的主从时钟对时的时间补偿方法

文档序号:7868353阅读:217来源:国知局
专利名称:一种基于ieee 1588协议的主从时钟对时的时间补偿方法
技术领域
本发明涉及精准时钟同步技术,针对特定硬件的平台,实现IEEE 1588精准时钟协议,尤其涉及主从时钟的时间同步。
背景技术
精确时钟同步协议能够为网络中的各节点提供时钟同步。IEEE 1588最先在国外获得应用,现在已经有多家公司(IXXAT,NI, FREESCALE)研发出的,基于该协议的主时钟和客户端,罗杰康(RUGGEDC0M)已经制作出了基于该协议的交换机(边界时钟,和透明时钟)。IEEE 1588协议自从第一版于2002年提出以来,国内也进行了很多研究已经有了 很多种实现方式,有纯软件实现,也有FPGA实现的。纯软件实现精度不高,一般只能达到NTP (网络时间协议NTP)的毫秒级精度。因为时间戳是由操作系统软件得到的,而由于软件无法精确到亚微秒级别的准确性,所以没有办法保证得到比较高的精度,而FPGA的开发成本则相对较高。本发明方法提出了基于IEEE 1588-2008协议精确到亚微秒级别的方法,尤其是基于DP83640芯片的一种实现方式,使用了该网络芯片后,时间戳可以直接从硬件读取,因此可以达到亚微秒级的精度。同时,利用芯片实现对精度需求最高的时间戳记录方式,而其他对精度要求不高的部分则可以通过软件来实现,使开发成本最优化。在标准的IEEE 1588协议中,当主从时钟的时间偏差小于I秒时,会通过调整系统时钟的频率实现主从时钟的对时。但是该方法只能改变系统时钟的频率,并不能调整硬件时钟的晶振频率。而且调整系统时钟频率的算法调整时钟频率的速率比较慢,不能快速的调整主从时钟的时间差,本发明提出了一种新的算法,能够快速的调整硬件时钟的晶振频率。

发明内容
本发明解决的技术问题是如何快速的调整硬件时钟的晶振频率实现IEEE 1588协议主从时钟更精准对时。尤其是基于精确时间协议收发器DP83640芯片实现本发明的方法。本发明提出了一种新的算法,能够快速的调整硬件时钟的晶振频率。而且调整系统时钟频率的算法调整时钟频率的速率快,且能快速的调整主从时钟的时间差。本发明技术方案是基于IEEE 1588协议的主从时钟对时的时间补偿方法,其特征是包含以下步骤A.初始化与晶振频率相关的时间数据,从时钟接收同步报文从时钟上次同步报文的接收时间初始化为0,从时钟记录本次同步报文的接收时间,初始化从时钟接收同步报文的的平均周期P1为0,本次从时钟接收同步报文的周期的值为本次同步报文的接收时间与其上次同步报文的接收时间之差;初始化时主从时钟的平均偏移时间为0,本次主从时钟的偏移时间通过IEEE 1588协议计算出;B.从时钟接收同步报文的的平均周期的计算从时钟接收同步报文的周期值为本次从时钟接收同步同步报文的接收时间与其上次同步报文的接收时间之差,将从时钟接收同步报文的的平均周期与本次从时钟接收同步报文的周期的值之差的绝对值和给定的阈值比较,如果超过该阈值,则转到步骤F ;否则,分别给定从时钟接收同步报文的的平均周期和本次从时钟接收同步报文的周期一个权重,重新计算从时钟接收同步报文的平均周期;C.主从时钟的平均偏移时间的计算将主从时钟的平均偏移时间与本次主从时钟的偏移时间之差的绝对值和给定的阈值比较,如果超过超过该阈值,则转到步骤F ;否则,分别给定主从时钟的平均偏移时间和本次主从时钟的偏移时间一个权重,重新计算主从时钟的平均偏移时间T1 ;D.从时钟的晶振频率的计算通过当前的从时钟晶振频率和从时钟接收同步报文的的平均周期与主从时钟的平均偏移时间的比值计算并修改调整后的从时钟的晶振频
率F2 ;E.重置参数重置从时钟接收同步报文的的平均周期和主从时钟的平均偏移时间T1为OF.循环操作从时钟每次接收到同步报文重复B到F。2、根据权利要求I所述的基于IEEE 1588协议的主从时钟对时的时间补偿方法,其特征是步骤C中重新计算从时钟接收同步报文的的平均周期的方法是同时考虑从时钟接收同步报文的平均周期P1和主从时钟的平均偏移时间T1以及当前从时钟硬件的晶振频率F1,然后应用公式(I)来计算出新的从时钟硬件S从时钟的晶振频率F2。F2 = F1+(T1 X 235)/P1(I)从时钟每次接收同步报文之后,首先计算从时钟接收同步报文的平均周期P1和本次从时钟接收同步报文的周期P2之差,如果两者之差大于特定的阈值,则需要重新计算平均周期P1,按照公式(2)计算平均周期P1,其中λ参数表示P2在计算P1时所占的权重,在实际中设置为O. I ;如果两者之差不大于特定的阈值(阈值通常为平均周期的O. 2-0. 5%),放弃本次接收同步报文后对从时钟硬件的晶振频率的修改。P1=(PjAXP2)Z(HA)⑵其次,计算主从时钟平均偏移时间T1和本次主从时钟偏移时间T2之差,如果两者之差大于特定的阈值,则需要重新计算T1,按照公式(3)计算T1,其中“α ”参数表示T2在计算T1时所占的权重,在实际中设置为0.5 ;如果两者之差不大于特定的阈值,放弃本次接收同步报文后对硬件时钟的晶振频率的修改。T1= (T^aT2)/ (1+α )⑶之后从时钟每次接收到同步报文,都会判断是否需要重新计算P1和T1 ;仅当P1和T1重新计算之后,从时钟才会通过公式(I)调整晶振频率。本发明的有益效果是将一个(或若干个)主时钟通过以太网络(或其他异构网络)对其他从时钟进行较时,1588协议通过BMC算法使网络中的时钟形成分层的体系结构,让下层的时钟成为从时钟,向上层的主时钟进行较时。本发明提供了一种新的算法通过快速改变晶振频率来校正从时钟的硬件时间从而调整系统时间,实现IEEE 1588协议主从时钟更精准对时。1588协议将会在智能电网时钟系统领域大量使用。快速的调整硬件时钟的晶振频率实现IEEE 1588协议主从时钟更精准对时。尤其是基于精确时间协议收发器DP83640芯片实现本发明的方法。本发明能够快速的调整硬件时钟的晶振频率。而且调整系统时钟频率的算法调整时钟频率的速率快,且能快速的调整主从时钟的时间差。本发明方法校准的时间精度能够达到百纳秒级别。


图I是IEEE 1588网络系统示意图;图2是主从时钟的报文交互示意图;图3是同步报文接收示意图;图4是路径延迟测量结果;图5是客户端IEEE1588时钟与GPS时钟的偏差。
具体实施例方式通过IEEE 1588协议的目的是一个(或若干个)主时钟通过以太网络(或其他异构网络)对其他从时钟进行较时(如图I所示)。1588协议通过BMC算法使网络中的时钟形成分层的体系结构,让下层的时钟成为从时钟,向上层的主时钟进行较时。交换时间信息有两种规约的方式,分别是点对点和端对端的方式。两种方式稍微有点不同,其中点对点主从时钟的交互方式如图2所示。主时钟Sync报文的发送时间h可携带在Follow_Up报文中,亦可携带在Sync报文。如果由Sync报文携带,则需要硬件的支持。为了更精确的计算主从时钟的时间偏差,最好让Sync报文携带其发送时间戳,如图3所示。主从时钟的时间偏差可以通过公式(4)来计算,其中表不主从时间偏差,t4_t3表不从主时间偏差,IEEE1588协议默认主时钟到从时钟的延迟和从时钟到主时钟的延迟相等,因此公式(4)是成立的。offset = ((t2_ti)_ (t4_t3) )/2(4)当主从时钟的时间偏差小于一定的阈值时,直接重置从时钟的时间会明显降低校时的精度。这时候,就需要通过调整从时钟的频率来校正从时钟的时间(主从时钟的对时操作)。IEEE 1588协议通过调整从时钟频率校正从时钟时间的方法适合调整系统的时间,但是并不适合用来调整硬件时钟的晶振频率。本发明提出了一种通过快速改变晶振频率来校正从时钟的硬件时间的方法。具体步骤如下描述首先设定变量名称,上次同步报文的接收时间A1,本次同步报文的接收时间t2,从时钟接收同步报文平均周期T1,本次从时钟接收同步报文周期P2,主从时钟平均偏移时间!\,本次主从时钟偏移时间T2,修改之前的硬件时钟晶振频率T1,修改之后的硬件时钟晶振频率F2。步骤I :初始化数据= O, P1 = O, P2 = t2-t1; T1 = O,从时钟接收同步报文,记
^2 °步骤2 :判断是否需要重新计算P1,如果|P「P2| > IP21/2 JlJP1=P2,转到步骤6 ;否则通过公式(2)重新计算Pp步骤3 :判断是否需要重新计算T1,如果I T1-T21 > I T21 /16,则T1=T2,转到步骤6 ;否则通过公式(3)重新计算1\。步骤4 :计算新的从时钟硬件时钟的晶振频率F2 = F1+(T1 X 235)/P10
步骤5 :重置平均周期和平均偏移时间=P1 = 0,T1 = O。步骤6 :重复步骤t1=t2,每次接收到同步报文循环步骤2到步骤6。完成主从时钟的对时操作后,我们需要使主从时钟的时钟频率保持一致,完成守时操作。由于dp83640拥有调整晶振频率的功能,在有dp83640支持的从设备上可以先通过连续两次Sync报文的收发时间戳来计算晶振频率补偿值,然后通过速率调整方式对自身晶振频率进行补偿。假设主从时钟之间的传输路径延迟是一个固定值,即每次主时钟给从时钟发送Sync报文,Sync报文在网路中的传播时间固定不变,这样传输路径延迟误差影响忽略不计。假设第一个Sync报文的发送时间戳为tMl,接收时间戳为tSl,第二个Sync报文的发送时间戳为tM2,接收时间戳为tS2,从时钟在接收到第一个Sync报文后,对本地时钟进行调整的时间值为At,那么从时钟所需要进行的频率调整补偿值为rate = ((tm2-tml) + At- (ts2-tsl)) / (tm2-tml)(5) 图4是传输路径延迟的测量结果,其中蓝色曲线表示服务器到客户端的传输路径延迟,红色曲线表示客户端到服务器的路径延迟。图5是200次采样中,IEEE1588时钟与GPS时钟的偏差曲线图。可以看出整个授时系统的同步误差不超过140ns,达到了很高的精度。而且将图4与图5进行对比可以发现,当主从时钟之间的传输路径延迟接近时,同步偏差比较小,这与IEEE1588协议关于传输路径延迟的假设是相符的。当然本发明实施例的描述并非限定本发明的内容,任何基本发明方法的简单改进并没有超出本发明权利要求保护的范围。
权利要求
1.基于IEEE1588协议的主从时钟对时的时间补偿方法,其特征是包含以下步骤 A.初始化与晶振频率相关的时间数据,从时钟接收同步报文从时钟上次同步报文的接收时间初始化为O,从时钟记录本次同步报文的接收时间,初始化时从时钟接收同步报文的平均周期P1为O,本次从时钟接收同步报文的周期的值为本次同步报文的接收时间与其上次同步报文的接收时间之差;初始化时主从时钟的平均偏移时间为O,本次主从时钟的偏移时间通过IEEE 1588协议计算出; B.从时钟接收同步报文的的平均周期的计算从时钟接收同步报文的周期值为本次从时钟接收同步报文的周期的值为本次同步报文的接收时间与其上次同步报文的接收时间之差,将从时钟接收同步报文的的平均周期与本次从时钟接收同步报文的周期的值之差的绝对值和给定的阈值比较,如果超过该阈值,则转到步骤F ;否则,分别给定从时钟接收同步报文的平均周期和本次从时钟接收同步报文的周期一个权重,重新计算从时钟接收同步报文的的平均周期; C.主从时钟的平均偏移时间的计算将主从时钟的平均偏移时间与本次主从时钟的偏移时间之差的绝对值和给定的阈值比较,如果超过超过该阈值,则转到步骤F ;否则,分别给定主从时钟的平均偏移时间和本次主从时钟的偏移时间一个权重,重新计算主从时钟的平均偏移时间T1 ; D.从时钟的晶振频率的计算通过当前的从时钟晶振频率和从时钟接收同步报文的的平均周期与主从时钟的平均偏移时间的比值计算并修改调整后的从时钟的晶振频率F2 ; E.重置参数重置从时钟接收同步报文的的平均周期和主从时钟的平均偏移时间T1为O ; F.循环操作从时钟每次接收到同步报文重复B到F。
2.根据权利要求I所述的基于IEEE1588协议的主从时钟对时的时间补偿方法,其特征是步骤C中重新计算从时钟接收同步报文的的平均周期的方法是同时考虑从时钟接收同步报文的平均周期P1和主从时钟的平均偏移时间T1以及当前从时钟硬件的晶振频率F1,然后应用公式(I)来计算出新的从时钟晶振频率F2。
F2 = F1+(T1 X 235)/P1(I) 从时钟每次接收同步报文之后,首先计算从时钟接收同步报文的平均周期P1和本次从时钟接收同步报文的周期P2之差,如果两者之差大于特定的阈值,则需要重新计算平均周期?工,按照公式(2)计算平均周期P1,其中λ参数表示P2在计算P2时所占的权重,在实际中设置为O. I ;如果两者之差不大于特定的阈值(阈值通常为平均周期的O. 2-0. 5%),放弃本次接收同步报文后对从时钟晶振频率的修改。
P1 = (P1+λ XP2)/(1+λ)(2) 其次,计算主从时钟平均偏移时间T1和本次主从时钟偏移时间T2之差,如果两者之差大于特定的阈值,则需要重新计算T1,按照公式(3)计算T1,其中“α”表示T2在计算T1时所占的权重,在实际中设置为O. 5 ;如果两者之差不大于特定的阈值,放弃本次接收同步报文后对硬件时钟的晶振频率的修改。
T1= (VaT2)/ (1+α ) (3) 之后从时钟每次接收到同步报文,都会判断是否需要重新计算P1和T1 ;仅当P1和T1重新计算之后,从时钟才会通过公式(I)调整晶振频率 。
全文摘要
一种基于IEEE 1588协议的主从时钟对时的时间补偿方法,包含以下步骤A.初始化与晶振频率相关的时间数据,从时钟接收同步报文;B.从时钟接收同步报文的的平均周期的计算;C.主从时钟的平均偏移时间的计算将主从时钟的平均偏移时间与本次主从时钟的偏移时间之差的绝对值和给定的阈值比较,一个(或若干个)主时钟通过以太网络(或其他异构网络)对其他从时钟进行较时,1588协议通过BMC算法使网络中的时钟形成分层的体系结构,让下层的时钟成为从时钟,向上层的主时钟进行较时。本发明提供了一种新的算法通过快速改变晶振频率来校正从时钟的硬件时间从而调整系统时间,实现IEEE 1588协议主从时钟更精准对时。1588协议将会在智能电网时钟系统领域大量使用。
文档编号H04J3/06GK102983927SQ201210532810
公开日2013年3月20日 申请日期2012年12月12日 优先权日2012年12月12日
发明者张熀松, 王自强, 周余, 李杨 申请人:南京协澳智能控制系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1