深度解析 RTC 实时时钟:结构、精度、误差与应用场景全指南

RTC(Real-Time Clock)实时时钟是一种能够跟踪当前时间的硬件模块或芯片,通常用于需要时间保持精确性的设备,如嵌入式系统、计算机、智能设备等。RTC 模块即使在设备断电的情况下也能继续保持时间,通过使用电池或超级电容来保持计时功能。

1.PNG
常见 RTC 实时时钟芯片

简单来说,RTC(Real-Time Clock)实时时钟可以看作计时固定为 1s 的定时器,如下图所示:

2.PNG
如图展示了一个 RTC 程序计时和报警功能,它在 A 点读取秒计数器并安排一个事件 B 在三秒钟后发生,这个操作被称为“alarm 报警”,同时秒计数器是连续运行的,并不会停止或重新启动

RTC 实时时钟通常具有如下功能:

  • 时间保持​:RTC 能够记录并持续跟踪当前的秒、分钟、小时、日期、月、年等信息。
  • 低功耗​:由于 RTC 模块通常工作在低功耗模式,因此非常适合应用在需要长时间运行的嵌入式系统中。
  • 闹钟功能​:许多 RTC 模块支持闹钟功能,可以在预设的时间生成中断信号,用于触发系统的某些操作。
  • 外部电源支持​:RTC 模块通常配有备用电池或超级电容,确保即使主电源断开也能继续正常工作。

往往用于如下场景:

  • 时间戳记录​:用于记录事件的时间,如数据采集、日志记录等。
  • 定时操作​:在特定时间触发系统操作,如定时开关设备。
  • 日历功能​:用于需要显示日期和时间的设备,如时钟、日历等。

1.RTC 基本结构和工作原理

3.PNG

RTC 基本结构如下,包括:

  • 时钟输入单元​:负责接收外部时钟信号,通常是晶振电路提供的高精度时钟源或外部时钟源,频率固定为 32768Hz,我们可以通过多路复用器选择时钟源,并输入到预分频器中。
  • 电源输入单元​:负责接收系统的主电源输入,同时支持备用电池的输入,以在主电源断电时继续维持时钟。
  • 中断单元​:提供时间到达、闹钟触发等中断信号,中断信号可以用于唤醒系统或触发特定操作。
  • 时钟控制单元​:负责对时钟进行设置和控制,可以设置当前的时间和日期信息。
  • 时钟计数单元​:预分频器将时钟频率除以 32768(即 2^15)以生成一秒的时钟信号,一个基本的 RTC 通常有一个秒时钟计数器,通常为 32 位或更多;也有些 RTC 有专门的计数器来跟踪一天中的时间和日历日期,时钟计数器会将计数结果存储在内部寄存器中供访问。

其工作原理可以概述为:系统电源供电时,RTC 晶振开始振荡,计数器电路开始计数,计数器电路每秒钟递增 1,并更新寄存器组中的时间和日期信息,我们可以通过读写时钟计数器来获取或设置当前计时值。

同时当系统掉电时,RTC 实时时钟可以切换到备用电池供电模式,继续保持时间计数;并且,RTC 可以设置闹钟功能,在特定时间点触发中断信号。

2.RTC 实时时钟的精度和误差

典型的晶体用于 RTC(实时时钟)的精度规格通常在 ±100 到 ±20 ppm(百万分之一)之间。这意味着在每天的时间误差范围内,大约会有 8.6 秒到 1.7 秒的误差(±100 ppm 表示在 100 万秒的运行时间内,时间可能会快或慢 100 秒,因此,±100 ppm 的误差每天(即 86400 秒)将导致大约 ±8.6 秒 的误差)。具体而言:

  • ±100 ppm 表示每天的时间误差为 ±8.6 秒
  • ±50 ppm 表示每天的时间误差为 ±4.3 秒
  • ±20 ppm 表示每天的时间误差为 ±1.7 秒

这种误差是由晶体振荡器的固有特性决定的,包括温度变化、老化效应以及外部电路的影响。对于高精度的应用,可能会选择具有更低 ppm 值的晶体,并且在设计时可能还会考虑温度补偿或使用外部更精确的时间源来校正 RTC 的误差。

3.内部 RTC 实时时钟和外部 RTC 实时时钟

内部 RTC 是指嵌入在芯片内部的实时时钟模块,它通常由 MCU 的系统时钟(如 32.768kHz 晶振)驱动,用于维持时间计数,受主芯片时钟和温度影响其精度通常较低,常用于精度要求不高的场合。

外部 RTC 是独立于 MCU 的专用实时时钟芯片,通常通过 I2C、SPI 或其他总线与 MCU 通信,使用独立的晶振(通常是 32.768kHz 石英晶振)进行驱动,并且具有备用电源供电设计,即使主电源关闭,还可以马上切换为备用电源(常用 CR2032 纽扣电池作为备用电源)进行供电,并且还具备报警、计时中断、备用 SRAM 存储等功能,常用于对时间精准度要求较高、需要长期保存时间信息的场合。

这里,需要注意的是,树莓派 Pico 搭载的 RP2040 微控制器没有传统意义上的 RTC 掉电备份功能,不像某些 MCU(如 STM32)那样有独立的 VBAT 引脚供 RTC 掉电保持运行,当电源断开时,RTC 计时会停止,并且时间数据会丢失。

posted @ 2026-09-02 15:43  FreakStudio  阅读(21)  评论(0)    收藏  举报