±20ppm 是衡量 RTC(实时时钟)精度的关键指标,表示 每百万秒(约11.57天)的最大时间误差范围。以下是通俗易懂的解释:


1. ppm 的含义

  • ppm = Parts Per Million(百万分之一)
    1 ppm = 1/1,000,000(即 0.0001%)。
    ±20ppm 表示 RTC 的计时误差在 每百万秒 ±20秒 以内。

2. 实际误差计算

  • 换算成每日误差
    ±20 秒 / 1,000,000 秒 × 86,400 秒/天 ≈ ±1.728 秒/天
    即每天最大走时误差不超过 ±1.728 秒

  • 每月误差(按30天计)
    ±1.728 秒/天 × 30 天 ≈ ±51.84 秒/月
    即每月误差不超过 ±52 秒

  • 每年误差
    ±1.728 秒/天 × 365 天 ≈ ±630 秒/年 ≈ ±10.5 分钟/年


3. 为什么用 ppm 表示?

  • 适合描述微小误差
    晶振频率的微小偏差(如温度变化、老化)会导致长期累积误差,ppm 能直观量化这种影响。
    示例:若晶振标称频率为 32.768 kHz,实际频率为 32.768 ±0.000655 Hz(即 ±20ppm),则每秒计时产生 ±20μs 偏差。

4. 不同精度等级对比

精度等级每日误差适用场景
±20ppm±1.728 秒普通消费电子(手表、家电)
±5ppm±0.432 秒工业设备、网络设备
±1ppm±0.0864 秒基站、高精度仪器
温补RTC±0.05~0.5 秒/天物联网设备(抗温度变化)

5. 影响精度的因素

  • 温度变化:晶振频率随温度波动(常温下±20ppm,-40°C~85°C可能漂移±100ppm)。
  • 晶振老化:使用1年后可能额外增加 ±1~5ppm 误差。
  • 电源噪声:电路干扰导致计时抖动。

6. 如何减少误差?

  • 选择温补RTC(TCXO):内置温度传感器动态补偿频率(可达±2ppm)。
  • 定期校准:通过GPS/NTP获取标准时间,修正RTC计数器(如每月自动校准)。
  • 软件补偿:测量实际误差,在代码中调整计数值(如STM32的RTC校准寄存器)。

面试回答示例

“±20ppm 表示 RTC 的计时精度为 每百万秒误差不超过 ±20 秒,换算到日常使用中大约是 每天 ±1.7 秒。这种精度能满足普通嵌入式设备(如智能家居)的时间需求,但对基站等场景需更高精度(如±1ppm)。实际开发中,我们会通过温补晶振或软件校准来进一步提升精度。”


在嵌入式开发中,RTC (Real-Time Clock) 是一个至关重要的硬件模块,它的核心功能就是像一个永不停止的电子手表,即使在主系统完全断电的情况下,也能持续、精确地追踪时间和日期。

1. RTC 是什么?

  • 本质: 一个独立的、低功耗的计时电路(通常集成在微控制器内部,或作为一个独立的外围芯片)。
  • 核心功能: 持续计数秒、分、时、日、月、年(有时包括星期)。
  • 关键特性: 需要非常小的电力维持运行,通常由一个独立的备用电源(如纽扣电池、超级电容)供电,确保在主电源移除后时间信息不丢失。
  • 目标: 为嵌入式系统提供可靠、连续的日期和时间基准。

2. 它的工作原理是什么?它是怎么工作的?

RTC 的核心工作原理相对直观,主要依赖于稳定的振荡源和计数器链:

  1. 振荡源 (Crystal Oscillator):

    • 绝大多数 RTC 使用一个外部连接的 32.768 kHz 石英晶体谐振器。这个频率值 (2¹⁵ = 32768) 被特意选择,因为经过一个 15 级二进制分频器后,正好能得到 1 Hz (1 秒) 的信号。
    • 晶体提供极其稳定和精确的振荡频率。精度通常在每月几秒到几十秒(ppm - 百万分之一),更精密的 RTC 或带温度补偿的 RTC 精度更高。
  2. 分频器 (Divider):

    • 32.768 kHz 的原始振荡信号被输入到一个分频电路(通常是 15 级二进制计数器)。
    • 每经过一级分频,频率减半。
    • 32768 Hz / 2¹⁵ = 32768 Hz / 32768 = 1 Hz。输出就是一个精确的 1 秒脉冲信号。
  3. 时间/日期计数器 (Counters/Registers):

    • 这个 1 Hz 的秒脉冲驱动一系列计数器(或寄存器):
      • 秒计数器 (0-59)
      • 分计数器 (0-59)
      • 时计数器 (0-23 或 12 小时制)
      • 星期计数器 (1-7,可选)
      • 日计数器 (1-28/29/30/31,需处理闰年)
      • 月计数器 (1-12)
      • 年计数器 (00-99 或 0000-9999)
    • 这些计数器像时钟的齿轮一样联动:秒满 60 进 1 分,分满 60 进 1 时,依此类推,并自动处理闰年、不同月份的天数等复杂日历规则。
  4. 寄存器接口 (Register Interface):

    • RTC 模块内部有一组映射到其计数器状态的寄存器。
    • 嵌入式系统的 CPU 通过特定的总线接口(如 I2C、SPI 或并行总线)访问这些寄存器。
    • 设置时间: CPU 向这些寄存器写入期望的初始时间/日期值。
    • 读取时间: CPU 从这些寄存器中读取当前的计数值,即当前的时间/日期。
  5. 备用电源 (Backup Power Supply - VBAT/VBU):

    • 这是 RTC 工作的关键依赖
    • 一个独立的电源输入(通常是 1.8V - 3.3V),连接到一个纽扣电池 (如 CR2032)、可充电电池或超级电容。
    • 当主系统电源 (VCC/VDD) 存在时,RTC 由主电源供电,并可能同时给备份电源充电(如果是可充电方案)。
    • 当主系统电源断开或掉电时,RTC 模块自动无缝切换到备用电源供电。由于 RTC 电路功耗极低(微安级),一个小电池可以维持其运行数年甚至十年以上,确保时间持续流逝不中断。

3. 实际使用场景是什么样的?

RTC 的应用极其广泛,几乎所有需要知道“现在几点”或“过了多久”的嵌入式设备都会用到它:

  • 数据记录与时间戳: 记录传感器读数、系统事件、故障日志时,必须标记精确的发生时间(如环境监测设备、工业控制器、行车记录仪)。
  • 定时唤醒与调度: 设备在低功耗睡眠模式下,依靠 RTC 产生闹钟中断,在预定时间唤醒系统执行任务(如智能电表定时抄表、温控器定时调节、物联网设备定时上报)。
  • 用户界面显示: 需要显示当前日期和时间的设备(如智能家居面板、POS 机、医疗设备、车载信息娱乐系统)。
  • 文件系统时间戳: 存储文件时记录创建、修改和访问时间(如使用 SD 卡或 Flash 存储的设备)。
  • 网络时间同步 (NTP/SNTP): 设备联网后,可以使用 RTC 记录的时间作为基础,通过网络时间协议校准到更精确的全球时间。
  • 计时与倒计时: 实现精确的秒表、烹饪定时器、预约开机等功能。
  • 安全与授权: 在证书验证、访问控制中,时间是一个关键因素(如门禁系统、授权软件的有效期检查)。
  • 事件序列化: 确定多个事件发生的先后顺序。

4. 它有哪些依赖?

RTC 的正常工作需要硬件和软件两方面的支持:

  • 硬件依赖 (Hardware Dependencies):

    1. 外部 32.768 kHz 晶体谐振器: 这是最核心的依赖,提供基准时钟。晶体和芯片引脚之间的连接走线需要精心设计(长度短、远离干扰源、合适的负载电容)。
    2. 负载电容: 连接在晶体两端的两个小电容(通常几到几十皮法),用于微调振荡频率使其达到标称值。其值由晶体规格和芯片要求决定。
    3. 备用电源: 不可或缺!可以是不可充电的锂电池(CR2032 最常见)、可充电电池、或超级电容。必须连接到 RTC 专用的 VBAT/VBU 引脚。
    4. 电源切换电路: 通常集成在 RTC 模块或微控制器内部,负责在主电源 (VCC) 掉电时自动无缝切换到备用电源 (VBAT)。外部可能需要二极管防止反向电流。
    5. 主电源 (VCC): 系统正常工作时为 RTC 供电。掉电时由备份电源接管。
    6. 物理接口: 如果是独立 RTC 芯片,需要连接到 CPU 的通信总线(I2C、SPI 等)。
  • 软件依赖 (Software Dependencies):

    1. RTC 外设驱动:
      • 初始化: 配置时钟源(选择外部晶体)、设置分频器、启用 RTC 模块、配置闹钟和唤醒中断等。
      • 时间设置: 提供 API 让应用程序设置初始日期和时间(通常通过写入特定寄存器)。
      • 时间读取: 提供 API 让应用程序读取当前日期和时间(从特定寄存器读取)。需要注意读取时可能需要特殊操作(锁存或原子读取)以避免在计数器进位过程中读到不一致的值。
      • 闹钟设置: 配置在特定时间(或周期性)产生中断。
      • 校准: 提供机制(如写入校准寄存器)补偿晶体的微小频率偏差。
    2. 中断服务程序: 处理 RTC 产生的中断(如秒中断、闹钟中断)。
    3. 时间库: 应用程序层可能需要库来方便地处理时间数据(转换、格式化、计算时间差等)。
    4. 操作系统支持: 如果使用 RTOS 或嵌入式 Linux 等,操作系统通常提供对 RTC 的抽象层和系统时间服务 (gettimeofday, settimeofday)。

总结

RTC 是嵌入式系统中提供连续、可靠时间基准的基石。它依靠外部晶体产生精确振荡,通过分频和计数器链计算时间,并由独立的备用电源保证在主系统断电时持续工作。其应用场景覆盖了从简单的时间显示到复杂的系统调度和数据记录。实现一个稳定可靠的 RTC 功能,需要仔细处理其硬件依赖(晶体、电容、电池)并编写正确的驱动程序进行初始化和访问。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/83253.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/83253.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/83253.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Godot][游戏开发] 如何在 Godot 中配置 Android 环境(适配新版 Android Studio)

在使用 Godot 进行 Android 项目的开发与导出时,配置 Android 环境是一项必要步骤。随着 Android Studio 的更新(特别是自 Arctic Fox 版本起),安装方式发生了变化,默认不再引导用户手动配置 SDK/JDK/NDK,而…

量子语言模型——where to go

1️⃣ 在大语言模型(LLM)高度发达的今天,还研究这些小模型(如n-gram、RNN、量子语言模型)是否有意义? ✅ 有意义,但意义已经转变了——不再是用于「直接生产 SOTA 应用」,而是&…

机电的焊接技术

焊接技术:高温或高压条件下,使用焊接材料(焊条或焊丝)将两块或两块以上的母材(待焊接的工件)连接 成一个整体的操作方法。 2.3.1 焊接设备和焊接材料的分类及选用 1.焊接设备(对应焊接方法) 2.焊接材料(焊条、焊丝、焊剂、焊接气…

深入解析Vue.js:构建现代Web应用的高效之道

一、Vue.js 的核心设计理念 Vue.js 以渐进式框架为定位,强调轻量灵活与易上手性,允许开发者根据项目需求逐步引入核心功能或扩展模块。其核心设计遵循以下原则: 响应式数据绑定:通过数据劫持(Object.defineProperty/Proxy)和发布 - 订阅模式,实现视图与数据的自动同步,…

信贷特征分析可视化函数(外置指标面板完整版)

XY的基础处理 target_column[SeriousDlqin2yrs] feature_columns[RevolvingUtilizationOfUnsecuredLines, age,NumberOfTime30-59DaysPastDueNotWorse, DebtRatio, MonthlyIncome,NumberOfOpenCreditLinesAndLoans, NumberOfTimes90DaysLate,NumberRealEstateLoansOrLines, Nu…

ESP32-idf学习(三)esp32C3连接iot

一、前言 上一篇用蓝牙作为通信方式,虽然勉强完成了控制,但结果显然不是那么符合我们的预期,既然用蓝牙还需要研究一段时间,那我们就先整一些现成的,不需要研究的!iot云平台!这里当然也是通过w…

Axure RP11安装、激活、汉化

一:注册码 Axure RP11.0.0.4122在2025-5-29日亲测有效: 49bb9513c40444b9bcc3ce49a7a022f9

高光谱成像相机:基于高光谱成像技术的玉米种子纯度检测研究

种子纯度是衡量种子质量的核心指标之一,直接影响农作物产量与品质。传统检测方法(如形态学观察、生化分析)存在耗时长、破坏样本、依赖人工等缺陷。近年来,高光谱成像技术因其融合光谱与图像信息的优势,成为无损检测领…

Excel 中的TEXTJOIN用法(基础版),将Excel 多个单元格内容按条件合并到一个单元格

1.新建一张数据透视表 选择你需要的维度所在的列 2.点击确定生成,勾选右边的维度 3.选中单元格,通过 ShiftF3 查看函数参数 第一个参数:分隔符,用来分隔合并的文本,不需要分隔用"" 第二个参数:…

2025.05.28【Choropleth】群体进化学专用图:区域数据可视化

Load geospatial data Start by loading your geospatial data in R, and build a basic plot. Data from the package The cartography comes with a set of geospatial data included. Learn how to use it to build a choropleth map. 文章目录 Load geospatial dataData …

QT-Creator安装教程(windows)

目录 1,下载 1.1 镜像源下载 1.2 运行下载的exe文件 1.2.1 QT5 版本安装 1.2.2 QT6 版本安装 1.2.3 如何在安装完成之后,继续添加扩展包 1,下载 1.1 镜像源下载 地址:Index of /qtproject/

Deepin 23.10安装Docker

个人博客地址:Deepin 23.10安装Docker | 一张假钞的真实世界 Deepin 是基于 Debian 的国产 Linux 发行版,安装 Docker Desktop 可能会遇到兼容性问题,因为 Docker Desktop 官方主要支持 Ubuntu/Debian/Red Hat/Fedora/Arch 等主流发行版&…

ARXML解析与可视化工具

随着汽车电子行业的快速发展,AUTOSAR标准在车辆软件架构中发挥着越来越重要的作用。然而,传统的ARXML文件处理工具往往存在高昂的许可费用、封闭的数据格式和复杂的使用门槛等问题。本文介绍一种基于TXT格式输出的ARXML解析方案,为开发团队提供了一个高效的替代解决方案。 …

2026-2030工业发展解读系列:PLM/PDM系统解析报告(预览版)

1 PLM系统的核心价值与功能定位 PLM是一种贯穿产品全生命周期的战略性数字化工具,覆盖从概念设计、研发、生产到退市的全流程管理。 PLM系统功能模块包含数据管理、流程协同、项目管控等核心,支持从三维设计到生产制造的全链条数字化协同。 1.1数据管…

Go语言中的rune和byte类型详解

1. rune类型 1.1. 基本概念 1. rune是Go语言的内建类型,它是int32的别名,即32位有符号整数; 2. 用于表示一个Unicode码点,全拼Unicode code point; 3. 可以表示任何UTF-8编码的字符; 1.2. 特点 1. 每…

【中国・珠海】2025 物联网与边缘计算国际研讨会(IoTEC2025)盛大来袭!

2025 物联网与边缘计算国际研讨会(IoTEC2025)盛大来袭! 科技浪潮奔涌向前,物联网与边缘计算已成为驱动各行业变革的核心力量。在此背景下,2025 物联网与边缘计算国际研讨会(IoTEC2025)即将震撼…

Photoshop使用钢笔绘制图形

1、绘制脸部路径 选择钢笔工具,再选择“路径”。 基于两个点绘制一个弯曲的曲线 使用Alt键移动单个点,该点决定了后续的曲线方向 继续绘制第3个点 最后一个点首尾是同一个点,使用钢笔保证是闭合回路。 以同样的方式绘制2个眼睛外框。 使用椭…

# 使用 Selenium 爬取苏宁易购优质评价

使用 Selenium 爬取苏宁易购优质评价 在数据挖掘和网络爬虫领域,Selenium 是一个强大的工具,尤其适合处理动态网页内容。本文将通过一个实际案例,展示如何使用 Selenium 爬取苏宁易购上的优质评价,并将这些评价保存到本地文件中。…

Windows上用FFmpeg推流及拉流的流程概览

1. 视频采集与推流(Windows FFmpeg) 采集设备:Windows上的摄像头,比如“Integrated Camera”。 采集方式:FFmpeg通过 dshow 设备接口读取摄像头。 推流协议:你可以选择推到 RTMP 或 RTSP 服务器。 推流…

研华工控机安装Windows10系统,适用UEFI(GPT)格式安装

主要硬件 主板:AIMB-787 、CPU:i5-6500 U盘启动工具:通过网盘分享的文件:rufus-3.20.zip 链接: https://pan.baidu.com/s/1YlFfd-_EhFHCG4sEHBQ8dQ?pwdQT12 提取码: QT12 Win10 22H2 Pro 纯净版系统:通过网盘分享…