|
实时时钟RS5C348及其在嵌入式系统中的应用 天津大学精密仪器与光电子工程学院张宝明张志荣曾周末 摘要介绍RS5C348实时时钟芯片的性能特点、功能设置、与MCS\ 51系列单片机的接口电路及编程技术。 关键词单片机实时时钟串行传输 概述 RS5C348是一种CMOS实时时钟芯片,利用三线串行传输方式向CPU提供时间和日历数据。具有体积小、功耗低等特点,适合在嵌入式系统中应用,其主要特点包括: · 宽数据保持电压范围:1.45~5.5V; · 低功耗:3V电压下工作电流0.35μA; · 三线制串行传输结构,最高移位频率2MHz; · 方便的中断方式设置; · 12/24h(小时)显示方式,具有闰年补偿功能; · 电压监测电路。 图1RS5C348结构一、 功能描述 1 内部结构 RS5C348的内部结构如图1所示。 2 引脚功能 引脚功能如表1所列。 表1 引脚名称〖〗引脚号〖〗引脚功能CE〖〗7〖〗CE=0, 时钟芯片与CPU的联系被切断,但内部走时仍正常SCLK〖〗2〖〗串行数据SI、SO的同步时钟脉冲,最高频率2MHzSI〖〗4〖〗写芯片寄存器时的输入数据SO〖〗3〖〗读芯片寄存器时的输出数据INTR〖〗6〖〗周期性中断请求脉冲或报警脉冲,集电极开路输出32KOUT〖〗1〖〗32kHz时钟输出,集电极开路OSCIN OSCOUT〖〗9 8〖〗32.768kHz晶体振荡器连接端二、 寄存器设置 RS5C348共设置15个寄存器,均可进行读/写操作。各寄存器的定义及地址分配如表2所列。 寄存器按功能可分为三类:时间寄存器、控制寄存器、计数脉冲调整寄存器。各寄存器中以“―”标识的位,写操作时无效,读操作时为“0”。 1 时间寄存器 时间寄存器用于进行时间设置或时间查询,全部数据均采用BCD码。为方便使用,RS5C348除设置按日报警时间寄存器外,还设置按星期报警时间寄存器,将在每星期的同一时间输出报警信号。表2寄存器定义及地址分配 名称〖〗地址[]内容A3〖〗A2〖〗A1〖〗A0〖〗D7〖〗D6〖〗D5〖〗 D4〖〗 D3 〖〗D2〖〗 D1〖〗D0〖〗说明秒寄存器〖〗0〖〗0〖〗0〖〗0〖〗―〖〗秒十位〖〗秒个位〖〗00~59秒分寄存器〖〗0〖〗0〖〗0〖〗1〖〗―〖〗分十位〖〗分个位〖〗00~59分时寄存器〖〗0〖〗0〖〗1〖〗0〖〗―〖〗―〖〗时十位〖〗时个位〖〗00~23时―〖〗―〖〗P/〖〗时十位〖〗时个位〖〗1~12时,P/=0,上午;P/=1,下午星期寄存器〖〗0〖〗0〖〗1〖〗1〖〗―〖〗―〖〗―〖〗―〖〗―〖〗星期〖〗0~6: 周日~周六日期寄存器〖〗0〖〗1〖〗0〖〗0〖〗―〖〗―〖〗日期十位〖〗日期个位〖〗1~31日月寄存器〖〗0〖〗1〖〗0〖〗1〖〗 20/19〖〗―〖〗―〖〗月十位〖〗月个位〖〗1~12月,20/19=1, 20xx年年寄存器〖〗0〖〗1〖〗1〖〗0〖〗年十位〖〗年个位计数脉冲 调整寄存器〖〗0〖〗1〖〗1〖〗1〖〗 F7〖〗 F6〖〗F5 〖〗F4〖〗F3〖〗F2 〖〗F1 〖〗F0按星期报警〖〗分寄存器〖〗1[]0[]0[]0[]-[]分十位[]分个位时寄存器[]1[]0[]0[]1[]-[]-[]时十位[]时个位[]24时制-[]-[]P/[]时十位[]时个位[]12时制星期寄存器[]1[]0[]1[]0[]-[]六[]五[]四[]三[]二[]一[]日[]1:该日报警; 0:该日不报警按日报警〖〗分寄存器[]1[]0[]1[]1[]-[]分十位[]时个位时寄存器[]1[]1[]0[]0[]-[]-[]时十位[]时个位[]24时制-[]-[]P/[]时十位[]时个位[]12时制控制寄存器1〖〗1〖〗1〖〗1〖〗0〖〗WALE〖〗DALE〖〗24/12〖〗CLEN2〖〗 TEST 〖〗CT2 〖〗CT1〖〗CT0〖〗缺省值: 00H控制寄存器2〖〗1〖〗1〖〗1〖〗1〖〗VDSL〖〗VDEL〖〗SCRATCH1〖〗XSTP〖〗CLEN1〖〗CTFG〖〗WAFG〖〗DAFG〖〗缺省值: 10H表3控制寄存器1 〖〗WALE〖〗DALE〖〗24/12〖〗CLEN2〖〗TEST〖〗CT2〖〗CT1〖〗CT001〖〗按星期报警设置位〖〗按日报警设置位〖〗记时模式选择位〖〗32KOUT输出控制位〖〗工作状态设置位禁止[]禁止[]12小时制[]使能[]正常使用使能[]使能[]24小时制[]禁止[]测试〖〗中断周期选择位2 控制寄存器1 控制寄存器1的缺省值为00H,各位的定义如表3所列。 控制寄存器1主要有三个功能: · 记时模式选择——将片内的记时模式设置为12时制或24时制。 · 报警方式选择——可以选择按日报警和按星期报警,一旦满足报警条件,将由INTR输出报警信号。报警信号形式可以是电平,也可以是脉冲,由CT2 CT1 CT0选择。 · 中断周期选择——除提供报警信号形式的选择设置外,RS5C348还能提供与时钟同步的周期输出脉冲,由CT2 CT1 CT0位选择,其定义如表4所列。 3 控制寄存器2 控制寄存器2主要用于电源监控和振荡器状态监测等,其定义如表5所列。 当片选信号CE=0时,片内的晶振检测电路将把振荡器工作状态送给XSTP位。当振荡器振荡停止时,XSTP=1。一旦XSTP被置1时,振荡调整寄存器、控制寄存器(除XSTP位外)的所有位被清“0”,INTR及32KOUT输出被禁止。XSTP位只能写0,意味着重新启动片内振荡器调整电路。在系统工作过程中,建议经常检测XSTP位。 在周期性中断脉冲INTR处于低电平时,CTFG=1,CTFG只允许写0,使INTR=1直至下一个中表5控制寄存器2 〖〗VDSL〖〗VDET〖〗SCRATCH1〖〗XSTP〖〗CLEN1〖〗CTFG〖〗WAFG DAFG电源检测阈值〖〗电源状态〖〗〖〗振荡器状态〖〗32KOUT输出〖〗中断状态〖〗报警状态0〖〗2.1V〖〗高于阈值〖〗X〖〗正常〖〗使能〖〗INTR=1时〖〗当前时间与设置 时间不同时报警1〖〗1.6V〖〗低于阈值〖〗X〖〗停止〖〗禁止〖〗INTR=0时〖〗当前时间与设置 时间相同时报警表4中断周期选择 CT2〖〗CT1〖〗CT0〖〗中断信号形式0〖〗0〖〗0〖〗高电平0〖〗0〖〗1〖〗低电平0〖〗1〖〗0〖〗2Hz周期脉冲,50%占空比0〖〗1〖〗1〖〗1Hz周期脉冲,50%占空比1〖〗0〖〗0〖〗每秒一个脉冲,与秒同步1〖〗0〖〗1〖〗每分一个脉冲,与00秒同步1〖〗1〖〗0〖〗每时一个脉冲,与00分00秒同步1〖〗1〖〗1〖〗每月一个脉冲,与每月第一天的00时00分00秒同步断周期。 控制寄存器2的默认值为10H。 4 计数脉冲调整寄存器 计数脉冲调整寄存器用于改变单位时间,即1s(秒)内计数脉冲个数,以减小振荡频率漂移对时间精度带来的影响。正常情况下,1s的计数脉冲数为32768,计数脉冲调整寄存器的缺省值为00H。当D7=0时,允许改变计数脉冲调整寄存器的设置。在秒寄存器内容为00s、20s、40s时,调整电路根据调整寄存器的设置增加(或减少)1s内计入的脉冲数。 F6=0,计数脉冲增加\[(F5F4F3F2F1F0)B-1\]×2个,可减小振荡频率提高带来的影响; F6=1,计数脉冲减少\[(6543210)B+1\]×2个,可减小振荡频率降低带来的影响。 例如: 00000111将使1s内的计数脉冲数增至32780个,补偿晶振频率增至32768.6Hz带来的计数误差; 01111110将使1s内的计数脉冲数减少至32764个,补偿晶振频率减至32767.8Hz带来的计数误差。 应当指出:计数脉冲调整寄存器的内容不改变32KOUT输出信号的频率。 三、 接口设计与操作时序 RS5C348既可以用三线串行接口方式,也可以将SI和SO短接形成二线串行接口方式,与MCS\ 51系列单片机的接口如图2所示。 图2RS5C348与MCS\ 51单片机接口RS5C348各寄存器的读写操作在CE的上升沿启动,下降沿终止,每8bit为一个字节,高位(MSB)在前,第一个字节为操作命令,第二个(及以后各)字节为读/写的数据。操作命令的高四位指明被操作寄存器的地址,低四位表明操作类型。RS5C348有四种操作类型: 单字节写:A3A2A1A0 1000(A3A2A1A0); 多字节写:A3A2A1A0 0000(A3A2A1A0) (A3A2A1A0+1)……; 单字节读:A3A2A1A0 1100(A3A2A1A0); 多字节读:A3A2A1A0 0100(A3A2A1A0) (A3A2A1A0+1)……。 RS5C348的操作时序与CE从0跳变为1时,SCLK所处的状态有关。当CE从0跳变为1时,若SCLK=0,SI与SCLK的下降沿同步,SO与SCLK的上升沿同步;反之,当CE从0跳变为1时,若SCLK=1,SI与SCLK的上升沿同步,SO与SCLK的下降沿同步。操作时序如图3所示。 图3读/写时序为了避免在时钟整点跳变时,时、分、秒寄存器不同步读写带来的影响(如13:59:59至14:00:00这1s时间内寄存器不同步读写可能导致1h(小时)的误差),RS5C348设置了整点跳变时1s锁定逻辑,相当于在这1s时间内禁止对时间、日期寄存器进行读写。为达到这一目的,从CE的上升沿开始,禁止在31μs时间内读写0H~6H寄存器,每次使CE处于低电平的时间不得少于61μs。 四、 典型读写程序 在MCS\ 51系列单片机上,必须利用软件模拟来支持RS5C348的操作。以下是实现RS5C348读/写操作的两个子程序,接口定义见图2,输入/输出数据通过累加器A传递。 CE〖〗EQU〖〗P1.6〖1〗SCK〖〗EQU〖〗P3.1〖1〗SIO〖〗EQU〖〗P3.0 〖1〗WRT:〖〗MOV〖〗R2,#08H〖〗;写子程序〖2〗CLR〖〗SCK〖2〗NOP〖1〗WRT1:〖〗NOP〖2〗NOP〖2〗SETB〖〗SCK〖2〗RLC〖〗A〖2〗MOV〖〗SIO,C〖2〗NOP〖2〗NOP〖2〗NOP〖2〗CLR〖〗SCK〖2〗NOP〖2〗DJNZ〖〗R2,WRT1〖2〗RET 〖1〗RDT:〖〗SETB〖〗SIO〖〗;置SIO为输入口,读子程序〖2〗MOV〖〗R2,#08H〖2〗CLR〖〗C〖2〗CLR〖〗A〖2〗CLR〖〗SCK〖2〗NOP〖1〗RDT1:〖〗CLR〖〗SCK〖2〗NOP〖2〗NOP〖2〗NOP〖2〗SETB〖〗SCK〖2〗NOP〖2〗NOP〖2〗NOP〖2〗JNB〖〗SIO,RDT2〖2〗SETB〖〗C〖1〗RDT2:〖〗RLC〖〗A〖2〗NOP〖2〗CLR〖〗SCK〖2〗DJNZ〖〗R2,RDT1〖2〗RETRS5C348实时时钟芯片不仅体积小、功耗低、接口简单,而且在报警设置上有很大的灵活性;能通过调整寄存器的设置提高时钟精度,具有明显的技术特点;适合在体积、价格、功耗及定时精度等要求较高的场合应用。MES 参考文献 1RS5C348A/B Application Manual.RICOH Electronic Device Division 2何立民.MCS\ 51系列单片机应用系统设计.北京:北京航空航天大学出版社,1990 3孙涵芳.MCS\ 51系列单片机原理及应用.北京:北京航空航天大学出版社,1988
|