一种计算机同步时钟的UTC时间计算方法
技术领域
本发明涉及计算机同步和守时方法,特别涉及一种计算机同步时钟的UTC时间计算方法。
背景技术
近年来,基于接收机的守时授时技术非常普及,接收机具有表征UTC时间的秒脉冲,但是在导航领域还面临多传感器数据的采样同步性问题,以秒脉冲作为同步基准不能满足采样和解算的需求,这就需要带有UTC时间的高频率同步时钟。一种主流的做法是采用可驯服晶振,利用秒脉冲驯服晶振后将UTC时间传递给晶振分频出的同步时钟。但可驯服晶振会带来体积功耗的增大以及可靠性的降低。
发明内容
本发明解决的技术问题为:提供一种体积小、功耗少、可靠性高的计算机同步时钟UTC时间计算方法。
本发明的技术方案:一种计算机同步时钟的UTC时间计算方法,其特征在于所述的方法包括如下步骤:
步骤一,获取表征UTC时间的秒脉冲,同时获取计算机同步时钟;
步骤二,实时计算最新一拍表征UTC时间的秒脉冲与最新一拍同步时钟的时间差Δt;
步骤三,根据以下公式计算当前同步时钟的UTC时间Tn
Tn=Tpps+Δt
其中,Tpps为秒脉冲对应UTC时间。n为获取到Tpps的当前同步时钟及之后的计数值,n=0,1,2,3……。
优选地,所述的方法还包括如下内容:
同步时钟计算得到UTC时间后,新获取的Tpps无效或收不到新的秒脉冲时,引入稳定的晶振源,通过以下公式得到Tn的修正量ΔT:
ΔT=N钟×T钟-N×T同
其中,N钟为单位时间内晶振源的脉冲数;T钟为晶振源的脉冲周期;N为单位时间内同步时钟的脉冲数,T同为同步时钟的周期,N×T同可以依据补偿间隔选取需要的数值。
根据以下公式计算修正后的当前同步时钟的UTC时间Tnx
Tnx=Tn+ΔT
该措施可以在外部UTC时钟源失效条件下利用稳定晶振源继续完成同步时钟的UTC时间推算,提高守时可靠性。
优选地,所述的晶振源为原子钟。其晶振稳定度和重复性高。
优选地,步骤二中当最新一拍表征UTC时间的秒脉冲与最新一拍同步时钟的时间差Δt大于1.5S时,Δt清零,自下一拍秒脉冲重新计算。该措施可以避免计数溢出导致的运算错误。
本发明的有益效果:与现有技术相比,该方法不依赖可驯服晶振,利用普通晶振即可实现计算机同步时钟的UTC时间的获取,降低了体积和功耗;且同时可以利用秒脉冲和稳定晶振源互补完成守时修正,具有更高的可靠性。
附图说明
图1本发明的流程图;
图2计算过程中的变量示意;
图3施例1的硬件数据流;
图4施例2的硬件数据流。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
实施例1
如图3所示,一种计算机系统,包括一个处理器板,一个接口板,一个接收机和一个铷原子钟。处理器板晶振分频出的同步时钟400Hz上升沿是数据采样和解算的基准,该同步时钟传递给接口板。
接收机会产生UTC整秒脉冲及对应的UTC时间,接口板通过422差分电平获取秒脉冲后触发内部计数器,计数器由其板内晶振(频率大于20M)计数,每个2.5ms上升沿到后向双口寄存器内更新计数结果NC,同时在下个秒脉冲到后清零重新计数。如图2所示。为防止计数溢出,当计数结果大于1.5S时清零,等待下一个秒脉冲触发计数。
接收机和处理器板通过并行总线完成数据交互,处理器板在每个2.5ms中断内查询双口的秒脉冲UTC数据,当新的有效秒脉冲UTC数据到后在同一个2.5ms内通过并行总线获取接口板的计数结果Δt,
Δt=NC×TC(1)
其中TC为晶振计数周期。
则当前2.5ms上升沿的UTC时间T2.5ms0表示如下:
T2.5ms0=Tpps+Δt(2)
其中Tpps为秒脉冲对应UTC时间。
之后每个2.5ms上升沿到后均在T2.5ms0时刻上累加2.5ms,每个同步时钟的UTC时间即为:
T2.5msn=T2.5ms0+2.5×n(3)
n为处理器板收到有效UTC时间之后的400Hz同步时钟序号,n=1,2,3…,T2.5msn单位为ms。
当下一个秒脉冲到后重新计算Δt,下一个有效UTC数据到后重新计算T2.5ms0和T2.5msn。
以上过程完成400Hz同步时钟的UTC时间计算,并利用接收机继续守时修正。
当无法获取秒脉冲或有效接收机UTC时间时,接口板内利用铷原子钟10M脉冲对400Hz晶振漂移进行修正,以一个2.5ms上升沿为触发计10M脉冲数,以其之后第N个2.5ms上升沿为计数终止
ΔT=N钟×10-4-N×2.5(4)
N钟为计数器对铷原子钟的脉冲计数值,N可以依据补偿间隔选取需要的数值,ΔT单位为ms。
利用ΔT修正T2.5msnx,即
T2.5msnx=T2.5msn+ΔT(5)
n=1,2,3…,T2.5msnx单位为ms。在新的ΔT计算过程中,以上一拍计算结果为算子。
通过以上计算步骤即可以完成计算机同步时钟的UTC时间计算及守时功能。
实施例2
如图4所示,一种计算机系统,将施例1中的处理器板和接口板合并,包括一个处理器板,一个接收机和一个铷原子钟。处理器板晶振(频率大于20M)分频出400Hz同步时钟,上升沿为基准和中断触发。
接收机会产生UTC整秒脉冲及对应的UTC时间,处理器板通过422差分电平获取秒脉冲后触发内部计数器,计数器由其板内晶振计数,每个2.5ms上升沿到后向双口寄存器内更新计数结果NC,同时在下个秒脉冲到后清零重新计数。为防止计数溢出,当计数结果大于1.5S时清零,等待下一个秒脉冲触发计数。
接收机和处理器板通过并行总线完成数据交互,处理器板在每个2.5ms中断内查询秒脉冲UTC数据,当新的有效秒脉冲UTC数据到后在同一个2.5ms内利用施例1公式(1)获取计数结果Δt,然后通过施例1中的公式(2)和公式(3)计算得到当前和之后每一个2.5ms上升沿的UTC时间。并利用接收机继续每一秒的守时修正。
当无法获取秒脉冲或有效接收机UTC时间时,处理器板内利用铷原子钟10M脉冲对400Hz晶振漂移进行修正,以一个2.5ms上升沿为触发计10M脉冲数,以其之后第N个2.5ms上升沿为计数终止,则可以通过施例1中的公式(4)和公式(5)计算得到不依赖于接收机的400Hz同步时钟的UTC时间。