本发明涉及计算机同步和守时方法,特别涉及一种计算机同步时钟的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时间。