欢迎来到天天文库
浏览记录
ID:8960777
大小:210.00 KB
页数:8页
时间:2018-04-13
《rtc实时时钟介绍和代码》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、RTC实时时钟什么是RTC实时时钟在一个嵌入式系统中,通常采用RTC来提供可靠的系统时间,包括时分秒和年月日等;而且要求在系统处于关机状态下它也能够正常工作(通常采用后备电池供电),它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的32.768KHz晶体和电阻电容等。S3C2410实时时钟的基本特性实时时钟(RTC)单元可以通过备用电池供电,因此,即使系统电源关闭,它也可以继续工作。RTC可以通过STRB/LDRB指令将8位BCD码数据送至CPU。这些BCD数据包括秒,分,时,日期,星期,月和年。RTC单元通过一个外部的32.768KHz晶振提供时钟。RTC具有定时报警的功能。R
2、TC控制器功能说明:l时钟数据采用BCD编码l能够对闰年的年月日进行自动处理l具有告警功能,当系统处于关机状态时,能产生告警中断;l具有独立的电源输入l提供毫秒级时钟中断,该中断可用于作为嵌入式操作系统的内核时钟RTC实时时钟的结构框图RTC模块构成l闰年产生器这个模块可以根据BCDDATA,BCDMON,以及BCDYEAR的数据决定每个月的最后日期是28,29,30还是31。一个8位的计数器只能显示两个BCD码,因此它不能判断00年究竟是不是闰年。例如它不能够判断1900年和2000的差别。。为了解决这个问题,S3C2410内的RTC模块中有一个固定的逻辑,用来支持2000年为闰年。请注
3、意虽然2000年是闰年,但1900年不是闰年。因此,S3C2410中00代表2000年,而不是1900年。l读/写寄存器要求置高RTCON寄存器的0位来表示读和写RTC模块中的寄存器。。为了显示秒,分,小时,日期,月和年,CPU会从BCDSEC,BCDMIN,BCDHOUR,BCDDAY,BCDDATE,BCDMON,和BCDYEAR寄存器读取数据。但是由于多个寄存器的读取,可能产生1秒钟的偏离。例如,如果用户读取寄存器BCDYEAR到BCDMIN,假设结果为1959年,12月,31日,23点,59分。在用户读取BCDSEC寄存器时,但如果结果是0,那么很有可能年,月,日,时,分已经变成了
4、1960年1月1日0时0分了。解决的方法是,当读取到的BCDSEC等于0时,用户应该在读取一次BCDYEAR到BCDSEC的值。l备用电池RTC可被备用电池驱动,备用电池通过RTCVDD引脚向RTC提供电压。当系统掉电时,RTC与CPU之间的接口被阻塞,备用电池仅仅驱动振荡电路以及BCD计数器,这样可减少能量损耗。l报警功能RTC工作在掉电模式或正常工作模式时会在一个特定的时间产生报警信号。在正常工作模式下,报警中断(ALMINT)是激活状态的。在掉电模式下,电源管理唤醒信号(PMWKUP)与报警中断(ALMINT)都是激活状态。RTC的报警寄存器(RTCALM)决定了报警的使能与不使能以
5、及报警时间设定的条件。l节拍中断RTC节拍时间用于中断请求。TICNT寄存器具有一个中断使能位,同时其中的计数值用于中断。当计数值到达0时,节拍时间中断就会触发。中断的间隔时间计算如下:Period=(n+1)/128秒备注n:节拍时间计数值(1~127)这个RTC时间节拍中断功能可以作为RTOS(实时操作系统)内核的时间节拍。如果节拍从RTC时间节拍产生,则RTOS内部与时间相关的功能将一直与实时时钟同步。RTC相关寄存器lRTC控制寄存器寄存器地址读/写描述重置值RTCCON0x57000040(L)0x57000043(B)读/写(用字节)RTC控制寄存器0x0RTCCON位描述初始
6、状态CLKRST[3]RTC时钟计数重置。0=没重置,1=重置0CNTSEL[2]BCD计数重置。0=合并BCD计数器1=保留(单独的BCD计数器)0CLKSEL[1]BCD时钟选择。0=XTAL1/(2的15次方)分开的时钟1=保留(XTAL时钟只用于测试)0RTCEN[0]RTC控制使能。0=失能,1=使能注意:只有BCD时间计数和读取操作可以被执行。0l实时时钟计数器(TICNT)寄存器地址读/写描述重置值TICNT0x57000044(L)0x57000047(B)读/写(用字节)实时时钟计数器0x0TICNT位描述初始状态TICKINTENABLE[7]实时时间中断使能。0=失能
7、,1=使能0TICKTIMECOUNT[6:0]实时时间计数值(1~127)。这个计数器的值在内部减少,用户不能在工作时读取这个计数器的值。000000lRTC报警控制寄存器(RTCALM)RTC报警控制寄存器决定了报警使能以及报警时间。注意,RTCALM寄存器在掉电模式下会通过ALMINT以及PMWKUP产生报警信号,但在正常模式下只在ALMINT产生报警信号。寄存器地址读/写描述重置值RTCALM0x57000050
此文档下载收益归作者所有