CN111614428A - 一种提高多个时钟间同步精度的方法及装置 - Google Patents
一种提高多个时钟间同步精度的方法及装置 Download PDFInfo
- Publication number
- CN111614428A CN111614428A CN202010489379.2A CN202010489379A CN111614428A CN 111614428 A CN111614428 A CN 111614428A CN 202010489379 A CN202010489379 A CN 202010489379A CN 111614428 A CN111614428 A CN 111614428A
- Authority
- CN
- China
- Prior art keywords
- clock
- source
- hardware
- cycle
- synchronized
- 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.)
- Granted
Links
Images
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
- H04J3/0644—External master-clock
-
- 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/0685—Clock or time synchronisation in a node; Intranode synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开了一种提高多个时钟间同步精度的方法及装置,包括多源时钟设备,多源时钟设备内包括多个硬件时钟;该方法包括:基于精确同步时钟协议,进行多源时钟设备内某一硬件时钟与网络内主时钟设备的同步;对已同步的硬件时钟进行配置,并触发PPS信号,为多源时钟设备内其他硬件时钟源提供时钟同步信号源;获取PPS信号产生时被同步硬件时钟源的计数信息,计算被同步硬件时钟源的真实特性;对多源时钟设备内被同步硬件时钟源修正,以达到设备内多时钟相互间的时钟同步。本发明方法避开传统的使用CPU中断来获取时间的弊端,而采用硬件方式,使设备内多个时钟间实现纳秒级同步,且同步精度高。
Description
技术领域
本发明涉及网络通讯系统技术领域,尤其涉及一种提高多个时钟间同步精度的方法及装置。
背景技术
网络时钟同步技术,对时间敏感型网络具有极其重要的作用。例如大型赛事的直播过程中,视频和音频数据必须实现高实时的传输与处理;无人驾驶技术需要完成对各种复杂信号实时处理。因此时钟同步技术是此类实时应用的基础。
如图1所示,一般含有多个时钟的设备主要由配置管理CPU及用于数据转发的交换芯片构成。此系统内存在两套硬件时钟,即硬件时钟1(CPU的硬件时钟)和硬件时钟2(交换芯片内的时钟)。硬件时钟2可通过1588v2协议,与网络内的时钟服务器实现纳秒级的时钟同步。但软件维护的系统时间,由硬件时钟1提供时钟信号。而各类软件所使用的时间源于软件维护的系统时间,不能直接访问设备内的硬件时钟2。因此如果系统内的软件需要使用高精度的时钟,则需要实现设备内硬件时钟1与硬件时钟2的时钟同步。
现有的方案实现CPU的硬件时钟同步到交换芯片内的硬件时钟的做法,有以下两种:
1、采用硬件时钟2输出PPS信号产生CPU中断,在中断函数中获取硬件时钟1的状态信息。以这种辅助的方式提高软件时钟的同步精度。但由于系统响应中断的时间不固定,中断处理需要时间,因此这种方法也只能达到几微秒的精度。但这样的精度将无法满足即要保证终端设备同步精度,又要保证传输设备自身系统时钟精度的应用环境的要求。
2、通过CPU额外的网口接入时钟同步网络,是CPU芯片作为一个独立的个体与网络内的主时钟设备实现时钟同步。但这种方法需要在网络内额外布线,同时额外消耗由CPU时钟同步带来的计算资源和网络资源。
发明内容
本发明所要解决的技术问题是现有的针对含有多个时钟源的设备中实现时钟源间时钟同步精度不高问题,本发明提供了解决上述问题的一种提高多个时钟间同步精度的方法及装置,可使设备内多个时钟间实现纳秒级同步,精度高。
本发明通过下述技术方案实现:
一种提高多个时钟间同步精度的方法,包括多源时钟设备,所述多源时钟设备内包括多个硬件时钟;该方法包括以下步骤:
S1:基于精确同步时钟协议,进行多源时钟设备内某一硬件时钟与网络内主时钟设备的同步;
S2:对已同步的硬件时钟进行配置,并触发PPS信号,为多源时钟设备内其他硬件时钟源提供时钟同步信号源;
S3:获取PPS信号产生时被同步硬件时钟源的计数信息,计算被同步硬件时钟源的真实特性;其中被同步硬件时钟源的真实特性包括频率和周期;
S4:对多源时钟设备内被同步硬件时钟源修正,以达到设备内多时钟相互间的时钟同步。
进一步地,步骤S1中,某一硬件时钟通过IEEE 1588v2协议与网络内主时钟设备的同步。
进一步地,所述网络内主时钟设备为网络中的守时设备。
进一步地,步骤S2中的PPS信号为基于时钟同步后的时钟在每秒开始时刻输出的脉冲信号。
进一步地,步骤S3具体包括以下子步骤:
S31:多源时钟设备初始化,将用于记录上一次PPS信号产生时被同步硬件时钟源周期数last_cycle,将用于记录本次PPS信号产生时同一被同步硬件时钟源周期数crrt_cycle均清零;
S32:硬件寄存器实时记录PPS信号产生时刻,被同步硬件时钟源的周期数;当第1个PPS信号产生时,将N1数值保存在硬件寄存器中;当第2个PPS信号产生时,将N2数值保存在同一硬件寄存器中;
S33:PPS信号引发中断处理函数,中断处理函数中对程序中记录的周期数进行处理;包括:
中断处理函数获取硬件寄存器中记录的周期数并存入crrt_cycle;
进行last_cycle中数据是否有效判断,当程序启动后的首个PPS信号引发中断处理时,此时last_cycle为初始值,没有保存有效的数值,则认为last_cycle无效,返回循环等待下一次PPS信号的触发;当PPS信号不是程序启动后的首个PPS信号,last_cycle已经保存了前一次PPS信号产生时被同步硬件时钟源的周期数,则认为last_cycle有效,通过last_cycle与crrt_cycle计算连续两次PPS信号间,本地时钟的实际周期数ΔN。
进一步地,所述通过last_cycle与crrt_cycle计算连续两次PPS信号间,本地时钟的实际周期数ΔN,包括:
当前周期数N2大于前一次记录的周期数N1时,ΔN=N2-N1;当前周期数N2小于前一次记录的周期数N1时,即寄存器溢出,ΔN=N2-N1+寄存器最大值;ΔN即被同步硬件时钟源在标准1秒内的真实频率。
进一步地,步骤S4中对多源时钟设备内被同步硬件时钟源修正,包括:
根据被同步硬件时钟源的真实频率ΔN,对被同步硬件时钟源进行频率调节,按照比例提高或降低被同步硬件时钟源的频率,修改相应硬件寄存器;对于无法调节被同步硬件时钟源频率的,按照当前真实频率,计算得到周期偏差值,并将此值写入到相应寄存器;
用crrt_cycle中的数值更新last_cycle,并等待新的PPS信号的产生。
另一方面,本发明还提供了一种提高多个时钟间同步精度的装置,所述一种提高多个时钟间同步精度的装置包括多源时钟设备,所述多源时钟设备内包括多个硬件时钟;还包括存储有一种提高多个时钟间同步精度的方法程序的存储器;
还包括处理器,配置为执行所述一种提高多个时钟间同步精度的方法程序以执行下述单元的操作:
同步单元:基于精确同步时钟协议,进行多源时钟设备内某一硬件时钟与网络内主时钟设备的同步;
配置与触发单元:对已同步的硬件时钟进行配置,并触发PPS信号,为多源时钟设备内其他硬件时钟源提供时钟同步信号源;
处理单元:获取PPS信号产生时被同步硬件时钟源的计数信息,计算被同步硬件时钟源的真实特性;其中被同步硬件时钟源的真实特性包括频率和周期;
修正单元,用于对多源时钟设备内被同步硬件时钟源修正,以达到设备内多时钟相互间的时钟同步。
进一步地,同步单元中,某一硬件时钟通过IEEE 1588v2协议与网络内主时钟设备的同步。
进一步地,所述处理单元具体包括:
多源时钟设备初始化,将用于记录上一次PPS信号产生时被同步硬件时钟源周期数last_cycle,将用于记录本次PPS信号产生时同一被同步硬件时钟源周期数crrt_cycle均清零;
硬件寄存器实时记录PPS信号产生时刻,被同步硬件时钟源的周期数;当第1个PPS信号产生时,将N1数值保存在硬件寄存器中;当第2个PPS信号产生时,将N2数值保存在同一硬件寄存器中;
PPS信号引发中断处理函数,中断处理函数中对程序中记录的周期数进行处理;包括:
中断处理函数获取硬件寄存器中记录的周期数并存入crrt_cycle;
进行last_cycle中数据是否有效判断,当程序启动后的首个PPS信号引发中断处理时,此时last_cycle为初始值,没有保存有效的数值,则认为last_cycle无效,返回循环等待下一次PPS信号的触发;当PPS信号不是程序启动后的首个PPS信号,last_cycle已经保存了前一次PPS信号产生时被同步硬件时钟源的周期数,则认为last_cycle有效,通过last_cycle与crrt_cycle计算连续两次PPS信号间,本地时钟的实际周期数ΔN;其中:当前周期数N2大于前一次记录的周期数N1时,ΔN=N2-N1;当前周期数N2小于前一次记录的周期数N1时,即寄存器溢出,ΔN=N2-N1+寄存器最大值;ΔN即被同步硬件时钟源在标准1秒内的真实频率。
进一步地,所述修正单元具体包括:
根据被同步硬件时钟源的真实频率ΔN,对被同步硬件时钟源进行频率调节,按照比例提高或降低被同步硬件时钟源的频率,修改相应硬件寄存器;对于无法调节被同步硬件时钟源频率的,按照当前真实频率,计算得到周期偏差值,并将此值写入到相应寄存器;
用crrt_cycle中的数值更新last_cycle,并等待新的PPS信号的产生。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明方法避开传统的使用CPU中断来获取时间的弊端,采用硬件方式,无需添加而外元器件,仅需一路PPS信号,即可实现设备内多个时钟同步,可使设备内多个时钟间实现纳秒级同步,且同步精度高;本发明在需要高精度时钟环境中,尤其在航空、金融领域,应用程序往往是通过图一中的硬件时钟提供的访问接口获取时间。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明实施例具有多个时钟设备的架构图。
图2为本发明PPS信号处理时序图。
图3为本发明方法处理流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
如图1至图3所示,本发明一种提高多个时钟间同步精度的方法,包括多源时钟设备,所述多源时钟设备内包括多个硬件时钟;本实施例中以多源时钟设备内包括CPU和交换芯片,CPU包括第一硬件时钟和硬件寄存器,交换芯片包括第二硬件时钟,;
该方法包括以下步骤:
S1:基于精确同步时钟协议,进行多源时钟设备内第二硬件时钟与网络内主时钟设备的同步;如图1所示,多源时钟设备内的第二硬件时钟通过IEEE 1588v2协议与网络内主时钟设备实现同步,所述网络内主时钟设备为网络中的守时设备。
S2:对已同步的第二硬件时钟进行配置,并触发PPS信号,实现PPS信号输出,为多源时钟设备内其他硬件时钟(即第一硬件时钟)源提供时钟同步信号源;其中,PPS信号基于时钟同步后的时钟,在每秒开始时刻输出脉冲信号。如图2所示,Δt3为PPS信号的时间间隔,1秒。它与网络内主时钟设备的偏差可达到纳秒级别。
S3:获取PPS信号产生时被同步硬件时钟源的计数信息,计算被同步硬件时钟源的真实特性;其中被同步硬件时钟源的真实特性包括频率和周期;
这是根据基于第一硬件时钟将第二硬件时钟产生的PPS信号作为输入信号,由图2所示,从PPS信号产生到中断函数开始处理的时间,Δt1和Δt2,不相等,如果在中断处理函数中才获取第一硬件时钟的周期数(N1 ’和N2 ’),则会影响第一硬件时钟的同步精度,因此执行如图3所示操作:
S31:多源时钟设备初始化,将用于记录上一次PPS信号产生时被同步硬件时钟源(即第一硬件时钟)周期数的变量last_cycle,将用于记录本次PPS信号产生时同一被同步硬件时钟源(即第一硬件时钟)周期数的变量crrt_cycle均清零;
S32:硬件寄存器实时记录PPS信号产生时刻,被同步硬件时钟源(即第一硬件时钟)的周期数;当第1个PPS信号产生时,将N1数值保存在硬件寄存器中;当第2个PPS信号产生时,将N2数值保存(覆盖)在同一硬件寄存器中;
S33:PPS信号引发中断处理函数,中断处理函数中对程序中记录的周期数进行处理;包括:
中断处理函数获取硬件寄存器中记录的周期数并存入变量crrt_cycle;
进行last_cycle中数据是否有效判断,当程序启动后的首个PPS信号引发中断处理时,此时last_cycle为初始值,没有保存有效的数值,因此,如图3所示,last_cycle无效,则返回循环等待下一次PPS信号的触发;当PPS信号不是程序启动后的首个PPS信号,last_cycle已经保存了前一次PPS信号产生时被同步硬件时钟源(即第一硬件时钟)的周期数,则认为last_cycle有效,如图3所示继续处理流程。
通过last_cycle与crrt_cycle计算连续两次PPS信号间,本地时钟的实际周期数ΔN。包括:
当前周期数N2大于前一次记录的周期数N1时,ΔN=N2-N1;当前周期数N2小于前一次记录的周期数N1时,即寄存器溢出,ΔN=N2-N1+寄存器最大值;ΔN即被同步硬件时钟源(即第一硬件时钟)在Δt3(标准1秒内)的真实频率。
S4:对多源时钟设备内被同步硬件时钟源修正,以达到设备内多时钟相互间的时钟同步;包括:
根据被同步硬件时钟源(即第一硬件时钟)的真实频率ΔN,CPU可对被同步硬件时钟源(即第一硬件时钟)进行频率调节,按照比例提高或降低被同步硬件时钟源(即第一硬件时钟)的频率,修改相应硬件寄存器;对于无法调节被同步硬件时钟源(即第一硬件时钟)频率的,按照当前真实频率,计算得到周期偏差值,并将此值写入到相应寄存器,从而达到修改CPU时钟的目的。
最后将crrt_cycle中的数值更新last_cycle,并等待新的PPS信号的产生。
工作原理是:基于现有的针对含有多个时钟源的设备中实现CPU的硬件时钟同步到交换芯片内的硬件时钟方法中是采用中断方式获取CPU的硬件时钟的时间,存在后延和时钟抖动的情况,进而造成同步的精度不高问题。本发明采用上述方案,首先,基于精确同步时钟协议,进行多源时钟设备内第二硬件时钟与网络内主时钟设备的同步;其次,对已同步的第二硬件时钟进行配置,采用PPS引起触发信号,基于硬件在PPS触发信号的上升沿处立即记录当前时钟的cycle值;计算被同步硬件时钟源的真实特性;然后对多源时钟设备内被同步硬件时钟源修正,以达到设备内多时钟相互间的时钟同步。基于此,第一硬件时钟为软件系统时钟提供时钟信号,通过对第一硬件时钟的频率或周期的修正,可达到对软件系统时钟的修正。
本发明方法避开传统的使用CPU中断来获取时间的弊端,采用硬件方式,无需添加而外元器件,仅需一路PPS信号,即可实现设备内多个时钟同步,可使设备内多个时钟间实现纳秒级同步,且同步精度高;本发明在需要高精度时钟环境中,尤其在航空、金融领域,应用程序往往是通过图一中的硬件时钟提供的访问接口获取时间。
实施例2
如图1至图3所示,本实施例与实施例1的区别在于,本实施例提供了一种提高多个时钟间同步精度的装置,所述一种提高多个时钟间同步精度的装置包括多源时钟设备,所述多源时钟设备内包括多个硬件时钟;还包括存储有实施例1中一种提高多个时钟间同步精度的方法程序的存储器;
还包括处理器,配置为执行所述一种提高多个时钟间同步精度的方法程序以执行下述单元的操作:
同步单元:基于精确同步时钟协议,进行多源时钟设备内某一硬件时钟与网络内主时钟设备的同步;
配置与触发单元:对已同步的硬件时钟进行配置,并触发PPS信号,为多源时钟设备内其他硬件时钟源提供时钟同步信号源;
处理单元:获取PPS信号产生时被同步硬件时钟源的计数信息,计算被同步硬件时钟源的真实特性;其中被同步硬件时钟源的真实特性包括频率和周期;
修正单元,用于对多源时钟设备内被同步硬件时钟源修正,以达到设备内多时钟相互间的时钟同步。
具体地,所述处理单元具体包括:
多源时钟设备初始化,将用于记录上一次PPS信号产生时被同步硬件时钟源(即第一硬件时钟)周期数的变量last_cycle,将用于记录本次PPS信号产生时同一被同步硬件时钟源(即第一硬件时钟)周期数的变量crrt_cycle均清零;
硬件寄存器实时记录PPS信号产生时刻,被同步硬件时钟源(即第一硬件时钟)的周期数;当第1个PPS信号产生时,将N1数值保存在硬件寄存器中;当第2个PPS信号产生时,将N2数值保存(覆盖)在同一硬件寄存器中;
PPS信号引发中断处理函数,中断处理函数中对程序中记录的周期数进行处理;包括:
中断处理函数获取硬件寄存器中记录的周期数并存入crrt_cycle;
进行last_cycle中数据是否有效判断,当程序启动后的首个PPS信号引发中断处理时,此时last_cycle为初始值,没有保存有效的数值,则认为last_cycle无效,返回循环等待下一次PPS信号的触发;当PPS信号不是程序启动后的首个PPS信号,last_cycle已经保存了前一次PPS信号产生时被同步硬件时钟源(即第一硬件时钟)的周期数,则认为last_cycle有效,通过last_cycle与crrt_cycle计算连续两次PPS信号间,本地时钟的实际周期数ΔN;其中:当前周期数N2大于前一次记录的周期数N1时,ΔN=N2-N1;当前周期数N2小于前一次记录的周期数N1时,即寄存器溢出,ΔN=N2-N1+寄存器最大值;ΔN即被同步硬件时钟源(即第一硬件时钟)在Δt3(标准1秒内)的真实频率。
具体地,所述修正单元具体包括:
根据被同步硬件时钟源(即第一硬件时钟)的真实频率ΔN,CPU可对被同步硬件时钟源(即第一硬件时钟)进行频率调节,按照比例提高或降低被同步硬件时钟源(即第一硬件时钟)的频率,修改相应硬件寄存器;对于无法调节被同步硬件时钟源(即第一硬件时钟)频率的,按照当前真实频率,计算得到周期偏差值,并将此值写入到相应寄存器;
用crrt_cycle中的数值更新last_cycle,并等待新的PPS信号的产生。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种提高多个时钟间同步精度的方法,其特征在于,包括多源时钟设备,所述多源时钟设备内包括多个硬件时钟;该方法包括以下步骤:
S1:基于精确同步时钟协议,进行多源时钟设备内某一硬件时钟与网络内主时钟设备的同步;
S2:对已同步的硬件时钟进行配置,并触发PPS信号,为多源时钟设备内其他硬件时钟源提供时钟同步信号源;
S3:获取PPS信号产生时被同步硬件时钟源的计数信息,计算被同步硬件时钟源的真实特性;其中被同步硬件时钟源的真实特性包括频率和周期;
S4:对多源时钟设备内被同步硬件时钟源修正,以达到设备内多时钟相互间的时钟同步。
2.根据权利要求1所述的一种提高多个时钟间同步精度的方法,其特征在于,步骤S1中,某一硬件时钟通过IEEE 1588v2协议与网络内主时钟设备的同步。
3.根据权利要求2所述的一种提高多个时钟间同步精度的方法,其特征在于,所述网络内主时钟设备为网络中的守时设备。
4.根据权利要求1所述的一种提高多个时钟间同步精度的方法,其特征在于,步骤S2中的PPS信号为基于时钟同步后的时钟在每秒开始时刻输出的脉冲信号。
5.根据权利要求1所述的一种提高多个时钟间同步精度的方法,其特征在于,步骤S3具体包括以下子步骤:
S31:多源时钟设备初始化,将用于记录上一次PPS信号产生时被同步硬件时钟源周期数last_cycle,将用于记录本次PPS信号产生时同一被同步硬件时钟源周期数crrt_cycle均清零;
S32:硬件寄存器实时记录PPS信号产生时刻,被同步硬件时钟源的周期数;当第1个PPS信号产生时,将N1数值保存在硬件寄存器中;当第2个PPS信号产生时,将N2数值保存在同一硬件寄存器中;
S33:PPS信号引发中断处理函数,中断处理函数中对程序中记录的周期数进行处理;包括:
中断处理函数获取硬件寄存器中记录的周期数并存入crrt_cycle;
进行last_cycle中数据是否有效判断,当程序启动后的首个PPS信号引发中断处理时,此时last_cycle为初始值,没有保存有效的数值,则认为last_cycle无效,返回循环等待下一次PPS信号的触发;当PPS信号不是程序启动后的首个PPS信号,last_cycle已经保存了前一次PPS信号产生时被同步硬件时钟源的周期数,则认为last_cycle有效,通过last_cycle与crrt_cycle计算连续两次PPS信号间,本地时钟的实际周期数ΔN。
6.根据权利要求5所述的一种提高多个时钟间同步精度的方法,其特征在于,所述通过last_cycle与crrt_cycle计算连续两次PPS信号间,本地时钟的实际周期数ΔN,包括:
当前周期数N2大于前一次记录的周期数N1时,ΔN=N2-N1;当前周期数N2小于前一次记录的周期数N1时,即寄存器溢出,ΔN=N2-N1+寄存器最大值;ΔN即被同步硬件时钟源在标准1秒内的真实频率。
7.根据权利要求6所述的一种提高多个时钟间同步精度的方法,其特征在于,步骤S4中对多源时钟设备内被同步硬件时钟源修正,包括:
根据被同步硬件时钟源的真实频率ΔN,对被同步硬件时钟源进行频率调节,按照比例提高或降低被同步硬件时钟源的频率,修改相应硬件寄存器;对于无法调节被同步硬件时钟源频率的,按照当前真实频率,计算得到周期偏差值,并将此值写入到相应寄存器;
用crrt_cycle中的数值更新last_cycle,并等待新的PPS信号的产生。
8.一种提高多个时钟间同步精度的装置,其特征在于,所述一种提高多个时钟间同步精度的装置包括多源时钟设备,所述多源时钟设备内包括多个硬件时钟;还包括存储有一种提高多个时钟间同步精度的方法程序的存储器;
还包括处理器,配置为执行所述一种提高多个时钟间同步精度的方法程序以执行下述单元的操作:
同步单元:基于精确同步时钟协议,进行多源时钟设备内某一硬件时钟与网络内主时钟设备的同步;
配置与触发单元:对已同步的硬件时钟进行配置,并触发PPS信号,为多源时钟设备内其他硬件时钟源提供时钟同步信号源;
处理单元:获取PPS信号产生时被同步硬件时钟源的计数信息,计算被同步硬件时钟源的真实特性;其中被同步硬件时钟源的真实特性包括频率和周期;
修正单元,用于对多源时钟设备内被同步硬件时钟源修正,以达到设备内多时钟相互间的时钟同步。
9.根据权利要求8所述的一种提高多个时钟间同步精度的装置,其特征在于,所述处理单元具体包括:
多源时钟设备初始化,将用于记录上一次PPS信号产生时被同步硬件时钟源周期数last_cycle,将用于记录本次PPS信号产生时同一被同步硬件时钟源周期数crrt_cycle均清零;
硬件寄存器实时记录PPS信号产生时刻,被同步硬件时钟源的周期数;当第1个PPS信号产生时,将N1数值保存在硬件寄存器中;当第2个PPS信号产生时,将N2数值保存在同一硬件寄存器中;
PPS信号引发中断处理函数,中断处理函数中对程序中记录的周期数进行处理;包括:
中断处理函数获取硬件寄存器中记录的周期数并存入crrt_cycle;
进行last_cycle中数据是否有效判断,当程序启动后的首个PPS信号引发中断处理时,此时last_cycle为初始值,没有保存有效的数值,则认为last_cycle无效,返回循环等待下一次PPS信号的触发;当PPS信号不是程序启动后的首个PPS信号,last_cycle已经保存了前一次PPS信号产生时被同步硬件时钟源的周期数,则认为last_cycle有效,通过last_cycle与crrt_cycle计算连续两次PPS信号间,本地时钟的实际周期数ΔN;其中:当前周期数N2大于前一次记录的周期数N1时,ΔN=N2-N1;当前周期数N2小于前一次记录的周期数N1时,即寄存器溢出,ΔN=N2-N1+寄存器最大值;ΔN即被同步硬件时钟源在标准1秒内的真实频率。
10.根据权利要求9所述的一种提高多个时钟间同步精度的装置,其特征在于,所述修正单元具体包括:
根据被同步硬件时钟源的真实频率ΔN,对被同步硬件时钟源进行频率调节,按照比例提高或降低被同步硬件时钟源的频率,修改相应硬件寄存器;对于无法调节被同步硬件时钟源频率的,按照当前真实频率,计算得到周期偏差值,并将此值写入到相应寄存器;
用crrt_cycle中的数值更新last_cycle,并等待新的PPS信号的产生。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010489379.2A CN111614428B (zh) | 2020-06-02 | 2020-06-02 | 一种提高多个时钟间同步精度的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010489379.2A CN111614428B (zh) | 2020-06-02 | 2020-06-02 | 一种提高多个时钟间同步精度的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111614428A true CN111614428A (zh) | 2020-09-01 |
CN111614428B CN111614428B (zh) | 2022-08-30 |
Family
ID=72204040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010489379.2A Active CN111614428B (zh) | 2020-06-02 | 2020-06-02 | 一种提高多个时钟间同步精度的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111614428B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259045A (zh) * | 2021-07-14 | 2021-08-13 | 四川腾盾科技有限公司 | 一种大型无人机遥控实时传输处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1523763A (zh) * | 2003-02-21 | 2004-08-25 | 明基电通股份有限公司 | 可同步各半导体组件时钟信号源的方法及系统 |
TW201743589A (zh) * | 2016-06-14 | 2017-12-16 | Chunghwa Telecom Co Ltd | 精確時間協定信號分配之線上監測系統及方法 |
CN108471338A (zh) * | 2018-06-29 | 2018-08-31 | 武汉虹信通信技术有限责任公司 | 一种用于td-lte的时间同步保持方法及系统 |
CN109617641A (zh) * | 2018-12-04 | 2019-04-12 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于秒脉冲的可调精度时间获取方法 |
-
2020
- 2020-06-02 CN CN202010489379.2A patent/CN111614428B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1523763A (zh) * | 2003-02-21 | 2004-08-25 | 明基电通股份有限公司 | 可同步各半导体组件时钟信号源的方法及系统 |
TW201743589A (zh) * | 2016-06-14 | 2017-12-16 | Chunghwa Telecom Co Ltd | 精確時間協定信號分配之線上監測系統及方法 |
CN108471338A (zh) * | 2018-06-29 | 2018-08-31 | 武汉虹信通信技术有限责任公司 | 一种用于td-lte的时间同步保持方法及系统 |
CN109617641A (zh) * | 2018-12-04 | 2019-04-12 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于秒脉冲的可调精度时间获取方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259045A (zh) * | 2021-07-14 | 2021-08-13 | 四川腾盾科技有限公司 | 一种大型无人机遥控实时传输处理方法 |
CN113259045B (zh) * | 2021-07-14 | 2021-09-28 | 四川腾盾科技有限公司 | 一种大型无人机遥控实时传输处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111614428B (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102652569B1 (ko) | 비용 최적화된 환경들에서 phy 레벨 하드웨어 타임스탬핑 및 시간 동기화의 수행 | |
US11994896B2 (en) | Maintaining the correct time when counter values are transferred between clock domains | |
US6535926B1 (en) | Time synchronization system for industrial control network using global reference pulses | |
US8914662B2 (en) | Implementing transparent clock by correcting time information carried in data using residence time information | |
US20080025344A1 (en) | Maintaining consistency among multiple timestamp counters distributed among multiple devices | |
EP1427121A1 (en) | Radio access network, radio communication method, synchronous server and node | |
US8036202B2 (en) | Physical layer transceiver with integrated time synchronization | |
CN111614428B (zh) | 一种提高多个时钟间同步精度的方法及装置 | |
US20210004043A1 (en) | Multichip Timing Synchronization Circuits and Methods | |
CN110071778B (zh) | 一种对时方法、装置、设备及介质 | |
US20230185600A1 (en) | Time-dependent action system | |
CN214480655U (zh) | 一种兼容可定义确定性通信以太网的嵌入式设备 | |
US20040215992A1 (en) | Method, apparatus, and computer program product for implementing time synchronization correction in computer systems | |
US20220271853A1 (en) | Synchronization of clock domains on a data network | |
CN111865467A (zh) | 用于时延测试的分布式机箱板卡间时钟同步系统及方法 | |
US11664967B2 (en) | Network device | |
US20230179314A1 (en) | In-band signaling for ingress ptp packets at a master entity | |
RU2825812C1 (ru) | Способ синхронизации времени в процессорах и устройствах ввода-вывода вычислительной машины | |
CN118784132A (zh) | 一种虚拟化控制系统及其校时方法、装置 | |
WO2024069643A1 (en) | Method and a system for creating multi-port network synchronization bridge | |
CN118473581A (zh) | 时间同步处理方法、装置、系统、设备及可读存储介质 | |
CN115988287A (zh) | 一种视频传输方法、系统、装置、电子设备及存储介质 | |
CN117879747A (zh) | 报文时间戳的获取方法、装置、设备及存储介质 | |
CN117812017A (zh) | 用于tsn网络的确定性数据报文调度装置、方法、终端及介质 | |
CN112134641A (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 |