CN102163041B - 实时时钟宽范围温度误差补偿方法及其*** - Google Patents
实时时钟宽范围温度误差补偿方法及其*** Download PDFInfo
- Publication number
- CN102163041B CN102163041B CN 201110030295 CN201110030295A CN102163041B CN 102163041 B CN102163041 B CN 102163041B CN 201110030295 CN201110030295 CN 201110030295 CN 201110030295 A CN201110030295 A CN 201110030295A CN 102163041 B CN102163041 B CN 102163041B
- Authority
- CN
- China
- Prior art keywords
- acc
- crystal oscillator
- error
- compensation
- temperature
- 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
Images
Landscapes
- Oscillators With Electromechanical Resonators (AREA)
Abstract
本发明提供了一种实时时钟宽范围温度误差补偿方法及其***,该补偿方法通过获取当前石英晶振的状态信息,对所需的误差补偿acc进行计算,并判断其是否在***提供的调节范围之内,如果不在调节范围之内则通过调整石英晶振的分频频率引入可控误差,从而改变误差补偿acc的计算值,使之最终落入***提供的调节范围之内,再进行温度补偿。该温度误差补偿方法通过调整时钟晶振的分频频率,主动对误差补偿acc引入可控的恒定误差量E,从而改变误差补偿acc的数值,使之落入产品提供的可调节范围之内。这样,产品可以在不改***件配置的情况下继续进行温度误差补偿,不会因为受误差补偿acc的调节范围所限而无法进行精确补偿。
Description
技术领域
本发明涉及半导体技术领域,特别是一种实时时钟(RTC,Real-Time Clock)宽范围温度误差补偿方法及其误差补偿***。
背景技术
如今随着科技的进步,对现有的嵌入式领域中时钟的精度提出了更高的要求,以满足更严格更精准的实时应用。而影响时钟精度的因素有两个,第一个是石英晶振本身的误差,第二个是环境温度变化所带来的误差。前一种是器件自身固有的误差,比较恒定可以通过补偿的方法抵消掉。后一种需要建立温度和晶振频率的数学模型来进行补偿,以抵消掉误差影响。
目前,对时钟误差的解决方法通常有硬件补偿和软件补偿两种方法。硬件补偿是由集成电路公司将补偿算法集成到芯片内部,由硬件自身直接完成补偿,无需开发人员关心。硬件补偿虽然具有精度高补偿范围广的优点,但是其价格较高,不适宜在一些对成本比较敏感的产品中应用。软件补偿是采用程序加算法的方法嵌入到CPU中,通过软件算法对其进行补偿。软件补偿的成本相对低廉,适合应用于一些低成本的开发,但是其温度补偿的范围有限,是其致命的缺点。
图2为石英晶振温度误差曲线示意图。图中虚线为晶振未校准时误差的温度曲线,实线为晶振校准后的标准温度曲线。石英晶振的精度误差与温度的关系方程如下:
acc=dev+K×(T-T0)2
其中,acc为需要补偿的误差,dev为晶振在曲线顶点时的误差,T0为晶振曲线顶点时的温度(通常这个曲线顶点温度为25℃),T为晶振的工作温度,K为曲线系数,该系数根据厂家提供的晶振系数相关。
理论上,采用软件补偿的方法对时钟误差进行补偿,只要依据上面的关系方程,预先测得该石英晶振的曲线顶点误差dev、曲线顶点温度T0和曲线系数K,即可实现对时钟误差的精确补偿。
但是,一方面目前市场上的产品主要出于成本考虑,所采用的用以存储误差补偿acc的补偿寄存器一般为只支持无符号数字的寄存器。这使得误差补偿acc最小只能补偿0ppm。当需要补偿的误差小于0ppm时,该产品就无法继续对时钟进行误差补偿了。基于这一原因,我们可以根据上面所给出的石英晶振精度误差与温度的关系方程推导出,时钟的温度补偿范围:另一方面,由于产品设计用以记录补偿误差acc和曲线顶点误差dev的位数是有限的。这使得补偿误差acc和曲线顶点误差dev的设置范围也是有限的。因此,在实际使用中,补偿误差acc和曲线顶点误差dev的设置是有上限的。
以常见的STM32F10xxx时钟为例,使用软件补偿方法对其进行补偿校准。该时钟芯片晶振的标准频率F0为32768Hz、曲线顶点误差dev根据芯片手册给出的范围为0ppm-121ppm(这主要是因为该款时钟芯片为曲线顶点误差dev提供的是6位字节)、曲线顶点温度T0为25℃、曲线系数K为-0.04ppm/℃2。根据上述时钟温度补偿范围计算式可以得到该款时钟芯片的温度补偿范围为-30℃<T<80℃,即该款时钟芯片的温度误差只有在-30℃<T<80℃温度范围内才是可补偿的,超出该范围则该款芯片无法进行精确的温度误差补偿。
综合以上因素,使得嵌入式***在采用软件补偿方法对时钟进行误差补偿时,实际只能在一定温度范围内进行补偿,超出这一温度范围则无法继续补偿。这是软件补偿方法在实际使用中的最大问题。鉴于此,我们有必要对时钟的软件补偿方法进行完善,使之可以在更宽的温度范围内进行温度补偿,同时不会增加过多的成本。
发明内容
本发明的主要目的在于解决现有技术中存在的问题,提供一种通过在调节时钟晶振的分频频率的同时对晶振误差补偿进行对应调整,从而改善时钟的温度补偿范围的误差补偿方法,以及用于实现该误差补偿方法的***。
本发明的目的是通过下述技术方案予以实现的:
一种实时时钟宽范围温度误差补偿方法,包括:
读取晶振信息存储器中存储的晶振信息;
根据所读取的晶振信息,基于晶振的精度误差与温度关系方程acc=dev-fE+K×(T-T0)2计算误差补偿acc;其中,acc为温度补偿,dev为曲线顶点误差,f为晶振分频调整的分频单位,E为恒定误差量,K为曲线系数,T为当前工作温度,T0为曲线顶点温度;
调整晶振分频调整的分频单位f,使误差补偿acc在调节范围[ACCmin,ACCmax]内,其中,[ACCmin,ACCmax]为误差补偿acc的调节范围;
将计算得到的误差补偿acc写入补偿寄存器,对晶振进行温度补偿。
所述晶振信息存储器中存储的晶振信息包括基本信息和状态信息;
所述基本信息至少包括:标准频率F0、曲线顶点误差dev、曲线顶点温度T0、曲线系数K和误差补偿acc的可调节范围[ACCmin,ACCmax];
所述状态信息至少包括:晶振分频调整的分频单位f和当前工作温度T;所述晶振分频调整的分频单位f=F-F0,为整数;其中,F为晶振当前的分频频率;
所述恒定误差量E=1/F0或E=[1/F0]。
所述晶振信息存储器中存储的晶振信息包括下限经验数值Rmin和上限经验数值Rmax;
所述误差补偿acc的调节范围[ACCmin,ACCmax]变为[ACCmin+Rmin,ACCmax-Rmax]。
所述调整晶振分频调整的分频单位f,使误差补偿acc在调节范围[ACCmin,ACCmax]内包括:
判断所计算得到的误差补偿acc是否在调节范围内;
如果小于调节范围的下限,则晶振分频调整的分频单位f减1,再重新根据晶振的精度误差与温度关系方程acc=dev-fE+K×(T-T0)2计算误差补偿acc;
如果大于调节范围的上限,则晶振分频调整的分频单位f加1,再重新根据晶振的精度误差与温度关系方程acc=dev-fE+K×(T-T0)2计算误差补偿acc。
***间隔一定时间周期重复一遍所述温度误差补偿方法。
所述晶振信息存储器中存储的晶振信息包括晶振的线性误差范围[Fmin,Fmax];
如果所述晶振当前的分频频率F被调整超出晶振的线性误差范围[Fmin,Fmax],则向用户报警提示。
所述晶振的标准频率F0为32768Hz;所述恒定误差量E=31ppm。
一种实时时钟宽范围温度误差补偿***,其特征在于,包括:晶振信息存储器、晶振补偿计算单元、晶振信息调整单元和补偿寄存器;
所述晶振信息存储器,用于存储晶振信息;
所述晶振补偿计算单元,用于根据读取的晶振信息,基于晶振的精度误差与温度关系方程acc=dev-fE+K×(T-T0)2计算误差补偿acc;其中,acc为温度补偿,dev为曲线顶点误差,f为晶振分频调整的分频单位,E为恒定误差量,K为曲线系数,T为当前工作温度,T0为曲线顶点温度;
所述晶振信息调整单元,用于调整晶振分频调整的分频单位f,使误差补偿acc在调节范围[ACCmin,ACCmax]内;其中,[ACCmin,ACCmax]为误差补偿acc的调节范围;
所述补偿寄存器,用于写入误差补偿acc,以对晶振进行温度补偿。
所述晶振信息存储器包括基本信息存储器和状态信息存储器;
所述基本信息存储器中至少存储有:标准频率F0、曲线顶点误差dev、曲线顶点温度T0、曲线系数K和误差补偿acc的可调节范围[ACCmin,ACCmax];
所述状态信息存储器中至少存储有:晶振分频调整的分频单位f和当前工作温度T;所述晶振分频调整的分频单位f=F-F0,为整数;其中,F为晶振当前的分频频率;
所述恒定误差量E=1/F0或E=[1/F0]。
所述晶振信息调整单元包括:误差补偿区间判断模块和晶振信息设置模块;
所述误差补偿区间判断模块,用于判断所计算的误差补偿acc在所述调节范围[ACCmin,ACCmax]的区间范围;至少包括:小于调节范围下限区间、调节范围区间、大于调节范围上限区间;
所述晶振信息设置模块,用于根据误差补偿区间判断模块的区间范围判断对所述晶振分频调整的分频单位f进行调整。
通过本发明实施例,该实时时钟宽范围温度误差补偿方法通过调整时钟晶振的分频频率,主动对误差补偿acc引入可控的恒定误差量E,从而改变误差补偿acc的数值,使之落入产品提供的可调节范围之内。这样,产品可以在不改***件配置的情况下继续进行温度误差补偿,不会因为受误差补偿acc的调节范围所限而无法进行精确补偿。
附图说明
图1为实时时钟宽范围温度误差补偿方法流程图;
图2为石英晶振温度误差曲线示意图;
图3为实时时钟宽范围温度误差补偿方法第一实施例流程图;
图4为实时时钟宽范围温度误差补偿***结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步描述。
通过前面关于现有时钟软件误差补偿技术的介绍我们可以看出,现有的时钟软件误差补偿技术所存在的问题并不在于其本身补偿算法的精度问题,而是在于开发产品受成本等客观条件所限,能够提供给误差补偿acc的调节范围有限,从而导致时钟的温度补偿范围受限,无法在更宽的温度范围内得到误差补偿。
基于上述问题分析,本发明提出的实时时钟宽范围温度误差补偿方法,通过调整时钟晶振的分频频率,主动引入可控的误差,从而调整误差补偿acc到产品提供的可调节范围之内,使得产品得以继续进行误差补偿,进而实现更宽温度范围的误差补偿。
图1为实时时钟宽范围温度误差补偿方法流程图。如图1所示,实时时钟宽范围温度误差补偿方法,包括如下步骤:
读取晶振信息存储器中存储的晶振信息;
根据所读取的晶振信息,基于晶振的精度误差与温度关系方程acc=dev-fE+K×(T-T0)2计算误差补偿acc;其中,acc为温度补偿,dev为曲线顶点误差,f为晶振分频调整的分频单位,E为恒定误差量,K为曲线系数,T为当前工作温度,T0为曲线顶点温度;
调整晶振分频调整的分频单位f,使误差补偿acc在调节范围[ACCmin,ACCmax]内,其中,[ACCmin,ACCmax]为误差补偿acc的调节范围;
将计算得到的误差补偿acc写入补偿寄存器,对晶振进行温度补偿。
这里,我们对现有的晶振精度误差与温度关系方程进行了调整,在计算式中增加了基于分频调整的误差偏移量fE。
其中,f为晶振分频调整的分频单位,即我们通过分频器对该石英晶振的频率进行分频调整所引入的偏移量。该晶振分频调整的分频单位f=F-F0,为整数。其中,F为晶振进行分频调整后的分频频率。
其中,E为恒定误差量,是晶振每经过一个分频单位的分频调整后所引入的误差。我们对晶振进行分频调整会对晶振引入误差。当我们降低一个分频单位,则引入误差1/(F0-1);继续进一步降低一个分频单位,则引入误差1/(F0-2);……;如此可推。反之,当我们升高一个分频单位,则引入误差-1/(F0+1);继续进一步升高一个分频单位,则引入误差-1/(F0+2);……;如此可推。由于晶振的标准频率F0本身是一个较大的值(一般在五位数以上),当晶振的频率在本身的线性误差范围内(相对于标准频率F0是一个很小的范围)进行调节时,我们可以认为这种调节所引入的误差是一个恒定的误差量E=1/F0(单位:ppm)。当然,为了方便计算,我们可以将恒定误差量E预先进行取整处理,即E=[1/F0]。这样可以简化误差补偿acc的计算过程和最终误差补偿acc的计算结果,从而形成一个线性关系。
由此可见,我们通过对时钟晶振进行分频调整,可以主动对误差补偿acc引入一个可控的误差偏移量fE,从而改变误差补偿acc的计算值,使之落入产品提供的可调节范围之内。这样,产品可以在不改***件配置的情况下继续进行温度误差补偿,不会因为受误差补偿acc的调节范围所限而无法进行精确补偿。
实施例一:
由上可知,本发明所设计的实时时钟宽范围温度误差补偿方法的关键在于,通过何种办法对晶振分频调整的分频单位f进行调整,使其所引入的误差偏移量fE能够调整误差补偿acc的计算值落入产品提供的可调节范围之内。这里,我们就给出一种可行的实施例。如图3所示,具体包括如下步骤:
步骤1,获取时钟石英晶振的基本信息,该基本信息中至少包括:标准频率F0、曲线顶点误差dev、曲线顶点温度T0、曲线系数K和误差补偿acc的可调节范围[ACCmin,ACCmax];
步骤2,获取当前石英晶振的状态信息,该状态信息中至少包括:晶振分频调整的分频单位f和当前工作温度T;所述晶振分频调整的分频单位f=F-F0,为整数;其中,F为晶振当前的分频频率;
如果是开机后首次获取当前石英晶振的状态信息,则晶振默认的晶振分频调整的分频单位f=0,即分频频率为F=F0。
步骤3,根据石英晶振的精度误差与温度的关系方程acc=dev-fE+K×(T-T0)2计算误差补偿acc;其中,恒定误差量E=1/F0或E=[1/F0];
步骤4,判断误差补偿acc是否在调节范围[ACCmin,ACCmax]内?如果误差补偿acc在调节范围[ACCmin,ACCmax]内,则执行步骤7;如果误差补偿acc小于ACCmin,则执行步骤5;如果误差补偿acc大于ACCmax,则执行步骤6;
步骤5,调整分频器使晶振的分频频率减1,即晶振分频调整的分频单位f减1,并返回步骤2;
步骤6,调整分频器使晶振的分频频率加1,即晶振分频调整的分频单位f加1,并返回步骤2;
步骤7,将计算得到的误差补偿acc写入补偿寄存器,对石英晶振进行温度补偿。
根据上述的温度误差补偿方法,***通过获取当前石英晶振的状态信息,对所需的误差补偿acc进行计算,并判断其是否在***提供的调节范围之内,如果不在调节范围之内则通过调整石英晶振的分频频率引入可控误差,从而改变误差补偿acc的计算值,使之最终落入***提供的调节范围之内,再进行温度补偿。通过该误差补偿方法,产品可以在不改***件配置的情况下,使其在晶振本身的线性误差范围内均可得到准确的误差补偿,扩大了时钟的温度补偿范围。
同时还应当指出,上述实施例仅给出了一种对晶振分频调整的分频单位f的可行调整方案,并不用以限定本发明的保护范围。本领域技术人员可以通过其他流程设计,给出不同的对晶振分频调整的分频单位f的调整方案,只要其通过调整晶振的分频频率引入可控误差,从而使误差补偿acc落入***提供的调节范围之内,均应视为在本发明的保护范围之内。
另外,时钟一般需要实时的监测当前温度状态,对温度补偿值及时进行修正。因此,所述温度误差补偿方法,在所述步骤7后还包括:
步骤8,***间隔一定时间周期返回步骤2。
这里,该时间周期的长短根据各个产品所需的刷新频率要求不同而定。
再有,如前所述本发明所提供的补偿方法的可补偿范围是调整后的分频频率仍然处于晶振本身的线性误差范围内。如果超出了该晶振的线性误差范围,则无法继续按照所给出的关系方程进行误差补偿,需要向用户报警提示。基于此,所述温度误差补偿方法还包括如下步骤:
所述步骤1中的基本信息还包括晶振的线性误差范围[Fmin,Fmax];
所述步骤5,调整分频器使晶振的分频频率减1;判断调整后的分频频率是否超出所述线性误差范围[Fmin,Fmax];如果超出,则向用户报警提示;如果没超出,则返回步骤2;
所述步骤6,调整分频器使晶振的分频频率加1;判断调整后的分频频率是否超出所述线性误差范围[Fmin,Fmax];如果超出,则向用户报警提示;如果没超出,则返回步骤2。
应当指出,在实际的产品使用过程中,所述曲线顶点误差dev和误差补偿acc一般是不会设置到其调节范围的端值部分的。这是因为元器件和石英晶振本身的误差比较分散,如果设置到极限端值,会造成产品的合格率下降。通常的做法是限定曲线顶点误差dev和误差补偿acc的实际设置范围在远离调节范围端值的一个经验数值R的范围之内。当然,这个经验数值R的具体取值根据各个产品要求不同也有所不同,由开发人员自主设置。基于此,本发明的误差补偿方法可相应调整如下:
所述步骤1中的基本信息还包括经验数值R;
所述步骤4,判断误差补偿acc是否在范围[ACCmin+R,ACCmax-R]内?如果误差补偿acc在调节范围[ACCmin+R,ACCmax-R]内,则执行步骤7;如果误差补偿acc小于ACCmin+R,则执行步骤5;如果误差补偿acc大于ACCmax-R,则执行步骤6。
当然,可以根据实际情况也可给误差补偿acc的调节范围的上下限分别设置不同的经验数值Rmin、Rmax,则上述步骤还可以进一步调整如下。
所述步骤1中的基本信息还包括下限经验数值Rmin和上限经验数值Rmax;
所述步骤4,判断误差补偿acc是否在范围[ACCmin+Rmin,ACCmax-Rmax]内?如果误差补偿acc在调节范围[ACCmin+Rmin,ACCmax-Rmax]内,则执行步骤7;如果误差补偿acc小于ACCmin+Rmin,则执行步骤5;如果误差补偿acc大于ACCmax-Rmax,则执行步骤6。
下面我们仍然以常见的STM32F10xxx时钟为例,结合上述实施例一中所给出的流程步骤,对本发明所设计的温度误差补偿方法进行说明。
步骤1,获取该时钟芯片晶振的基本信息:标准频率F0为32768Hz,曲线顶点温度T0为25℃,曲线系数K为-0.04ppm/℃2,其曲线顶点误差dev我们假设为42ppm,误差补偿acc的可调节范围为[0,121]。由于,该晶振的标准频率F0为32768Hz,因此恒定误差量E=[1/F0]=[1/32768]=31ppm。
步骤2,获取该时钟芯片晶振的状态信息。如前所述,开机后首次获取当前石英晶振的状态信息,默认晶振分频调整的分频单位f=0,即分频频率为F=F0。假设当前工作温度T=80℃。
步骤3,将上述基本信息和状态信息代入晶振的精度误差与温度的关系方程acc=dev-fE+K×(T-T0)2=42-0.04×(80-25)2=-79。因此,通过计算得到未经过分频调整的误差补偿acc=-79ppm。
据前所述,如果按照现有技术误差补偿acc的可调节范围为[0,121]。因此,在80℃的工作温度下时钟晶振无法得到精确地误差补偿。
然而,按照本发明所给出的误差补偿方法,由于计算得到的误差补偿acc小于可调节范围的下限0ppm,***执行步骤5,并经过三次循环操作,最终调整晶振分频调整的分频单位f=-3,即分频频率F=32765Hz。
将调整后的基本信息和状态信息代入晶振的精度误差与温度的关系方程acc=dev-fE+K×(T-T0)2=42+3×31-0.04×(80-25)2=14。可见,通过上述分频调整引入误差偏移量fE=93ppm,使得调整后的误差补偿acc=14ppm,在可调节范围为[0,121]内,该晶振得以在80℃的工作温度下继续得到精确的温度补偿。
当工作温度回归到常温25℃时,***将新测得的状态信息代入晶振的精度误差与温度的关系方程acc=dev-fE+K×(T-T0)2=42+3×31-0.04×(25-25)2=135。此时,误差补偿acc超出可调节范围的上限121ppm,***执行步骤6,经过一次调整操作,最终调整晶振分频调整的分频单位f=-2,即分频频率F=32766Hz。
将调整后的基本信息和状态信息代入晶振的精度误差与温度的关系方程acc=dev-fE+K×(T-T0)2=42+2×31-0.04×(25-25)2=104。可见,通过上述分频调整又将误差补偿acc回调为104ppm,在可调节范围为[0,121]内,该晶振得以继续得到精确的温度补偿。
可见,通过本发明所设计的温度误差补偿方法,我们可以在不改***件配置的情况下,获得更宽的温度补偿范围,大大提高了软件补偿方法的实用性。而且,该误差补偿方法不仅可以在工作温度超出温度补偿范围的条件下,调整晶振的精度误差与温度的关系方程实现误差补偿,同时还设置有回调机制,使其可以在温度回归温度补偿范围时,调整晶振的精度误差与温度的关系方程,将误差补偿acc进行回调。
图4为实时时钟宽范围温度误差补偿***结构图。该误差补偿***是用以实现上述误差补偿方法所设计的误差补偿***。如图4所示,该误差补偿***包括:晶振信息存储器、晶振补偿计算单元、晶振信息调整单元和补偿寄存器;
所述晶振信息存储器,用于存储晶振信息;
所述晶振补偿计算单元,与晶振信息存储器及晶振信息调整单元相连接,用于根据读取的晶振信息,基于晶振的精度误差与温度关系方程acc=dev-fE+K×(T-T0)2计算误差补偿acc;其中,acc为温度补偿,dev为曲线顶点误差,f为晶振分频调整的分频单位,E为恒定误差量,K为曲线系数,T为当前工作温度,T0为曲线顶点温度;
所述晶振信息调整单元,与晶振信息存储器及晶振补偿计算单元相连接,用于调整晶振分频调整的分频单位f,使误差补偿acc在调节范围[ACCmin,ACCmax]内;其中,[ACCmin,ACCmax]为误差补偿acc的调节范围;
所述补偿寄存器,与晶振补偿计算单元相连接,用于写入误差补偿acc,以对晶振进行温度补偿。
所述晶振信息存储器包括基本信息存储器和状态信息存储器;
所述基本信息存储器中至少存储有:标准频率F0、曲线顶点误差dev、曲线顶点温度T0、曲线系数K和误差补偿acc的可调节范围[ACCmin,ACCmax];
所述状态信息存储器中至少存储有:晶振分频调整的分频单位f和当前工作温度T;所述晶振分频调整的分频单位f=F-F0,为整数;其中,F为晶振当前的分频频率;
所述恒定误差量E=1/F0或E=[1/F0]。
所述晶振信息调整单元包括:误差补偿区间判断模块和晶振信息设置模块;
所述误差补偿区间判断模块,用于判断所计算的误差补偿acc在所述调节范围[ACCmin,ACCmax]的区间范围;至少包括:小于调节范围下限区间、调节范围区间、大于调节范围上限区间;
所述晶振信息设置模块,用于根据误差补偿区间判断模块的区间范围判断对所述晶振分频调整的分频单位f进行调整。
当误差补偿区间判断模块判断误差补偿acc落入小于调节范围下限区间时,晶振信息设置模块调整晶振分频调整的分频单位f减1;
当误差补偿区间判断模块判断误差补偿acc落入大于调节范围上限区间时,晶振信息设置模块调整晶振分频调整的分频单位f加1;
当误差补偿区间判断模块判断误差补偿acc落入调节范围区间时,则晶振补偿计算单元将计算得到的误差补偿acc写入补偿寄存器,对晶振进行温度补偿。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种实时时钟宽范围温度误差补偿方法,其特征在于,包括:
读取晶振信息存储器中存储的晶振信息;
根据所读取的晶振信息,基于晶振的精度误差与温度关系方程acc=dev-fE+K×(T-T0)2计算误差补偿acc;其中,acc为温度补偿,dev为曲线顶点误差,f为晶振分频调整的分频单位,E为恒定误差量,K为曲线系数,T为当前工作温度,T0为曲线顶点温度;所述晶振分频调整的分频单位f=F-F0,为整数;其中,F为晶振当前的分频频率,标准频率F0;所述恒定误差量E=1/F0或E=[1/F0];
调整晶振分频调整的分频单位f,使误差补偿acc在调节范围[ACCmin,ACCmax]内,其中,[ACCmin,ACCmax]为误差补偿acc的调节范围;
将计算得到的误差补偿acc写入补偿寄存器,对晶振进行温度补偿。
2.如权利要求1所述的实时时钟宽范围温度误差补偿方法,其特征在于,所述晶振信息存储器中存储的晶振信息包括基本信息和状态信息;
所述基本信息至少包括:标准频率F0、曲线顶点误差dev、曲线顶点温度T0、曲线系数K和误差补偿acc的可调节范围[ACCmin,ACCmax];
所述状态信息至少包括:晶振分频调整的分频单位f和当前工作温度T。
3.如权利要求1所述的实时时钟宽范围温度误差补偿方法,其特征在于,所述晶振信息存储器中存储的晶振信息包括下限经验数值Rmin和上限经验数值Rmax;
所述误差补偿acc的调节范围[ACCmin,ACCmax]变为[ACCmin+Rmin,ACCmax-Rmax]。
4.所述权利要求1至3中任一所述的实时时钟宽范围温度误差补偿方法,其特征在于,所述调整晶振分频调整的分频单位f,使误差补偿acc在调节范围[ACCmin,ACCmax]内包括:
判断所计算得到的误差补偿acc是否在调节范围内;
如果小于调节范围的下限,则晶振分频调整的分频单位f减1,再重新根据晶振的精度误差与温度关系方程acc=dev-fE+K×(T-T0)2计算误差补偿acc;
如果大于调节范围的上限,则晶振分频调整的分频单位f加1,再重新根据晶振的精度误差与温度关系方程acc=dev-fE+K×(T-T0)2计算误差补偿acc。
5.如权利要求1所述的实时时钟宽范围温度误差补偿方法,其特征在于,
***间隔一定时间周期重复一遍所述温度误差补偿方法。
6.如权利要求2所述的实时时钟宽范围温度误差补偿方法,其特征在于,所述晶振信息存储器中存储的晶振信息包括晶振的线性误差范围[Fmin,Fmax];
如果所述晶振当前的分频频率F被调整超出晶振的线性误差范围[Fmin,Fmax],则向用户报警提示。
7.如权利要求2所述的实时时钟宽范围温度误差补偿方法,其特征在于,所述晶振的标准频率F0为32768Hz;所述恒定误差量E=31ppm。
8.一种实时时钟宽范围温度误差补偿***,其特征在于,包括:晶振信息存储器、晶振补偿计算单元、晶振信息调整单元和补偿寄存器;
所述晶振信息存储器,用于存储晶振信息;
所述晶振补偿计算单元,用于根据读取的晶振信息,基于晶振的精度误差与温度关系方程acc=dev-fE+K×(T-T0)2计算误差补偿acc;其中,acc为温度补偿,dev为曲线顶点误差,f为晶振分频调整的分频单位,E为恒定误差量,K为曲线系数,T为当前工作温度,T0为曲线顶点温度;所述晶振分频调整的分频单位f=F-F0,为整数;其中,F为晶振当前的分频频率,标准频率F0;所述恒定误差量E=1/F0或E=[1/F0];
所述晶振信息调整单元,用于调整晶振分频调整的分频单位f,使误差补偿acc在调节范围[ACCmin,ACCmax]内;其中,[ACCmin,ACCmax]为误差补偿acc的调节范围;
所述补偿寄存器,用于写入误差补偿acc,以对晶振进行温度补偿。
9.如权利要求8所述的实时时钟宽范围温度误差补偿***,其特征在于,所述晶振信息存储器包括基本信息存储器和状态信息存储器;
所述基本信息存储器中至少存储有:标准频率F0、曲线顶点误差dev、曲线顶点温度T0、曲线系数K和误差补偿acc的可调节范围[ACCmin,ACCmax];
所述状态信息存储器中至少存储有:晶振分频调整的分频单位f和当前工作温度T。
10.如权利要求8所述的实时时钟宽范围温度误差补偿***,其特征在于,所述晶振信息调整单元包括:误差补偿区间判断模块和晶振信息设置模块;
所述误差补偿区间判断模块,用于判断所计算的误差补偿acc在所述调节范围[ACCmin,ACCmax]的区间范围;至少包括:小于调节范围下限区间、调节范围区间、大于调节范围上限区间;
所述晶振信息设置模块,用于根据误差补偿区间判断模块的区间范围判断对所述晶振分频调整的分频单位f进行调整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110030295 CN102163041B (zh) | 2011-01-27 | 2011-01-27 | 实时时钟宽范围温度误差补偿方法及其*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110030295 CN102163041B (zh) | 2011-01-27 | 2011-01-27 | 实时时钟宽范围温度误差补偿方法及其*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102163041A CN102163041A (zh) | 2011-08-24 |
CN102163041B true CN102163041B (zh) | 2013-02-27 |
Family
ID=44464314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110030295 Active CN102163041B (zh) | 2011-01-27 | 2011-01-27 | 实时时钟宽范围温度误差补偿方法及其*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102163041B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520608B (zh) * | 2011-12-19 | 2014-04-02 | 深圳市航盛电子股份有限公司 | 自动校正汽车车载时钟的方法及装置 |
CN102624331B (zh) * | 2012-04-01 | 2015-09-23 | 钜泉光电科技(上海)股份有限公司 | 实时时钟的温度补偿电路及其方法 |
CN103176400B (zh) * | 2013-01-14 | 2015-08-26 | 杭州海兴电力科技股份有限公司 | 智能电表时钟校准方法 |
CN103149832A (zh) * | 2013-01-18 | 2013-06-12 | 深圳市文鼎创数据科技有限公司 | 动态口令令牌的时钟校准方法及动态口令令牌 |
CN103248358A (zh) * | 2013-05-30 | 2013-08-14 | 上海贝岭股份有限公司 | 实时时钟补偿装置及方法 |
CN103699173B (zh) * | 2013-11-04 | 2018-10-23 | 矽恩微电子(厦门)有限公司 | 一种实时时钟计时误差补偿方法 |
CN105573106B (zh) * | 2014-10-08 | 2018-10-09 | 无锡华润矽科微电子有限公司 | 一种智能电表中对rtc计时精度的修正电路及其方法 |
CN108227471B (zh) * | 2016-12-21 | 2019-11-12 | 展讯通信(上海)有限公司 | Gps共享时钟的校准方法及装置 |
CN114088153A (zh) * | 2020-08-24 | 2022-02-25 | 成都秦川物联网科技股份有限公司 | 一种物联网智能燃气表温度补偿方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010190585A (ja) * | 2009-02-16 | 2010-09-02 | Panasonic Electric Works Co Ltd | 電子時計装置、この電子時計装置を備えた電子機器、及び制御システム |
CN101943885A (zh) * | 2010-09-08 | 2011-01-12 | 珠海中慧微电子有限公司 | 智能电表中对soc内部rtc计时精度的修正方法 |
-
2011
- 2011-01-27 CN CN 201110030295 patent/CN102163041B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102163041A (zh) | 2011-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102163041B (zh) | 实时时钟宽范围温度误差补偿方法及其*** | |
CN103176400B (zh) | 智能电表时钟校准方法 | |
US20200328718A1 (en) | Systems and methods for frequency compensation of real-time-clock systems | |
CN100456858C (zh) | 终端中的时间误差补偿装置及方法 | |
US20120265461A1 (en) | Electronic device and system time setting method thereof | |
CN108011631A (zh) | 工作时钟生成方法、时钟源及芯片 | |
CN104297716A (zh) | 一种智能电表rtc校准方法 | |
CN110262210B (zh) | 基于计数器的晶振守时方法 | |
CN103904998B (zh) | 移动终端频率调整方法和装置 | |
CN106054580B (zh) | 时钟芯片的秒信号校准方法 | |
CN107765760B (zh) | 仪表睡眠模式下rtc模块时钟源动态校准方法及其*** | |
JP2007078405A (ja) | ソフトウェア時計の計時プログラム | |
JPH07311289A (ja) | 電子時計及び時刻補正方法 | |
CN203299557U (zh) | 实时时钟补偿装置 | |
US6636121B2 (en) | Method for estimating crystal coefficient values for a signal generator | |
JP3262739B2 (ja) | 水晶発振器の調整装置及び調整方法 | |
KR101942719B1 (ko) | 리얼 타임 클럭 장치 | |
CN109217821B (zh) | 频率器件补偿方法、装置、***及计算机可读存储介质 | |
CN104730542B (zh) | 用于补偿诸如振荡器的频率发生器的频率不精确度的方法和装置 | |
CN114201001A (zh) | 一种实时时钟的补偿方法、装置、终端设备和介质 | |
CN112737507B (zh) | 一种基于温度传感器实现rtc高精度的方法 | |
CN102916654A (zh) | 一种用于补偿晶振老化的方法 | |
CN103248358A (zh) | 实时时钟补偿装置及方法 | |
JP2012047705A (ja) | 時刻補正装置、及び制御方法 | |
CN110442186A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100045 Beijing city Xicheng District Fuxingmenwai Nan Xiang Di Zang an 1 Patentee after: BEIJING YUPONT ELECTRIC POWER TECHNOLOGY CO., LTD. Address before: 100045 Beijing city Xicheng District Fuxingmenwai Nan Xiang Di Zang an 1 Patentee before: Beijig Yupont Electric Power Technology Co., Ltd. |