内建高精度温补硬件RTC SOC智能电表方案设计分析
中心议题:
* 分析影响RTC 精度的各种因素
* 总结了目前常见的补偿机制
解决方案:
* 内建高精度温补硬件RTC SOC智能电表方案
本文系统分析了影响RTC 精度的各种因素,总结了目前常见的补偿机制,提出一款基于能兼顾功耗和补偿实时性的SOC国网电表芯片方案,大幅降低智能电表的成本,提升方案的整体竞争。
前言
随着国网公司智能电表的招标,电表厂商间竞争日趋激烈,成本成为电表厂最关心的问题之一,只有降低成本才有可能在低价竞争中,占据有利地位,逐步提高利润。这使得SOC成为关注的焦点。
从目前国网单向智能电表方案来看,电子物料中成本占大头的分别是实时时钟芯片,ESAM安全芯片,MCU, 计量芯片,LCD 驱动。ESAM安全芯片由于安全需要为国网指定使用,不具集成条件;计量芯片虽然趋势上最终是要集成进SOC芯片,但由于国网对此的态度较审慎,短时间难有突破。所以目前比较务实的SOC方案是将LCD驱动和实时时钟芯片集成进去,LCD驱动大部分IC厂商均有类似产品,并不存在技术难度,而实时时钟方面,单向智能电表使用的芯片主要为EPSON的8025T, Intersil 12020M,美信DS3231,单价均在7元以上,价格较贵,但性能指标较高,-40度~85度范围内,精度优于0.432秒/天,远高于国网要求的-25度~60度,1秒/天的要求。要在SOC芯片中实现外置实时芯片接近的性能,虽有难度,但也并非完全不可能。
实时时钟的计时精度主要取决于时钟源的特性,以及如何根据时钟源的特性做出的补偿机制,下面就这两个方面做简单的介绍。
由于实时时钟芯片需要在电池供电下工作,所以功耗成为很重要的考虑因素,通常采用高ESR的音叉晶振。音叉晶振精度受到以下几个方面的影响:
1.生产工艺的偏差,导致常温下的频率发生偏移,一般在 +/-20PPM左右,精度稍高的在+/-5PPM。
2.温度的影响。这部分影响最大,频率偏移与温度近似成抛物线特性老化。晶振精度会随着工作时间的增加而发生变化,第一年最大会有+/- 3PPM变异,整个使用寿命期间会有+/-10PPM的变化。
激励功率的影响。过高的激励功率会影响时钟源的精确性和寿命,所以激励功率应控制在晶振可接受的范围内,对于常用的32768音叉晶振,激励功率应小于1uW.负载电容。包括外接的负载电容和PCB杂散电容,负载电容对频率的影响称为牵引率,可用以下公式表示
CM:为晶体的动态等效电容
C0: 为晶体的静态电容
CL: 为外接负载电容
图2 负载电容对频率的影响
常见的补偿机制分为模拟方法和数字方法:
模拟方法主要原理是利用负载电容对频率的影响来实现,通过增加和减少负载电容来达到补偿的频率偏移的目的,这种方法的优点在于补偿的实时性,补偿后的每个32768KHz 的时钟都是准确的,但缺点也很明显,补偿的范围有限,电容太大或太小后会带来稳定性问题;补偿的非线性,以及补偿效果与晶体本身的CM有关,带来批量调节的复杂性。
图3 模拟补偿方法
数字补偿机制。常用的数字补偿机制为TTF(数字脉冲吞吐法),通过吞吐时钟的个数来达到对计时精度的补偿。比如,对于32768Hz时钟源,通常只需要数32768个脉冲,就可输出精确的1Hz信号,但当32768Hz时钟源变快为32769Hz时,仍然数32768个脉冲就可输出的1Hz信号显然是偏快的,这时可以通过增加1个脉冲即数32769个脉冲再输出1Hz,这时的1Hz就是精确的了。补偿的精度为 1/32768=30.5PPM,如果需要提高补偿的精度可以有两种办法:增加吞吐脉冲数的周期时间,如由1S增加至60S,调节精度变为 1/32768/60=0.51PPM,但实时性降低,提高吞吐脉冲的频率,如内建100倍频的PLL电路,这样增加1个脉冲的该变的宽度仅为原32768Hz的1/100,补偿精度达到0.305PPM,但会带来功耗的增加,数字补偿方法的优点是不改变振荡器本身,补偿范围大,不会带来稳定问题,补偿效果确定,与晶体特性无关,缺点是补偿的实时性和功耗难以同时保证。
目前市面上的实时时钟芯片出于电池应用场合功耗考虑,大多采用模拟方法+数字低频时钟方法,来实现实时性和功耗平衡,其缺点是工厂调校较多。而在智能电表特定应用场合,在电池供电下,无需输出1Hz秒脉冲,对校正的实时性要求不高,可以使用低频脉冲补偿方法,同时满足功耗的要求;而在市电下,要求输出稳定精确的1Hz秒脉冲,但对功耗要求不高,因此可采用高频脉冲方式来进行输出补偿, 这使得全数字补偿成为可能。
本文采用的方式就是全数字补偿方式。系统结构如下:
图4 系统框图
系统采用的是中颖电子为国网量身定制的SOC芯片:SH79F6431。
SH79F6431主要资源如下:
* 工作电压 2.4V~3.6V(部分IO支持5V,用于PLC接口)
* JTAG 在线调试
* 64KB FLASH程序存储空间
* 256B IRAM,2816 XRAM
* 3路UART接口,一路内建红外调制电路
* 3 路定时器,2路PWM,可用来产生ESAM和CPU卡时钟
* 硬件IIC接口,方便与LCD,EEPROM通讯
* 内建 4通道10 bit ADC,可内部直接测量电池电压
* 带补偿低功耗硬件实时时钟
* 内建高速PLL
* 内建掉电检测基准源,方便准确检测外部掉电
* 内建电源切换电路
* 内建4*39 LCD driver
* 支持ISP
从资源上看,SH79F6431完全可以满足国网单向电表的应用,比较特别的是其RTC为硬件RTC,其运行独立于CPU,不受各种复位电路的影响,并可提供两种供电下的兼顾功耗和实时性的补偿机制,保证市电下,每个秒脉冲都准确稳定的,而且用户接口统一,极为简单易用,用户只要将需要校正的频率偏差除以2.03后取整写入校正寄存器(RTCDATA)即可。
图中Rref,Rntc,C1组成测温电路,用于晶体环境温度的测量。考虑到功耗和自热问题,Rref和Rntc的阻抗要较大,这里Rref选用 100K/0.1%电阻,Rntc需用 50K,C1为1000pF,用于满足ADC输入动态电阻的要求。
振荡器选用的为 Seiko VT-200F,12pF,电容应采用温漂较小的C0G电容
对于前文提到的各种影响时钟精度的因素,补偿方法如下:
工艺和负载电容的影响:
在常温(25度左右)下测量出频偏B(单位ppM) ,将B/2.03写入RTCDATA即可
老化的影响:
根据晶体实际工作的时间和老化率,将老化引起的频偏除2.03,得到老化补偿值,与常温补偿值和温度补偿值做代数和后,写入RTCDATA,一年补偿一次
温度的影响:
用测温电路测量出当前温度值,根据温度与晶振随温度的变化曲线,找到对应温度下由于温度影响引起的频偏A
全温度范围内,补偿满足国网的要求,需确保温度控制在 +/-1度以内。
晶振的温度特性并非理想的抛物线,每家的温度特性均不同,需要大量的温度实验来获取温度特性,工作量巨大,实践表明,5度一个点进行描绘,既可以保证精度,又可以使工作量得到较大的减轻。
补偿动作在市电下,可一分钟进行一次,在电池模式下,考虑到功耗,一般十五分钟一次即可。
一次补偿的软件流程如下:
总结
基于SH79F6431的内建RTC补偿SOC方案,简单易行,无复杂运算,相比较独立RTC芯片成本大幅度降低,目前该方案通过批量试产验证,性能可以优于国网要求,全温度范围内,达到+/-0.3秒/天,补偿效果关键取决于测温的精度和物料的一致性。
评论