摘要:介绍多功能实时时钟芯片X1228的内部结构、功能、特点以及在开放式实验室管理系统中电源控制器部分的应用。
关键词:实时时钟 I2C接口 单片机 电源控制器
引言
X1228是美国XICOR公司最新推出的实时时钟(RTC)芯片。与其它RTC芯片相比,X1228除有基本的时钟和报警功能外,还有4K位E2PROM存储器和复位输出、电压监控、看门狗定时、频率输出等功能。
X1228可以准确地用秒、分、时、日、星期、月、年来显示时间和日期,具有世纪字节,解决了两千年问题,自动实现闰年调整;有2路报警,可设置为按秒、分、时、日、月和星期任意组合的定时报警;还有1个可编程的频率输出引脚(PHZ),用于输出一个固定频率的方波信号;内部的4K位E2PROM存储器,可用于存储用户的设置参数或其它数据,其内容在电源失效时不会丢失;采用I2C总线与单片机接口,一次可传送多个字节的数据,数据传送的速率为400kHz;内部有电源监控电源监控电路,用于监测电源电压,并能在上电和掉电时输出复位信号,片内的看门狗定时器可编程为3个超时时间和关闭,还提供一个备用电源输入引脚(VBACK),接一电池作为备用电源,可在主电源(VCC)失效时保证芯片正常工作和时钟的连续运行。X1228因其计时准确、体积小、功能强,且与单片机接口方便、性价比高,在我们研制的开放式实验室管理系统电源控制器中得到了有效的应用。
图1 X1228内部结构框图
1 X1228的内部结构及工作原理
实时时钟芯片X1228的内部结构如图1所示,按功能基本分为实时时钟及报警、存储器和复位监控电路3个主要部分。
1.1 实时时钟及报警
X1228对时钟和报警的访问和设置都是通过时钟/控制寄存器CCR来实现的。CCR分为五个部分:
①报警寄存器0(Alarm 0)为8字节,地址0000H~0007H,非易失性E2PROM存储器;
②报警寄存器1(Alarm 1)为8字节,地址0008~000FH,非易失性E2PROM存储器;
③控制寄存器(Control)为4字节,地址0010H~0013H,非易失性E2PROM存储器;
④实时时钟(RTC)为8字节,地址0030H~0037H,易失性RAM存储器;
⑤状态寄存器(Status)为1字节,地址为003FH,易失性RAM存储器。
实时时钟(RTC)外部仅使用1个32.768kHz晶体来保持年、月、星期、日、时、分和秒的精确的内部表示。启动读命令并指定对应于RTC寄存器的地址可以读RTC,也可以通过写RTC寄存器来设置时间和日期。模拟微调寄存器ATR(低6位)用来调整X1和X2引脚间的片内负载电容,为5~39.5pF,这将使晶体选择有较大的余地。数字微调寄存器DTR(低3位)用来调整RTC的误差,达到长时间的高精度。
两组报警寄存器的结构与内容和RTC寄存器相同,只是增加了使能位(在MSB位)。通过使能位和实时寄存器的设置,可以确定报警时间。例如:在表1中,通过把EDWn、EHRn、EMNn使能位置“1”,并把DWAn、HRAn、MNAn报警警察寄存器置为星期三8:00AM,即把X1228设置为每星期三8:00AM报警。当把EHRn、EMNn使能位置“1”,并把HRAn、MNAn报警寄存器置为9:15PM时,即把X1228设置为每天9:15PM报警。设置EMOn,并结合其它使能位和特定的报警时间,用户可以把X1228设置为每年同样的时间报警。控制寄存器INT中位IM为中断方式位,“0”为中断方式,“1”为脉冲方式;位AL1E和AL0E分别用来使能报警中断信号IRQ的输出;位FO1和FO0为可编程频率输出控制位,用来选择PHZ引脚上的振荡频率输出。
表1 时钟/控制寄存器CCR映像表
地址
名称
D7
D6
D5
D4
D3
D2
D1
D0
范围
003FH
SR
BAT
AL1
AL0
0
0
RWEL
WEL
RTCF
0037H
Y2K
0
0
Y2K21
Y2K20
Y2K13
0
0
Y2K10
19/20
0036H
DW
0
0
0
0
0
DY2
DY1
DY0
0~6
0035H
YR
Y23
Y22
Y21
Y20
Y13
Y12
Y11
Y10
0~99
0034H
MO
0
0
0
G20
G3
G12
G11
G10
1~12
0033H
DT
0
0
D21
D20
D13
D12
D11
D10
1~31
0032H
HR
T24
0
H21
H20
H13
H12
H11
H10
0~23
0031H
MN
0
M22
M21
M20
M13
M12
M11
M10
0~59
0030H
SC
0
S22
S21
S20
S13
S12
S11
S10
0~59
0013H
DTR
0
0
0
0
0
DTR2
DTR1
DTR0
0012H
ATR
0
0
ATR5
ATR4
ATR3
ATR2
ATR1
ATR0
0011H
INT
IM
AL1E
AL0E
F01
F00
X
X
X
0010H
BL
BP2
BP1
BP0
WD1
WD0
0
0
0
000FH
Y2K1
0
0
A1Y2K21
A1Y2K20
A1Y2K13
0
0
A1Y2K10
19/20
000EH
DWA1
EDW1
0
0
0
0
DY2
DY1
DY0
0~6
000DH
未使用,默认为RTC年字节(YR)
000CH
MOA1
EMO1
0
0
A1G20
A1G13
A1G12
A1G11
A1G10
1~12
000BH
DTA1
EDT1
0
A1D21
A1D20
A1D13
A1D12
A1D11
A1D10
1~31
000AH
HRA1
EHR1
0
A1H21
A1H20
A1H13
A1H12
A1H11
A1H10
0~23
0009H
MNA1
EMN1
A1M22
A1M21
A1M20
A1M13
A1M12
A1M11
A1M10
0~59
0008H
SCA1
ESC1
A1S22
A1S21
A1S20
A1S13
A1S12
A1S11
A1S10
0~59
0007H
Y2K0
0
0
A0Y2K21
A0Y2K20
A0Y2K13
0
0
A0Y2K10
19/20
0006H
DWA0
EDW0
0
0
0
0
DY2
DY1
DY0
0~6
0005H
未使用,默认为RTC年字节(YR)
0004H
MOA0
EMO0
0
0
A0G20
A0G13
A0G12
A0G11
A0G10
1~12
0003H
DTA0
EDT0
0
A0D21
A0D20
A0D13
A0D12
A0D11
A0D10
1~31
0002H
HRA0
EHR0
0
A0H21
A0H20
A0M13
A0D12
A0D11
A0M10
0~23
0001H
MNA0
EMN0
A0M22
A0M21
A0M20
A0M13
A0M12
A0M11
A0M10
0~59
0000H
SCA0
ESC0
A0S22
A0S21
A0S20
A0S13
A0S12
A0S11
A0S10
0~59
状态寄存器SR中位BAT为“1”,表示由电池VBACK供电,硬件置位/复位;位AL1、AL0为报警指示位,“1”为发生报警,状态寄存器读操作复位读标志;位RWEL为寄存器写使能锁存,位WEL为写使能锁存,上电时均为“0”,禁止状态。注意:要对CCR或存储器进行任何非易失性写操作,须首先写“02H”至SR,将WEL位置“1”,其次写“06H”至SR,将RWEL和WEL都置“1”,然后才能写实际数据到CCR或存储器。
1.2 复位监控电路与看门狗定时器
X1228电源控制电路接收从Vcc和VBACK引脚输入的电源,当Vcc
2 X1228在电源控制器中的应用
为了充分利用实验室资源,让学生能够自主选择实验内容与时间,从而激发学生积极参与科学实验的兴趣,提高分析问题、解决问题的能力,同时也为了缓解近年来高校扩招对实验室的压力,实现高校部分实验室的开放式管理势在必行。我们研制的开放式实验室管理系统,再配上有经验的指导教师精心制作的实验教学课件,为实验室的无人值守化管理提供了物质基础。该开放式实验室管理系统由一个管理中心和一个门禁控制器及若干个实验组电源控制器组成,系统框图如图3所示。学生进入开放式实验室做实验,必须先刷卡,得到允许后方可进入。若实验时间超过预定时间(前10分钟发提示警告信息),则实验组仪器设备的供电会自动切断。
管理中心由1台计算机、报表打印机和管理软件组成。完成的功能有:①IC卡的发放、实验室仪器设备配置情况和实验安排情况预置;②通过门禁控制器获取实验学生的有关信息,根据存储在机内的仪器设备使用配置情况及预置的实验安排情况,决策该学生当前是否能参与实验并分配实验组号;③向门禁控制器回发信息;④若允许学生进入实验室,则发指令至相应的实验组电源控制器,以便及时为该组仪器设备供电;⑤对学生实验时间、仪器设备使用情况进行存储管理,为实验指导教师掌握学生实验情、实验技术人员进行仪器设备的维护维修提供依据;⑥各种报表输出。
门禁控制器主要负责:①对学生所持有的IC卡刷卡,以获取与实验有关的信息,通过RS485总线传输至上位机,以决定是否允许该学生进入实验室;②接收上位机发来的允许否信息,通过LCD显示器显示并执行;③学生实验完毕,需再次刷卡,并通过门禁控制器所携带的小键盘,对实验组仪器则认为该实验在规定时间内未完成,需重做。
实验组电源控制器主要是接收上位机指令,控制每个实验组仪器设备的供电情况,并在预定实验结束时间的前10分钟向学生发提示报警信息。
在实验组电源控制器中,我们采用了AT89C51单片机控制实时时钟芯片X1228(如图2)来实现对每个实验组仪器设备的供电情况定时控制,采用OCMJ2X8的LCD显示模块显示实时时间。AT89C51从串行口接收来自PC的2字节命令,由P1.5输出高电平,通过一只固态继电器(SSR)SAP4010来接通220V交流供电电路;接收8字节BCD码,写入X1228的RTC寄存器,对X1228进行校时;从串行口接收8字节写入Alarm0来设置X1228的报警输出,在单片机的外中断1服务程序中,通过P3.2口接的1只有源讯响器,在预定实验结束时间的前10分钟向学生发提示报警信息;实验时间到,P1.5输出高电平,通过SAP4010切断220V交供电电流。管理中心上位机与电源控制器之间采用MAX3082构成的RS485总线进行通信。因总线上允许最大节点数为256个,故完全能满足实际应用需要。
结语
在开放式实验室管理系统的电源控制器中,由于采用了I2C总线的实时时钟芯片X1228,它集成时时钟、报警输出、电源监控和看门狗定时器于一体,从而大大减小了系统成本和电路板空间。该电源控制器若稍做改进,也可广泛地应用地需要进行定时开关机的家用电器中。