CN103699173B - 一种实时时钟计时误差补偿方法 - Google Patents
一种实时时钟计时误差补偿方法 Download PDFInfo
- Publication number
- CN103699173B CN103699173B CN201310536937.6A CN201310536937A CN103699173B CN 103699173 B CN103699173 B CN 103699173B CN 201310536937 A CN201310536937 A CN 201310536937A CN 103699173 B CN103699173 B CN 103699173B
- Authority
- CN
- China
- Prior art keywords
- flag
- compensation
- assignment
- cnt
- err
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G04—HOROLOGY
- G04G—ELECTRONIC TIME-PIECES
- G04G3/00—Producing timing pulses
- G04G3/04—Temperature-compensating arrangements
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
Abstract
本发明公开一种实时时钟计时误差补偿方法,包括补偿步骤:一,对分频计数器CNT赋值0,执行步骤二;二,等待1Hz时钟上升沿到达时,对补偿标志寄存器FLAG赋值1,执行步骤三;三,判断FLAG、M3,若FLAG=1且M3<0成立,则等待CNT=S4时,执行步骤四;若FLAG=1、CNT=0且M3>0成立,执行步骤五;否则,执行步骤二;四,执行赋值,CNT=0、M3=M3+S4、FLAG=0,重新执行步骤二,其中S4为1秒中最多补偿周期个数;五,执行赋值,CNT=S4、M3=M3‑S4、FLAG=0,重新执行步骤二。本发明相对误差ERR采样率可调,且补偿精度更高。
Description
技术领域
本发明涉及一种实时时钟计时误差补偿方法。
背景技术
如图1所示,实时时钟计时最小单位为“秒”,其原理是对晶体振荡器输出频率为32768Hz方波进行分频1Hz ,1Hz方波驱动产生“秒”的时间和日历逻辑电路,进一步产生分、时、日、月、星期日历逻辑。晶体振荡器输出标准频率为32768Hz,但是,由于温度变化、石英晶体的制造工艺误差等原因,晶体振荡器输出的频率往往存在误差。
通常,把晶体振荡器输出的频率相对于标准频率32768Hz的相对误差作误差衡量标准,如下公式所示,单位为PPM(一百万分之一)。
为了补偿晶体振荡器输出的频率与标准频率32768Hz之间的误差,现有技术中,通常采用固定时间点补偿方法针对相对误差进行补偿,根据固定时间点如每隔10秒,查找相对误差(ERR)对应的需要补偿时钟个数,改变分频计数器(CNT)计数值。如图2所示,每隔10秒补偿时,10秒钟,分频计数器共计数基准频率时钟个数为32768*10=327680所以,10秒分频计数器CNT 多加1,相当于对基准频率做+3PPM的补偿,少加一次相当于对基准频率做-3PPM的补偿。通常,对ERR的采样率为0.1Hz,补偿数据ERR有效值为3 PPM,补偿后的最大误差为1.5PPM。
所述固定时间点补偿方法对ERR的采样率越低,补偿数据的有效值越高,但是,采样率低会引入频谱混叠误差。所以,所述方法对ERR的采样率,既不能太高,也不能太低,存在ERR采样率设置和最终补偿精度的矛盾关系。
发明内容
本发明的目的在于提供一种相对误差ERR采样率可调,且补偿精度更高的实时时钟计时误差补偿方法。
为达成上述目的,本发明的解决方案为:
一种实时时钟计时误差补偿方法,包括以下步骤:
包括计算步骤和补偿步骤:
计算步骤
一,循环减法寄存器M2赋值,循环减法寄存器M1=循环减法寄存器M2=;对累积误差周期个数寄存器M3赋值0,其中,S1用于调节ERR有效值,S2用于调节补偿电路工作频率,S3用于调节计算次数,执行步骤二;
二,等 Hz时钟上升沿到达时,对补偿标志寄存器COM赋值为0,对M2执行减法,M2=M1-︱ERR*S1︱,M1=M2,执行步骤三;
三,判断M2,若M2<0时,执行对M2赋值,M2=M1+,M1= M2,并对补偿标志寄存器COM赋值为1,执行步骤四;否则,执行步骤二;
四,判断ERR*S1,若ERR*S1﹥0,执行 M3= M3+,否则,执行M3= M3-,执行步骤二;
补偿步骤
一,对分频计数器CNT赋值0,执行步骤二;
二,等待1Hz时钟上升沿到达时,对补偿标志寄存器FLAG赋值1,执行步骤三;
三,判断FLAG、M3,若FLAG=1且M3<0成立,则等待CNT=S4时,执行步骤四;若FLAG=1、CNT=0且M3>0成立,执行步骤五;否则,执行步骤二;
四,执行赋值,CNT=0、M3= M3+S4、FLAG=0,重新执行步骤二,其中S4为1秒中最多补偿周期个数;
五,执行赋值,CNT=S4、M3= M3-S4、FLAG=0,重新执行步骤二。
采用上述方案后,本发明实时时钟计时误差补偿方法中,S1、S2、S3、S4参数可调节,采用本发明所述方案使得相对误差ERR采样率可调,且补偿精度更高。
附图说明
图1是实时时钟原理图;
图2是现有技术固定时间补偿方法示意图;
图3是标准频率与实际频率基本关系图;
图4是累积误差计算时序示意图;
图5是累积误差计算实施时序示意图;
图6是误差补偿方法示意图;
图7是误差补偿方法实施时序流程图。
具体实施方式
以下结合实施例对本发明作进一步详细说明。
根据相对误差ERR的基本定义,可知标准频率(32768Hz)与实际频率(32768*(1-ERRppm)基本关系,由标准频率(32768Hz)与实际频率(32768*(1-ERRppm)基本关系可以计算出标准周期与实际周期之间的关系,如图3所示,经过1个周期相差1*ERR/106个周期,经过2个周期相差2*ERR/106个周期,经过106/ERR个周期相差(106/ERR )*ERR/106=1个周期。因此,经过N个周期,标准频率和实际频率相差W个周期个数的关系如表1所示:
表1
N | W |
1 |
即N:W=106/ERR:1,经过106/ERR个周期,需补偿1个周期。在实际补偿时,106/ERR个周期通常转换为106-ERR作循环减法,减到等于0,或为负数时,即补偿1个周期。由于106数字较大,而相对误差ERR较小,因此,导致循环减法的次数很大,使得电路的功耗很大;相对误差ERR数值较小如1.001,存在小数点,而数字电路无法计算小数,只能取ERR=1,而0.001无法参与计算,影响补偿精度。
因此,对N和W数量关系做变换得到如表2所示:
表2
N | W |
其中,S1,S2,S3所代表的含义如表3所示:
表3
参数 | 控制量 | 参数 | 控制量 |
S1 | ERR有效值 | S3 | 计算次数 |
S2 | 补偿电路工作频率 |
S1的作用在于提高补偿精度,补偿精度提高S1倍(S1取正整数,1、2、3、……N),如当ERR=1.001时,由于,数字电路无法计算小数,只能取ERR=1,而0.001无法参与计算,式中,当S1取1000时,ERR×S1=1001,使得数字电路可以对1001进行计算,补偿精度提高1000倍。
表4,参数S1举例说明:
N | W | 补偿精度 |
1 | ||
= | 1 |
分式中,S1可以调节补偿精度。如表4中,设置S1=1000,S2=1,S3=1,补偿精度提高1000倍。
由表4可知,经过个基准频率周期,补偿1个周期。ERR的单位为PPM,ERR’单位为PPM/1000=0.001PPM。因为,ERR’的单位为0.001PPM,所以,补偿数据ERR’可以精确到0.001PPM,补偿精度为0.001PPM。S1可调的优点是:可以提高补偿的精度。S1的取值范围为:S1为正整数(1、2、3、……、N)。
S2的作用在于调节补偿电路的工作频率,从而降低电路的功耗,表5对S2参数举例说明:
表5,参数S2说明:
N | W | 补偿电路的工作频率 |
S2可以调节补偿电路的工作频率。关系式是除法运算,在实现电路中为了节省芯片版图面积、节省成本,转换成减法运算实现计数的目的,以S2×T(T为基准频率周期)为周期做循环减法,上次减法运算的差值作为本次减法的被减数,减数为ERR。被减数初始值为106,当差值为负数时,表示已经经过了个S2×T,完成1次补偿计算循环,需要补偿S2个T。
例如,表5设置S1=1,S2=8,S3=1,补偿电路是以8T为周期做循环减法,即补偿电路的工作频率为 (f为基准频率),降低补偿电路工作频率,从而降低电路的功耗。S2的取值范围:S2为正整数(1、2、3、……、N)。
S3的作用在于调节完成一次补偿循环的计算次数,减小被减数,减小减法器运算的位数,从而减少补偿运算电路的版图面积、节约成本,表6对S3参数举例说明:
表6,参数S3说明:
N | W | 被减数初始值 |
S3,在确定S1,S2的取值后,调节S3,可以调节完成1次补偿循环的计算次数。
例如,如表6所示设置S1=1,S2=16,S3=16。由 S2参数说明可知,补偿电路每隔16T时间做1次减法。S3的作用是:设定循环减法的被减数初始值为。S3=16,则循环减法的被减数初始值设定为,与被减数初始值设定为106相比,完成1次补偿计算循环的计算次数减少16倍。等效于被除数(循环减法的被减数初始值)减小16倍,除数(循环减法运算中的减数ERR)不变,则商(1次补偿循环的计算次数)也减小16倍。当1次补偿计算循环结束,经过个16T时间后,补偿1个T。
S3可调的优点是:减小被减数,减小减法器运算的位数,从而减少补偿运算电路的版图面积、节约成本。S3的取值范围是:同时属于和的因数。例如,S1=1,S2=16,S3可取值16,因为106*1/16=15625,1*16/16=1都能整除,同时属于和的因数S3,还可以取值2,4,8。
综上所述,经过个周期需要补偿个周期,而个周期不能在1秒钟全部补偿完成,如此使得该1秒显得很长,或者显得很短,让人无法接受。因此,确定1秒钟最多只能补偿S4个周期个数。所以,补偿W()个周期个数,需要W/S4秒完成,如表7所示。
表7,参数S4说明:
S4 | 最大补偿误差 |
8 | |
取值范围是:1、2、3、……32768 |
S4定义为1秒钟最多补偿的基准频率周期个数,最大补偿误差为。
例如,如表7所示,S4=8,则1秒钟最多补偿8个基准频率周期,则最大补偿误差为每秒钟都补偿8个基准频率周期,对应的补偿量为,其中,S4的取值范围是:1、2、3、……32768。
应用举例:
设置参数S1=1000,S2=32768,S3=512,S4=16。
表8,N和W的关系:
N | W |
由表8得到:经过个周期后,需要对分频计数器CNT补偿64个周期个数。补偿电路工作频率为基准频率周期的32768倍(32768T),即为1秒。循环减法被减数初始值设定为。取S4=16, 即1秒钟最多补偿16个周期个数。
表8中ERR’=ERR*1000, ERR单位为1 PPM,ERR’的单位为0.001PPM,即十亿分之一,补偿精度为0.001PPM。
如图4所示,累积误差计算时序示意图,经过个基准频率周期时间,累积误差达到64个基准频率周期个数。1秒钟为32768个基准频率周期时间,所以,秒钟,累积误差达到64个基准频率周期个数,并记录这个误差。
其中,M1,M2为两个24位寄存器。在0秒时刻,赋初始值1953125,1秒、2秒 、、、N秒时刻都做1次减法运算,把上1秒钟减法运算的差作为被减数,减去ERR’的绝对值。等到秒钟时,M2<0,此时经过个基准频率周期时间,累积误差达到64个基准频率周期个数,M3寄存器加/减64记录累积误差周期个数。ERR’符号的正负反映晶振频率的正负误差,晶振频率偏小时,ERR’定义为正,晶振频率偏大时,ERR’定义为负。可能除不尽,M2为负数,由此带来的误差,在后面的循环中消除,以后每个循环的开始,M2赋初始值为M1+1593125。
如图5所示,累积误差计算实施时序示意图,其中,COM为1位寄存器,为补偿标志寄存器,当累积误差达到64个周期个数时COM为高电平,对M3寄存器加/减64。完成对M3寄存器加/减64后,COM寄存器重新被置0。寄存器M1,M2的运算操作同步时钟为1Hz频率,即为32768个基准频率。
图5完成从基准频率误差ERR’(单位为0.001ppm),到累积误差等于多少个基准频率周期个数的转换。其主要操作是,M1,M2赋予初值为1953126 ,每1秒钟对M1,M2寄存器中的数据,做一次减法运算,减去ERR’的绝对值,COM 赋值0。并且每1秒钟对上1秒钟减法运算的差作判断,若差大于或者等于0, 则当前1秒继续减1次ERR’的绝对值;若差小于0,则累积误差达到64个时钟周期,并对M2赋初值M2<=1953125+M1, M1<=M2, COM=1, 同时对寄存器M3加/减64。若ERR’>0,则M3<=M3+64;若ERR’<0,则M3<=M3-64。
如图6所示,误差补偿方法示意图,M3寄存器为累积误差周期个数寄存器。若M3>0,则晶振频率偏小,时钟偏慢,补偿措施是当CNT=0时,CNT赋值为16,从而加快时钟16个基准频率周期,同时M3=M3-16记录已经补偿了16个周期;若M3<0,则晶振频率偏大,时钟偏快,补偿措施是当CNT=16时,CNT复位为0,从而减慢时钟16个基准频率周期,同时M3=M3+16记录已经补偿了16个周期。
如图7所示,误差补偿方法实施时序流程图,其中,M3为累积误差周期个数寄存器,CNT为基准频率32.768KHz分频到1Hz频率的计数器的低5位。该计数器一共有15位,误差补偿只需要对该计数器的低5位进行译码判断即可,从而减少了译码电路的版图面积,同时降低了功耗。FLAG为标志寄存器,用于保证1秒钟最多补偿1次。
根据累积误差基准频率周期个数M3,对“秒”一级的时间进行补偿。补偿方法是对CNT计数器进行干预。具体做法是,在1Hz时钟的上升沿时,对标志寄存器FLAG置位为“1”。对M3、 CNT判断,若M3<0,则当CNT=16且FLAG=1时,对CNT计数器的最高位复位为“0”,即计数器减16,同时对FLAG复位为“0”;若M3>0,则当CNT=0且FLAG=1时,对CNT计数器的最高位置位为“1”,即计数器加16,同时对FLAG复位为“0”。标志寄存器FLAG只有在1Hz时钟上升沿置位为“1”,补偿后复位为“0”,作用是1秒钟最多补偿1次。
Claims (1)
1.一种实时时钟计时误差补偿方法,其特征在于:包括计算步骤和补偿步骤:
计算步骤
一,循环减法寄存器M2赋值,循环减法寄存器M1=循环减法寄存器M2=;对累积误差周期个数寄存器M3赋值0,其中,S1用于调节ERR有效值,S2用于调节补偿电路工作频率,S3用于调节计算次数,执行步骤二;
二,等 Hz时钟上升沿到达时,对补偿标志寄存器COM赋值为0,对M2执行减法,M2=M1-︱ERR*S1︱,M1=M2,执行步骤三;
三,判断M2,若M2<0时,执行对M2赋值,M2=M1+,M1= M2,并对补偿标志寄存器COM赋值为1,执行步骤四;否则,执行步骤二;
四,判断ERR*S1,若ERR*S1﹥0,执行 M3= M3+,否则,执行M3= M3-,执行步骤二;
补偿步骤
一,对分频计数器CNT赋值0,执行步骤二;
二,等待1Hz时钟上升沿到达时,对补偿标志寄存器FLAG赋值1,执行步骤三;
三,判断FLAG、M3,若FLAG=1且M3<0成立,则等待CNT=S4时,执行步骤四;若FLAG=1、CNT=0且M3>0成立,执行步骤五;否则,执行步骤二;
四,执行赋值,CNT=0、M3= M3+S4、FLAG=0,重新执行步骤二,其中S4为1秒中最多补偿周期个数;
五,执行赋值,CNT=S4、M3= M3-S4、FLAG=0,重新执行步骤二。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310536937.6A CN103699173B (zh) | 2013-11-04 | 2013-11-04 | 一种实时时钟计时误差补偿方法 |
US14/291,123 US9304498B2 (en) | 2013-11-04 | 2014-05-30 | Method for compensating timing errors of real-time clocks |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310536937.6A CN103699173B (zh) | 2013-11-04 | 2013-11-04 | 一种实时时钟计时误差补偿方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103699173A CN103699173A (zh) | 2014-04-02 |
CN103699173B true CN103699173B (zh) | 2018-10-23 |
Family
ID=50360735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310536937.6A Active CN103699173B (zh) | 2013-11-04 | 2013-11-04 | 一种实时时钟计时误差补偿方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9304498B2 (zh) |
CN (1) | CN103699173B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107748831B (zh) * | 2017-11-17 | 2021-01-08 | 上海伟世通汽车电子系统有限公司 | 仪表计时误差补偿方法及其系统 |
CN117150988B (zh) * | 2023-11-01 | 2024-04-02 | 成都北中网芯科技有限公司 | 一种验证环境的高精度时钟产生方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201607626U (zh) * | 2010-01-19 | 2010-10-13 | 深圳市星芯趋势科技有限责任公司 | 高稳定度实时时钟电路 |
CN102163041A (zh) * | 2011-01-27 | 2011-08-24 | 北京煜邦电力技术有限公司 | 实时时钟宽范围温度误差补偿方法及其系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304517B1 (en) * | 1999-06-18 | 2001-10-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for real time clock frequency error correction |
JP4711546B2 (ja) * | 2001-06-08 | 2011-06-29 | 富士通株式会社 | リアルタイムクロックの温度補正方法およびリアルタイムクロックを備えた処理装置 |
KR100396785B1 (ko) * | 2001-10-19 | 2003-09-02 | 엘지전자 주식회사 | Gsm단말기의 시간오차 보상장치 및 방법 |
JP2003240882A (ja) * | 2002-02-15 | 2003-08-27 | Matsushita Electric Ind Co Ltd | 時刻補正装置及び方法 |
JP4164662B2 (ja) * | 2003-06-10 | 2008-10-15 | 日本電気株式会社 | 携帯端末およびgps時刻維持方法 |
US7791418B2 (en) * | 2007-12-20 | 2010-09-07 | Pentad Design, Llc | Systems and methods for compensating for variations of the output of a real-time clock |
GB2472030B (en) * | 2009-07-22 | 2011-11-02 | Wolfson Microelectronics Plc | Real-time clock |
US8391105B2 (en) * | 2010-05-13 | 2013-03-05 | Maxim Integrated Products, Inc. | Synchronization of a generated clock |
KR101240798B1 (ko) * | 2010-12-24 | 2013-03-11 | 삼성전기주식회사 | 리얼타임클럭 주파수 오프셋 검출장치 및 그 방법 |
TWM454558U (zh) * | 2012-11-15 | 2013-06-01 | Coretex Technology Corp | 即時時鐘頻率修正裝置 |
-
2013
- 2013-11-04 CN CN201310536937.6A patent/CN103699173B/zh active Active
-
2014
- 2014-05-30 US US14/291,123 patent/US9304498B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201607626U (zh) * | 2010-01-19 | 2010-10-13 | 深圳市星芯趋势科技有限责任公司 | 高稳定度实时时钟电路 |
CN102163041A (zh) * | 2011-01-27 | 2011-08-24 | 北京煜邦电力技术有限公司 | 实时时钟宽范围温度误差补偿方法及其系统 |
Non-Patent Citations (1)
Title |
---|
"一种新型实时时钟芯片温度误差补偿方法";赵东世等;《华侨大学学报(自然科学版)》;20110731;第32卷(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103699173A (zh) | 2014-04-02 |
US20150124918A1 (en) | 2015-05-07 |
US9304498B2 (en) | 2016-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103529904B (zh) | 时钟校正电路和时钟校正方法 | |
CN103176400B (zh) | 智能电表时钟校准方法 | |
CN105573106B (zh) | 一种智能电表中对rtc计时精度的修正电路及其方法 | |
CN100456858C (zh) | 终端中的时间误差补偿装置及方法 | |
CN108063617A (zh) | 一种低频rc振荡器的时钟频率校准方法和系统 | |
CN103454904B (zh) | 提高石英电子表守时精度的方法及石英电子表 | |
CN103901942B (zh) | 用于终端的时钟精度的校准方法和装置 | |
CN103699173B (zh) | 一种实时时钟计时误差补偿方法 | |
CN108037656A (zh) | 实时时钟芯片校准方法、装置及终端设备 | |
CN106933300A (zh) | 实时时钟温度漂移校准电路 | |
CN105978555A (zh) | 具有温度补偿的实时时钟计时精度修正电路及方法 | |
CN102790617B (zh) | Usb主机接口的免晶振实现电路和方法 | |
CN106569544A (zh) | 实时时钟芯片及其时钟校准方法、装置 | |
CN110262210A (zh) | 基于计数器的晶振守时方法 | |
CN102163040B (zh) | 具有温度补偿功能的内置硬件时钟模块 | |
CN107395123B (zh) | 一种基于gps秒脉冲的2的幂次方倍频方法 | |
CN104635193B (zh) | 一种电表用的soc芯片实时时钟高精度补偿方法 | |
CN201773147U (zh) | 一种市电电压有效值计算电路 | |
CN104821820B (zh) | 一种定时时间的补偿方法 | |
CN205017272U (zh) | 一种实时时钟误差补偿装置 | |
JP2014109576A (ja) | タイムベースを調節するための高精度電子時計ムーブメントおよびタイムベースを調節するための方法 | |
JP5914718B2 (ja) | 発振器を有する時間ベース、周波数分割回路及びクロックパルス抑制回路 | |
CN104143960B (zh) | 一种校正mems计时时钟的溢出补偿方法及装置 | |
CN106444966A (zh) | 一种实时时钟rtc调整装置及方法 | |
CN103067002B (zh) | 一种差分式微波型原子频标系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |