智能电表中的实时钟校准研究

描述

在智能电表中,结算方式已经由原有的电量结算转换为金额结算,并且费率模式也较以往的电表更为复杂,这些需求对智能电表中的实时钟(Real Time Clock,RTC)提出了更高的要求。而众所周知,影响实时钟精度的主要原因为晶体的温度偏差,晶体的温度曲线接近二次曲线,因此用二次曲线校正的方法,可修正晶体的温度偏差,从而提升智能电表的实时钟精度。

1  引言

在国内使用的智能电表都具有实时时钟,根据行业标准,要求其在工作温度范围内精度满足小于 1 s/day(11.5 ppm),在 23 ℃ 时满足小于 0.5 s/day(ppm)实际应用中还要考虑到晶体的老化及校准误差等因素影响[1-6], RTC 时钟误差在厂家校准应该至少做到 8 ppm 以下。

目前智能电表的 RTC 校准一般有 2 种方式。

(1)采用外置带温度补偿的 RTC,如 EPSON 的 RX8025T,其校准是由芯片厂家出厂前根据多温度点测试校准好的,电表厂家不需要校准,这种方式由于成本因素本应逐渐退出智能电表领域[7,8]。行业普遍应用的是单温度点校准方法,这种方法虽然不能保证每个电表的 RTC 精度都是合格的,所以仍占有较大市场份额。                

(2)主控制器内置 RTC,如复旦微的 FM3318,其 RTC 的校准是只进行常温下单点校准,二次曲线系数是根据 32 768 Hz 晶体的批量数据预制的,每批电表都使用相同之处的系数[9-13]。

频率为 32 768 Hz 晶体的温度曲线如图 1,接近二次曲线,这种单温度点校准相当于β和 T0 使用固定值,只校准 S0[14,15]。根据晶体厂家提供的参数,β一般为 0.035±0.0012 ppm,T0 为 23±2 ℃。

根据二次曲线 ,假如β为 0.035,和预制值一致,T0 预置 23 与实际值偏差 2 ℃ 时,并且考虑到温度误差 0.5℃,在温度-25 ℃ Y的偏差分别为 8.6 ppm,在工作温度 -40 ℃ 和 85 ℃ 时达到 -11 ppm. 这几个偏差值还不包括晶体实际曲线与二次曲线的偏差β及校准偏差以及晶体本身的老化影响。

从上面数据可以看出采用单点校准方法一定会导致部分 RTC 在高低温下超差。另一个影响 RTC 运行中精度的重要因素是晶体自身的年老化率,按照晶体厂家提供的数据,第一年晶体的最大老化率有±3 ppm,以后每年约±1ppm,按照电表能够使用 10 年的要求,由于晶体老化的影响,智能电表 5 年后就有可能不满足 23 ℃ 时 RTC 误差小于 0.5 s/day 的要求。而此年老化率的影响是正负都有可能,无法在生产校准中解决。

2  通过实验数据得到晶体的温度曲线

困扰智能电表行业多年的一个难题,即采用 SoC 方案的智能电表的 RTC,如果采用单温度点校准法,能满足量产化需求,却无法保证每个表的 RTC 精度都合格。采用三温度点校准发,能保证电表 RTC 精度合格,但却由于校准时间长无法量产。为了更好地解决这一问题,通过实验数据归纳出了RTC 的精度受晶体频率影响的曲线,如表 1 所示。

通过测试多组 RTC 未校准前的精度受温度影响数据,根据图 1 中的数据描出温度与精度曲线,可以得到 1 个近似的二次曲线 y=ax3+bx2+cx+d,β为二次项系数,T0 为顶点温度,S0 为常数。按表 1 数据拟合出的曲线中,β为 -0.0343,T0 为 23.3,S0 为 12.52。选择不同的温度点数据拟合曲线的 β 和 T0 值并不一致,且变化范围也有所不同。采用 3 温度点数据拟合二次曲线的方法得到的数据见表 2。

从数据中明显可见:采用不同的温度点数据拟合出来的二次曲线的系数明显不同。前 4 组温度点拟合出来的β值与多点拟合时的β值相差较小,但 T0 的变化范围相对较大。

实测 -40 ℃ 到 85 ℃ 误差数据得到与拟合的二次曲线的差值曲线,可见温度对频率影响曲线还应该包含三次或更高次项,因此得到根据差值曲线拟合的三次曲线 y=ax3+bx2+cx+d,或四次拟合曲线 y=hx4+ax3+bx2+cx+d 

根据表 1 中的差值数据可以得到式 1。

(1)

采用不同的温度点数据拟合出来的二次曲线的系数明显不同的原因就是此三次曲线或更高次曲线影响引起的。

可见,若要实现全温度范围内的高精度 RTC,必须要对二次曲线和三次或更高次曲线都进行校准。根据曲线公式,可以看出,若要准确校准 RTC至少需要五个温度点,这在电表批量生产时是不现实的。 可是,在三温度点拟合二次曲线前,如果先把三次曲线的影响补偿了,再进行拟合,得到的二次曲线系数很接近,见表 2 中进行三次修正后拟合的数据。

3  两点校准的数据实验

选择适合的校准点,确定温度对频率影响曲线中的二次项系数 β,实现两点校准。通过实验总结,同一型号的晶体,从批量测试数据得到二次曲线中β的变化范围较小,见表 3。

为此我们可以根据选定型号的晶体,选择适合测试及校准温度点,固定β值,只进行 2 温度点测试及校准 T0 或 S0,选取的校准温度点需要满足 2 个特征:此温度点便于操作,且最好是正常电表生产工艺中使用的温度点,此温度点下,β的变化范围较小,选取的温度点能够兼顾常温和高低温。

根据拟合的三次曲线(四次曲线或更高次曲线方法类似)。

(2)

根据对其求导后的公式,可以得到变化率最小的温度点。

(3)

x =22.2±32.5 

x1=54.7, x2=-10.3

选定温度点后,在选定温度点重新按拟合,拟合时数据去除偏差影响值,批量测试同一型号晶体,各晶体的β和 T0 都在表 4 范围内。

4  通过上述实验总结出的 RTC 校准方法

(1)校准温度点的选择,综合考虑电表的一般生产工艺过程及温度点与 β的关系,选择特定校准温度点 T1 和 T2。

(2)确定所选型号晶体的β值,选择五温度点测试 RTC 误差,得到 4 个电表的β值,将β的平均值作为此型号晶体的固定系数,每个电表都采用此固定系数。

(3)确定所选型号晶体按照二次曲线补偿后的频率温度特性实测值与二次曲线的偏差 E’,采用较二次曲线更高次项的曲线拟合该偏差 E’,该拟合曲线,得到各温度点的曲线偏差值 E,这个值为晶体按二次曲线校准后残存的偏差值,制作偏差值 E 与温度 X 或偏差值 E 与晶体计时误差Y 的对应表格。

(4)RTC 的β值与各温度点的偏差值 E 通过通信接口预置到电表中,每个电表在正常生产中,都进行两温度点校准。 

(5)每个智能电表在生产中,收到启动测量温度点 RTC 误差命令后,首先关闭 RTC 的温度补偿功能,启动温度测量。

(6)根据温度测量值判断电表温度已经进入预定温度的允许范围内后,然后进行步骤(7)。

(7)通过主控制器的计时单元测量外部输入的标准时钟,计时时间 Tj 需要保证计时分辨率达到 0.1 ppm/s,由计时单元测量 Tj 得到晶体计时误差测量值 Tb,Tb1、Tb2、Tb3。

(8)在每次计时的同时,主控制器需要测量多个温度值。去掉最大值、最小值后取温度平均值 W。不同时刻 Tb1、Tb2、Tb3 分别对应平均值 W1、W2、W3,取中间一组对应值作为后面计算用值,Tb 记为 Y1,W 记为 X1,并存储到存储器之中。

(9)测量高温点的误差及温度,与常温不同的是,判断电表温度已经进入预定温度的允许范围内后,再连续判断 3~5 分钟,保证电表温度进入比较稳定状态。

(10)执行步骤(7)和(8),得到高温点的一组值 Y2 和 X2。 

(11)由主控制器解方程计算得到 T0 、S0 ,其β为已知固定值。

Y1=β(X1- T0)×2+ S0

Y2=β(X2- T0)×2+ S0

(12)根据得到的 T0 、S0 及β,进行 RTC 校准,并启动温度补偿。

(13)根据对应表格确定不同温度 X 或晶体计时误差 Y 的偏差值 E,计算得到该温度 X 或晶体计时误差 Y 对应的 S0 补偿后的值 S0’。

S0’= S0+E

(14)具体分两类:若 RTC 为自动补偿将 T0 、S0 ,β数据写到补偿控制寄存器,RTC 不支持更高次项补偿,则需要计算出高次项影响偏差值 E,根据此值调整 S0。若为非自动模式的,则计算得到偏差值 E 作为补偿值写到补偿控制寄存器。

(15)由主控制器测量补偿结果,保证补偿后的 RTC 误差在 1 ppm 以下。

(16)未达到预定补偿结果的在电表的 LCD 屏上显示异常代码,作为维修指示,补偿成功的显示校准正常代码。

校准温度点 T1 和 T2 分别为常温点 23 ℃ 和高温点 56 ℃ 附近。晶体老化过程中还包括:逐个比较若干个时间间隔之后,平均温度接近的 RTC 相对误差差值 ∆S0。将 ∆S0 与设定门限比较,若两个时间间隔间的∆S0 超过设定门限,根据 RTC 相对误差,计算出晶体频率变化数据,修改 S0。

拟合曲线为三次拟合曲线:

y=ax3+bx2+cx+d

采用五个温度点数据对 a,b,c,d 进行标定。

拟合曲线也可为四次拟合曲线:

y=hx4+ax3+bx2+cx+d 

采用六个温度点数据,对 h,a,b,c,d 进行标定。

由管理主站读取每个电表的补偿系数及校准后的 RTC 精度,并保存到数据库中,对故障表提示,由维修人员进行单独处理。晶体计时误差 Y 的单位为 ppm。批量生产中不进行上述(1)、(2)、(3)步骤。

5  结语

通过对上述实验数据的分析,归纳出相应的方法。经过大量的验证,提升了原来在智能电表中实时钟的校准方法。目前这种方法已经得到了批量推广,由此节省了人力和物力,为智能表计的生产提供了有力的技术支持。

参考文献

[1] 赵东艳,周芝梅,王于波,张海峰.一种基于累积误差控制的RTC补偿算法及电路[J].电子技术应用,2014,40(12):66-68.

[2] 邓乾中.自校准实时时钟RTC的研究和设计[D].湖北:华中科技大学,2008.

[3] 张昭.一种温度补偿晶体振荡器芯片的设计[D].四川:四川大学,2006.

[4] 孙婧瑶,何宇,李雪梅.一种针对RTC应用的数字温度补偿晶体振荡器[J].电子技术应用,2017,43(01):77-80.

[5] 王跃,张晰泊,王彬,高清运.用于RTC的32.768 kHz晶振电路的设计[J].南开大学学报(自然科学版),2007(02):95-98.

[6] J.A.Homberg.A Universal 0.03-mm2 One-Pin Crystal Oscillator in CMOS[J].IEEE Journal of Solid State Circuits,1999.

[7] 梁世清,包海泉,季海涛,何峥嵘.内置RTC作为电能表计时钟的应用[J].自动化仪表,2012,33(01):76-78.

[8] 谢修祥,王广生.异步多时钟系统的同步设计技术[J].电子工程师,2005(05):33-37.

[9] 朱永峰,陆生礼,茆邦琴.SoC设计中的多时钟域处理[J].电子工程师,2003(11):60-63.

[10] 刘志斌,张持健.嵌入式系统中高精度晶体振荡器及其应用分析[J].计算机系统应用, 2014,23(05):222-226.

[11] 杨骁,齐骋,王亮,凌朝东.一种低相位噪声CMOS晶体振荡器的设计[J].微电子学, 2012,42(05):642-645. 

[12] 武振宇,马成炎,叶甜春.一种低功耗快速起振晶体振荡器[J].微电子学,2010,40

(01):45-49.

[13] PhillipE.Allen,DouglasR.Holberg.CMOS模拟集成电路设计[M].北京:电子工业出版社,2005.

[14] 李浩,兰铁岩.实时时钟芯片RTC4553原理及应用[J].电测与仪表,2003(08):38-41.

[15] 程雯,戎蒙恬,李萍.用于实时时钟的32.768 kHz晶振电路分析与设计[J].信息技术,2009, 33(01):15-17.

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分