打印
[其他产品]

一般MCU的时间我是这样理解的

[复制链接]
339|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
meiyaolei|  楼主 | 2025-4-6 21:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MCU搞时间同步这事儿,确实挺让人头疼的,毕竟时间差一点都不行嘛!不过别急,我来给你支几招,也顺便吐槽吐槽那些年遇到的时钟飘移问题。

一、时间同步
RTC实时时钟自己跑
优点,独立性强,不依赖网络,适合那些对网络稳定性要求不高或者根本没网络的场景。比如一些嵌入式设备,就靠RTC来维持时间。
缺点,RTC的精度嘛,说实话,有点让人捉急。特别是那些便宜的RTC芯片,时间一长,误差就大了去了。我试过,有的RTC一个月能飘个几分钟,简直让人崩溃!
应对策略,定期校准呗。比如每隔一段时间比如一周或者一个月,就手动或者通过某种机制比如按键触发来校准一下RTC。当然,也可以考虑用更高精度的RTC芯片,或者加个温度补偿电路,提高RTC的精度。
联网校时
优点,精度高,只要有网络,就能随时跟标准时间服务器对表。比如用NTP网络时间协议来校时,精度能达到毫秒级,简直不要太爽!
缺点,依赖网络啊,网络一不稳定,时间同步就受影响了。还有,如果网络延迟大,校时也会受影响。
应对策略,用靠谱的网络呗,比如以太网、Wi-Fi啥的。还可以考虑用多个时间服务器来校时,提高校时的可靠性。如果网络不稳定,也可以考虑用本地时间服务器来过渡一下。

二、时间对齐妙招
软件校时
在MCU上写个校时程序,定期跟时间服务器对表。比如每隔一小时就校时一次,这样时间就能保持比较准确了。
还可以考虑用软件算法来补偿RTC的误差。比如根据RTC的漂移率,来预测未来的时间,然后提前调整。
硬件校时
如果对时间精度要求特别高,可以考虑用专门的校时芯片或者模块。比如有些校时芯片能提供纳秒级的精度,简直不要太厉害!
还可以考虑用GPS模块来校时。GPS模块能提供非常准确的时间信号,而且不受网络影响。不过嘛,GPS模块的成本和功耗都比较高,得根据实际情况来选择。

三、吐槽时间
说起时钟飘移,我真是有一肚子苦水要倒!有一次,我用一个便宜的RTC芯片来做时间同步,结果一个月下来,时间竟然飘了5分钟!我当时就崩溃了,这还怎么用啊?后来,我换了更高精度的RTC芯片,还加了温度补偿电路,结果好多了。不过嘛,还是觉得联网校时最省事,只要网络稳定,时间就能保持非常准确。

使用特权

评论回复
沙发
作业天敌在此| | 2025-4-6 22:49 | 只看该作者
用RTC实时时钟搞时间同步,确实挺方便,不过精度确实是个问题

使用特权

评论回复
板凳
大大财迷| | 2025-4-7 08:09 | 只看该作者
楼主,能否分享一下RTC温度补偿电路?学习一下

使用特权

评论回复
地板
qinlu123| | 2025-4-7 08:41 | 只看该作者
大大财迷 发表于 2025-4-7 08:09
楼主,能否分享一下RTC温度补偿电路?学习一下

买R8025就好了,准得很

使用特权

评论回复
5
治愈糖果屋| | 2025-4-7 09:23 | 只看该作者
硬件校时用专门的校时芯片或者模块,精度确实很高,不过成本肯定也不低

使用特权

评论回复
6
xionghaoyun| | 2025-4-7 09:24 | 只看该作者
正常RTC时间是准的 感觉你参数设置问题?

使用特权

评论回复
7
coody| | 2025-4-7 11:44 | 只看该作者
我的时间同步,使用的是北斗模块来同步的。被动模块放窗口这种有卫星信号的的地方,将同步的时间通过红外、RF或有线方式同步所有的设备节点,分秒不差,设备之间的时间同步精度可以做到10ms之内。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:工程师
简介:超越自我,为设计激发灵感和想象。

220

主题

754

帖子

5

粉丝