是谁偷走了我的时间?RTC时间异常的秘密

是谁偷走了我的时间?RTC时间异常的秘密

嵌入式产品中的RTC(实时时钟)对于维持时间准确性至关重要。然而,实际应用中,我们常常会遇到时间偏差甚至时间回退到1970年的问题。今天,我们来探讨这些时间问题的根源及解决方法。

RTC在嵌入式产品中的重要性

在嵌入式产品中,RTC(实时时钟)模块负责维持时间的准确性,确保设备在各种条件下都能保持时间的正确同步。RTC的准确性直接影响数据记录的可靠性、系统协调的效率、安全机制的有效性以及用户体验的满意度。时间不同步可能导致数据记录错误,影响数据的可追溯性和分析;系统协调失败,影响整体系统的运行效率;安全机制失效,增加安全风险;以及用户体验下降,影响用户对设备的信任和使用体验。因此,确保RTC的准确性和可靠性是嵌入式系统设计中的一个重要环节。

图1 RTC模块

然而,在实际应用中,我们常常会遇到一些不尽如人意的情况,比如时间偏差,甚至是时间回退到1970年。那么,是谁偷走了我们的时间呢?

RTC时间偏差的原因分析

在Linux系统启动过程中,系统会检测并挂载RTC模块。挂载完成后,系统会自动从外部RTC芯片中读取时间,并将其设置为系统时间。此后,除非通过相关命令控制RTC的读写,操作系统通常不会再次从RTC中获取或同步时间。那么,为什么重新上电后,时间就不对了呢?可能的原因包括:

外部RTC供电问题:如果外部RTC没有可靠的电源供电,可能会导致亏电或接触不良,从而使RTC时间复位到默认值(通常是1970年)。

RTC电路设计问题:如果RTC的精准匹配电路设计不合理,可能会导致时间偏差。

RTC驱动问题:如果RTC驱动没有正确配置,系统可能无法从RTC芯片中正确获取时间。

RTC设计与使用最佳实践

1. 硬件设计推荐方案

RTC设计推荐方案如图2所示,若采用I2C/SPI通信的RTC IC且已具备I2C/SPI驱动程序,RTC的使用就显得尤为简单,仅需要加上晶振电路就可以工作了。

展开全文

图2 RTC硬件电路

RTC设计电路简约而不简单,时钟芯片的选择、电路设计、器件放置、阻抗控制、PCB走线规范均会影响RTC的时间基准的稳定性,如图3所示为ZLG致远电子基于Cortex-A7架构的800MHz主频的M6Y2C-256F256LI-T核心板以及配套硬件开发指南,ZLG致远电子每一款核心板均有提供标准的推荐电路,为设计者提供稳定可靠的设计参考。

图3 提供完善硬件支持的核心板

2. 软件配置与验证

以linux为例了解下RTC的使用。在内核配置中选择与硬件匹配的RTC驱动,以生成正确的内核镜像。

图4 启用PCF8563 RTC驱动

图5 启用片内RTC

然后结合硬件测试RTC功能,使用命令date –-help获取相关指令。hwclock –w命令将设置的时间同步到硬件,hwclock命令获取RTC时间,判断是否同步成功。返回搜狐,查看更多

相关科技文章

消毒碗柜一般消毒多少分钟 消毒柜消毒2个小时正常吗
正规365彩票平台app下载

消毒碗柜一般消毒多少分钟 消毒柜消毒2个小时正常吗

⌚ 09-24 👁️ 6897
CMF当中的表面处理工艺指的是什么?
365bet体育在线导航

CMF当中的表面处理工艺指的是什么?

⌚ 02-23 👁️ 7994
SSR和CLASH哪个好用?全面比较与选择
正规365彩票平台app下载

SSR和CLASH哪个好用?全面比较与选择

⌚ 10-27 👁️ 9047
北京买珠宝哪家最实在 珠宝城大集合(图)
正规365彩票平台app下载

北京买珠宝哪家最实在 珠宝城大集合(图)

⌚ 10-21 👁️ 6714
桶面一箱多少桶
365bet体育在线导航

桶面一箱多少桶

⌚ 02-10 👁️ 8574
呂洗发水& 护发乳
正规365彩票平台app下载

呂洗发水& 护发乳

⌚ 10-31 👁️ 7742

合作伙伴