本应用笔记介绍如何使用DS1602或DS1603经过时间计数器记录电源循环信息。
引脚分配
描述
达拉斯半导体的DS1602和DS1603提供了一种简化的硬件解决方案,用于保持时间和跟踪系统的上电时间。DS1602和DS1603可由微处理器或微控制器使用简单的软件直接读写;但是,可以使用更具创造性的软件算法来跟踪年,月,日,星期几,一天中的时间等。此外,DS1602/DS1603和适当的软件也可以跟踪上电时间和上电周期数。
DS1602/DS1603中的连续计数器和上电计数器均为32位计数器,以秒为单位,可通过DS1602/DS1603三线串行接口读写。对于最基本的实现:
连续计数器将设置一次并递增,直到达到最大值;
通电计数器最初将清除一次,然后递增,直到达到最大值。
通过这两个假设,每个计数器都能够计数到最大值 (232-1) 秒,即 4.29 x 109秒(约136年)。
对于需要100+年连续计时能力的系统,可能需要整个32位计数器;但对于所需最大连续计数器时间可能约为5年的用户,未使用的计数器位空间可以更好地用作存储上电循环信息的存储器位。
如图1所示,DS1602/DS1603可以分区,提供连续时间计数器和上电时间计数器,可计数长达4.75年,剩余的较高位可用作读/写非易失性存储器。
软件实现需要使用三个寄存器,因此必须将第三个寄存器映射到可用的两个寄存器中,如图1所示。
下面是如何使用计数器完成此任务的示例。
图1.将三个寄存器映射到两个寄存器。
连续计数器地图
位 1-24:保持为连续时基测量,最高可达 16.7 x 106秒或 0.53 年。
位 25:缓冲位或溢出位;当连续时间计数器达到其最大值并且尚未被处理器读取和重置时。该位还用于将寄存器的对应部分与将用作存储器位的部分分开。
位 26-28:连续运行时间的年数 x 0.53。
位 29-32:电源循环次数 x 128。这四个位用作寄存器,对于上电计数器的第26-32位中达到的每个完整计数,寄存器递增一次。
通电柜台地图
位 1-24:保持为上电秒数的非易失性秒数测量值,最多可存储 16.7 x 106 秒或 0.53 年。
位 25:缓冲位或溢出位;当上电计数器达到其最大值且尚未被处理器读取和复位时。该位还用于将寄存器的对应部分与将用作存储器位的部分分开。
位26-32:上电计数器的高7位是DS1602或DS1603上电周期数的1-127个存储区。
在采用这一规则和适当的软件算法的情况下,DS1602/DS1603的独立计数器保持上电时间和连续时间,而上电周期数和经过时间年数x 0.53则保持在用作存储器的计数器的高阶位中。
这种实现方式要求微控制器必须准备每年至少读/写一次DS1602或DS1603。
用于连续时间跟踪
当连续计数器的较低 24 位超过 0.53 年并将位 25 设置为 1 时,控制器必须读取连续计数器,确定位 25 的状态,如果为 1,则清除位并将位 26-28 中的值增加半年。如果未设置第 25 位,则寄存器的较低 24 位尚未达到 0.53 年,并且可以继续计数。
一旦位 26-28 中的值达到 111 或 7 x 0.53 年,连续时间计数器可以继续在较低的 24 位中计数长达 1.06 年,加上位 25 中的 0.53 溢出,最大值为 9 x 0.53 年。
图2.用于连续时间跟踪。
用于上电时间跟踪
当上电计数器的下24位超过0.53年并将计数器的第25位设置为1时,控制器必须读取上电计数器,确定位25的状态,如果为1,则清除位并将值存储在外部存储器中,以便上电计数器可以继续计数。DS1602/DS1603中以这种方式存储的最长上电时间为2 x 0.53年。
图3.用于上电时间跟踪。
用于上电周期数跟踪
使用DS1603或DS1602执行此功能主要是一项软件任务。当最初使用起始值写入或清除时,上电计数器的第25-32位必须设置为0。此后每次上电时,连接到DS1603的控制器或处理器必须读取上电计数器,并检查存储在高电平7位中的值。如果该值小于 1111111,则控制器必须递增该值并将其写回 7 个高阶位。如果高阶位中的值1111111,则控制器必须将值设置为 0000000,读取连续时间计数器的高 4 位中的值,将其递增 1,然后将新值写回高 4 位。利用这种软件算法,DS1603或DS1602可用于记录和存储多达2,047次电源周期。
图4.用于上电周期数跟踪。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !