位置:51电子网 » 技术资料 » 其它综合

嵌入式应用的智能型实时时钟功能

发布时间:2008/5/28 0:00:00 访问次数:358

许多电子系统都会提供实时时钟给不同功能使用,例如系统的日历时间、时间戳记和定时工作的启动,定期唤醒系统执行测量作业。实时时钟已出现多年,但它们从未针对嵌入式应用进行优化。市面上许多解决方案已将实时时钟和完整的“独立”功能整合至微控制器,将微控制器整合的许多好处付诸实现。本文将讨论传统实时时钟与微控制器的结合如何发挥一加一大于二的效果。
日期时间功能

图1是smartclock模块的功能方框图。此电路可以执行实时时钟的所有传统功能以及某些“故障安全”(failsafe) 功能,例如电源故障和时钟源故障的复原。

smartclock的基本时钟单元是一个47位的自由定时器 (free-running counter),它能使用32.768khz的石英晶体或是在20khz或40khz频率下操作的内部自激振荡器模式 (自激振荡器较省电,但精确度较差)。如果使用外接石英晶体,自由定时器第二个字节的最低有效位每秒就能准确计时。日历时间是由软件根据自由定时器来决定的,因此不需要另一组寄存器以传统格式记录日期时间。采用软件的好处之一是使用者更有能力控制系统操作,因为他们可以根据系统需求使用复杂或简单的算法,例如利用芯片内置的温度传感器把通常相当复杂的温度补偿功能加入算法中。除此之外,若系统不必经常唤醒,那么操作这项控制功能所造成的额外负担就显得微不足道。

smartclock模块中有三个接口寄存器可用来控制内部寄存器,这将系统所需的特殊功能寄存器减至最少,同时提供一个抽象层以避免定时器内容被误改。使用者还可以设定闹铃寄存器 (alarm register),以便在47位自由定时器等于某个默认值时启动硬件中断来执行特定工作。这类功能通常又称为“输出比较”。

微控制器还能提供一种称为“暂停”模式的低耗电模式。在这种模式下,smartclock模块产生的闹铃中断可以在一个系统时钟周期内将系统唤醒 (不需要重新设定器件)。


温度补偿

具备温度补偿的石英振荡器和实时时钟芯片通常比没有温度补偿功能的元器件贵很多,但由于石英振荡器的频率常会随着周围温度、电压和使用时间而改变,所以系统需要某种形式的温度补偿才能在很大的温度范围内提供精确的时间和日期数据。

幸而c8051f410微控制器已如图2所示内建精确度 3%的温度传感器,使得时间日期算法能够利用芯片内建温度传感器传来的信息进行温度补偿。这种做法的好处是系统可以使用不含温度补偿功能的低成本石英振荡器。

为了进行温度补偿算法,系统必须用芯片内置温度传感器每分钟测量周围温度一次。多数操作环境的温度在这么短时间里通常不会改变太多,因此系统会利用温度测量值来计算误差值 (以ppm表示) 并将结果 (所需补偿的微秒数) 储存至内存。系统会将每分钟传来的误差计算结果累加在一起,等到一天结束后就由算法补偿当天的时间误差。

smartclock还会提供图2所示的许多其他功能,例如电源、电池切换电路、时钟源、备用ram内存和实时时钟方块本身。然而这套模块的真正优点仍在于它把这些功能整合至一颗芯片,免除了使用多颗不同元器件所造成的芯片间数据互传负担。


电源故障处理

芯片内置稳压器能连接至2.0~5.25v的任何电压。处理器实际使用2.5v电源,但它会与芯片的i/o系统电源分开,这样微控制器就能在不需要任何中间界面的情形下用于2.0~5.25v的各种系统。vio接脚可连接至系统电压供应,让i/o和系统的其他装置使用相同的电压操作。除了主电源供应外,vbat输入还能连接至电压最低1.0v的电池,由它做为smartclock的备用电源。

整合式smartclock的第一个优点是系统电源供应若降至vbat电压以下,芯片内含的电池切换电路就会从smartclock自动切换至备用电池。这表示实时时钟能在电源故障时继续操作,smartclock模块内的专属备用ram内存也能继续保持它们的数据。系统只要利用简单软件将系统状态定时储存至这个备用ram内存,就能在主电源供应恢复正常后让系统回到已知状态,系统测量所得的重要数据也不会遗失。微控制器重置时,系统会执行一个例程来检查重置资源寄存器 (reset sources register) 以便判断系统电源是否曾经中断,重置例程接着会读取备用ram内存的内容并将处理器和工作寄存器的重要内容复原。举例来说,这颗元器件若用于电表,它很容易就能追踪停电的日期时间和长短,同时精确保存停电前的用电信息。等到主电源恢复后,电池切换电路会将微控制器切换回主电源,然后将电池备用电

许多电子系统都会提供实时时钟给不同功能使用,例如系统的日历时间、时间戳记和定时工作的启动,定期唤醒系统执行测量作业。实时时钟已出现多年,但它们从未针对嵌入式应用进行优化。市面上许多解决方案已将实时时钟和完整的“独立”功能整合至微控制器,将微控制器整合的许多好处付诸实现。本文将讨论传统实时时钟与微控制器的结合如何发挥一加一大于二的效果。
日期时间功能

图1是smartclock模块的功能方框图。此电路可以执行实时时钟的所有传统功能以及某些“故障安全”(failsafe) 功能,例如电源故障和时钟源故障的复原。

smartclock的基本时钟单元是一个47位的自由定时器 (free-running counter),它能使用32.768khz的石英晶体或是在20khz或40khz频率下操作的内部自激振荡器模式 (自激振荡器较省电,但精确度较差)。如果使用外接石英晶体,自由定时器第二个字节的最低有效位每秒就能准确计时。日历时间是由软件根据自由定时器来决定的,因此不需要另一组寄存器以传统格式记录日期时间。采用软件的好处之一是使用者更有能力控制系统操作,因为他们可以根据系统需求使用复杂或简单的算法,例如利用芯片内置的温度传感器把通常相当复杂的温度补偿功能加入算法中。除此之外,若系统不必经常唤醒,那么操作这项控制功能所造成的额外负担就显得微不足道。

smartclock模块中有三个接口寄存器可用来控制内部寄存器,这将系统所需的特殊功能寄存器减至最少,同时提供一个抽象层以避免定时器内容被误改。使用者还可以设定闹铃寄存器 (alarm register),以便在47位自由定时器等于某个默认值时启动硬件中断来执行特定工作。这类功能通常又称为“输出比较”。

微控制器还能提供一种称为“暂停”模式的低耗电模式。在这种模式下,smartclock模块产生的闹铃中断可以在一个系统时钟周期内将系统唤醒 (不需要重新设定器件)。


温度补偿

具备温度补偿的石英振荡器和实时时钟芯片通常比没有温度补偿功能的元器件贵很多,但由于石英振荡器的频率常会随着周围温度、电压和使用时间而改变,所以系统需要某种形式的温度补偿才能在很大的温度范围内提供精确的时间和日期数据。

幸而c8051f410微控制器已如图2所示内建精确度 3%的温度传感器,使得时间日期算法能够利用芯片内建温度传感器传来的信息进行温度补偿。这种做法的好处是系统可以使用不含温度补偿功能的低成本石英振荡器。

为了进行温度补偿算法,系统必须用芯片内置温度传感器每分钟测量周围温度一次。多数操作环境的温度在这么短时间里通常不会改变太多,因此系统会利用温度测量值来计算误差值 (以ppm表示) 并将结果 (所需补偿的微秒数) 储存至内存。系统会将每分钟传来的误差计算结果累加在一起,等到一天结束后就由算法补偿当天的时间误差。

smartclock还会提供图2所示的许多其他功能,例如电源、电池切换电路、时钟源、备用ram内存和实时时钟方块本身。然而这套模块的真正优点仍在于它把这些功能整合至一颗芯片,免除了使用多颗不同元器件所造成的芯片间数据互传负担。


电源故障处理

芯片内置稳压器能连接至2.0~5.25v的任何电压。处理器实际使用2.5v电源,但它会与芯片的i/o系统电源分开,这样微控制器就能在不需要任何中间界面的情形下用于2.0~5.25v的各种系统。vio接脚可连接至系统电压供应,让i/o和系统的其他装置使用相同的电压操作。除了主电源供应外,vbat输入还能连接至电压最低1.0v的电池,由它做为smartclock的备用电源。

整合式smartclock的第一个优点是系统电源供应若降至vbat电压以下,芯片内含的电池切换电路就会从smartclock自动切换至备用电池。这表示实时时钟能在电源故障时继续操作,smartclock模块内的专属备用ram内存也能继续保持它们的数据。系统只要利用简单软件将系统状态定时储存至这个备用ram内存,就能在主电源供应恢复正常后让系统回到已知状态,系统测量所得的重要数据也不会遗失。微控制器重置时,系统会执行一个例程来检查重置资源寄存器 (reset sources register) 以便判断系统电源是否曾经中断,重置例程接着会读取备用ram内存的内容并将处理器和工作寄存器的重要内容复原。举例来说,这颗元器件若用于电表,它很容易就能追踪停电的日期时间和长短,同时精确保存停电前的用电信息。等到主电源恢复后,电池切换电路会将微控制器切换回主电源,然后将电池备用电

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!