CN102480350B - 一种基于频率偏差估计的时间同步和维持的方法及装置 - Google Patents

一种基于频率偏差估计的时间同步和维持的方法及装置 Download PDF

Info

Publication number
CN102480350B
CN102480350B CN201010562842.8A CN201010562842A CN102480350B CN 102480350 B CN102480350 B CN 102480350B CN 201010562842 A CN201010562842 A CN 201010562842A CN 102480350 B CN102480350 B CN 102480350B
Authority
CN
China
Prior art keywords
clock
time
master clock
master
delay
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201010562842.8A
Other languages
English (en)
Other versions
CN102480350A (zh
Inventor
姬孟洛
王志伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING INTERVISION SOFTWARE Co Ltd
Original Assignee
BEIJING INTERVISION SOFTWARE Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING INTERVISION SOFTWARE Co Ltd filed Critical BEIJING INTERVISION SOFTWARE Co Ltd
Priority to CN201010562842.8A priority Critical patent/CN102480350B/zh
Publication of CN102480350A publication Critical patent/CN102480350A/zh
Application granted granted Critical
Publication of CN102480350B publication Critical patent/CN102480350B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本发明提出了一种基于频率偏差估计的时间同步和维持的方法和装置,该方法包括:进行从时钟与主时钟的对时操作和计算主从时钟的频率偏差初始值R0;根据计算所得的频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间计算时刻t的从时钟的同步时间测量值Ts,根据所述的主时钟时间与所述的同步时间测量值Ts的误差决定是否采取对时操作,如果是,则进行从时钟与主时钟的对时操作,否则,获取N个新的主时钟计数和N个新的从时钟计数,基于所述N个新的主时钟计数和N个新的从时钟计数重新计算频率偏差值R。本发明使得分布式系统中时钟同步更加精确、操作更加方便。

Description

一种基于频率偏差估计的时间同步和维持的方法及装置
技术领域
本发明涉及在分布式网络环境中实现多计算机之间时间同步和维持的方法及装置,特别是涉及一种基于频率偏差估计的时间同步及维持方法及装置。 
背景技术
时间统一是计算机应用系统的一个最基本的要求。在基于网络的分布式系统中,需要建立标准的时间统一系统或共同的时间基准,以实现系统的时间统一。否则,这些应用很难协调工作与运行。 
对于两个自由运行的时钟来说,由于晶振和时钟定时器分频偏差等原因,导致每个时钟运行速度不一样,最终造成时钟之间的偏差。因此,时间同步包含两部分工作:(1)在某一时刻实现时钟之间的时间差同步,即对时。(2)找到该时刻以后时钟之间的频率差,并周期性的对频率进行补偿,即守时。 
目前有许多种时间同步技术。不同的时间同步技术精度差别较大,应用场合也不同。在网络及分布式系统中,主要技术有NTP协议,IEEE1588协议等。 
现有的时间同步技术中存在如下缺点:当计算从时钟计数时,使用的是从时钟的本地时间,如果此时发生时间调整,将影响计数的准确性;时钟的晶振频率会受外界因素(温度、湿度)的影响而发生跳变,有可能在两次时 钟同步之间恰好出现频率跳变,造成计算的间隔时间与实际值不符,影响频率的调节;如果网络环境不好,造成主从时钟之间网络通信丢包,甚至主从时钟之间网络中断,从时钟将无法进行频率调节和时间维持;不能实时应对网络抖动、时钟频率跳变等情况,从而影响时间同步的精度等。 
发明内容
本发明要解决的技术问题在于:精确计算本地时钟的时钟计数;利用测量值估算主从时钟的频率偏差并实时处理异常情况;在网络发生故障时继续完成守时工作。 
为了解决上述技术问题,本发明提出了一种基于频率偏差估计的时间同步和维持的方法,该方法包括如下步骤:步骤1),进行从时钟与主时钟的对时操作和计算主从时钟的频率偏差初始值R0;步骤2),根据计算所得的频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间计算时刻t的从时钟的同步时间测量值Ts,根据所述的主时钟时间与所述的同步时间测量值Ts的误差决定是否采取对时操作,如果是,则进行从时钟与主时钟的对时操作,否则,获取N个新的主时钟计数和N个新的从时钟计数,基于所述N个新的主时钟计数和N个新的从时钟计数重新计算频率偏差值R。 
优选的,步骤1)包括如下步骤: 
步骤11),主时钟定期发送Sync报文,随后发送Followup报文通报Sync报文的实际发送时间t1,从时钟记录Sync报文到达时间t2,当从时钟接收到主时钟的Sync报文时,从时钟在t3时刻发送Delay_Req报文,主时钟记录报文到达时间t4,并将t4通过响应报文Delay_Resp发送给从时钟,计算从时钟与主时钟的时间偏差Offset和网络延迟Delay,并将从时钟设定为 Ts`+Offset+Delay,其中Ts`为从时钟同步前的时间,并记录此时性能计数器的初始值SlaveTickCount0; 
步骤12),从时钟接收主时钟发送的下一个Sync报文,记录此时的性能计数器SlaveTickCountn,获取主时钟的时钟计数值MasterClockCountn,然后计算从时钟的时钟计数值SlaveClockCountn,其中n为大于0的自然数,表示当前计数值; 
步骤13),判断当前计数值n是否等于预置的计数值N,如果n不等于N,则继续执行步骤12),否则执行步骤14),其中,N为大于2的自然数; 
步骤14),利用测量所得的N个主时钟的时钟计数值MasterClockCountn与从时钟的时钟计数值SlaveClockCountn,计算所述的频率偏差初始值R0。 
优选的,所述步骤11)中的所述时间偏差Offset和网络延迟Delay计算方式如下:Offset=((t2-t4)+(t1-t3))/2,Delay=((t2+t4)-(t1+t3))/2,所述步骤12)中的SlaveClockCountn=(SlaveTickCountn-SlaveTickCountn-1)/TICKS_PER_SEC,其中TICKS_PER_SEC为每秒钟所述性能计数器的计数值。 
优选的,步骤14)中的R0计算表达式如下: 
R 0 = n ( Σ i = 1 n y i x i ) - ( Σ i = 1 n x i ) ( Σ i = 1 n y i ) n ( Σ i = 1 n x i 2 ) - ( Σ i = 1 n x i ) 2 , 其中 x i = Σ j = 1 i SlaveClockCount j , y i = Σ j = 1 i MasterClockCount j , 1 ≤ i ≤ n .
优选的,步骤2)包括如下步骤: 
步骤21)判断从时钟是否接收到Sync报文,如果收到,则执行步骤22), 否则执行步骤27); 
步骤22)记录此时的性能计数器SlaveTickCountk,获取计算主时钟的时钟计数MasterClockCountk,计算从时钟的时钟计数SlaveClockCountk; 
步骤23)计算从时钟与主时钟的时间偏差Offset和网络延迟Delay,计算出tk时刻从时钟的同步时间Ts,Ts=Tsk`+Offset+Delay,其中Tsk`为从时钟在tk时刻时同步前的时间; 
步骤24)利用所述频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间其中t为主时钟的本地时间; 
步骤25)判断所述同步时间Ts与之间的误差是否在精度要求范围内,是则利用进行从时钟与主时钟的对时操作,否则,执行步骤26); 
步骤26)获取N个新的主时钟计数和N个新的从时钟计数,基于所述N个新的主时钟计数和N个新的从时钟计数重新计算频率偏差值R,转至步骤21); 
步骤27)基于所述频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间其中t为主时钟的本地时间,用进行从时钟与主时钟的对时操作。 
优选的,所述精度要求范围为小于十分之一毫秒。 
更进一步地,本发明还提供了一种基于频率偏差估计的时间同步和维持的装置,该装置包括:初始化单元,用于进行从时钟与主时钟的对时操作和计算主从时钟的频率偏差初始值R0;执行单元,用于根据计算所得的频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间计算时刻t的从时钟的同步时间测量值Ts,根据所述的主时钟时间与所述的同步时间测量值Ts的 误差决定是否采取对时操作,如果是,则进行从时钟与主时钟的对时操作,否则,获取N个新的主时钟计数和N个新的从时钟计数,基于所述N个新的主时钟计数和N个新的从时钟计数重新计算频率偏差值R。 
优选的,所述初始化单元包括: 
第一计算单元,用于根据主时钟定期发送的Sync报文,随后发送Followup报文通报Sync报文的实际发送时间t1,从时钟记录Sync报文到达时间t2,当从时钟接收到主时钟的Sync报文时,从时钟在t3时刻发送Delay_Req报文,主时钟记录报文到达时间t4,并将t4通过响应报文Delay_Resp发送给从时钟,计算从时钟与主时钟的时间偏差Offset和网络延迟Delay,并将从时钟设定为Ts`+Offset+Delay,其中Ts`为从时钟同步前的时间,并记录此时性能计数器的初始值SlaveTickCount0; 
第二计算单元,用于在从时钟接收主时钟发送的下一个Sync报文时,记录此时的性能计数器SlaveTickCountn,获取主时钟的时钟计数值MasterClockCountn,然后计算从时钟的时钟计数值SlaveClockCountn,其中n为大于0的自然数,表示当前计数值; 
第一判断单元,用于判断判断当前计数值n是否等于预置的计数值N,如果n不等于N,则调用所述第二计算单元,否则调用所述第三计算单元,其中,N为大于2的自然数; 
第三计算单元,用于利用测量所得的N个主时钟的时钟计数值MasterClockCountn与从时钟的时钟计数值SlaveClockCountn,计算所述的频率偏差初始值R0。 
优选的,所述第一计算单元中的所述时间偏差Offset和网络延迟Delav 计算方式如下:Offset=((t2-t4)+(t1-t3))/2,Delay=((t2+t4)-(t1+t3))/2,所述第二计算单元中的SlaveClockCountn=(SlaveTickCountn-SlaveTickCountn-1)/TICKS_PER_SEC,其中TICKS_PER_SEC为每秒钟所述性能计数器的计数值。 
优选的,所述第三计算单元中的R0计算表达式如下: 
R 0 = n ( Σ i = 1 n y i x i ) - ( Σ i = 1 n x i ) ( Σ i = 1 n y i ) n ( Σ i = 1 n x i 2 ) - ( Σ i = 1 n x i ) 2 , 其中 x i = Σ j = 1 i SlaveClockCount j , y i = Σ j = 1 i MasterClockCount j , 1 ≤ i ≤ n .
优选的,所述执行单元包括: 
第二判断单元,用于判断从时钟是否接收到Sync报文,如果收到,则调用第四计算单元,否则调用第八计算单元; 
第四计算单元,用于记录此时的性能计数器SlaveTickCountk,获取主时钟的时钟计数MasterClockCountk,计算从时钟的时钟计数SlaveClockCountk; 
第五计算单元,用于计算从时钟与主时钟的时间偏差Offset和网络延迟Delay,计算出tk时刻从时钟的同步时间Ts,Ts=Tsk`+Offset+Delay,其中Tsk`为从时钟在tk时刻时同步前的时间; 
第六计算单元,用于利用所述频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间其中t为主时钟的本地时间; 
第三判断单元,用于判断所述同步时间Ts与之间的误差是否在精度要求范围内,是则利用进行从时钟与主时钟的对时操作,否则,调用第七计算单元; 
第七计算单元,用于获取N个新的主时钟计数和N个新的从时钟计数,基于所述N个新的主时钟计数和N个新的从时钟计数重新计算频率偏差值R,调用第二判断单元; 
第八计算单元,用于基于所述频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间其中t为主时钟的本地时间,用进行从时钟与主时钟的对时操作。 
优选的,所述精度要求范围为小于十分之一毫秒。 
本发明的有益效果是:利用性能计数器计算本地时钟的计数,即提高了精度,又使其不受时间调整的影响;持续利用最新的N个主从时钟计数进行线性回归分析计算时钟频率偏差,降低测量误差的影响;将利用频率偏差估算的时间偏差与实际测量的时间偏差作比较,减少时钟晶振跳变和网络抖动的影响;当网络发生故障时,仍然能够在一定时间内,调节时钟,保证从时钟与主时钟的同步。 
附图说明
图1是本发明基于频率偏差估计的时间同步和维持的方法的流程图; 
图2是本发明初始化步骤的流程图; 
图3是本发明执行步骤的流程图; 
图4是本发明基于频率偏差估计的时间同步和维持的装置的示意图; 
图5是本发明初始化单元的示意图; 
图6是本发明执行单元的示意图。 
具体实施方式
下面结合附图介绍本发明基于频率偏差估计的时间同步和维持的方法及装置: 
图1所示为本发明的基于频率偏差估计的时间同步和维持的方法的流程图,其包括步骤:S1进行从时钟与主时钟的对时操作和计算主从时钟的频率偏差初始值R0;S2根据计算所得的频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间计算时刻t的从时钟的同步时间测量值Ts,根据所述的主时钟时间与所述的同步时间测量值Ts的误差决定是否采取对时操作,如果是,则进行从时钟与主时钟的对时操作,否则,获取N个新的主时钟计数和N个新的从时钟计数,基于所述N个新的主时钟计数和N个新的从时钟计数重新计算频率偏差值R。 
其中,主时钟和从时钟的同步原理如下:主时钟定期发送Sync报文,随后发送Followup报文通报Sync报文的实际发送时间t1,从时钟记录Sync报文到达时间t2,从时钟在t3时刻发送Delay_Req报文,主时钟记录报文到达时间t4,并将t4通过响应报文Delay_Resp发送给从时钟,根据t1、t2、t3和t4,可以计算得到两个时钟之间的线路时延和时间偏差: 
时间偏差:Offset=((t2-t4)+(t1-t3))/2    (1) 
线路时延:Delay=((t2+t4)-(t1+t3))/2    (2) 
根据计算结果可以得到从时钟的同步时间,实现主从时钟的同步。 
Ts=Ts`+Offset+Delay    (3) 
其中Ts`为从时钟同步前的时间,Ts为从时钟的同步时间。在当前同步周期主时钟的计数为: 
MasterClockCountn=MasterClockTimen-MasterClockTimen-1    (4) 
本发明采用最小二乘法计算频率偏差值R,其理论依据为: 
假设直线方程的误差平方和为: 
其中x表示从时钟值,y表示主时钟值,m为获取的主从时钟个数; 
代人上式,得: 
S = Σ i = 1 m ( y i - ( a x i + b ) ) 2 ,
如果S越小,则线性拟合方程越准确,为使S达到最小值,把上式对a、b微分,令它们为零,得到方程组: 
mb + a Σ i = 1 m x i = Σ i = 1 m y i
b Σ i = 1 m x i + a Σ i = 1 m x i 2 = Σ i = 1 m y i x i
即可解得a、b: 
b = 1 m Σ i = 1 m y i - a m Σ i = 1 m x i
a = m ( Σ i = 1 m y i x i ) - ( Σ i = 1 m x i ) ( Σ i = 1 m y i ) m ( Σ i = 1 m x i 2 ) - ( Σ i = 1 m x i ) 2 - - - ( 5 )
通过线性回归计算可得拟合直线的方程:y=ax+b,其中x的系数a即为频率偏差值R。 
基于以上理论分析,步骤S1包括如下步骤,如图2所示: 
S11主时钟定期发送Sync报文,随后发送Followup报文通报Sync报文的实际发送时间t1,从时钟记录Sync报文到达时间t2,当从时钟接收到主时钟的Sync报文时,从时钟在t3时刻发送Delay_Req报文,主时钟记录报文到达时间t4,并将t4通过响应报文Delay_Resp发送给从时钟,计算从时 钟与主时钟的时间偏差Offset和网络延迟Delay,并将从时钟设定为Ts`+Offset+Delay,其中Ts`为从时钟同步前的时间,并记录此时性能计数器的初始值SlaveTickCount0; 
S12从时钟接收主时钟发送的下一个Sync报文,记录此时的性能计数器SlaveTickCountn,获取主时钟的时钟计数值MasterClockCountn,然后计算从时钟的时钟计数值SlaveClockCountn,其中n为大于0的自然数,表示当前计数值; 
S13判断当前计数值n是否等于预置的计数值N,如果n不等于N,则继续执行S12,否则执行S14,其中,N为大于2的自然数; 
S14,利用测量所得的N个主时钟的时钟计数值MasterClockCountn与从时钟的时钟计数值SlaveClockCountn,计算所述的频率偏差初始值R0。 
优选的,所述S11中的所述时间偏差Offset和网络延迟Delay计算方式如下:Offset=((t2-t4)+(t1-t3))/2,Delay=((t2+t4)-(t1+t3))/2,所述步骤12)中的SlaveClockCountn=(SlaveTickCountn-SlaveTickCountn-1)/TICKS_PER_SEC,其中TICKS_PER_SEC为每秒钟所述性能计数器的计数值。 
优选的,步骤S14中的R0计算表达式如下: 
R 0 = n ( Σ i = 1 n y i x i ) - ( Σ i = 1 n x i ) ( Σ i = 1 n y i ) n ( Σ i = 1 n x i 2 ) - ( Σ i = 1 n x i ) 2 - - - ( 6 ) , 其中 x i = Σ j = 1 i SlaveClockCount j , y i = Σ j = 1 i MasterClockCount j , 1 ≤ i ≤ n .
如图3所示,S2)包括如下步骤: 
S21判断从时钟是否接收到Sync报文,如果收到,则执行S22,否则执行S27; 
S22记录此时的性能计数器SlaveTickCountk,获取计算主时钟的时钟计数MasterClockCountk,计算从时钟的时钟计数SlaveClockCountk; 
S23计算从时钟与主时钟的时间偏差Offset和网络延迟Delay,计算出tk时刻从时钟的同步时间Ts,Ts=Tsk`+Offset+Delay,其中Tsk`为从时钟在tk时刻时同步前的时间; 
S24利用所述频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间其中t为主时钟的本地时间; 
S25判断所述同步时间Ts与之间的误差是否在精度要求范围内,是则利用进行从时钟与主时钟的对时操作,否则,执行S26; 
S26获取N个新的主时钟计数和N个新的从时钟计数,基于所述N个新的主时钟计数和N个新的从时钟计数重新计算频率偏差值R,转至S21; 
S27基于所述频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间其中t为主时钟的本地时间,用进行从时钟与主时钟的对时操作。 
其中,步骤S27的理论依据为:认为本地时钟的频率在短时间内不变,利用Rk可以计算本地时钟在t(tk<t<tk+1)时刻的真实时间:
优选的,所述精度要求范围为小于十分之一毫秒。 
其中上述各步骤的R0、R采用公式(6)计算得出。 
图4示出了本发明的基于频率偏差估计的时间同步和维持的装置,该装置包括:初始化单元1,用于进行从时钟与主时钟的对时操作和计算主从时钟的 频率偏差初始值R0;执行单元2,用于根据计算所得的频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间计算时刻t的从时钟的同步时间测量值Ts,根据所述的主时钟时间与所述的同步时间测量值Ts的误差决定是否采取对时操作,如果是,则进行从时钟与主时钟的对时操作,否则,获取N个新的主时钟计数和N个新的从时钟计数,基于所述N个新的主时钟计数和N个新的从时钟计数重新计算频率偏差值R。 
如图5所示,初始化单元1包括: 
第一计算单元11,用于根据主时钟定期发送的Sync报文,随后发送Followup报文通报Sync报文的实际发送时间t1,从时钟记录Sync报文到达时间t2,当从时钟接收到主时钟的Sync报文时,从时钟在t3时刻发送Delay_Req报文,主时钟记录报文到达时间t4,并将t4通过响应报文Delay_Resp发送给从时钟,计算从时钟与主时钟的时间偏差Offset和网络延迟Delay,并将从时钟设定为Ts`+Offset+Delay,其中Ts`为从时钟同步前的时间,并记录此时性能计数器的初始值SlaveTickCount0; 
第二计算单元12,用于在从时钟接收主时钟发送的下一个Sync报文时,记录此时的性能计数器SlaveTickCountn,获取主时钟的时钟计数值MasterClockCountn,然后计算从时钟的时钟计数值SlaveClockCountn,其中n为大于0的自然数,表示当前计数值; 
第一判断单元13,用于判断判断当前计数值n是否等于预置的计数值N,如果n不等于N,则调用所述第二计算单元,否则调用所述第三计算单元,其中,N为大于2的自然数; 
第三计算单元14,用于利用测量所得的N个主时钟的时钟计数值 MasterClockCountn与从时钟的时钟计数值SlaveClockCountn,计算所述的频率偏差初始值R0。 
优选的,所述第一计算单元中的所述时间偏差Offset和网络延迟Delay计算方式如下:Offset=((t2-t4)+(t1-t3))/2,Delay=((t2+t4)-(t1+t3))/2,所述第二计算单元中的SlaveClockCountn=(SlaveTickCountn-SlaveTickCountn-1)/TICKS_PER_SEC,其中TICKS_PER_SEC为每秒钟所述性能计数器的计数值。 
优选的,所述第三计算单元中的R0计算表达式如下: 
R 0 = n ( &Sigma; i = 1 n y i x i ) - ( &Sigma; i = 1 n x i ) ( &Sigma; i = 1 n y i ) n ( &Sigma; i = 1 n x i 2 ) - ( &Sigma; i = 1 n x i ) 2 , 其中 x i = &Sigma; j = 1 i SlaveClockCount j , y i = &Sigma; j = 1 i MasterClockCount j , 1 &le; i &le; n .
如图6所示,所述执行单元2包括: 
第二判断单元21,用于判断从时钟是否接收到Sync报文,如果收到,则调用第四计算单元,否则调用第八计算单元; 
第四计算单元22,用于记录此时的性能计数器SlaveTickCountk,获取主时钟的时钟计数MasterClockCountk,计算从时钟的时钟计数SlaveClockCountk; 
第五计算单元23,用于计算从时钟与主时钟的时间偏差Offset和网络延迟Delay,计算出tk时刻从时钟的同步时间Ts,Ts=Tsk`+Offset+Delay,其中Tsk`为从时钟在tk时刻时同步前的时间; 
第六计算单元24,用于利用所述频率偏差初始值R0,估算从时钟在时刻 t对应的主时钟时间其中t为主时钟的本地时间; 
第三判断单元25,用于判断所述同步时间Ts与之间的误差是否在精度要求范围内,是则利用进行从时钟与主时钟的对时操作,否则,调用第七计算单元; 
第七计算单元26,用于获取N个新的主时钟计数和N个新的从时钟计数,基于所述N个新的主时钟计数和N个新的从时钟计数重新计算频率偏差值R,调用第二判断单元; 
第八计算单元27,用于基于所述频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间其中t为主时钟的本地时间,用进行从时钟与主时钟的对时操作。 
本发明所述的基于频率偏差估计的时间同步和维持的方法及装置可以采用任何编程语言设计,如C、JAVA等等,本发明的方法和装置可以运行在分布式系统中的多台计算机中,完成时间的同步,其精确可靠,便于维护。 
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。 

Claims (7)

1.一种基于频率偏差估计的时间同步和维持的方法,其特征在于,该方法包括如下步骤:
步骤1),进行从时钟与主时钟的对时操作和计算主从时钟的频率偏差初始值R0
其中R0的算法如下所示:
步骤11)主时钟定期发送Sync报文,随后发送Followup报文通报Sync报文的实际发送时间t1,从时钟记录Sync报文到达时间t2,当从时钟接收到主时钟的Sync报文时,从时钟在t3时刻发送Delay_Req报文,主时钟记录报文到达时间t4,并将t4通过响应报文Delay_Resp发送给从时钟,计算从时钟与主时钟的时间偏差Offset和网络延迟Delay,并将从时钟设定为Ts`+Offset+Delay,其中Ts`为从时钟同步前的时间,并记录此时性能计数器的初始值SlaveTickCount0
步骤12),从时钟接收主时钟发送的下一个Sync报文,记录此时的性能计数器SlaveTickCountn,获取主时钟的时钟计数值MasterClockCountn,然后计算从时钟的时钟计数值SlaveClockCountn,其中n为大于0的自然数,表示当前计数值;
所述从时钟的时钟计数值SlaveClockCountn的算法如下所示:SlaveClockCountn=(SlaveTickCountn–SlaveTickCountn-1)/TICKS_PER_SEC,其中TICKS_PER_SEC为每秒钟所述性能计数器的计数值;
步骤13),判断当前计数值n是否等于预置的计数值N,如果n不等于N,则继续执行所述步骤12),否则执行步骤14),其中,N为大于2的自然数;
步骤14),利用测量所得的N个主时钟的时钟计数值MasterClockCountn与从时钟的时钟计数值SlaveClockCountn,计算所述的频率偏差初始值R0
所述步骤11)中的所述时间偏差Offset和网络延迟Delay计算方式如下:Offset=((t2-t4)+(t1-t3))/2,Delay=((t2+t4)-(t1+t3))/2;
步骤14)中的R0计算表达式如下:
R 0 = n ( &Sigma; i = 1 n y i x i ) - ( &Sigma; i = 1 n x i ) ( &Sigma; i = 1 n y i ) n ( &Sigma; i = 1 n x i 2 ) - ( &Sigma; i = 1 n x i ) 2 , 其中 x i = &Sigma; j = 1 i SlaveClock Count j , y i = &Sigma; j = 1 i MasterClock Count j , 1≤i≤n;
步骤2),根据计算所得的频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间计算时刻t的从时钟的同步时间测量值Ts,根据所述的主时钟时间与所述的同步时间测量值Ts的误差决定是否采取对时操作,如果是,则进行从时钟与主时钟的对时操作,否则,获取N个新的主时钟计数和N个新的从时钟计数,基于所述N个新的主时钟计数和N个新的从时钟计数重新计算频率偏差值R。
2.根据权利要求1所述的方法,其特征在于,步骤2)包括如下步骤:
步骤21)判断从时钟是否接收到Sync报文,如果收到,则执行步骤22),否则执行步骤27);
步骤22)记录此时的性能计数器SlaveTickCountk,获取计算主时钟的时钟计数值MasterClockCountk,计算从时钟的时钟计数值SlaveClockCountk
所述从时钟的时钟计数值SlaveClockCountk=(SlaveTickCountk–SlaveTickCountk-1)/TICKS_PER_SEC,其中TICKS_PER_SEC为每秒钟所述性能计数器的计数值;
步骤23)计算从时钟与主时钟的时间偏差Offset和网络延迟Delay,计算出tk时刻从时钟的同步时间Ts,Ts=Tsk`+Offset+Delay,其中Tsk`为从时钟在tk时刻时同步前的时间;
步骤24)利用所述频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间其中t为主时钟的本地时间;
步骤25)判断所述同步时间Ts与之间的误差是否在精度要求范围内,是则利用进行从时钟与主时钟的对时操作,否则,执行步骤26);
步骤26)获取N个新的主时钟计数和N个新的从时钟计数,基于所述N个新的主时钟计数和N个新的从时钟计数重新计算频率偏差值R,转至步骤21);
步骤27)基于所述频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间其中t为主时钟的本地时间,用进行从时钟与主时钟的对时操作。
3.根据权利要求2所述的方法,其特征在于,所述步骤25)中的精度要求范围为小于十分之一毫秒。
4.一种基于频率偏差估计的时间同步和维持的装置,其特征在于,该装置包括:
初始化单元,用于进行从时钟与主时钟的对时操作和计算主从时钟的频率偏差初始值R0
其中R0的算法如下所示:
所述初始化单元包括:
第一计算单元,用于根据主时钟定期发送的Sync报文,随后发送Followup报文通报Sync报文的实际发送时间t1,从时钟记录Sync报文到达时间t2,当从时钟接收到主时钟的Sync报文时,从时钟在t3时刻发送Delay_Req报文,主时钟记录报文到达时间t4,并将t4通过响应报文Delay_Resp发送给从时钟,计算从时钟与主时钟的时间偏差Offset和网络延迟Delay,并将从时钟设定为Ts`+Offset+Delay,其中Ts`为从时钟同步前的时间,并记录此时性能计数器的初始值SlaveTickCount0
第二计算单元,用于在从时钟接收主时钟发送的下一个Sync报文时,记录此时的性能计数器SlaveTickCountn,获取主时钟的时钟计数值MasterClockCountn,然后计算从时钟的时钟计数值SlaveClockCountn,其中n为大于0的自然数,表示当前计数值;所述从时钟的时钟计数值SlaveClockCountn的算法如下所示:SlaveClockCountn=(SlaveTickCountn–SlaveTickCountn-1)/TICKS_PER_SEC,其中TICKS_PER_SEC为每秒钟所述性能计数器的计数值;
第一判断单元,用于判断当前计数值n是否等于预置的计数值N,如果n不等于N,则调用所述第二计算单元,否则调用第三计算单元,其中,N为大于2的自然数;
第三计算单元,用于利用测量所得的N个主时钟的时钟计数值MasterClockCountn与从时钟的时钟计数值SlaveClockCountn,计算所述的频率偏差初始值R0,R0计算表达式如下:
R 0 = n ( &Sigma; i = 1 n y i x i ) - ( &Sigma; i = 1 n x i ) ( &Sigma; i = 1 n y i ) n ( &Sigma; i = 1 n x i 2 ) - ( &Sigma; i = 1 n x i ) 2 , 其中 x i = &Sigma; j = 1 i SlaveClock Count j , 1≤i≤n;执行单元,用于根据计算所得的频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间计算时刻t的从时钟的同步时间测量值Ts,根据所述的主时钟时间与所述的同步时间测量值Ts的误差决定是否采取对时操作,如果是,则进行从时钟与主时钟的对时操作,否则,获取N个新的主时钟计数和N个新的从时钟计数,基于所述N个新的主时钟计数和N个新的从时钟计数重新计算频率偏差值R。
5.根据权利要求4所述的装置,其特征在于,所述第一计算单元中的所述时间偏差Offset和网络延迟Delay计算方式如下:Offset=((t2-t4)+(t1-t3))/2,Delay=((t2+t4)-(t1+t3))/2,所述第二计算单元中的SlaveClockCountn=(SlaveTickCountn–SlaveTickCountn-1)/TICKS_PER_SEC,其中TICKS_PER_SEC为每秒钟所述性能计数器的计数值。
6.根据权利要求4所述的装置,其特征在于,所述执行单元包括:
第二判断单元,用于判断从时钟是否接收到Sync报文,如果收到,则调用第四计算单元,否则调用第八计算单元;
第四计算单元,用于记录此时的性能计数器SlaveTickCountk,获取主时钟的时钟计数MasterClockCountk,计算从时钟的时钟计数SlaveClockCountk
所述从时钟的时钟计数值SlaveClockCountk=(SlaveTickCountk–SlaveTickCountk-1)/TICKS_PER_SEC,其中TICKS_PER_SEC为每秒钟所述性能计数器的计数值;
第五计算单元,用于计算从时钟与主时钟的时间偏差Offset和网络延迟Delay,计算出tk时刻从时钟的同步时间Ts,Ts=Tsk`+Offset+Delay,其中Tsk`为从时钟在tk时刻时同步前的时间;
第六计算单元,用于利用所述频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间其中t为主时钟的本地时间;
第三判断单元,用于判断所述同步时间Ts与之间的误差是否在精度要求范围内,是则利用进行从时钟与主时钟的对时操作,否则,调用第七计算单元;
第七计算单元,用于获取N个新的主时钟计数和N个新的从时钟计数,基于所述N个新的主时钟计数和N个新的从时钟计数重新计算频率偏差值R,调用第二判断单元;
第八计算单元,用于基于所述频率偏差初始值R0,估算从时钟在时刻t对应的主时钟时间其中t为主时钟的本地时间,用进行从时钟与主时钟的对时操作。
7.根据权利要求6所述的装置,其特征在于,所述第三判断单元中的精度要求范围为小于十分之一毫秒。
CN201010562842.8A 2010-11-29 2010-11-29 一种基于频率偏差估计的时间同步和维持的方法及装置 Expired - Fee Related CN102480350B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010562842.8A CN102480350B (zh) 2010-11-29 2010-11-29 一种基于频率偏差估计的时间同步和维持的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010562842.8A CN102480350B (zh) 2010-11-29 2010-11-29 一种基于频率偏差估计的时间同步和维持的方法及装置

Publications (2)

Publication Number Publication Date
CN102480350A CN102480350A (zh) 2012-05-30
CN102480350B true CN102480350B (zh) 2014-10-15

Family

ID=46092841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010562842.8A Expired - Fee Related CN102480350B (zh) 2010-11-29 2010-11-29 一种基于频率偏差估计的时间同步和维持的方法及装置

Country Status (1)

Country Link
CN (1) CN102480350B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103532693B (zh) * 2013-10-18 2017-05-10 新华三技术有限公司 一种时间同步装置和方法
CN103888237B (zh) * 2014-04-04 2017-04-05 瑞斯康达科技发展股份有限公司 一种实现时钟时间同步的方法及装置
CN105553598B (zh) * 2016-01-10 2017-09-29 北京航空航天大学 一种基于m估计稳健回归的时间触发以太网时钟补偿方法
CN107544619B (zh) * 2017-06-27 2020-05-12 新华三云计算技术有限公司 时间同步方法及装置
CN109426300A (zh) * 2017-08-30 2019-03-05 比亚迪股份有限公司 用于片上系统的时钟偏差检测方法和装置
CN108521322B (zh) * 2018-03-28 2020-02-07 西安电子科技大学 基于计数值整体误差最小的从节点本地时钟频率调整方法
CN109450583B (zh) * 2018-11-24 2020-11-20 国网辽宁省电力有限公司电力科学研究院 一种基于机器自学习的高精度网络对时同步方法
CN112636859B (zh) * 2020-12-23 2022-11-18 西安云维智联科技有限公司 基于线性回归算法的ieee1588协议时间校准方法
CN113098650B (zh) * 2021-03-29 2023-07-25 大连市共进科技有限公司 时间偏差测量方法、装置、通信设备和可读存储介质
CN117063437A (zh) * 2021-04-08 2023-11-14 华为技术有限公司 一种时钟同步方法、相关装置以及设备
CN113207167B (zh) * 2021-05-10 2022-03-08 重庆邮电大学 基于序列最小二乘的一致性时钟同步频率偏移估计方法
CN113328823B (zh) * 2021-07-06 2022-10-14 西门子电力自动化有限公司 基于ptp的时钟识别的方法与装置
CN115038162B (zh) * 2022-08-12 2022-11-18 广州安凯微电子股份有限公司 一种蓝牙时钟快速同频同相调节方法及装置
CN116545572A (zh) * 2023-06-30 2023-08-04 苏州齐思智行汽车系统有限公司 一种基于fpga的原始图像数据采集系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1845546A (zh) * 2006-03-15 2006-10-11 重庆邮电学院 面向测量与控制的精确时间同步方法与系统
CN101064593A (zh) * 2006-04-29 2007-10-31 北京三星通信技术研究有限公司 多级设备之间时间同步频率补偿方法的改进方法
CN101296048A (zh) * 2008-06-17 2008-10-29 杭州华三通信技术有限公司 一种时间同步方法及设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1845546A (zh) * 2006-03-15 2006-10-11 重庆邮电学院 面向测量与控制的精确时间同步方法与系统
CN101064593A (zh) * 2006-04-29 2007-10-31 北京三星通信技术研究有限公司 多级设备之间时间同步频率补偿方法的改进方法
CN101296048A (zh) * 2008-06-17 2008-10-29 杭州华三通信技术有限公司 一种时间同步方法及设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
吴歆馨."基于IEEE1588高精度网络时钟同步系统的研究".《中国优秀硕士学位论文全文数据库(电子期刊)》.2009,Ⅰ140-223.
吴歆馨."基于IEEE1588高精度网络时钟同步系统的研究".《中国优秀硕士学位论文全文数据库(电子期刊)》.2009,Ⅰ140-223. *
晶振频率偏差补偿的无线传感器网络时间同步算法;王世军等;《小型微型计算机系统》;20081115;第29卷(第11期);第2055-2059页 *
王世军等.晶振频率偏差补偿的无线传感器网络时间同步算法.《小型微型计算机系统》.2008,第29卷(第11期),第2055-2059页.

Also Published As

Publication number Publication date
CN102480350A (zh) 2012-05-30

Similar Documents

Publication Publication Date Title
CN102480350B (zh) 一种基于频率偏差估计的时间同步和维持的方法及装置
CN104836630B (zh) Ieee1588时钟同步系统及其实现方法
CN102244572B (zh) 一种实现时钟同步的方法及装置
CN106603183B (zh) 一种时间戳过滤方法及装置
CN100561904C (zh) 一种实现以太网链状网络节点间同步的装置和方法
CN103812592B (zh) 基于链状工业以太网的时间同步协议系统及同步方法
US20160315756A1 (en) Methods, systems, and computer readable media for testing recovered clock quality
WO2018006686A1 (zh) 一种通信网络设备间时间同步的优化方法、装置及设备
CN104918319B (zh) 一种应用于无线传感器网络的时钟同步精简信息交互方法
Ferrari et al. Experimental characterization of uncertainty sources in a software-only synchronization system
CN108880727B (zh) 一种基于PTPd2协议的精确时钟同步实现方法
EP2770678A1 (en) Clock synchronization method and system in 1588-2008 protocol
WO2013023530A1 (zh) 自动侦测1588链路非对称性时延的实现方法及装置
CN104158647A (zh) 一种无线传感网络时钟同步方法
CN105577348B (zh) 一种基于时间同步网的频偏监测方法和装置
US10505652B2 (en) Methods and systems for estimating offset skew and drift
CN101425865A (zh) 传输网中的时钟同步方法、系统和从时钟侧实体
CN109150357A (zh) 基于rs485和以太网的混合总线的时间同步方法
CN106487467A (zh) 一种时间同步偏差检测方法和装置
CN113574813A (zh) 用于确定时间信息的无线网络系统的网络实体和方法
CN111342926A (zh) 一种ptp在非对称网络中时间同步的优化方法
CN108683472A (zh) 一种基于延时测量的时钟同步方法
CN104869587B (zh) 无线传感器网络时间同步误差测定方法
CN102710359B (zh) 一种基于ieee1588的精确时钟频率同步方法及装置
Ferrari et al. Evaluation of timestamping uncertainty in a software-based IEEE1588 implementation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141015

Termination date: 20201129

CF01 Termination of patent right due to non-payment of annual fee