一种晶振补偿方法及装置与流程

文档序号:17355069发布日期:2019-04-09 21:34阅读:714来源:国知局
一种晶振补偿方法及装置与流程

本发明涉及一种晶振补偿方法及装置,属于钟表时钟技术领域,尤其涉及通过gps或北斗等标准时钟与自身时钟的钟差计算进行补偿的方法及装置。



背景技术:

时间准确是钟表时钟需要重点考虑的,在采用晶振的时钟中,因晶振自身的原因使用一段时间后会出现钟差,为消除钟差、提高时钟的准确性,需要提高晶振的输出精度,目前多采用驯服的方式,通过增加硬件电路采用电压控制的方法调节晶振的输出精度,但是,采用上述方法需要增加硬件电路,造成成本的增加,且随着硬件电路的老化,输出精度亦会随之降低。为此有提出自外部(如通过gps或者北斗卫星等)获取标准时间对内部时钟进行同步校准,但是,现有的校准修正方式多是追求同步跟随,即使用单时刻的外部值对内部值进行修正补偿,然而使用单点值修正补偿存在随机性且易受外部干扰,补偿精度经常不理想,或者为了提高补偿的精度需要进行复杂的处理,亦增加了难度,因此,如何利用外部标准时源对自身时钟进行精确补偿成为亟需解决的问题。



技术实现要素:

为解决以上技术上的不足,本发明提供了一种晶振补偿方法及装置,对累计时间段的自身时钟与标准时源的钟差进行逐级取模计算,使用逐级取模的结果对输出脉冲分层级补偿,可保证晶振的持续高精度输出。

本发明的技术方案如下:一种晶振补偿方法,包括:

步骤1,外部标准时间源模块将标准时间信息和标准脉冲传送至处理器,处理器对外部输入时源信号进行有效性判定;

步骤2,判定后利用有效的时源脉冲将晶振计数器的有效沿对齐,分别利用计数器对有效时源和自身晶振的脉冲进行计数;

步骤3,计数累积时间段t后,计算自身计数器与有效时源计数器的差值b1其中,t=n×1000(s),n取正整数且1≤n≤10;

步骤4,先将差值b1与n相除得b1/n,之后对b1/n按1000、100和10进行逐级取模计算,分别得商数为n1、n2和n3,得最终余数为p3;

步骤5,利用商n1、n2、n3和余数p3对输出脉冲进行补偿,其中,n1是每秒的脉冲补值,n2是每十秒的脉冲补值,n3是每百秒的脉冲补值,p3是每千秒的脉冲补值。

本发明的技术方案还包括:所述累积时间段t为1000秒。

本发明的技术方案还包括:所述处理器对外部输入时源信号进行有效性判定包括初步有效性判定、连续性判定和pps有效性判定;

所述初步有效性判定包括,处理器根据外部标准时间源模块发出的串行报文中的数据有效标志字节来判断是否有效;

所述连续性判定包括,处理器预先设定第一记数值和第一阈值,之后对外部标准时间源模块发出的时间信息进行记数至第一记数值,当第一记数值个数的连续时间信息均在第一阈值范围内,连续性判定有效;

所述pps有效性判定包括,处理器预先设定第二阈值,取两个连续秒脉冲的上升沿,在一个脉冲的上升沿触发计数器,到下一个秒脉冲的上升沿停止计数,如果计数值在第二阈值的范围内,判定pps有效。

本发明还提供了一种晶振补偿方法,包括:

步骤1,外部标准时间源输入模块将标准时间信息和标准脉冲传送至处理器,处理器对外部输入时源信号进行有效性判定;

步骤2,判定后利用有效的时源脉冲将晶振计数器的有效沿对齐,分别利用计数器对有效时源和自身晶振的脉冲进行计数;

步骤3,计数累积时间段t后,计算自身计数器与有效时源计数器的差值b1其中,t=n×100(s),n取正整数且1≤n≤10;

步骤4,先将差值b1与n相除得b1/n,之后对b1/n按100和10进行逐级取模计算,分别得商数为n1和n2,得最终余数为p2;

步骤5,利用商n1、n2和余数p2对输出脉冲进行补偿,其中,n1是每秒的脉冲补值,n2是每十秒的脉冲补值,p2是每百秒的脉冲补值。

本发明还提供了一种晶振补偿装置,包括:

外部标准时间源模块,用于提供标准的时间源;

外部时源有效性判定模块,用于判定外部标准事件源模块输入时源信号的有效性;

计数模块,用于对自身晶振和有效时源分别进行累积时间段内的计数;

差值取模计算模块,用于对自身晶振和有效时源的计数差值进行逐级取模计算;

脉冲补偿模块,用于利用差值取模计算的商数和余数按每秒、每十秒、每百秒和/或每千秒进行脉冲补偿。

本发明的技术方案还包括:所述外部标准时间源模块包括gps模块和/或北斗模块。

本发明的有益效果是:对累积时间段的自身晶振与外部有效时源的计数差值做逐级取模,并按照逐级取模的商数和余数对自身晶振进行秒、十秒、百秒、千秒的分层级脉冲补偿,既不用增加硬件电路,又避免了单点同步跟随修正在随机性上造成的误差,可使用较低成本便可保证晶振持续高精度的输出。

附图说明

图1是本发明的模块示意图。

图2是本发明的补偿流程示意图。

具体实施方式

以下结合附图,通过实施例对本发明作进一步说明。

本发明是通过对钟差进行逐级取模计算,利用逐级取模的商数和余数来对晶振脉冲进行补偿,进而提高晶振的输出精度。

如图1和图2所示,本发明的晶振补偿装置包括外部标准时间源模块、外部时源有效性判定模块、计数模块、差值取模计算模块和脉冲补偿模块。其中,外部标准时间源模块包括有gps模块和北斗模块,利用两种不同的卫星导航系统来提供外部标准时间信息,可提高准确性。

gps模块和北斗模块将串行数据和pps信号传送至处理器(cpu)中后,处理器中的外部时源有效性判定模块对串行数据和pps信号进行有效性判定,该有效性判定包括初步有效性判定、连续性判定和pps有效性判定,其中,pps有效性判定是指秒脉冲的上升沿有效性。

具体地,当处理器接收到gps模块和北斗模块发送的串行报文时,首先对报文中包含的数据有效标志字节进行判定,如果有效则进行后续的连续性判定和pps有效性判定,否则继续获取gps模块和北斗模块发送的串行报文进行初步有效性判定。

在通过初步有效性判定后,分别对gps和北斗接收到的时间信息进行连续性判定,提前的在处理器中预先设定一个记数值和一个阈值,如果满足该记数值个数的连续时间信息均在该阈值范围内,则连续性判定有效;否则重新获取gps模块和北斗模块发送的串行报文。

在通过初步有效性判定后,也需要对gps和北斗接收到的时间信息进行pps有效性判定,首先提前设定一个阈值,之后取两个连续秒脉冲的上升沿,在一个脉冲的上升沿触发计数器,到下一个秒脉冲的上升沿停止计数,如果计数值在该阈值的范围内,则判定pps有效;否则对下一个时间信息进行判定。

在利用有效的时源脉冲将晶振计数器的有效沿对齐后,计数模块开始分别对自振晶振和有效时源进行计数。

当计数累积到设定的时间段t后,停止计数,并计算自身晶振计数器与有效时源计数器两者间的差值,可记为b1,之后利用差值取模计算模块对差值b1进行取模计算,具体地,该取模计算逐级进行,即,依次将差值b1对1000、100、10进行取模,记录每次取模计算的商数和余数,最后,脉冲补偿模块利用取模计算得到的商数和余数按每秒、每十秒、百秒、千秒对脉冲进行补偿。

本发明的第一实施例中,t=n×1000秒,其中,n取正整数且1≤n≤10,即积累计数的时间长度为1000、2000、3000秒等。以1000秒为例,计数时间为一刻钟多些,在累积时长和避免单值随机性上折衷综合效果较好。

首先将累积时间段t的差值b1与n相除,当累积1000秒时,n为1,相除后仍为b1,之后对b1进行逐级取模:

首先,b1%1000,得余数为p1,商数为n1;

之后,对第一级取模后的余数p1进行二级取模p1%100,得余数为p2,商数为n2;

最后,对二级取模的余数p2进行三级取模p2%10,得余数为p3,商数为n3。

此后,利用逐级取模计算的商数n1、n2、n3和余数p3进行分层级脉冲补偿,具体地,用n1作为每秒的脉冲补值,用n2作为每十秒的脉冲补值,n3作为每百秒的脉冲补值,p3作为每千秒的脉冲补值。如此循环,对累积时间段t不断进行脉冲输出补偿。

本发明的第二实施例,与第一实施例相比,只是对累积时间段t进行了改变,t=n×100秒,n取正整数且1≤n≤10,即,缩短了累积时长,以此来缩短脉冲补偿的初始等待时间,来提高晶振补偿的快速响应性,其余的逐级取模与分层级补偿处理模式一致,以累积600秒为例。

首先将累积600秒的差值b1与n相除,得b1/6;

之后取模(b1/6)%100,得余数为p1,商数为n1;

最后,取模p1%10,得余数为p2,商数为n2。

此后,使用n1作为每秒的脉冲补值,n2作为每十秒的脉冲补值,p2作为每百秒的脉冲补值,如此循环,对累积时间段t不断进行脉冲输出补偿。

以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡在本发明的精神和原则之内所做任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1