实时时钟计时精度提高方案
前言
为满足市场对更高时钟精度的需求,半导体厂商正在研发创新的时钟解决方案,以提高计时精度。现在有越来越多的应用要求实时时钟在宽温度范围内具有极高的计时精度。多费率智能电表就是其中一个典型实例,因为供电公司需要记录多费率电能的使用数据,以便精确计算电费,这要求在23℃的参考温度下,实时时钟每天计时精度小于±0.5秒,即计时精度小于±6 ppm(百万分之一)。中国最新的电能表标准Q/GDW 357-2009规定,在-25℃至+60℃的温度范围内,实时时钟每天计时精度必须在±1秒(即±12 ppm)内。考虑到这个标准,普通实时时钟(RTC)无法满足这个应用要求。本文将论述多个提高计时精度的解决方案,同时还论述一个最佳的参考方案。
挑战
典型实时时钟采用32.768 kHz音叉表晶石英晶体。这类晶振容易在市场买到,而且价格较便宜。在25℃时,晶体通常可提供大约±25 ppm的计时精度或每天2秒的误差。虽然非常适合电池供电应用的低功耗需求,但是在-40℃至+85℃的工业温度范围内,频率变化很大。在极端温度条件下,频率误差可能在-108 ppm至-177 ppm之间,如图图1所示。最终时钟可能每天慢10秒至16秒。
因晶体内在特性而产生的频率误差曲线为抛物线,实时时钟计时精度只能与其参考时钟(晶体)相同。
图1:典型的32.768 kHz频率误差对温度曲线
提高计时精度的可行方案
晶体筛选
有多种方法可提高实时时钟的计时精度。提高参考时钟(晶体)的技术参数是首选的且最简单的解决办法。通过晶体筛选可获得±10 ppm甚至±5 ppm的精度。时钟筛选虽然可行,但不是最佳方案,因为厂商提高晶体计时精度的成本昂贵。这种方法的最大限制是只能在一个温度点(例如室温)筛选晶体。但是,随着工业温度变化,频率偏差的抛物线特性依然存在。
将晶体置于实时时钟封装内
虽然将晶体置入实时时钟封装内是一个较好的可提高计时精度的解决办法,可以消除湿度、振动和压力等环境因素的影响,但是无法单独解决石英晶体的频率随温度变化的不良特性导致时钟精度不高的问题。
以60 Hz电力线为参考时钟
该解决方案的原理是把60 Hz电力线(例如,美国市电)变成可用的时钟源。电力线的频率误差远远低于普通晶体。该解决方案必须把交流电源转换成实时时钟适用的频率源。大多数实时时钟的输入需要32.768 kHz的通用晶振,该晶振在内部分频,为应用提供第二时钟源。多数实时时钟不支持60Hz时钟,因此需要使用锁相环PLL修正实时时钟的输入频率。此外,因为60Hz时钟不是32,768时钟的约数,所以在进入锁相环之前,60Hz时钟被不断地分频,直到是32,768的公约数为止。该解决方案需要多个步骤,可能不适用某些用户。
某些实时时钟的时钟源可使用60Hz频率。尽管该改进方案不再需要锁相环,但是电路对于部分用户仍然过于复杂,见图2.当主电源掉电时,实时时钟的精度没有保证。
图2:60Hz正弦波保护
使用AT切型晶体
另一个可行的解决方案是使用AT切型晶体。AT切型晶体与微处理器配合,速度越快,晶体随温度变化的频率误差就越小,因此可提供更高的计时精度,但是,它们的晶振却不适合低功耗应用,因为在AT切型晶体的典型频率下,晶振的电流消耗太大。AT切型晶体误差见图3.
图3:AT切型晶体与表晶典型特性对比
该解决方案的主要原理是,微控制器的AT切型晶振为微控制器的定时器提供时钟信号。因为该晶体在工作温度范围内的误差很低,所以定时器时钟信号的频率误差也很低。因此,采用这个定时器的实时时钟在校准后,精度可接近时钟源的精度,因此可降低表晶因温度飘移而导致的计时误差。
意法半导体的应用笔记AN2678详述了如何使用AT切型晶体补偿M41T82-83-93系列实时时钟的精度,在宽温度范围内取得更高的计时精度。
上文提到的较精确的时钟源仅是诸多可行方案的一部分,其它时钟源还包括互联网或卫星的远程系统时钟。
使用TCXO
另一个解决方案是使用TCXO(温度补偿晶振)替代基本石英,以提高时钟源的计时精度。TCXO内置温度传感器,可使晶体对温度曲线在宽温度范围内变得平滑,取得±5 ppm的精度,但是该解决方案是一个成本更高的方案。
图4.是一个典型的TCXO功能框图。晶体和补偿电路都集成在TCXO芯片内,但是这种做法提高了TCXO的成本,使其成本比普通晶体至少高两倍。
图4:TCXO功能框图
采用温度补偿
如果系统级有外部温度传感器,并位于实时时钟和晶体附近,则使用这个温度传感器可大幅提高计时精度。实时温度补偿只需增加应用软件,因此无需增加额外的元器件。意法半导体的应用笔记AN2971详述了如何在系统级使用温度传感器提高M41T83-93系列实时时钟精度的方法。
这个方法是根据已知晶体抛物线特性制作一个ΔPPM(实际频率与32,768 Hz参考频率的偏差)-温度查阅表,然后执行下列步骤:
1.测量温度,然后在查阅表中找到ΔPPM值。
2.调整模拟校准寄存器的设置,以修改CXI和CXO(连接XI和XO引脚的内部电容阵列)的负载电容值。
因为模拟校准功能集成在实时时钟内,所以负载电容的变化能够影响晶体,降低或提高振荡频率。
还可以通过数字方式校准实时时钟。数字校准的原理非常简单,就是向时钟链定期增减脉冲,以加快或减慢时钟运行速度。
不管是采用模拟校准还是数字校准,系统级温度补偿都需要在电路板上安装温度传感器和内置校准功能的实时时钟以及相关的软件。
最佳方案--内置晶体的温度补偿型实时时钟
上文提及的解决方案不是成本昂贵就是系统复杂。要么无法显着解决温度误差问题,要么依靠外部温度传感器、电力线或微控制器,相关软件的开发成本昂贵。最大的缺陷是即使采用温度补偿方法,当主电源掉电时,仍不能在电池供电的方式下工作。因此,需要一个更好的解决方案!
最佳解决方案应该具有以下特性: