首页 > 编程知识 正文

单片机电子时钟答疑,rtc时钟2小时

时间:2023-05-06 04:52:53 阅读:12732 作者:1644

实时时钟(RTC )是维持1秒时间轴的专用计时器。 此外,RTC通常用于在软件或硬件中跟踪时钟时间和日历日期。 RTC的许多功能非常专业,是保持高精度和非常可靠的操作所必需的。 单片机外部有RTC设备,可以与I2C或SPI总线接口。

一、实时时钟概述

实时时钟的基本功能是产生一秒钟的间隔并保持连续计数。 如下图所示,该时序图说明了RTC的基本功能。

还显示了读取秒计数器并计划事件b在未来3秒内发生的程序功能a。 此操作称为警报。 请注意,秒计数器连续工作,不会停止或启动。 RTC有两个主要要求,分别是准确性和连续运行。 下图是RTC的典型硬件功能。

RTC通常具有自己的内部振荡器和外部晶体,可以选择使用外部频率基准。 所有时钟源均在32768Hz下运行。 外部时钟源可以使用非常精确和稳定的器件,如温度补偿晶体振荡器(TCXO )。

使用复用器来选择时钟源,并将时钟输入到预定标器,该预定标器将时钟划分为32768(215 )以产生一秒的时钟。

基本上,RTC有秒计数器,通常在32位以上。 一些RTC有一个专用计数器,用于跟踪一天中的时间和日历日期。

没有时间和日期计数器的基本RTC将为此目的使用软件。 常见的选择是来自输出端子的1Hz方波。 RTC具有多个可能的事件来生成处理器中断。

RTC通常在单片机的其余部分有专用的电源管脚,以便在掉电时操作。 此电源针脚通常连接到电池或另一个电源。

二. RTC精度和频率补偿

RTC的精度取决于32,768 Hz时钟源。 在设计良好的晶体振荡器中,误差的主要来源是晶体。 外部TCXO可以用于高精度的时机。 或者,特殊的频率补偿技术可以用于廉价的晶体振荡器和内部振荡器。 晶体误差的主要三个来源:

1 .初始电路和晶体公差。

2 .晶体随温度漂移。

3 .晶体老化。

下图显示了与RTC精度相关的概念。

此图中深蓝色的阴影线显示了典型的初始公差和随温度的变化。 粉红色的轨迹只显示温度误差。 补偿温度的关键是晶体的行为众所周知,可以用二次方程预测。 制造基板,在知道温度后测量初始误差,就可以补偿最大的误差源。

经过仔细补偿后,黄色面积是准确性的合理目标。 请记住,一年1 ppm大约需要30秒。 结晶老化难以弥补。 幸运的是,衰老通常每年只有几ppm。

三、如何更改RTC时间

目前,作为系统的一部分,有两种方法可以更改RTC时序以补偿错误。 如上所述,可以在秒计数器的各个周期内获得预定标器计数的振荡周期数。

前两秒是正常的32768个循环。 该软件使用温度读数和初始误差验证振荡器以高速运行,32768个循环实际为0.99990秒。 为了补偿这个小误差,软件指示RTC每4秒将预分频器的模数更改为32781,以增加时间。 下图为预分频器计数的振荡器周期。

该技术的优点是,从第2秒到第2秒的时间间隔变化小。 但是,该技术需要可调的预分频器和其他寄存器来存储特殊预分频计数和特殊计数APP应用之间的秒数。

如果RTC没有用于调整定时的特殊预分频器该怎么办? 下图是另一种方法。 这个方法没有预缩放器。

在这种情况下,框中的数字是秒计数器。 显示的计数为100251,后跟100252。 软件正在连续计算、调整和跟踪RTC秒数。 错误累计到准确的1秒后,软件将增加或减少1秒以调整累计的错误。

该技术的缺点是在进行调整时从秒到秒的变化很大。 该技术具有与所有RTC兼容的优点。

四.实时时钟安全

安全性是一个有趣的要求。 一些APP应用程序将时间用于向客户收费以使用服务或消耗资源。 关于RTC黑客入侵的防止或检测有广泛的实践体系。 技术范围从机箱入侵中检测到了单片机的特殊功能。

如果单片机上的RTC有特殊寄存器,可以允许软件永久锁定密钥寄存器。 一旦锁定,它们就无法更改,可以防止被黑客攻击或失控。 需要注意的是,更改时间需要完全重置单片机。

五.时间和日期

一些RTC有硬件计数器,可以管理一天中的时间和日历日期。 这需要分、时、日、月、年的计数器,考虑润年。 时间和日历日期也可以用软件保存。

一个突出的例子是time.h文件的c标准库中的函数。 对于微控制器,该系统可以基于RTC中的秒计数器。 为了完全支持time.h库,需要创建四个小的自定义函数。

其中一个值得注意的函数是库中的time (由函数调用。 此函数返回自开始以来的秒数,称为“纪元”。 通常是1970年1月1日。 通常,要读取的自定义函数硬件计时器的名称是一个变体,例如get_time ()。 get_time ()执行的所有操作都将读取秒计数器并返回其值。 图书馆做剩下的事情,以秒为单位把这个时间转换成当前的日期和日期。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。