一种提高智能电表MCU内置RTC精度的方法

2014-12-08 10:14潘建华李香朱世林徐振伟
中国科技纵横 2014年8期
关键词:晶振电能表寄存器

潘建华 李香 朱世林 徐振伟

(扬州万泰电子科技有限公司,江苏扬州 225009)

一种提高智能电表MCU内置RTC精度的方法

潘建华 李香 朱世林 徐振伟

(扬州万泰电子科技有限公司,江苏扬州 225009)

目前普遍采用的晶振频率误差模型都是将晶振频率随温度的偏差看作一条对称轴平行于Y轴的抛物线,但与实际晶振频率误差有一定出入,因而校准的精度也会受到一定影响。本文以单相智能电能表为例,提出了一种提高电能表MCU内置实时时钟RTC(Real-Time Clock) 精度的方法。

智能电表 SoC方案 晶振频率温度补偿 RTC精度

0 引言

目前智能电能表一般都具有分时、多费率电能表,对时间精确度的要求越来越高,而日计时误差出现的问题也比较突出,国家电网公司给电能表供应商发出的整改通知中在第2条“元器件环节”和第11条“设计、制造工艺环节”都重点提出了日计时误差超差问题,要求重点整改。按照国家电网公司的智能电能表的技术规范要求,电能表的日计时误差必须≤0.5s/d。一般采用的实时时钟有以下3种:(1)软时钟。由于晶振的不稳定性,软时钟对晶振质量的要求极高,出于成本考虑,电能表产品不可能采用价格高昂的晶振。(2)硬时钟。硬时钟同样受到晶振稳定度的影响,如早期常用的RX-8025芯片,由于没有温度补偿功能,因而时钟准确度不高。后来的RX-8025T增加了温补功能,时钟精度较高,而且时钟稳定度好,但成本较高。(3)混合法,即MCU内置RTC。由于成本较低,同时可通过软件对RTC误差进行校正,采用MCU内置RTC目前已经成为电能表设计的首选方案,如何提高内置RTC的时钟精度就显得异常重要。本文就是针对如何提高内置RTC的时钟精度提出一种解决方法。

1 现有晶振频率偏差模型的不足

RTC温度补偿原理:由于温度和离散性的影响,芯片正常运行时外接的32768Hz晶振的频率在不同的时间会有不同的实际振荡频率。通过温度传感器测量当前温度,根据温度曲线得出当前温度环境下RTC的补偿值,校正寄存器可以对RTC计时进行校正,减小这种差异对最终实际走时带来的影响。

采用RTC温度补偿原理,文献1提出了一种MCU内置RTC实时时钟精确计时的方法,文献2中虽然是针对硬时钟设计提出的校正方法,但原理与文献1提出的方法一样,都是将晶振频率随温度的偏差看作一条对称轴平行于Y轴的抛物线,即f=k*(T-T0)2,其中f为当前温度下的频率,k为曲率常数,T为当前温度,T0为转折温度,这也是目前普遍采用的晶振频率误差数学模型。

但这种数学模型与实际晶振频率误差曲线有一定出入,因而采用这种模型校准的计时精度也会受到一定影响。

2 晶振频率与温度关系曲线改进数学模型及试验结果

电能表时钟模块(RTC模块、MCU内置RTC实时时钟)精度是影响日计时误差的最主要原因,也是最难解决的问题。针对目前普遍采用的晶振频率误差数学模型的不足,本文提出了一种改进的晶振频率误差数学模型,产品试验结果证明,校正精度为±1ppm以内。

图1 我司实测并经数据拟合的晶振频率与温度关系曲线

由V9811数据手册提供的晶振频率与温度关系曲线可以看出,当晶振温度低于转折温度时的曲率明显大于晶振温度高于转折温度时的曲率,但数据手册中仍然把它当成抛物线处理。图1为我司实测并经数据拟合的晶振频率与温度关系曲线,由图1可以看出,当晶振温度低于转折温度时的曲率明显小于晶振温度高于转折温度时的曲率。可见,晶振频率与温度关系曲线并不是理想的一条对称轴平行于Y轴的抛物线,即f=k*(T-T0)2。具体关系曲线依采购晶振的供应商和批次有关,因此在确定晶振供应商后一般不要更换供应商,在更换供应商和不同批次采购时都必须重新进行温补校正。

为了更精确地测出温度曲线,可将V9811的寄存器CtrlADC5的PTATEN位置1以选择温度传感器1,其温度测量范围为-40℃~85℃范围。将10只电能表放入温控箱,通过温控箱从-40℃到85℃范围内调整,步进值为1℃,依次读取温度传感器测得的值。通过记录,我们可以看出寄存器读出的值与实际温度值成线性关系,即TR=K*

(T+40)+TR40,其中TR为当前温度下的寄存器值,K为斜率,T为当前温度,TR40为-40℃温度下的寄存器值。斜率K基本相同,但常数项TR40略有偏差。由于实际生产时不可能对每只表都进行温度标定,因此可将这10只电能表测定的温度-寄存器关系曲线进行曲线拟合,得出K1~K10、TR40-1~TR40-10,K1~K10和TR40-1~TR40-10分别进行中值滤波,得出温度和寄存器值的对应关系TR=K*(T+40)+TR40,并将各温度下的标定值存入存储器。这样,实际运行时电能表每30s测量一次温度,将测得的温度寄存器值通过查表与标定的温度值比较,就能精确地测得环境实际温度,实际温度精度可达±0.5°C。

上述操作的同时,依次用频率计测量出引脚P2.0(Pin62)输出的晶振频率。然后根据各温度的频率测量值,找出频率最接近于32768Hz的温度,得出转折温度T0以及转折温度下的频率偏差f0。可以看出,实际频率-温度曲线近似抛物线,但并不是一个理想的抛物线,转折温度左侧与右侧的曲率并不一样。但不同表之间曲线形状偏差很小,仅上下偏移,即常数项f0略有偏差。

因此,本文以转折温度为界,将转折温度两边的频率-温度曲线分别用抛物线近似,即数学模型按以下公式建立:

采用上述数学模型设计的智能电表日计时误差较小,最大日计时误差小于0.3s/d。

3 结语

如何提高内置RTC的时钟精度是一个关键问题,本文提出的一种晶振频率温度补偿数学模型较好的解决了这一问题。但今后仍然需要继续进行研究,以便使这一问题得到更好的解决。

[1]梁世清等.内置RTC作为电能表计时钟的应用.自动化仪表,2012,33(1):76-78.

[2]邓乾中.自校准实时时钟RTC的研究和设计.华中科技大学硕士学位论文,2008.5.

猜你喜欢
晶振电能表寄存器
巧数电能表
两非门晶振振荡电路的设计
基于晶振的高性能时间保持方法研究
Lite寄存器模型的设计与实现
几种导致恒温晶振频率偏移的因素分析
恒温晶振环境温度特性测试系统设计
分簇结构向量寄存器分配策略研究*
电能表自动化检定机器人可靠挂卸表方案设计与实现
基于MSP430+ATT7022B的三相三线多回路多功能电能表的研究
高速数模转换器AD9779/AD9788的应用