CN113009899A - 用于计量仪表高精度计时的rtc时钟校准方法 - Google Patents
用于计量仪表高精度计时的rtc时钟校准方法 Download PDFInfo
- Publication number
- CN113009899A CN113009899A CN201911325783.XA CN201911325783A CN113009899A CN 113009899 A CN113009899 A CN 113009899A CN 201911325783 A CN201911325783 A CN 201911325783A CN 113009899 A CN113009899 A CN 113009899A
- Authority
- CN
- China
- Prior art keywords
- timer
- rtc
- precision
- cnt
- interruption
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0218—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
Abstract
本发明公开了一种用于计量仪表高精度计时的RTC时钟校准方法,包括如下步骤:上电时初始化计量仪表的单片机内部的高精度定时器和RTC定时器,高精度定时器中断次数CNT的初始值为0;同时RTC定时器和启动高精度定时器,根据RTC定时器的中断间隔与高精度定时器中断次数CNT计算RTC时钟的偏差率;关闭高精度定时器,根据计算得到的偏差率对RTC定时器做补偿得到新的定时器重装载值。本发明简化硬件电路设计的基础上满足时钟的准确计时,同时减少了产品成本和产品故障率;本发明只在系统上电时进行校准,降低了产品频繁修改配置产生的风险。
Description
技术领域
本发明涉及计量仪表技术领域,尤其涉及一种用于计量仪表高精度计时的RTC时钟校准方法。
背景技术
计量仪表的时钟不准确会导致很多仪表的功能失效,严重的甚至会危及用户的生命和财产安全。比如当RTC时钟计时不准确时,可能导致燃气表的一些附加装置无法正常工作,比如外部报警器无法及时触发燃气的泄漏报警,可能引发严重的安全事故。
目前市场上的计量仪表所使用的主流的单片机大部分都有一个内部RTC时钟,RTC时钟正常工作需要使用到一个RC振荡器,RC振荡器可选内部或者外部,内部RC晶振一般精度不高,误差在5%以上,无法满足对时钟精度要求较高的应用。
单片机内部RTC时钟校准目前主流的有以下两种方法:
1、使用通讯方式,将外部的一个准确的时钟,定期设置到单片机内部RTC 时钟进行校准,比如物联网仪表一般在每次通讯时会进行校时。此种计量仪表的校时需要仪表每天与服务器进行通讯,在通讯的时候系统下发系统的时间给计量仪表,仪表根据获取到的时间写入RTC,完成RTC时钟的校时更新。此种方案需要使用到通讯接口,即使是常规的485通讯或者无线通讯都需要外部器件的支持,都会造成成本的上升,而且校时操作复杂。
2、使用一个外部高精度RC振荡器作为单片机内部RTC时钟的时钟源。外部高精度RC振荡器一般由一个晶振和两个匹配电容组成,提供一个高精度稳定可靠的时钟源给RTC时钟使用。此种方案需要使用一个外部的高精度RC振荡器,而该振荡器一般需要通过专用校准设备进行匹配,每一款单片机可能存在不同的应用电路而需要重新进行匹配,匹配过程复杂,所以一般是制造晶振厂家进行匹配;另外,此种方案由于硬件设计需要外部器件的一个晶振和对应的匹配电容,必然造成成本的上升,并导致产品故障率的上升。
发明内容
本发明提出一种用于计量仪表高精度计时的RTC时钟校准方法以解决上述技术问题。
为了达到上述目的,本发明所采用的技术方案为:
一种用于计量仪表高精度计时的RTC时钟校准方法,包括如下步骤:
步骤101,上电时初始化计量仪表的单片机内部的高精度定时器和RTC定时器,高精度定时器中断次数CNT的初始值为0;
步骤102,同时RTC定时器和启动高精度定时器,根据RTC定时器的中断间隔与高精度定时器中断次数CNT计算RTC时钟的偏差率;
步骤103,关闭高精度定时器,根据计算得到的偏差率对RTC定时器做补偿得到新的定时器重装载值。
作为优选,所述步骤102包括:
步骤1021,同时启动高精度定时器和RTC定时器,其中设置高精度定时器中断为1毫秒中断一次,高精度定时器每中断一次则中断次数CNT累加一次;设置RTC定时器启动t秒中断,其中0<t≤1;
步骤1022,当RTC定时器产生第一次中断时,获取高精度定时器的中断次数CNT的数值N次;
作为优选,所述步骤102重复进行多次,对多次计算的偏差率δ取均值。
作为优选,设定RTC时钟的内部频率为f赫兹,RTC定时器定时1秒的重装载值为TIME_CNT_BASE=1/(1/f)=f,则所述步骤103中,补偿后的RTC 定时器重装载值TIME_CNT:
TIME_CNT=TIME_CNT_BASE-(TIME_CNT_BASE*δ)=(1-δ)f。
与现有技术相比较,本发明采用单片机内部的高精度定时器来为RTC时钟进行校准,不需要外部的时钟或高精度RC振荡器,从而简化硬件电路设计的同时满足RTC时钟的准确计时;本发明未增加外部器件,减少了产品成本和产品故障率;本发明校准过程简便快捷,只在系统上电时进行校准,降低了产品频繁修改配置产生的风险。
附图说明
图1为本发明用于计量仪表高精度计时的RTC时钟校准方法的一种流程图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
如图1所示,一种用于计量仪表高精度计时的RTC时钟校准方法,包括如下步骤。
步骤101,上电时初始化计量仪表的单片机内部的高精度定时器和RTC定时器,高精度定时器中断次数CNT的初始值为0。
本发明只在上电时才启动校准,可以降低产品频繁修改配置产生的风险。
这里,采用单片机内部的高精度定时器来为RTC时钟进行校准。高精度定时器(High Precision Event Timer,简称HPET),到时了即产生中断,最低时钟频率为10MHZ,精确度高,误差范围一般为0.1微秒±1%。
首先初始化单片机RTC定时器的参数,设定RTC时钟的内部频率为f赫兹,则RTC定时器定时1秒的重装载值为TIME_CNT_BASE=1/(1/f)=f。
其次,初始化单片机的高精度定时器,设置高精度定时器中断为1毫秒中断一次,中断次数累加器CNT初始化为0。
步骤102,同时RTC定时器和启动高精度定时器,根据RTC定时器的中断间隔与高精度定时器中断次数CNT计算RTC时钟的偏差率。
具体的,步骤102包括如下步骤:
步骤1021,同时启动高精度定时器和RTC定时器,其中设置高精度定时器中断为1毫秒中断一次,高精度定时器每中断一次则中断次数CNT累加一次;设置RTC定时器启动t秒中断,其中0<t≤1。这里,RTC定时器的t秒中断是指t秒产生一次中断,比如秒中断即1秒产生一次中断,10ms中断即10毫秒产生一次中断。
步骤1022,当RTC定时器产生第一次中断时,获取高精度定时器的中断次数CNT的数值N次。此时,获取的中断次数CNT的数值为实测次数,即外部定时器中断的次数为执行的真正时间。
为了使计算数值更加精确,所述步骤102可以重复进行多次,对多次计算的偏差率δ取均值。尤其是校准频率较高时,例如将步骤1021的RTC定时器的中断设置为10m秒中断时,可以重复10次或更多次中断,多次计算获得均值以提高校准精度。具体的校准次数,可根据需要进行设置。
步骤103,关闭高精度定时器,根据计算得到的偏差率对RTC定时器做补偿得到新的定时器重装载值。补偿RTC初始化计数器值,至此整个校准完成。
初始化时,设定RTC时钟的内部频率为f赫兹,RTC定时器定时1秒的重装载值为TIME_CNT_BASE=1/(1/f)=f,则补偿后的RTC定时器重装载值TIME_CNT:
TIME_CNT=TIME_CNT_BASE-(TIME_CNT_BASE*δ)=(1-δ)f。
以下结合具体实施例对本发明做进一步的详细说明。
选用单片机主频1M Hz,高精度定时器定时为1ms定时一次,RT时钟所选内部晶振为38k Hz。
首先上电启动初始化。初始化单片机RTC参数,TIME_CNT_BASE=1/ (1/38000)=38000;初始化单片机高精度定时器,设置高精度定时器中断为1 毫秒中断一次,中断次数累加器CNT初始化为0。
然后计算RTC时钟偏差。同时启动高精度定时器和RTC定时器,其中设置高精度定时器中断为1毫秒中断一次,高精度定时器每中断一次则中断次数CNT 累加一次;设置RTC定时器启动秒中断。
当RTC定时器产生第一次中断时,获取高精度定时器中断次数CNT的数值为900,即RTC时钟比标准的快了(900-1000)/1000,约为10%,偏差率δ为 10%。
RTC定时计数器重装载值为TIME_CNT:
TIME_CNT=TIME_CNT_BASE-(TIME_CNT_BASE*0.1)=34200。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由本申请的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (4)
1.一种用于计量仪表高精度计时的RTC时钟校准方法,其特征在于,包括如下步骤:
步骤101,上电时初始化计量仪表的单片机内部的高精度定时器和RTC定时器,高精度定时器中断次数CNT的初始值为0;
步骤102,同时RTC定时器和启动高精度定时器,根据RTC定时器的中断间隔与高精度定时器中断次数CNT计算RTC时钟的偏差率;
步骤103,关闭高精度定时器,根据计算得到的偏差率对RTC定时器做补偿得到新的定时器重装载值。
3.根据权利要求2所述的用于计量仪表高精度计时的RTC时钟校准方法,其特征在于,所述步骤102重复进行多次,对多次计算的偏差率δ取均值。
4.根据权利要求2或3所述的用于计量仪表高精度计时的RTC时钟校准方法,其特征在于,设定RTC时钟的内部频率为f赫兹,RTC定时器定时1秒的重装载值为TIME_CNT_BASE=1/(1/f)=f,则所述步骤103中,补偿后的RTC定时器重装载值TIME_CNT:
TIME_CNT=TIME_CNT_BASE-(TIME_CNT_BASE*δ)=(1-δ)f。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911325783.XA CN113009899B (zh) | 2019-12-20 | 2019-12-20 | 用于计量仪表高精度计时的rtc时钟校准方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911325783.XA CN113009899B (zh) | 2019-12-20 | 2019-12-20 | 用于计量仪表高精度计时的rtc时钟校准方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113009899A true CN113009899A (zh) | 2021-06-22 |
CN113009899B CN113009899B (zh) | 2023-05-16 |
Family
ID=76382061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911325783.XA Active CN113009899B (zh) | 2019-12-20 | 2019-12-20 | 用于计量仪表高精度计时的rtc时钟校准方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113009899B (zh) |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03113615A (ja) * | 1989-09-28 | 1991-05-15 | Nec Corp | ソフトウェアタイマの校正方式 |
CN1514324A (zh) * | 2002-12-31 | 2004-07-21 | ض� | 受信系统时钟 |
CN1514325A (zh) * | 2002-12-31 | 2004-07-21 | 英特尔公司 | 受信实时时钟 |
US20040201403A1 (en) * | 2003-04-11 | 2004-10-14 | Holtek Semiconductor Inc. | Method and device for dynamically calibrating frequency |
US20080222440A1 (en) * | 2007-03-07 | 2008-09-11 | Stephen Jones | Real time clock calibration system |
CN102176112A (zh) * | 2010-11-29 | 2011-09-07 | 江苏林洋电子股份有限公司 | Mcu内置rtc实现时钟精确计时的方法 |
CN102707765A (zh) * | 2012-05-15 | 2012-10-03 | 江苏中科梦兰电子科技有限公司 | 一种使用混合时钟源的计时方法 |
CN102882672A (zh) * | 2012-09-18 | 2013-01-16 | 深圳市文鼎创数据科技有限公司 | 动态令牌时钟校准方法及装置 |
CN102929735A (zh) * | 2012-10-19 | 2013-02-13 | 北京星网锐捷网络技术有限公司 | 一种时钟校正的方法和设备 |
CN103226376A (zh) * | 2013-04-14 | 2013-07-31 | 嵊州市华丰电子有限公司 | 一种高精度实时时钟芯片 |
US20160246324A1 (en) * | 2015-02-20 | 2016-08-25 | Stmicroelectronics S.R.L. | Method and device for clock calibration and corresponding apparatus |
CN106227293A (zh) * | 2016-07-24 | 2016-12-14 | 泰凌微电子(上海)有限公司 | 一种系统时钟 |
CN106559157A (zh) * | 2015-09-29 | 2017-04-05 | 中兴通讯股份有限公司 | 一种时钟同步方法、装置及通信设备 |
CN106679709A (zh) * | 2017-01-03 | 2017-05-17 | 深圳市蜂联科技有限公司 | 一种基于原始数据和定时器的空气盒子热启动温度测量校准方法 |
CN107450305A (zh) * | 2017-08-14 | 2017-12-08 | 珠海格力节能环保制冷技术研究中心有限公司 | 时钟芯片的校时方法及校时装置、智能设备 |
CN107765760A (zh) * | 2017-11-17 | 2018-03-06 | 上海伟世通汽车电子系统有限公司 | 仪表睡眠模式下rtc模块时钟源动态校准方法及其系统 |
CN108572613A (zh) * | 2017-03-14 | 2018-09-25 | 欧姆龙株式会社 | 控制装置、信息处理方法 |
CN109283967A (zh) * | 2018-11-20 | 2019-01-29 | 深圳芯邦科技股份有限公司 | 一种微控制单元mcu时钟校准方法及相关设备 |
CN109361500A (zh) * | 2018-10-25 | 2019-02-19 | 南通先进通信技术研究院有限公司 | 一种基于芯片的自校准同步外部脉冲的方法 |
-
2019
- 2019-12-20 CN CN201911325783.XA patent/CN113009899B/zh active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03113615A (ja) * | 1989-09-28 | 1991-05-15 | Nec Corp | ソフトウェアタイマの校正方式 |
CN1514324A (zh) * | 2002-12-31 | 2004-07-21 | ض� | 受信系统时钟 |
CN1514325A (zh) * | 2002-12-31 | 2004-07-21 | 英特尔公司 | 受信实时时钟 |
US20040201403A1 (en) * | 2003-04-11 | 2004-10-14 | Holtek Semiconductor Inc. | Method and device for dynamically calibrating frequency |
US20080222440A1 (en) * | 2007-03-07 | 2008-09-11 | Stephen Jones | Real time clock calibration system |
CN102176112A (zh) * | 2010-11-29 | 2011-09-07 | 江苏林洋电子股份有限公司 | Mcu内置rtc实现时钟精确计时的方法 |
CN102707765A (zh) * | 2012-05-15 | 2012-10-03 | 江苏中科梦兰电子科技有限公司 | 一种使用混合时钟源的计时方法 |
CN102882672A (zh) * | 2012-09-18 | 2013-01-16 | 深圳市文鼎创数据科技有限公司 | 动态令牌时钟校准方法及装置 |
CN102929735A (zh) * | 2012-10-19 | 2013-02-13 | 北京星网锐捷网络技术有限公司 | 一种时钟校正的方法和设备 |
CN103226376A (zh) * | 2013-04-14 | 2013-07-31 | 嵊州市华丰电子有限公司 | 一种高精度实时时钟芯片 |
US20160246324A1 (en) * | 2015-02-20 | 2016-08-25 | Stmicroelectronics S.R.L. | Method and device for clock calibration and corresponding apparatus |
CN106559157A (zh) * | 2015-09-29 | 2017-04-05 | 中兴通讯股份有限公司 | 一种时钟同步方法、装置及通信设备 |
CN106227293A (zh) * | 2016-07-24 | 2016-12-14 | 泰凌微电子(上海)有限公司 | 一种系统时钟 |
CN106679709A (zh) * | 2017-01-03 | 2017-05-17 | 深圳市蜂联科技有限公司 | 一种基于原始数据和定时器的空气盒子热启动温度测量校准方法 |
CN108572613A (zh) * | 2017-03-14 | 2018-09-25 | 欧姆龙株式会社 | 控制装置、信息处理方法 |
CN107450305A (zh) * | 2017-08-14 | 2017-12-08 | 珠海格力节能环保制冷技术研究中心有限公司 | 时钟芯片的校时方法及校时装置、智能设备 |
CN107765760A (zh) * | 2017-11-17 | 2018-03-06 | 上海伟世通汽车电子系统有限公司 | 仪表睡眠模式下rtc模块时钟源动态校准方法及其系统 |
CN109361500A (zh) * | 2018-10-25 | 2019-02-19 | 南通先进通信技术研究院有限公司 | 一种基于芯片的自校准同步外部脉冲的方法 |
CN109283967A (zh) * | 2018-11-20 | 2019-01-29 | 深圳芯邦科技股份有限公司 | 一种微控制单元mcu时钟校准方法及相关设备 |
Non-Patent Citations (2)
Title |
---|
"基于90E46 SoC的单相智能电能表设计方案" * |
梁维铭: "数字式实时时钟自动校准的研究" * |
Also Published As
Publication number | Publication date |
---|---|
CN113009899B (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10754370B2 (en) | Fine-grained clock resolution using low and high frequency clock sources in a low-power system | |
US11012032B2 (en) | Systems and methods for frequency compensation of real-time-clock systems | |
KR950012055B1 (ko) | 정확한 시간 및/또는 주파수 제공장치 및 방법 | |
EP2369438B1 (en) | Calibration method of a real time clock signal | |
AU687177B2 (en) | Time correction of an electronic clock | |
US5483201A (en) | Synchronization circuit using a high speed digital slip counter | |
US5697082A (en) | Self-calibrating frequency standard system | |
EP2291916A1 (en) | Automatic synchronization of an internal oscillator to an external frequency reference | |
US10042383B2 (en) | Navigation system and mouse device | |
CN107765760B (zh) | 仪表睡眠模式下rtc模块时钟源动态校准方法及其系统 | |
JP6282723B2 (ja) | クオーツ電子時計の高精度計時方法 | |
US10274601B2 (en) | Communications system | |
US10153773B2 (en) | Low-power oscillator | |
CN104297716A (zh) | 一种智能电表rtc校准方法 | |
CN113009899A (zh) | 用于计量仪表高精度计时的rtc时钟校准方法 | |
US5719827A (en) | Highly stable frequency generator | |
JPH11183661A (ja) | 移動通信装置 | |
KR102226104B1 (ko) | 전자 시계에 통합된 타임 베이스의 평균 주파수를 조정하기 위한 방법 | |
TW201740230A (zh) | 測試石英錶的速率之方法 | |
JPS6015905B2 (ja) | 電子式時計 | |
JP2012058115A (ja) | 管理装置、管理方法、及び管理プログラム | |
JP5096529B2 (ja) | 周波数校正固定装置及び周波数校正固定方法 | |
US9654117B1 (en) | Digital phase-locked loop having de-coupled phase and frequency compensation | |
JP7333705B2 (ja) | 回路システム | |
CN109960187B (zh) | 具有可调整发光频率功能的电子装置、电脑系统以及方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |