实时时钟(RTC)是一种IC,可以跟踪当前时间。微处理器通常可以通过串行接口读取此信息,以方便软件执行与时间有关的功能。RTC专为超低功耗而设计,因为它们通常在主系统断电时仍可继续运行。这样一来,他们就可以根据绝对时间基准(通常由微处理器直接设置)来保持当前时间。图1描述了一个简单RTC的典型内部工作原理。
RTC是非常常见的元素。它们存在于从汽车仪表盘和信息娱乐系统到房屋计量的所有领域。RTC经常集成到其他设备中,例如,汽车无线电中使用的宽带通信IC。
它们通常通过SPI或I 2 C串行总线连接到微处理器电路,并且可能包含许多其他功能,例如备份存储器,用于监视微处理器的看门狗定时器和倒计时定时器以生成实时事件。一些RTC包括秒或分钟中断输出,甚至足够聪明以解决leap年问题。
RTC通过计数振荡器的周期来维持其时钟,该振荡器通常是一个外部32.768kHz晶体振荡器电路,一个内部基于电容器的振荡器,甚至是一个嵌入式石英晶体。有些可以检测转换并计算可能连接的输入的周期。
这可以使RTC能够感测主电源上的50 / 60Hz纹波,或者检测并累积来自GPS单元历时滴答声的过渡。执行此操作的RTC像锁相环(PLL)一样工作,将其内部时钟参考移至“锁定”到外部信号上。如果RTC失去了其外部基准,它可以检测到此事件(由于其PLL失锁),并且可以从其内部振荡器自由运行。
某些RTC将振荡器设置保持在最后一个已知点,然后才失去与输入的锁定。时间分辨率是一个重要的考虑因素–您需要多精确地读取当前时间?这由RTC数据手册规定,但最终受振荡器频率限制。
从自己的内部基准运行的RTC将集成与晶体基准的绝对精度有关的误差,并且受包括温度在内的许多条件的影响。晶体被指定在通常为-10°C〜60°C的温度范围内工作–如果设计超出此范围,则会降低其精度(图3)。
某些RTC具有集成的温度补偿功能,可以扩展并提高晶体振荡器电路的精度。晶体也会老化,这会改变其物理性质,从而导致其他错误。典型的低成本晶体具有大约+/- 20ppm(百万分之几)的频率公差,并且会缓慢累积误差。+/- 20ppm的晶体每小时可能漂移高达72mS,或者每天漂移1.7秒。他们有时需要重新校准以校正漂移。
连接的处理器以某种方式获得更新的“系统时间”,并将此新值写入RTC以使其开始计数。系统时间可能来自用户界面的手动输入,读取GPS单元或云连接。
RTC需要持续供电,并且必须具有极低的功耗。多数RTC在设备打开并处于活动状态时使用数字电路电源,但在电路断电时切换到连续连接的电源。该电源可以是专用电池,已充电的超级电容器,也可以是与市电分开的电源。
许多RTC可以检测到这种转换并进入超低功耗状态,在这种状态下,它们会关闭所有电路的电源,除了那些为了维持电池寿命而必须维持时钟的电路。RTC还可以包括警报功能–设置时间,达到该时间时将触发RTC驱动输出以唤醒处理器。