CN117675072A - 同步时间确定方法及时间同步装置、时间同步***、介质 - Google Patents

同步时间确定方法及时间同步装置、时间同步***、介质 Download PDF

Info

Publication number
CN117675072A
CN117675072A CN202311556766.3A CN202311556766A CN117675072A CN 117675072 A CN117675072 A CN 117675072A CN 202311556766 A CN202311556766 A CN 202311556766A CN 117675072 A CN117675072 A CN 117675072A
Authority
CN
China
Prior art keywords
time
clock source
current
timer
synchronization
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.)
Pending
Application number
CN202311556766.3A
Other languages
English (en)
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.)
Shenzhen Mos Information Co ltd
Original Assignee
Shenzhen Mos Information 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 Shenzhen Mos Information Co ltd filed Critical Shenzhen Mos Information Co ltd
Priority to CN202311556766.3A priority Critical patent/CN117675072A/zh
Publication of CN117675072A publication Critical patent/CN117675072A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本申请涉及一种自适应外部时钟源的同步时间确定方法、时间同步装置、时间同步***和存储介质,包括:配置本地时钟源的定时器的基准计数频率和溢出值,并设置定时器在确定接收到外部时钟源的同步脉冲信号时或在计数溢出时进行复位计数;接收外部时钟源的当前同步脉冲信号;在当前同步脉冲信号无效时,获取本地时钟源的定时器的上次计数频率以及上次时间误差;获取本地时钟源的定时器的当前复位记录的本地时间以及当前计数值;根据定时器的上次计数频率、上次时间误差、当前复位记录的本地时间以及当前计数值确定同步时间。上述方法能够在外部时钟源出现时间抖动等异常情况时,校准同步时间,以避免***的时钟源出现时间抖动、时间回退等现象。

Description

同步时间确定方法及时间同步装置、时间同步***、介质
技术领域
本申请涉及时间同步处理技术领域,特别是涉及一种自适应外部时钟源的同步时间确定方法、时间同步装置、时间同步***和存储介质。
背景技术
目前国际上一般都采用全球卫星导航***(GNSS)作为外部时钟源,为各***提供统一的时间基准。GNSS时间同步技术是通过各自接收卫星信号来实现***间时间同步的技术,***间依托秒脉冲信号以及对应时间戳获得纳秒级别精度的统一时间。但是GNSS信号受环境影响较大,在有遮挡、有电磁干扰以及室内等卫星信号受限的场景下,卫星信号的质量下降或中断会导致***的时钟源出现时间抖动、时间回退等现象,从而造成***中各设备的数据出现相应的时间戳不连续、时间回退等情况。
发明内容
基于此,有必要针对上述技术问题,提供一种自适应外部时钟源的同步时间确定方法、时间同步装置、时间同步***和存储介质,能够在外部时钟源出现时间抖动等异常情况时,校准同步时间,以避免***的时钟源出现时间抖动、时间回退等现象。
一种自适应外部时钟源的同步时间确定方法,包括:配置本地时钟源的定时器的基准计数频率和溢出值,并设置定时器在确定接收到外部时钟源的同步脉冲信号时或在计数溢出时进行复位计数;接收外部时钟源的当前同步脉冲信号;在当前同步脉冲信号无效时,获取本地时钟源的定时器的上次计数频率,上次计数频率基于上次接收到有效的同步脉冲信号时定时器的计数值和外部时钟源的同步脉冲周期确定;获取本地时钟源的上次时间误差,上次时间误差基于上次接收到有效的同步脉冲信号时外部时钟源的外部时间与本地时钟源的本地时间的差值确定;获取本地时钟源的定时器的当前复位记录的本地时间以及当前计数值;根据定时器的上次计数频率、上次时间误差、当前复位记录的本地时间以及当前计数值确定同步时间。
在其中一个实施例中,一种自适应外部时钟源的同步时间确定方法还包括:获取定时器的当前复位记录的当前计数值以及定时器的上次计数值;若当前计数值与上次计数值的差值大于设定值时,确定当前同步脉冲信号无效;若当前计数值与上次的计数值的差值小于或等于设定值时,确定当前同步脉冲信号有效。
在其中一个实施例中,一种自适应外部时钟源的同步时间确定方法还包括:在当前同步脉冲信号有效时,根据当前计数值和外部时钟源的同步脉冲周期确定当前计数频率。
在其中一个实施例中,根据当前计数值和外部时钟源的同步脉冲周期确定当前计数频率,包括:根据当前计数值和外部时钟源的同步脉冲周期的比值,确定当前计数频率。
在其中一个实施例中,一种自适应外部时钟源的同步时间确定方法还包括:在当前同步脉冲信号有效时,获取外部时钟源的外部时间以及本地时钟源的本地时间;根据获取到的外部时钟源的外部时间以及本地时钟源的本地时间的差值确定当前时间误差。
在其中一个实施例中,根据定时器的上次计数频率、上次时间误差、当前复位记录的本地时间以及定时器的当前计数值确定同步时间,包括:获取定时器的当前计数值与定时器的上次计数频率的比值;获取比值与上次时间误差的乘积值;根据当前复位记录的本地时间、比值和乘积值确定同步时间。
在其中一个实施例中,根据当前复位记录的本地时间、比值和乘积值确定同步时间,包括:根据当前复位记录的本地时间、比值和乘积值的和值确定同步时间。
在其中一个实施例中,一种自适应外部时钟源的同步时间确定方法还包括:在当前同步脉冲信号有效时,获取外部时钟源的外部时间;将外部时钟源的外部时间作为同步时间。
在其中一个实施例中,定时器的溢出值大于外部时钟源的同步脉冲信号间隔的整数秒。
在其中一个实施例中,外部时钟源为全球卫星导航***,外部时钟源的同步脉冲信号为全球卫星导航***输出的秒脉冲信号,外部时钟源的外部时间为全球卫星导航***输出的整秒时间。
在其中一个实施例中,根据定时器的上次计数频率、上次时间误差、当前复位记录的本地时间以及当前计数值确定同步时间的步骤之后,还包括:若再次接收到的同步脉冲信号无效,则获取多个历史计数频率的均值,各历史计数频率基于历史接收到各个有效的同步脉冲信号时定时器的计数值和外部时钟源的同步脉冲周期确定,基于多个历史计数频率的均值更新定时器的基准计数频率;根据定时器的更新后的基准计数频率、定时器的再次复位记录的本地时间以及定时器的再次计数值确定同步时间,直至接收到有效的同步脉冲信号。
在其中一个实施例中,一种自适应外部时钟源的同步时间确定方法还包括:接收增量式编码器输出的首个脉冲信号;若首个脉冲信号为第一脉冲信号,则对增量式编码器输出的多个第一脉冲信号进行累计计数,在读取累计计数的计数值时,基于同步时间确定当前绝对时间,使用当前绝对时间对读取的计数值进行时间戳打标;若首个脉冲信号为第二脉冲信号,则对增量式编码器输出的多个第二脉冲信号进行累计计数,在读取累计计数的计数值时,基于同步时间确定当前绝对时间,使用当前绝对时间对读取的计数值进行时间戳打标;其中,第一脉冲信号和第二脉冲信号的相位差为90°。
在其中一个实施例中,一种自适应外部时钟源的同步时间确定方法还包括:通过输入捕获通道捕获脉冲传感器的采样脉冲时,基于同步时间确定第三当前绝对时间;若接收到脉冲传感器的采样数据,则在确认采样数据接收完成后,将第三当前绝对时间添加到采样数据的数据包中;若未接收到脉冲传感器的采样数据,则将第三当前绝对时间与脉冲传感器关联后输出。
在其中一个实施例中,一种自适应外部时钟源的同步时间确定方法还包括:在当前同步脉冲信号有效时,向秒脉冲自同步型传感器发送外部时钟源的外部时间;在当前同步脉冲信号无效时,向秒脉冲自同步型传感器发送同步时间;外部时钟源为全球卫星导航***,外部时钟源的同步脉冲信号为全球卫星导航***输出的秒脉冲信号,外部时钟源的外部时间为全球卫星导航***输出的整秒时间。
在其中一个实施例中,一种自适应外部时钟源的同步时间确定方法还包括:基于时间同步协议向支持时间同步协议的传感器发送同步时间,以使得支持时间同步协议的传感器基于同步时间进行数据包的时间戳同步。
一种自适应外部时钟源的时间同步装置,时间同步装置包括本地时钟源,本地时钟源为MCU时钟,MCU时钟配置有定时器以及温度补偿晶振,定时器外设的时钟频率由温度补偿晶振提供;MCU时钟还配置有处理器、存储器及存储在存储器上并可在处理器上运行的嵌入式程序,处理器执行嵌入式程序时实现上述实施例中任一项方法的步骤。
一种可读存储介质,其上存储有嵌入式程序,嵌入式程序被处理器执行时实现上述实施例中任一项方法的步骤。
一种自适应外部时钟源的时间同步***,包括上述实施例的时间同步装置,还包括一个或多个传感器,时间同步装置向一个或多个传感器发送同步时间;其中,一个或多个传感器包括增量式编码器、脉冲传感器、秒脉冲自同步型传感器以及支持时间同步协议的传感器中的一项或多项。
上述一种自适应外部时钟源的同步时间确定方法、时间同步装置、时间同步***和存储介质,配置本地时钟源的定时器的基准计数频率和溢出值,并设置定时器在确定接收到外部时钟源的同步脉冲信号时或在计数溢出时进行复位计数;接收外部时钟源的当前同步脉冲信号;在当前同步脉冲信号无效时,获取本地时钟源的定时器的上次计数频率,上次计数频率基于上次接收到有效的同步脉冲信号时定时器的计数值和外部时钟源的同步脉冲周期确定;获取本地时钟源的上次时间误差,上次时间误差基于上次接收到有效的同步脉冲信号时外部时钟源的外部时间与本地时钟源的本地时间的差值确定;获取本地时钟源的定时器的当前复位记录的本地时间以及当前计数值;根据定时器的上次计数频率、上次时间误差、当前复位记录的本地时间以及当前计数值确定同步时间。
因此,通过检测各个时刻接收到的外部时钟源的同步脉冲的有效性判断外部时钟源的时间稳定性,在检测到当前同步脉冲信号无效时,即外部时钟源的时间异常,基于本地时钟源的定时器的上次计数频率、上次时间误差、当前复位记录的本地时间以及当前计数值确定同步时间,实现自适应外部时钟源的同步时间,保证***的同步时间的准确性,避免***中各设备的数据因为外部时钟源的不稳定出现相应的时间戳不连续、时间回退等情况。
附图说明
图1为一个实施例中一种自适应外部时钟源的时间同步***的结构框图;
图2为一个实施例中一种自适应外部时钟源的时间同步装置的结构框图;
图3为一个实施例中一种自适应外部时钟源的时间同步装置的应用环境示意图;
图4为一个实施例中一种自适应外部时钟源的同步时间确定方法的流程示意图;
图5为一个实施例中GNSS时钟源输出的PPS脉冲信号和整秒时间的时序图;
图6为一个实施例中定时器的计数与GNSS时钟源的PPS信号的关系示意图;
图7为一个实施例中对增量式编码器输出的脉冲信号进行同步时间打戳的示意图;
图8为一个实施例中对脉冲传感器输出的采样数据进行同步时间打戳的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的一种自适应外部时钟源的时间同步***。在一个实施例中,如图1所示,一种自适应外部时钟源的时间同步***包括自适应外部时钟源的时间同步装置,还包括一个或多个传感器,时间同步装置向一个或多个传感器发送同步时间;其中,一个或多个传感器包括增量式编码器、脉冲传感器、秒脉冲自同步型传感器以及支持时间同步协议的传感器中的一项或多项。
在一示例中,上述自适应外部时钟源的时间同步装置包括本地时钟源,本地时钟源为MCU时钟。MCU:Microcontroller Unit,微控制单元,又称单片微型计算机或者单片机。如图2所示,MCU时钟配置有定时器以及温度补偿晶振,定时器外设的时钟频率由温度补偿晶振提供;MCU时钟还配置有处理器、存储器及存储在存储器上并可在处理器上运行的嵌入式程序,处理器执行嵌入式程序时实现本申请的一种自适应外部时钟源的同步时间确定方法。其中,如图2所示,温度补偿晶振通过处理器为同步时钟装置提供统一的时钟源。
具体地,时间同步装置如图3所示。外部时钟源为GNSS(全球卫星导航***)时钟源。使用GNSS时钟源输出的秒脉冲信号(PPS,理论上每两个PPS之间的时间间隔为标准的1秒)及时间信息为时间同步装置提供准确的时间源,时间同步装置中采用MCU内部的硬件定时器维护本地时间,定时器外设的时钟频率由MCU的高精度温度补偿晶振提供,用于实现高精度的计时。同时不断测量GNSS时间,并且判断GNSS时间的有效性。当GNSS时间有效时,以GNSS时间为参考对本地时间进行修正,当GNSS时间存在波动或无效时使用***上一时刻修正好的本地时间来维持。修正后的时间为同步时间,用于维护1588同步的主时钟,以及为外部传感器提供稳定的同步时钟源。
时间同步装置的时钟源自适应切换具体为:时钟源自适应切换是在GNSS的PPS信号工作稳定时,使用GNSS时间作为时间同步装置的时钟源,为自身***及外部传感器提供准确时间来源,而当PPS信号工作不稳定时切换到使用MCU内部时钟提供准确时间来源,MCU内部时钟则以前一个PPS信号稳定时刻的计数频率运行,直到PPS信号恢复正常后切换回GNSS时钟源,具体可参照以下一种自适应外部时钟源的同步时间确定方法的具体说明。
上述一种自适应外部时钟源的时间同步装置及其时间同步***,可以应用于自动驾驶、移动测绘以及其它需要多传感器或多***协同工作的应用场景中。由于不同类别和型号的传感器或设备的时钟***各自独立,并且其数据输出延迟、数据帧率、数据长度等千差万别,各种数据的组织、处理以及协同就必须依托一个统一的同步时间。采用统一的同步时间作为基准对各传感器或设备进行同步,并根据同步后的时序输出带时间戳的数据将极大减轻后续匹配及协同等工作的复杂度。上述一种自适应外部时钟源的时间同步装置及其时间同步***,能够尽可能提升同步时间的精度,有助于提升各传感器或设备的数据精度或***工作的协调程度。
在一个实施例中,如图4所示,提供了一种自适应外部时钟源的同步时间确定方法,以该方法应用于图2中的MCU时钟为例进行说明,包括以下步骤:
S402,配置本地时钟源的定时器的基准计数频率和溢出值,并设置定时器在确定接收到外部时钟源的同步脉冲信号时或在计数溢出时进行复位计数。
本实施例中,本地时钟源的定时器的基准计数频率指周期内定时器的计数值,用于产生本地时钟源的本地时间。溢出指定时器的计数值达到设定的特定值时触发微控制器的中断处理程序,从零重新开始计数。本地时钟源的定时器的溢出值为定时器的计数阈值。即,定时器的计数达到溢出值时重新计数。此外,配置定时器,在确定接收到外部时钟源的同步脉冲信号时或在计数溢出时进行复位计数。即,在接收到外部时钟源的同步脉冲信号时,定时器进行复位操作,重新计数。或,定时器的计数达到溢出值时进行计数溢出,进行复位操作,重新计数。在一示例中,定时器的溢出值大于外部时钟源的同步脉冲信号间隔的整数秒。
具体地,外部时钟源为GNSS时钟源,同步脉冲信号为PPS脉冲信号。设置自适应外部时钟源的时间同步装置中MCU时钟的32位定时器的计数频率为90M,那么默认情况下定时器的基准计数频率也为90M,即计数的分辨率为1/90M每秒,表示每次计数代表11.1纳秒。设置溢出值为180M,则理论上定时器溢出时间为2秒,即计满180M个数。设置定时器在有效的接收到外部时钟源的同步脉冲信号到来或计数溢出后复位计数值,因此每次当接收到外部时钟源的同步脉冲信号来临时,理论上定时器计数复位之前的计数值应该为90M,但实际上可能因为***晶振等的误差导致每个接收到外部时钟源的同步脉冲信号来临时定时器实际计数可能超过或小于90M,这个计数误差即为装置的时钟误差。
S404,接收外部时钟源的当前同步脉冲信号。
本实施例中,配置本地时钟源的定时器之后,配置有MCU时钟的***开始接收外部时钟源的同步脉冲信号。一般情况下,外部时钟源的同步脉冲信号为有效信号,但遇到干扰情况下,外部时钟源的同步脉冲信号为无效信号。将当前时刻接收到的同步脉冲信号作为外部时钟源的当前同步脉冲信号。
S406,在当前同步脉冲信号无效时,获取本地时钟源的定时器的上次计数频率,上次计数频率基于上次接收到有效的同步脉冲信号时定时器的计数值和外部时钟源的同步脉冲周期确定。
本实施例中,对当前同步脉冲信号进行有效性判断。在当前同步脉冲信号无效时,需要自适应外部时钟源进行同步时间的调整。具体地,获取本地时钟源的定时器的上次计数频率。上次计数频率指前次接收到有效的同步脉冲信号时基于定时器的计数值和外部时钟源的同步脉冲周期计算得到的计数频率。
在一个示例中,上述步骤S406之前或之后,还包括:在当前同步脉冲信号有效时,获取外部时钟源的外部时间;将外部时钟源的外部时间作为同步时间。
本示例中,在当前同步脉冲信号有效时,说明外部时钟源的时间信号稳定。由此,可将外部时钟源的外部时间作为同步时间。可以是,外部时钟源为全球卫星导航***,外部时钟源的同步脉冲信号为全球卫星导航***输出的秒脉冲信号,外部时钟源的外部时间为全球卫星导航***输出的整秒时间。
具体地,外部时钟源的外部时间为GNSS时钟源输出的整秒时间信息。GNSS时钟源输出的PPS脉冲信号和整秒时间信息分别引入时间同步装置的外部输入中断和UART接口。输入中断检测PPS脉冲信号的前边沿,代表GNSS时钟源的整秒时刻,时间数据包会在每个PPS脉冲之后发出,包含前面PPS对应的实际时间,数据包时间格式可以是UTC、unix或者周内秒等形式,时序如图5所示。
S408,获取本地时钟源的上次时间误差,上次时间误差基于上次接收到有效的同步脉冲信号时外部时钟源的外部时间与本地时钟源的本地时间的差值确定。
本实施例中,本地时钟源的上次时间误差为前次接收到有效的同步脉冲信号时基于外部时钟源的外部时间与本地时钟源的本地时间的差值。例如,采用全球卫星导航***作为外部时钟源为各传感器或***提供统一的时间基准时,外部时钟源的外部时间指的是GNSS时钟源输出的整秒时间。本地时钟源的本地时间指的本地时钟源的定时器确定的时间。
S410,获取本地时钟源的定时器的当前复位记录的本地时间以及当前计数值。
本实施例中,在当前同步脉冲信号无效时,定时器计数达到溢出值时发生溢出中断,复位计数。定时器输出当前复位记录的本地时间以及当前计数值。例如,采用全球卫星导航***作为外部时钟源,外部时钟源的同步脉冲信号为GNSS时钟源输出的秒脉冲信号。定时器的计数与GNSS时钟源的PPS信号的关系如图6所示。
如图6所示,cnt_T(overflow)表示定时器溢出中断时定时器的计数。cnt_T(0)表示0时刻定时器的计数。cnt_T(1)表示1时刻定时器的计数。cnt_T(n)表示n时刻定时器的计数,n为正整数。cnt_T(n+1)表示n+1时刻定时器的计数。t(0)表示0时刻。t(1)表示1时刻。t(n)表示n时刻。t(n+1)表示n+1时刻。其中,GNSS脉冲信号为PPS脉冲信号。如图6所示,在GNSS脉冲信号无效时,定时器溢出并输出计数值以及本地时间。
S412,根据定时器的上次计数频率、上次时间误差、当前复位记录的本地时间以及当前计数值确定同步时间。
本实施例中,由于当前同步脉冲信号无效,无法使用外部时钟源进行时间同步。此种情况下,利用定时器的上次计数频率以及上次时间误差,结合定时器的当前复位记录的本地时间以及当前计数值确定同步时间。
在一个示例中,根据定时器的上次计数频率、上次时间误差、当前复位记录的本地时间以及定时器的当前计数值确定同步时间,包括:获取定时器的当前计数值与定时器的上次计数频率的比值;获取比值与上次时间误差的乘积值;根据当前复位记录的本地时间、比值和乘积值确定同步时间。
其中,根据当前复位记录的本地时间、比值和乘积值确定同步时间,包括:根据当前复位记录的本地时间、比值和乘积值的和值确定同步时间。
具体地,根据下述公式计算同步时间:
其中,tn(modify)表示以外部时钟源为参考的本地校准后的同步时间;T(frequency)表示定时器的计数频率;t(timerstart)表示定时器每次复位时刻记录的本地时间;cnt表示定时器的计数值;time(err)表示时间误差。使用上述公式计算同步时间时,T(frequency)采用上次计数频率,time(err)采用上次时间误差,cnt采用当前定时器复位时的计数值,t(timerstart)采用当前定时器复位时记录的时间。因此,每个时刻通过上一时刻的计数频率以及时间误差,以及当前时刻的定时器记录的本地时间和计数值,即可确定出本地的同步时间,以解决任一时刻外部时钟源的时间异常引起本地同步时间的异常问题。
上述一种自适应外部时钟源的同步时间确定方法,通过检测各个时刻接收到的外部时钟源的同步脉冲的有效性判断外部时钟源的时间稳定性,在检测到当前同步脉冲信号无效时,即外部时钟源的时间异常,基于本地时钟源的定时器的上次计数频率、上次时间误差、当前复位记录的本地时间以及当前计数值确定同步时间,实现自适应外部时钟源的同步时间,保证***的同步时间的准确性,避免***中各设备的数据因为外部时钟源的不稳定出现相应的时间戳不连续、时间回退等情况。
在一个实施例中,上述步骤S406之前,还包括:获取定时器的当前复位记录的当前计数值以及定时器的上次计数值;若当前计数值与上次计数值的差值大于设定值时,确定当前同步脉冲信号无效;若当前计数值与上次的计数值的差值小于或等于设定值时,确定当前同步脉冲信号有效。
本实施例中,通过相邻同步脉冲之间定时器的计数值对同步脉冲的有效性进行判断。具体地,若当前计数值与上次计数值的差值大于设定值时,确定当前同步脉冲信号无效;若当前计数值与上次的计数值的差值小于或等于设定值时,确定当前同步脉冲信号有效。例如,同步脉冲为PPS脉冲,获取PPS脉冲之间的定时器实际计数值,若当前计数值与上次计数值的差值≤2个计数值,则当前PPS脉冲有效,GNSS信号稳定;若当前计数值与上次的计数值的差值超过3个计数值,则认为当前PPS脉冲无效,GNSS信号抖动,说明PPS信号不稳定。因此,能够通过定时器的计数值识别出外部时钟源的稳定性。
在一个示例中,在当前同步脉冲信号有效时,根据当前计数值和外部时钟源的同步脉冲周期确定当前计数频率。其中,根据当前计数值和外部时钟源的同步脉冲周期确定当前计数频率,包括:根据当前计数值和外部时钟源的同步脉冲周期的比值,确定当前计数频率。
具体地,在当前同步脉冲信号有效时,通过下述公式计算当前计数频率:
T1(frequency)=cnt_T(n)/同步脉冲周期;
其中,T1(frequency)表示当前计数频率,cnt_T为定时器复位时的当前计数值。
因此,在当前同步脉冲信号有效时,确定当前计数频率,以便于在下一次接收到同步脉冲信号时,若接收到的同步脉冲信号无效,则可使用当前计数频率计算下一次同步脉冲信号无效时的同步时间。
在一个示例中,在当前同步脉冲信号有效时,获取外部时钟源的外部时间以及本地时钟源的本地时间;根据获取到的外部时钟源的外部时间以及本地时钟源的本地时间的差值确定当前时间误差。
例如,本地时间可通过如下计算方式抓取:
其中,t(raw)指定时器计数cnt对应的本地时间,t(timerstart)指定时器每次复位时刻记录的本地时间,T(frequency)表示定时器的计数频率,即实际中定时器一秒计数的个数,cnt指定时器的计数。
例如,外部时钟源为GNSS,外部时间为GNSS对应的整秒时间,同步脉冲为PPS脉冲。当有外部输入中断检测到PPS脉冲信号后进行以下操作:
(1)获取PPS脉冲来临时刻本地时间:t(raw)
(2)获取PPS脉冲之间的定时器计数,若PPS稳定,即当次计数值与上次计数值偏差≤2个计数值,则将定时器的计数频率T(frequency)更新为实际测量到的计数频率;
(3)复位定时器的计数,更新定时器计时的本地时间t(timerstart)=t(raw)
(4)记录本次PPS脉冲对应的整秒时间t(n)
(5)计算本地时间与GNSS时间的偏差:
time(err)=t(n)-t(raw)
即,通过公式time(err)=t(n)-t(raw)确定各个时刻的时间误差,即可确定出当前时间误差。因此,能够在外部时钟源的时间信号稳定的情况下,计算本地时间和外部时间的时间误差,从而为下次外部时钟源的时间信号不稳定时,使用本次计算的时间误差计算同步时间。
在一个实施例中,上述根据定时器的上次计数频率、上次时间误差、当前复位记录的本地时间以及当前计数值确定同步时间的步骤之后,还包括:若再次接收到的同步脉冲信号无效,则获取多个历史计数频率的均值,各历史计数频率基于历史接收到各个有效的同步脉冲信号时定时器的计数值和外部时钟源的同步脉冲周期确定,基于多个历史计数频率的均值更新定时器的基准计数频率;根据定时器的更新后的基准计数频率、定时器的再次复位记录的本地时间以及定时器的再次计数值确定同步时间,直至接收到有效的同步脉冲信号。
本实施例中,若后续再次接收到的同步脉冲信号也为无效信号,则将定时器的基准计数频率更新为多个历史计数频率的均值,并以更新后的基准计数频率计算同步时间,从而避免外部时钟源的时间信号长时间不稳定时造成***内部的本地同步时间不稳定。
例如,外部时钟源为GNSS时钟源,同步脉冲信号为PPS脉冲信号。在PPS脉冲信号不稳定时定时器进入溢出中断模式,并进行以下操作:
(1)记录本地定时器溢出时定时器记录的时间t(raw)
(2)复位定时器;
(3)在定时器溢出中断中更新定时器计时的起始时间t(timerstart)=t(raw)
(4)忽略本地时间与GNSS时间的偏差,更新time(err)=0;
(5)设置定时器的计数频率T(frequency)为PPS脉冲信号工作异常前3秒的平均值,即,PPS脉冲信号无效前3秒的平均值,并保持不变,直到同步脉冲信号判定为正常时为止。
在一个实施例中,上述步骤S312,即根据定时器的上次计数频率、上次时间误差、当前复位记录的本地时间以及当前计数值确定同步时间的步骤之后,还包括:接收增量式编码器输出的首个脉冲信号;若首个脉冲信号为第一脉冲信号,则对增量式编码器输出的多个第一脉冲信号进行累计计数,在读取累计计数的计数值时,基于同步时间确定当前绝对时间,使用当前绝对时间对读取的计数值进行时间戳打标;若首个脉冲信号为第二脉冲信号,则对增量式编码器输出的多个第二脉冲信号进行累计计数,在读取累计计数的计数值时,基于同步时间确定当前绝对时间,使用当前绝对时间对读取的计数值进行时间戳打标;其中,第一脉冲信号和第二脉冲信号的相位差为90°。
本实施例中,对于增量式编码器,在确定出同步时间之后,为接入时间同步装置的不同类型传感器进行时间同步操作。其中,对于增量式编码器,如图7所示,其输出相位不同的两路脉冲信号,可以指示旋转方向,两路脉冲信号同时接入时间同步装置中额外已经配置为编码器模式的定时器接口,对增量式编码器的脉冲进行累计计数,计数初始值为0,之后根据增量式编码器实际旋转方向累计值逐个增加或减小。如图7所示,第一脉冲信号为A相脉冲,第二脉冲信号为B相脉冲。若A相脉冲相位超前则计数累计增加,若B相脉冲相位超前则计数累计减少,同时记录截止计数时即读取计数值时的绝对时间以完成对增量式编码器的时间戳同步,输出时间间隔越短,即读取计数值的间隔越短,分辨率越高。
在一个实施例中,上述步骤S312,即根据定时器的上次计数频率、上次时间误差、当前复位记录的本地时间以及当前计数值确定同步时间的步骤之后,还包括:通过输入捕获通道捕获脉冲传感器的采样脉冲时,基于同步时间确定第三当前绝对时间;若接收到脉冲传感器的采样数据,则在确认采样数据接收完成后,将第三当前绝对时间添加到采样数据的数据包中;若未接收到脉冲传感器的采样数据,则将第三当前绝对时间与脉冲传感器关联后输出。
本实施例中,在确定出同步时间之后,为接入时间同步装置的不同类型传感器进行时间同步操作。其中,对于脉冲传感器,即采样脉冲+采样数据类型传感器,此类型传感器发出/接收采样脉冲,同时输出采样脉冲时刻的采样数据。如图8所示,为了更加精确的计算出脉冲的时间,需要将脉冲传感器采样脉冲连接在时间同步装置的输入捕获通道上,在采样脉冲到来时同步装置就会自动将当前时定时器的计数值捕获在时间同步装置的内部寄存器中。在采样数据接收完成后,通过捕获到的定时器数据计算出采样脉冲对应的同步时间并添加在采样数据的数据包中;对于只有采样脉冲而无采样数据的传感器,时间同步装置则直接将采样时刻的时间戳输出,完成对采样脉冲的时间戳同步。
在一个实施例中,上述步骤S312,即根据定时器的上次计数频率、上次时间误差、当前复位记录的本地时间以及当前计数值确定同步时间的步骤之后,还包括:在当前同步脉冲信号有效时,向秒脉冲自同步型传感器发送外部时钟源的外部时间;在当前同步脉冲信号无效时,向秒脉冲自同步型传感器发送同步时间;外部时钟源为全球卫星导航***,外部时钟源的同步脉冲信号为全球卫星导航***输出的秒脉冲信号,外部时钟源的外部时间为全球卫星导航***输出的整秒时间。
本实施例中,在确定出同步时间之后,为接入时间同步装置的不同类型传感器进行时间同步操作。其中,对于秒脉冲自同步型传感器,此类型传感器可以直接连接GNSS的PPS信号和接收同步时间,以用于自身时间同步,但是受GNSS可能存在信号不稳定等的影响,可能会存在GNSS信号丢失时秒脉冲自同步型传感器的时钟***与其他传感器之间存在越来越大的偏差。在当前同步脉冲信号有效时,向秒脉冲自同步型传感器发送外部时钟源的外部时间;在当前同步脉冲信号无效时,向秒脉冲自同步型传感器发送同步时间。因此,对于GNSS信号异常情形下,特别对于无GNSS情况下的多传感器之间,保证了秒脉冲自同步型传感器的同步信号的连续可靠稳定。
在一个实施例中,上述步骤S312,即根据定时器的上次计数频率、上次时间误差、当前复位记录的本地时间以及当前计数值确定同步时间的步骤之后,还包括:基于时间同步协议向支持时间同步协议的传感器发送同步时间,以使得支持时间同步协议的传感器基于同步时间进行数据包的时间戳同步。
本实施例中,在确定出同步时间之后,为接入时间同步装置的不同类型传感器进行时间同步操作。其中,对于支持时间同步协议的传感器,如支持网口PTP同步协议的传感器,依托GNSS或内部同步时间同时维护了一个稳定的PTP主时钟。本实施例中,基于时间同步协议向支持时间同步协议的传感器发送同步时间,以使得支持时间同步协议的传感器基于同步时间进行数据包的时间戳同步,对PTP(Precision Time Protocol,IEEE 1588精确时间协议)时间同步协议进行了实现,可以为支持PTP协议的传感器实现数据包的时间戳同步,保证支持时间同步协议的传感器与其他传感器处于同一个时钟***下。
综上,上述一种自适应外部时钟源的同步时间确定方法、时间同步装置、时间同步***和存储介质,带来的有益效果包括:
1、定时器的溢出值设置为大于外部时钟源的同步脉冲信号间隔的整数秒,如大于PPS脉冲信号的整秒数,这样在GNSS信号正常时,不会触发定时器溢出中断,不仅节省了中断开销,还避免了PPS脉冲信号和定时器的中断嵌套问题,提高了本地时钟与GNSS时钟的同步精度。
2、通过PPS脉冲周期变化判定GNSS时钟源是否健康、稳定,在GNSS时钟源不稳定时自适应切换使用以内部高精度温补晶振为基础的时钟电路维持的时间***,即使用本地计算得到的同步时间。在室内、隧道等无GNSS信号的情况下,可以继续维持较高的时间精度,避免了直接使用GNSS校准时间存在时间抖动的情况,在一定程度上解决了GNSS信号干扰或失效的问题。
3、对本地时间与GNSS的整秒时间已有的偏差使用均匀拟合的方式。即,将定时器的实际频率和理论频率做了比例映射处理,解决本地时钟频率与理论频率的误差问题,所以本地时间***的连续性和稳定性与GNSS时间的同步精度都得到了保证。经过验证,本地时间与GNSS时间同步精度可以达到±200ns。
4、时间同步装置可以为多路传感器添加时间戳,且因采用了输入捕获的技术,每一路脉冲触发相互独立互不干扰,相比较一般的在中断中添加时间戳的方式精度上得到了很大提升。并且,以较低的成本就实现了较高性能。
5、具有添加时间戳、PTP网络校时、PPS和UTC时间校时等多种时间同步方式,且同步精度高,经测试时间同步装置的同步精度可达到ns级,可满足大多对时间同步精度要求教高的使用场景。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,附图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种可读存储介质,其上存储有嵌入式程序,嵌入式程序被处理器执行时实现上述任一实施例所述的一种自适应外部时钟源的同步时间确定方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过嵌入式程序来指令相关的硬件来完成,所述的嵌入式程序可存储于一非易失性计算机可读取存储介质中,该嵌入式程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (18)

1.一种自适应外部时钟源的同步时间确定方法,其特征在于,所述方法包括:
配置本地时钟源的定时器的基准计数频率和溢出值,并设置所述定时器在确定接收到外部时钟源的同步脉冲信号时或在计数溢出时进行复位计数;
接收所述外部时钟源的当前同步脉冲信号;
在所述当前同步脉冲信号无效时,获取所述本地时钟源的定时器的上次计数频率,所述上次计数频率基于上次接收到有效的同步脉冲信号时定时器的计数值和所述外部时钟源的同步脉冲周期确定;
获取本地时钟源的上次时间误差,所述上次时间误差基于所述上次接收到有效的同步脉冲信号时所述外部时钟源的外部时间与所述本地时钟源的本地时间的差值确定;
获取所述本地时钟源的定时器的当前复位记录的本地时间以及当前计数值;
根据所述定时器的上次计数频率、所述上次时间误差、当前复位记录的本地时间以及当前计数值确定同步时间。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述定时器的当前复位记录的当前计数值以及所述定时器的上次计数值;
若所述当前计数值与所述上次计数值的差值大于设定值时,确定所述当前同步脉冲信号无效;
若所述当前计数值与所述上次的计数值的差值小于或等于设定值时,确定所述当前同步脉冲信号有效。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述当前同步脉冲信号有效时,根据所述当前计数值和所述外部时钟源的同步脉冲周期确定当前计数频率。
4.根据权利要求3所述的方法,其特征在于,所述根据所述当前计数值和所述外部时钟源的同步脉冲周期确定当前计数频率,包括:
根据所述当前计数值和所述外部时钟源的同步脉冲周期的比值,确定所述当前计数频率。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述当前同步脉冲信号有效时,获取所述外部时钟源的外部时间以及所述本地时钟源的本地时间;
根据获取到的外部时钟源的外部时间以及本地时钟源的本地时间的差值确定当前时间误差。
6.根据权利要求1所述的方法,其特征在于,所述根据所述定时器的上次计数频率、所述上次时间误差、当前复位记录的本地时间以及所述定时器的当前计数值确定同步时间,包括:
获取所述定时器的当前计数值与所述定时器的上次计数频率的比值;
获取所述比值与所述上次时间误差的乘积值;
根据所述当前复位记录的本地时间、所述比值和所述乘积值确定同步时间。
7.根据权利要求6所述的方法,其特征在于,所述根据所述当前复位记录的本地时间、所述比值和所述乘积值确定同步时间,包括:
根据所述当前复位记录的本地时间、所述比值和所述乘积值的和值确定同步时间。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述当前同步脉冲信号有效时,获取所述外部时钟源的外部时间;
将所述外部时钟源的外部时间作为所述同步时间。
9.根据权利要求1所述的方法,其特征在于,所述定时器的溢出值大于外部时钟源的同步脉冲信号间隔的整数秒。
10.根据权利要求1-9中任一项所述的方法,其特征在于,所述外部时钟源为全球卫星导航***,所述外部时钟源的同步脉冲信号为所述全球卫星导航***输出的秒脉冲信号,所述外部时钟源的外部时间为所述全球卫星导航***输出的整秒时间。
11.根据权利要求1所述的方法,其特征在于,所述根据所述定时器的上次计数频率、所述上次时间误差、当前复位记录的本地时间以及当前计数值确定同步时间的步骤之后,还包括:
若再次接收到的同步脉冲信号无效,则获取多个历史计数频率的均值,各历史计数频率基于历史接收到各个有效的同步脉冲信号时定时器的计数值和所述外部时钟源的同步脉冲周期确定,基于所述多个历史计数频率的均值更新所述定时器的基准计数频率;
根据所述定时器的更新后的基准计数频率、所述定时器的再次复位记录的本地时间以及所述定时器的再次计数值确定同步时间,直至接收到有效的同步脉冲信号。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收增量式编码器输出的首个脉冲信号;
若所述首个脉冲信号为第一脉冲信号,则对所述增量式编码器输出的多个第一脉冲信号进行累计计数,在读取累计计数的计数值时,基于所述同步时间确定当前绝对时间,使用所述当前绝对时间对读取的计数值进行时间戳打标;
若所述首个脉冲信号为第二脉冲信号,则对所述增量式编码器输出的多个第二脉冲信号进行累计计数,在读取累计计数的计数值时,基于所述同步时间确定当前绝对时间,使用所述当前绝对时间对读取的计数值进行时间戳打标;
其中,所述第一脉冲信号和所述第二脉冲信号的相位差为90°。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过输入捕获通道捕获所述脉冲传感器的采样脉冲时,基于所述同步时间确定第三当前绝对时间;
若接收到所述脉冲传感器的采样数据,则在确认所述采样数据接收完成后,将所述第三当前绝对时间添加到所述采样数据的数据包中;
若未接收到所述脉冲传感器的采样数据,则将所述第三当前绝对时间与所述脉冲传感器关联后输出。
14.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述当前同步脉冲信号有效时,向秒脉冲自同步型传感器发送所述外部时钟源的外部时间;
在所述当前同步脉冲信号无效时,向秒脉冲自同步型传感器发送所述同步时间;
所述外部时钟源为全球卫星导航***,所述外部时钟源的同步脉冲信号为所述全球卫星导航***输出的秒脉冲信号,所述外部时钟源的外部时间为所述全球卫星导航***输出的整秒时间。
15.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于时间同步协议向支持所述时间同步协议的传感器发送所述同步时间,以使得支持所述时间同步协议的传感器基于所述同步时间进行数据包的时间戳同步。
16.一种自适应外部时钟源的时间同步装置,其特征在于,所述时间同步装置包括本地时钟源,所述本地时钟源为MCU时钟,所述MCU时钟配置有定时器以及温度补偿晶振,所述定时器外设的时钟频率由所述温度补偿晶振提供;所述MCU时钟还配置有处理器、存储器及存储在存储器上并可在处理器上运行的嵌入式程序,所述处理器执行所述嵌入式程序时实现权利要求1至15中任一项所述方法的步骤。
17.一种可读存储介质,其上存储有嵌入式程序,其特征在于,所述嵌入式程序被处理器执行时实现权利要求1至15中任一项所述方法的步骤。
18.一种自适应外部时钟源的时间同步***,其特征在于,包括权利要求16所述的时间同步装置,还包括一个或多个传感器,所述时间同步装置向所述一个或多个传感器发送同步时间;
其中,一个或多个传感器包括增量式编码器、脉冲传感器、秒脉冲自同步型传感器以及支持时间同步协议的传感器中的一项或多项。
CN202311556766.3A 2023-11-21 2023-11-21 同步时间确定方法及时间同步装置、时间同步***、介质 Pending CN117675072A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311556766.3A CN117675072A (zh) 2023-11-21 2023-11-21 同步时间确定方法及时间同步装置、时间同步***、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311556766.3A CN117675072A (zh) 2023-11-21 2023-11-21 同步时间确定方法及时间同步装置、时间同步***、介质

Publications (1)

Publication Number Publication Date
CN117675072A true CN117675072A (zh) 2024-03-08

Family

ID=90083673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311556766.3A Pending CN117675072A (zh) 2023-11-21 2023-11-21 同步时间确定方法及时间同步装置、时间同步***、介质

Country Status (1)

Country Link
CN (1) CN117675072A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118019099A (zh) * 2024-04-08 2024-05-10 福州马尾区金桐科技有限公司 一种提高精度的无线时间同步方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104330082A (zh) * 2014-10-22 2015-02-04 哈尔滨工程大学 一种mems/gnss组合导航***实时数据同步方法
CN109425844A (zh) * 2017-08-30 2019-03-05 北京智云芯科技有限公司 一种数据采样的校准方法和***
CN113572556A (zh) * 2021-06-18 2021-10-29 深圳市道通智能汽车有限公司 一种时间同步方法、传感器及***
US20220397869A1 (en) * 2021-06-09 2022-12-15 Black Sesame Technologies Inc. Method, device, equipment and storage medium for global navigation satellite system time synchronization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104330082A (zh) * 2014-10-22 2015-02-04 哈尔滨工程大学 一种mems/gnss组合导航***实时数据同步方法
CN109425844A (zh) * 2017-08-30 2019-03-05 北京智云芯科技有限公司 一种数据采样的校准方法和***
US20220397869A1 (en) * 2021-06-09 2022-12-15 Black Sesame Technologies Inc. Method, device, equipment and storage medium for global navigation satellite system time synchronization
CN113572556A (zh) * 2021-06-18 2021-10-29 深圳市道通智能汽车有限公司 一种时间同步方法、传感器及***

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118019099A (zh) * 2024-04-08 2024-05-10 福州马尾区金桐科技有限公司 一种提高精度的无线时间同步方法
CN118019099B (zh) * 2024-04-08 2024-06-04 福州马尾区金桐科技有限公司 一种提高精度的无线时间同步方法

Similar Documents

Publication Publication Date Title
US9671761B2 (en) Method, time consumer system, and computer program product for maintaining accurate time on an ideal clock
US6535926B1 (en) Time synchronization system for industrial control network using global reference pulses
CN108923876B (zh) 时间同步方法、装置及***
US11994896B2 (en) Maintaining the correct time when counter values are transferred between clock domains
US7379480B2 (en) Fast frequency adjustment method for synchronizing network clocks
US8391270B2 (en) Network synchronization with reduced energy consumption
US20090086764A1 (en) System and method for time synchronization on network
US9763207B2 (en) Timing synchronization device and timing synchronization control method
CN117675072A (zh) 同步时间确定方法及时间同步装置、时间同步***、介质
EP2811672A1 (en) Communication apparatus, communication system, and communication method for time synchronization
WO2017063450A1 (zh) 一种时间戳过滤的方法及装置
KR20160078893A (ko) 반도체 장치, 전자 디바이스ㆍ모듈 및 네트워크 시스템
US10853288B2 (en) Bus system
CN114586297B (zh) 一种同步方法及设备
JP2011185731A (ja) 時刻同期装置およびその時刻同期補正方法
JP4827866B2 (ja) パケット監視装置
JP2011122983A (ja) 時刻同期装置およびその時刻同期補正方法
US10222786B2 (en) Numerical control system having synchronous control function between units
TWI618432B (zh) 頻率校正裝置及方法
US11664969B2 (en) Communication apparatus, method of controlling communication apparatus, and storage medium
CN112286034B (zh) 一种整车数据时间同步方法、装置、电子设备及存储介质
KR20170058629A (ko) 디바이스 간의 시각 동기 정밀도를 향상시키는 방법, 장치, 시스템 및 컴퓨터 프로그램
EP2398173A1 (en) Remote I/O system and synchronization method in the same
US20240171295A1 (en) Communication apparatus, control method for communication apparatus, and storage medium
JP6208712B2 (ja) 時刻同期方法および時刻同期装置

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