CN114640415B - 时钟漂移补偿方法、装置、终端设备及存储介质 - Google Patents
时钟漂移补偿方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN114640415B CN114640415B CN202210190191.7A CN202210190191A CN114640415B CN 114640415 B CN114640415 B CN 114640415B CN 202210190191 A CN202210190191 A CN 202210190191A CN 114640415 B CN114640415 B CN 114640415B
- Authority
- CN
- China
- Prior art keywords
- period
- current
- compensation value
- time
- compensation
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000001360 synchronised effect Effects 0.000 claims abstract description 117
- 230000000737 periodic effect Effects 0.000 claims abstract description 86
- 230000005540 biological transmission Effects 0.000 claims abstract description 17
- 238000004364 calculation method Methods 0.000 claims description 26
- 238000009825 accumulation Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 13
- 238000000605 extraction Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0682—Clock or time synchronisation in a network by delay compensation, e.g. by compensation of propagation delay or variations thereof, by ranging
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开了一种时钟漂移补偿方法、装置、终端设备及存储介质,所述方法包括:根据当前从站系统时间、当前参考时间以及当前同步帧的传输延时计算出时间偏差;根据时间偏差计算出在当前同步周期内,同步帧接收从站本地时钟的每一计时周期的周期增量的快速补偿值以及周期性补偿值,然后根据每一计时周期的周期增量的快速补偿值以及周期性补偿值,对同步帧接收从站的本地时钟的周期增量进行快速补偿以及周期性补偿。通过实施本发明实施例能通过快速补偿和周期性补偿实现最终的时钟漂移补偿。
Description
技术领域
本发明涉及时间同步技术领域,尤其涉及一种时钟漂移补偿方法、装置、终端设备及存储介质。
背景技术
工业以太网的单线型拓扑如图1所示,主站发送以太网帧给各从站,从站可以直接处理接收的报文,并从报文中提取或插入相关的用户数据,然后将该报文传输到下一个从站,最后一个从站发回经过完全处理的报文,以太网帧经历所有从站后最终回到主站。
工业以太网中的从站一般内嵌一个周期为10纳秒的本地时钟。根据分布式时钟机制,以与主站连接的第一个具有分布式时钟功能的从站作为参考从站(即图中的从站1),并将参考从站的时间作为参考时间,以参考时间来同步其他从站的时间,从而控制各设备任务的同步执行。
系统启动时,其余从站的本地时间和参考从站的参考时间之间有一定的差异,这一差异称为初始时间偏移。数据帧在各个从站之间传播时的延时称为传输延时。在运行过程中,各从站所使用的本地晶振会在计时周期上存在微小差别,称为时钟漂移。在分布式时钟机制中,这些因素都必须进行补偿,使得补偿后各设备内的系统时间与参考时间达到同步,从而达到整个系统的同步。由此可见,在分布式时钟机制中系统时间的同步主要包含两个部分:一是初始时间偏移与传输延时,二是各从站所存在的时钟漂移补偿。本发明主要解决分布式时钟机制中从站的时钟漂移的补偿。
发明内容
本发明实施例提供一种时钟漂移补偿方法、装置、终端设备以及存储介质,能对分布式时钟机制中从站的时钟漂移进行补偿。
本发明一实施例提供了一种时钟漂移补偿方法,包括:接收当前同步帧,并从所述当前同步帧中提取参考时间;其中,所述参考时间为参考从站接收当前同步帧时参考从站所显示的时间;
根据接收当前同步帧时的当前本地时间以及初始时间偏移计算接收当前同步帧时的当前从站系统时间;根据所述当前从站系统时间、所述参考时间以及当前同步帧的传输延时计算时间偏差;
根据所述时间偏差计算当前同步周期内,本地时钟每一计时周期的周期增量的快速补偿值;其中,当前同步周期内,本地时钟所有计时周期的周期增量的快速补偿值总和为所述时间偏差的相反数;
根据所述时间偏差、同步时间间隔以及前一同步周期的补偿积累,计算当前同步周期内,本地时钟每一计时周期的周期增量的周期性补偿值;其中,所述同步时间间隔为当前同步帧的接收时间与上一同步帧的接收时间的时间间隔;一同步周期的补偿积累为其同步周期内,本地时钟所有计时周期的周期增量的周期性补偿值总和;
根据当前同步周期内,每一计时周期的周期增量的快速补偿值以及周期性补偿值,对当前同步周期内,本地时钟的周期增量进行快速补偿以及周期性补偿。
进一步的,计算本地时钟一当前计时周期的周期增量的快速补偿值,具体包括:
若当前计时周期为初始计时周期,则将所述时间偏差的绝对值作为当前计时周期的剩余偏差,否则,将上一计时周期的剩余偏差与上一计时周期的快速补偿值的绝对值之间的差值作为当前计时周期的剩余偏差;
判断当前计时周期的剩余偏差是否大于第一预设补偿值;若是,则在所述时间偏差大于零时,将所述第一预设补偿值的相反数作为当前计时周期的周期增量的快速补偿值,在所述时间偏差不大于零时,将所述第一预设补偿值作为当前计时周期的周期增量的快速补偿值;若否,则在所述时间偏差大于零时,将当前计时周期的剩余偏差的相反数作为当前计时周期的周期增量的快速补偿值,在所述时间偏差不大于零时,将当前计时周期的剩余偏差作为当前计时周期的周期增量的快速补偿值;其中,所述第一预设补偿值大于零。
进一步的,计算本地时钟一当前计时周期的周期增量的周期性补偿值,具体包括:
根据补偿周期确定当前计时周期是否需要进行周期性补偿,若是,则在累计偏移大于零时,将第二预设补偿值的相反数作为当前计时周期的周期性补偿值,在所述累计偏移不大于零时,将第二预设补偿值作为当前计时周期的周期性补偿值;若否,则当前计时周期的周期性补偿值为0;其中,所述累计偏移为前一同步周期的补偿积累与所述时间偏差之间的差值;所述补偿周期根据同步时间间隔、本地计时周期、所述第二预设补偿值以及所述累计偏移计算得到,所述第二预设补偿值大于零。
进一步的,所述第一预设补偿值小于计时周期与第二预设补偿值的差值,所述第二预设补偿值小于计时周期。
在上述方法项实施例的基础上,本发明对应提供了一装置项实施例;
本发明一实施例提供了一种时钟漂移补偿装置,包括:当前参考时间提取模块、时间偏差计算模块、快速补偿值计算模块、周期性补偿值计算模块以及漂移补偿模块;
所述当前参考时间提取模块,用于接收当前同步帧,并从所述当前同步帧中提取参考时间;其中,所述参考时间为参考从站接收当前同步帧时参考从站所显示的时间;
所述时间偏差计算模块,用于根据接收当前同步帧时的当前本地时间以及初始时间偏移计算接收当前同步帧时的当前从站系统时间;根据所述当前从站系统时间、所述参考时间以及当前同步帧的传输延时计算时间偏差;
所述快速补偿值计算模块,用于根据所述时间偏差计算当前同步周期内,本地时钟每一计时周期的周期增量的快速补偿值;其中,当前同步周期内,本地时钟所有计时周期的周期增量的快速补偿值总和为所述时间偏差的相反数;
所述周期性补偿值计算模块,用于根据所述时间偏差、同步时间间隔以及前一同步周期的补偿积累,计算当前同步周期内,本地时钟每一计时周期的周期增量的周期性补偿值;其中,所述同步时间间隔为当前同步帧的接收时间与上一同步帧的接收时间的时间间隔;一同步周期的补偿积累为其同步周期内,本地时钟所有计时周期的周期增量的周期性补偿值总和;
所述漂移补偿模块,用于根据当前同步周期内,每一计时周期的周期增量的快速补偿值以及周期性补偿值,对当前同步周期内,本地时钟的周期增量进行快速补偿以及周期性补偿。
进一步的,快速补偿值计算模块,计算本地时钟一当前计时周期的周期增量的快速补偿值,具体包括:
若当前计时周期为初始计时周期,则将所述时间偏差的绝对值作为当前计时周期的剩余偏差,否则,将上一计时周期的剩余偏差与上一计时周期的快速补偿值的绝对值之间的差值作为当前计时周期的剩余偏差;
判断当前计时周期的剩余偏差是否大于第一预设补偿值;若是,则在所述时间偏差大于零时,将所述第一预设补偿值的相反数作为当前计时周期的周期增量的快速补偿值,在所述时间偏差不大于零时,将所述第一预设补偿值作为当前计时周期的周期增量的快速补偿值;若否,则在所述时间偏差大于零时,将当前计时周期的剩余偏差的相反数作为当前计时周期的周期增量的快速补偿值,在所述时间偏差不大于零时,将当前计时周期的剩余偏差作为当前计时周期的周期增量的快速补偿值;其中,所述第一预设补偿值大于零。
进一步的,周期性补偿值计算模块,计算本地时钟一当前计时周期的周期增量的周期性补偿值,具体包括:
根据补偿周期确定当前计时周期是否需要进行周期性补偿,若是,则在累计偏移大于零时,将第二预设补偿值的相反数作为当前计时周期的周期性补偿值,在所述累计偏移不大于零时,将第二预设补偿值作为当前计时周期的周期性补偿值;若否,则当前计时周期的周期性补偿值为0;其中,所述累计偏移为前一同步周期的补偿积累与所述时间偏差之间的差值;所述补偿周期根据同步时间间隔、本地计时周期、所述第二预设补偿值以及所述累计偏移计算得到,所述第二预设补偿值大于零。
进一步的,所述第一预设补偿值小于计时周期与第二预设补偿值的差值,所述第二预设补偿值小于计时周期。
在上述方法项实施例的基础上,本发明对应提供了一终端设备项实施例;
本发明一实施例提供了一种终端设备包括处理器、存储器以及存储在所述存储器中并被配置为由所述处理器执行的计算机程序;其中,所述处理器执行所述计算机程序时实现本发明任意一项所述的时钟漂移补偿方法。
在上述方法项实施例的基础上,本发明对应提供了一存储介质项实施例;
本发明一实施例功能了一种存储介质,所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述存储介质所在设备执行本发明任意一项所述的时钟漂移补偿方法。
通过实施本发明实施例具有如下有益效果:
本发明实施例提供了一种时钟漂移补偿方法、装置、终端设备及存储介质,所述方法,根据当前从站系统时间、所述当前参考时间以及当前同步帧的传输延时计算出时间偏差,所计算出的时间偏差即为接收当前同步帧的从站(后续称为同步帧接收从站)的本地时钟与参考从站的本地时钟之间的时钟漂移所造成的偏差;紧接着根据时间偏差计算出在当前同步周期内,同步帧接收从站本地时钟的每一计时周期的周期增量的快速补偿值以及周期性补偿值,然后根据每一计时周期的周期增量的快速补偿值以及周期性补偿值,对同步帧接收从站的本地时钟的周期增量进行快速补偿以及周期性补偿;同步帧接收从站本地时钟所有计时周期的周期增量的快速补偿值总和为所述时间偏差的相反数,这样可以补偿接收当前同步帧时,同步帧接收从站与参考从站已经形成的时间偏差,从而消除同步帧接收从站的从站系统时间与参考时间已经存在的偏差。另外,除了进行快速补偿以外,还进行了周期性补偿,这样可以补偿从接收当前同步帧至接收下一同步帧时,同步帧接收从站与参考从站可能将会形成的时间偏差,从而对在下一同步帧来临之前,同步帧接收从站的从站系统时间与参考时间之间未来可能出现的偏差进行预防性补偿。通过快速补偿和周期性补偿实现最终的时钟漂移补偿。
附图说明
图1是工业以太网的单线拓扑图。
图2是本发明一实施例提供的一种时钟漂移补偿方法的流程示意图。
图3是本发明一实施例提供的快速补偿值的计算流程示意图。
图4是本发明一实施例提供的周期性补偿值的计算流程示意图。
图5是本发明一实施提供的一种时钟漂移补偿装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,本发明一实施例提供了一种时钟漂移补偿方法,至少包括如下步骤:
步骤S101:接收当前同步帧,并从所述当前同步帧中提取参考时间;其中,所述参考时间为参考从站接收当前同步帧时参考从站所显示的时间。
步骤S102:根据接收当前同步帧时的当前本地时间以及初始时间偏移计算接收当前同步帧时的当前从站系统时间;根据所述当前从站系统时间、所述参考时间以及当前同步帧的传输延时计算时间偏差。
步骤S103:根据所述时间偏差计算当前同步周期内,本地时钟每一计时周期的周期增量的快速补偿值;其中,当前同步周期内,本地时钟所有计时周期的周期增量的快速补偿值总和为所述时间偏差的相反数。
步骤S104:根据所述时间偏差、同步时间间隔以及前一同步周期的补偿积累,计算当前同步周期内,本地时钟每一计时周期的周期增量的周期性补偿值;其中,所述同步时间间隔为当前同步帧的接收时间与上一同步帧的接收时间的时间间隔;一同步周期的补偿积累为其同步周期内,本地时钟所有计时周期的周期增量的周期性补偿值总和。
步骤S105:根据当前同步周期内,每一计时周期的周期增量的快速补偿值以及周期性补偿值,对当前同步周期内,本地时钟的周期增量进行快速补偿以及周期性补偿。
在进行时钟漂移补偿时,由主站读取每个从站的以太网端口状态,并以此推导出整个通信网络的拓扑结构;然后主站发送广播帧到各个从站,记录每个从站接收到广播帧前导符时的本地时间,进而可以计算出各从站间的传输延迟(此时的传输延时指的是,同步帧从第一个从站(即参考从站)传输至当前接收的从站的传输延时);主站根据参考时间,传输延迟以及各从站的本地时间计算出各从站的初始时间偏移;之后主站周期性地发送以太网帧,将参考从站中的本地时间作为参考时间发送给下行的所有从站(下文将此类以太网帧作为同步帧),以此来协助下行从站进行时钟漂移补偿。以下以其中的一个从站作为同步帧接收从站,对本发明所提供的时钟漂移补偿方法进行详细的说明。
对于步骤S101,同步帧接收从站接收当前同步帧后,从当前同步帧中提取出参考时间,上述参考时间为参考从站接收当前同步帧时参考从站(如图1所示,在本发明中以与主站连接的第一个从站,图中的从站1作为参考从站)的本地时钟所显示的时间。
对于步骤S102,在接收当前同步帧时,同步帧接收从站记录此时本地时钟所显示的时间,获得上述当前本地时间;然后计算当前本地时间与初始时间偏移之和得到接收到当前同步帧时,同步帧接收从站的系统时间即上述当前从站系统时间。紧接着,根据当前从站系统时间、当前参考时间以及当前同步帧的传输延时计算时间偏差。具体的,时间偏差=当前从站系统时间-传输延时-当前参考时间。
需要说明的是关于分布式时钟机制中测量和计算初始时间偏移与传输延时的方法,工业以太网的协议中已有说明为现有技术内容,在此不再展开叙述,在进行时钟漂移补偿前,先由主站将各从站的初始时间偏移以及传输延时传输至各从站。
对于步骤S103,在一个优选的实施例中,计算本地时钟一当前计时周期的周期增量的快速补偿值,具体包括:
若当前计时周期为初始计时周期,则将所述时间偏差的绝对值作为当前计时周期的剩余偏差,否则,将上一计时周期的剩余偏差与上一计时周期的快速补偿值的绝对值之间的差值作为当前计时周期的剩余偏差;
判断当前计时周期的剩余偏差是否大于第一预设补偿值;若是,则在所述时间偏差大于零时,将所述第一预设补偿值的相反数作为当前计时周期的周期增量的快速补偿值,在所述时间偏差不大于零时,将所述第一预设补偿值作为当前计时周期的周期增量的快速补偿值;若否,则在所述时间偏差大于零时,将当前计时周期的剩余偏差的相反数作为当前计时周期的周期增量的快速补偿值,在所述时间偏差不大于零时,将当前计时周期的剩余偏差作为当前计时周期的周期增量的快速补偿值;其中,所述第一预设补偿值大于零。
为更好理解快速补偿值的计算可参见图3,以第一预设补偿值为8纳秒为例:
首先将时间偏差的绝对值作为初始的剩余偏差,即作为初始计数周期的剩余偏差,然后开始判断剩余偏差是否大于8,如果剩余偏差大于8,则在时间偏差大于0时,将快速补偿值设置为-8;在时间偏差不大于0时,将快速补偿值设置为8;如果剩余偏差值不大于8,则在时间偏差大于0时,剩余偏差的相反数为快速补偿值;在时间偏差不大于0时,将剩余偏差作为快速补偿值;紧接着更新剩余偏差,将当前剩余偏差与当前所计算得到的快速补偿值的绝对值的差值,作为更新后的剩余偏差,然后根据更新后的剩余偏差,重复计算下一计数周期的快速补偿值。当接收下一同步帧时,重新计算时间偏差对时间偏差进行更新,然后开始下一同步周期内,同步帧接收从站的本地时钟各计时周期的周期增量的快速补偿值计算。
按上述示意,假设相邻同步帧之间的时间间隔为1微秒,即同步帧接收从站每隔1微秒接收一个同步帧进行一次同步,在接收当前同步帧后计算出的时间偏差为-100纳秒,同步帧接收从站的本地时钟的计时周期为10纳秒,第一预设补偿值为8,那么在一次同步周期内包含有100个本地时钟的计时周期,在快速补偿时,前12个计时周期的快速补偿值为8,第13个计时周期的快速补偿值为4,后续其他计时周期的快速补偿值都为0。
对于步骤S104:在一个优选的实施例中,计算本地时钟一当前计时周期的周期增量的周期性补偿值,具体包括:
根据补偿周期确定当前计时周期是否需要进行周期性补偿,若是,则在累计偏移大于零时,将第二预设补偿值的相反数作为当前计时周期的周期性补偿值,在所述累计偏移不大于零时,将第二预设补偿值作为当前计时周期的周期性补偿值;若否,则当前计时周期的周期性补偿值为0;其中,所述累计偏移为前一同步周期的补偿积累与所述时间偏差之间的差值;所述补偿周期根据同步时间间隔、本地计时周期、所述第二预设补偿值以及所述累计偏移计算得到,所述第二预设补偿值大于零。
本地计时周期指的是当前接收从站本地时钟的计时周期,在本发明中优选的为10纳秒。
对于补偿积累,一个同步周期的补偿积累等于这一同步周期内,本地时钟所有计时周期的周期增量的周期性性补偿值的总和。
对于累计偏移,在一个同步周期的累计偏移等于本周期的时间偏差与前一同步周期的补偿积累之和。
对于补偿周期,在本申请中补偿周期指的是在一个同步周期内,进行一次周期性补偿的间隔。补偿周期=同步时间间隔÷本地计时周期÷累积偏移的绝对值*第二预设补偿值。
在获悉上述概念后,以下结合图4对周期性补偿值的计算进行详细的说明,假设第二补偿值为1;
如图4所示,首先获取一时间偏差,按累计偏移=补偿积累-时间偏差,计算出累计偏移,初始的补偿积累为0;根据:补偿周期=同步时间间隔÷本地计时周期÷|累计偏移|*第二预设补偿值,计算出这一同步周期内的补偿周期,随后将补偿积累置0;紧接着设置一个周期计数,将周期计数设置为补偿周期,然后开始计算各计时周期的周期性补偿值;计算时,首先判断周期计数是否等于1,如果不是则说明还未到周期性补偿的时机,即判断出当前计时周期不需要进行周期性补偿,此时将当前计时周期的周期性补偿值设置为0,将周期计数减1,重新返回判断周期计数是否等于1从而判断下一个计时周期是否需要进行周期性补偿值,对下一个计时周期的周期性补偿值进行计算;如果判断出周期计数值等于1,则说明当前计时周期需要进行周期性补偿,此时判断累计偏移是否大于0,若是,则将第二预设补偿值的相反数-1作为当前计时周期的周期性补偿值。若否,则将第二预设补偿值1作为当前计时周期的周期性补偿值,随后按补偿积累=补偿积累+周期性补偿值,更新补偿积累;将周期计数重置为补偿周期,继续进行其他计时周期的周期性补偿值的计算。在下一个同步帧到来时更新时间偏差,之后将上一同步周期的补偿积累返回至累计偏移计算步骤,计算下一同步周期的累计偏移。
对于步骤S105:在一个优选的实施例中,根据当前同步周期内,每一计时周期的周期增量的快速补偿值以及周期性补偿值,对当前同步周期内,本地时钟的周期增量进行快速补偿以及周期性补偿,具体包括:
在每计算出一个计时周期的周期增量的快速补偿值和周期性补偿值时,根据快速补偿值和周期性补偿值确定该计时周期的周期增量,然后根据该计时周期的周期增量控制本地时钟进行计数调整;重复执行这一操作直至在当前同步周期内根据所有计时周期的周期增量对本地时钟的计数调整完毕。
具体的,通过上述步骤S102和步骤S103可以获悉在当前同步周期内,同步帧接收从站,本地时钟每一计时周期的周期增量的快速补偿值和周期性补偿值,在每计算出一个计时周期的周期增量的快速补偿值和周期性补偿值,就根据快速补偿值和周期性补偿值确定该计时周期的周期增量,然后根据周期增量控制本地时钟进行计数调整。
示意性的,假设同步帧时间间隔为1000纳秒,在接收初始同步帧后计算出的时间偏差为-50纳秒,同步帧接收从站的本地时钟的本地计时周期为10纳秒,第一预设补偿值为8,第二预设补偿值为1;那么在一次同步周期内包含有100个本地时钟的计时周期,在快速补偿时,可计算得到,前6个计时周期的快速补偿值为8,第7个计时周期的快速补偿值为2,后续其他计时周期的快速补偿值都为0。由于是初始同步帧,因此补偿积累为0,此时计算出初始同步周期的累计偏移为-50,然后计算得到初始同步周期的补偿周期为1000÷10÷|-50|*1=2;即说明,在初始同步周期内,每隔2个计时周期就进行一次周期性补偿。由于累计偏移为-50小于0,因此当需要进行周期性补偿值,周期性补偿值为1;即可得到在第2、4、6、8、10……和100个计时周期的周期增量的周期性补偿值为1,其他计时周期的周期性补偿值为0;综合快速补偿和周期性补偿就可求出,在初始同步周期内,第7个计时周期的周期增量为10+2=12纳秒(其中,10为本地时钟的本地计时周期)。第2、4以及6个计时周期的周期增量为10+8+1=19纳秒;第1、3以及5个计时周期的周期增量为10+8=18纳秒;第8、10、12、14、16、18……等后续的偶数计时周期的周期增量为10+1=11纳秒;第9、11、13、15、17……等后续奇数计时周期的周期增量为10纳秒。根据每个计时周期的周期增量控制本地时钟进行计时,即可通过快速补偿,快速消除接收初始同步帧时,同步帧接收从站与参考从站因为时钟漂移已经产生的50纳秒的偏差,通过周期性补偿,额外补偿50纳秒的偏差,可以对第二个同步帧来临前,可能会产生的偏差进行预防性补偿。假设在初始同步周期同步完毕后,接收了第二个同步帧,此时计算出第二同步帧的时间偏差为30纳秒;那么在第二同步周期的在快速补偿时,可计算得到,前3个计时周期的快速补偿值为-8,第4个计时周期的快速补偿值为-6,后续其他计时周期的快速补偿值都为0。此时计算出第二同步周期的累计偏移,50-30=20,然后计算得到初始同步周期的补偿周期为1000÷10÷20*1=5;(优选的,在本发明中在计算补偿周期时若出现计算结果小于1的情况则直接将1作为补偿周期,若出现大于1且为小数的情况,则根据四舍五入的原则得出补偿周期)即说明,在这第二个同步周期内,每隔5个计时周期就进行一次周期性补偿。由于累计偏移为20大于0,因此当需要进行周期性补偿值,周期性补偿值为-1;即可得到在第5、10、15、20、25、30、35、40、45、50、55、60、65、70、75、80、85、90、95和100个计时周期的周期增量的周期性补偿值为-1,其他计时周期的周期性补偿值为0;综合快速补偿和周期性补偿就可求出,在第二同步周期内,在第1-3个计时周期的周期增量为10-8=2纳秒,在第4个计时周期的周期增量为10-6=4纳秒,在第5、10、15、20、25、30、35、40、45、50、55、60、65、70、75、80、85、90、95和100个计时周期的周期增量为10-1=9纳秒,其余计时周期的周期增量均为10纳秒。
在一个优选的实施例中,所述第一预设补偿值小于计时周期与第二预设补偿值的差值,所述第二预设补偿值小于计时周期。通过设置这一条件可以保证本地计时器的计时保持严格递增的状态,防止出现某些定时任务重复执行。例如,假设第二预设补偿值为1,本地时钟的计时周期为10,那么此时第一预设补偿值需要小于9。示意性的可以设置为1-8的任意一个数值。如果将第一预设补偿值设置为9,第二预设补偿值设置为1,那么可能会出现这么一个情况,在某一个计时周期,快速补偿值为-9,恰好此时的周期性补偿值为-1;那么此时这一计时周期的周期增量即为10-9-1=0,即周期增量为0,从而导致时间没有增加,那么同个时间的定时任务会被执行两次,造成系统混乱。如果将第一预设补偿值设置为10,第二预设补偿值设置为1,那么可能会出现这么一个情况,在某一个计时周期,快速补偿值为-10,恰好此时的周期性补偿值为-1;那么此时这一计时周期的周期增量即为10-9-1=-1,即周期增量为-1,从而导致时间倒流,此时在前一时间点执行过的定时任务同样会被执行两次,造系统混乱。
在上述方法项实施例的基础上,本发明对应提供了装置项实施例;
如图5所示,本发明一实施例提供了一种时钟漂移补偿装置,包括:当前参考时间提取模块、时间偏差计算模块、快速补偿值计算模块、周期性补偿值计算模块以及漂移补偿模块;
所述当前参考时间提取模块,用于接收当前同步帧,并从所述当前同步帧中提取参考时间;其中,所述参考时间为参考从站接收当前同步帧时参考从站所显示的时间;
所述时间偏差计算模块,用于根据接收当前同步帧时的当前本地时间以及初始时间偏移计算接收当前同步帧时的当前从站系统时间;根据所述当前从站系统时间、所述参考时间以及当前同步帧的传输延时计算时间偏差;
所述快速补偿值计算模块,用于根据所述时间偏差计算当前同步周期内,本地时钟每一计时周期的周期增量的快速补偿值;其中,当前同步周期内,本地时钟所有计时周期的周期增量的快速补偿值总和为所述时间偏差的相反数;
所述周期性补偿值计算模块,用于根据所述时间偏差、同步时间间隔以及前一同步周期的补偿积累,计算当前同步周期内,本地时钟每一计时周期的周期增量的周期性补偿值;其中,所述同步时间间隔为当前同步帧的接收时间与上一同步帧的接收时间的时间间隔;一同步周期的补偿积累为其同步周期内,本地时钟所有计时周期的周期增量的周期性补偿值总和;
所述漂移补偿模块,用于根据当前同步周期内,每一计时周期的周期增量的快速补偿值以及周期性补偿值,对当前同步周期内,本地时钟的周期增量进行快速补偿以及周期性补偿。
在一个优选的实施例中,快速补偿值计算模块,计算本地时钟一当前计时周期的周期增量的快速补偿值,具体包括:
若当前计时周期为初始计时周期,则将所述时间偏差的绝对值作为当前计时周期的剩余偏差,否则,将上一计时周期的剩余偏差与上一计时周期的快速补偿值的绝对值之间的差值作为当前计时周期的剩余偏差;
判断当前计时周期的剩余偏差是否大于第一预设补偿值;若是,则在所述时间偏差大于零时,将所述第一预设补偿值的相反数作为当前计时周期的周期增量的快速补偿值,在所述时间偏差不大于零时,将所述第一预设补偿值作为当前计时周期的周期增量的快速补偿值;若否,则在所述时间偏差大于零时,将当前计时周期的剩余偏差的相反数作为当前计时周期的周期增量的快速补偿值,在所述时间偏差不大于零时,将当前计时周期的剩余偏差作为当前计时周期的周期增量的快速补偿值;其中,所述第一预设补偿值大于零。
在一个优选的实施例中,周期性补偿值计算模块,计算本地时钟一当前计时周期的周期增量的周期性补偿值,具体包括:
根据补偿周期确定当前计时周期是否需要进行周期性补偿,若是,则在累计偏移大于零时,将第二预设补偿值的相反数作为当前计时周期的周期性补偿值,在所述累计偏移不大于零时,将第二预设补偿值作为当前计时周期的周期性补偿值;若否,则当前计时周期的周期性补偿值为0;其中,所述累计偏移为所述时间偏差与前一同步周期的补偿积累之和;所述补偿周期根据同步时间间隔、本地计时周期、所述第二预设补偿值以及所述累计偏移计算得到,所述第二预设补偿值大于零。
在一个优选的实施例中,所述第一预设补偿值小于计时周期与第二预设补偿值的差值,所述第二预设补偿值小于计时周期。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在上述方法项实施例的基础上,本发明对应提供了终端设备项实施例;
本发明一实施例提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中并被配置为由所述处理器执行的计算机程序;其中,所述处理器执行所述计算机程序时实现本发明任意一项所述的时钟漂移补偿方法。
在上述方法项实施例的基础上,本发明对应提供了存储介质项实施例;
本发明一实施例提供了一种存储介质,所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述存储介质所在设备执行本发明任意一项所述的时钟漂移补偿方法。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
上述存储介质为计算机可读存储介质,计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (6)
1.一种时钟漂移补偿方法,其特征在于,包括:
接收当前同步帧,并从所述当前同步帧中提取参考时间;其中,所述参考时间为参考从站接收当前同步帧时参考从站所显示的时间;
根据接收当前同步帧时的当前本地时间以及初始时间偏移计算接收当前同步帧时的当前从站系统时间;根据所述当前从站系统时间、所述参考时间以及当前同步帧的传输延时计算时间偏差;
遍历当前同步周期内本地时钟的每一计时周期,若当前计时周期为初始计时周期,则将所述时间偏差的绝对值作为当前计时周期的剩余偏差,否则,将上一计时周期的剩余偏差与上一计时周期的快速补偿值的绝对值之间的差值作为当前计时周期的剩余偏差;
判断当前计时周期的剩余偏差是否大于第一预设补偿值;若是,则在所述时间偏差大于零时,将所述第一预设补偿值的相反数作为当前计时周期的周期增量的快速补偿值,在所述时间偏差不大于零时,将所述第一预设补偿值作为当前计时周期的周期增量的快速补偿值;
若否,则在所述时间偏差大于零时,将当前计时周期的剩余偏差的相反数作为当前计时周期的周期增量的快速补偿值,在所述时间偏差不大于零时,将当前计时周期的剩余偏差作为当前计时周期的周期增量的快速补偿值;其中,所述第一预设补偿值大于零,当前同步周期内,本地时钟所有计时周期的周期增量的快速补偿值总和为所述时间偏差的相反数;
遍历当前同步周期内本地时钟的每一计时周期,根据补偿周期确定当前计时周期是否需要进行周期性补偿,若是,则在累计偏移大于零时,将第二预设补偿值的相反数作为当前计时周期的周期性补偿值,在所述累计偏移不大于零时,将第二预设补偿值作为当前计时周期的周期性补偿值;若否,则当前计时周期的周期性补偿值为0;
其中,所述累计偏移为前一同步周期的补偿积累与所述时间偏差之间的差值;所述补偿周期根据同步时间间隔、本地计时周期、所述第二预设补偿值以及所述累计偏移计算得到,所述第二预设补偿值大于零,所述同步时间间隔为当前同步帧的接收时间与上一同步帧的接收时间的时间间隔;一同步周期的补偿积累为其同步周期内,本地时钟所有计时周期的周期增量的周期性补偿值总和;
根据当前同步周期内,每一计时周期的周期增量的快速补偿值以及周期性补偿值,对当前同步周期内,本地时钟的周期增量进行快速补偿以及周期性补偿。
2.如权利要求1所述的时钟漂移补偿方法,其特征在于,所述第一预设补偿值小于本地计时周期与第二预设补偿值的差值,所述第二预设补偿值小于本地计时周期。
3.一种时钟漂移补偿装置,其特征在于,包括:当前参考时间提取模块、时间偏差计算模块、快速补偿值计算模块、周期性补偿值计算模块以及漂移补偿模块;
所述当前参考时间提取模块,用于接收当前同步帧,并从所述当前同步帧中提取参考时间;其中,所述参考时间为参考从站接收当前同步帧时参考从站所显示的时间;
所述时间偏差计算模块,用于根据接收当前同步帧时的当前本地时间以及初始时间偏移计算接收当前同步帧时的当前从站系统时间;根据所述当前从站系统时间、所述参考时间以及当前同步帧的传输延时计算时间偏差;
所述快速补偿值计算模块,用于遍历当前同步周期内本地时钟的每一计时周期,若当前计时周期为初始计时周期,则将所述时间偏差的绝对值作为当前计时周期的剩余偏差,否则,将上一计时周期的剩余偏差与上一计时周期的快速补偿值的绝对值之间的差值作为当前计时周期的剩余偏差;判断当前计时周期的剩余偏差是否大于第一预设补偿值;若是,则在所述时间偏差大于零时,将所述第一预设补偿值的相反数作为当前计时周期的周期增量的快速补偿值,在所述时间偏差不大于零时,将所述第一预设补偿值作为当前计时周期的周期增量的快速补偿值;若否,则在所述时间偏差大于零时,将当前计时周期的剩余偏差的相反数作为当前计时周期的周期增量的快速补偿值,在所述时间偏差不大于零时,将当前计时周期的剩余偏差作为当前计时周期的周期增量的快速补偿值;其中,所述第一预设补偿值大于零,当前同步周期内,本地时钟所有计时周期的周期增量的快速补偿值总和为所述时间偏差的相反数;
所述周期性补偿值计算模块,用于遍历当前同步周期内本地时钟的每一计时周期,根据补偿周期确定当前计时周期是否需要进行周期性补偿,若是,则在累计偏移大于零时,将第二预设补偿值的相反数作为当前计时周期的周期性补偿值,在所述累计偏移不大于零时,将第二预设补偿值作为当前计时周期的周期性补偿值;若否,则当前计时周期的周期性补偿值为0;其中,所述累计偏移为前一同步周期的补偿积累与所述时间偏差之间的差值,所述补偿周期根据同步时间间隔、本地计时周期、所述第二预设补偿值以及所述累计偏移计算得到,所述第二预设补偿值大于零,所述同步时间间隔为当前同步帧的接收时间与上一同步帧的接收时间的时间间隔,一同步周期的补偿积累为其同步周期内,本地时钟所有计时周期的周期增量的周期性补偿值总和;
所述漂移补偿模块,用于根据当前同步周期内,每一计时周期的周期增量的快速补偿值以及周期性补偿值,对当前同步周期内,本地时钟的周期增量进行快速补偿以及周期性补偿。
4.如权利要求3所述的时钟漂移补偿装置,其特征在于,所述第一预设补偿值小于计时周期与第二预设补偿值的差值,所述第二预设补偿值小于计时周期。
5.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中并被配置为由所述处理器执行的计算机程序;其中,所述处理器执行所述计算机程序时实现如权利要求1-2任意一项所述的时钟漂移补偿方法。
6.一种存储介质,其特征在于,所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述存储介质所在设备执行如权利要求1至2中任意一项所述的时钟漂移补偿方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210190191.7A CN114640415B (zh) | 2022-02-28 | 2022-02-28 | 时钟漂移补偿方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210190191.7A CN114640415B (zh) | 2022-02-28 | 2022-02-28 | 时钟漂移补偿方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114640415A CN114640415A (zh) | 2022-06-17 |
CN114640415B true CN114640415B (zh) | 2024-09-03 |
Family
ID=81947206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210190191.7A Active CN114640415B (zh) | 2022-02-28 | 2022-02-28 | 时钟漂移补偿方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114640415B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100735230B1 (ko) * | 2006-05-02 | 2007-07-03 | 삼성전자주식회사 | 분산 제어 시스템에서의 타임 동기화 방법 |
CN105743598A (zh) * | 2016-01-26 | 2016-07-06 | 华中科技大学 | 一种工业以太网时钟同步方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090071923A (ko) * | 2007-12-28 | 2009-07-02 | 주식회사 케이티 | 동기식 이더넷에서 단일 타임 싱크 프레임을 이용한 통신단말 및 브리지 장치의 시간 동기화 방법 및 그 장치 |
CN110149257A (zh) * | 2018-12-20 | 2019-08-20 | 中铁十四局集团房桥有限公司 | 实时以太网总线主从站本地应用同步方法及装置 |
-
2022
- 2022-02-28 CN CN202210190191.7A patent/CN114640415B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100735230B1 (ko) * | 2006-05-02 | 2007-07-03 | 삼성전자주식회사 | 분산 제어 시스템에서의 타임 동기화 방법 |
CN105743598A (zh) * | 2016-01-26 | 2016-07-06 | 华中科技大学 | 一种工业以太网时钟同步方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114640415A (zh) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1427121B1 (en) | Radio access network, radio communication method, synchronous server and node | |
EP3706340B1 (de) | Verfahren zur synchronisation von uhren in knoten eines fahrzeugnetzes und zur durchführung des verfahrens eingerichteter knoten | |
CN113098646B (zh) | 一种时间同步方法、装置、电子设备及存储介质 | |
US8914662B2 (en) | Implementing transparent clock by correcting time information carried in data using residence time information | |
CN103563287B (zh) | 同步设备和同步方法 | |
EP1961186B1 (en) | Using travel-time as means for improving the accuracy of simple network time protocol | |
CN109981206B (zh) | 对时方法、装置、系统及终端设备、存储介质 | |
JP6523497B1 (ja) | マスタ制御装置およびこれを用いた同期通信システム | |
KR20150143801A (ko) | 타임스탬프를 생성하는 방법, 장치, 그리고 시스템 | |
WO2010025743A1 (en) | A method for synchronizing clocks in a communication network | |
CN103188064A (zh) | 时钟同步方法及装置 | |
US10594424B2 (en) | Time synchronization slave apparatus capable of adjusting time synchronization period, and method of determining time synchronization period | |
JP2007060400A (ja) | 通信タイミング制御方法および通信タイミング制御システム | |
CN107947888B (zh) | 一种基于网络通信的任务级同步方法 | |
EP2424136A1 (en) | System and method for time synchronization in a communication network | |
CN101247169A (zh) | 一种在通信网络中实现时间同步的方法和系统以及设备 | |
DE102018121389B4 (de) | Bussystem | |
CN105680977B (zh) | 同步FlexRay时钟的方法及系统 | |
CN114640415B (zh) | 时钟漂移补偿方法、装置、终端设备及存储介质 | |
CN102857315B (zh) | 主时钟服务从时钟的方法及系统 | |
WO2020021597A1 (ja) | 通信装置、通信システムおよび同期制御方法 | |
US20230007606A1 (en) | Method for time synchronization, method for broadcast setting, chip, electronic device, and storage medium | |
US9442511B2 (en) | Method and a device for maintaining a synchronized local timer using a periodic signal | |
CN114928425A (zh) | 终端设备对时同步系统、方法、设备及存储介质 | |
CN1848713B (zh) | 时分复用系统子节点帧同步实现方法及实现装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |