为进一步节省功耗,我们在研制一数据采集系统时,利用实时时钟芯片 DS1305 设计一电源开关电路。利用该开关电路,可使系统在空头时处于关闭状态,每当采集时间到,由报警信号开启单片机系统以进行数据采集,在数据采集结束时,单片机关闭开关电路,系统断电。这样系统处于关闭状态,一直到下一次开关电路报警。

1、 DS1305 简介
DS1305 是美国 Dallas 公司推出的串行接口带报警实时时钟。它有 20 脚的 TSSOP、16 脚的 DIP 两种封装方式,工作电压范围从 2.0~5.5V。
1.1 主要特性
DS1305 用二一十进制(BCD)码表示实时时钟的秒、分、小时、星期、日、月和年的时间信息,并且自动对小月(少于 31 天的月份)和闰年的日期进行调整,兼有带 AM/PM 指示 12 小时和 24 小时两种时间指示格式。图 1 为 DS1305 两种引脚的排列。
DS1305 提供了主电源和后备电源的双电源引脚和一个电池输入引脚;Vcc1 为主电源,Vcc2 为后备电源,可充电电源接此引脚,VBAT 接 3V 的锂纽扣电池或其它电源。VCCIF 引脚用来驱动 SDO 和 PF(电源失效输出)引脚的电平和接口的电相兼容。DS1305 只支持三种电源连接方式,如图 2 所示。VCC1 和 VBAT 供电时,VCC1 大于 VBAT0.2V 时,正常对 DS1305 进行访问。当 VCC1 小于 CBAT 时,DS1305 进入写保护。VCC1、VCC2 供电时,当 Vcc1 比 Vcc2 大 0.2V,Vcc1 输入作为电源;当 Vcc1 小于 Vcc2,Vcc2 对 DS1305 供电。这种模式下,DS1305 不能写保护自己。当 Vcc1 以+5V 供电时,DS1305 正常工作电流为 1.28mA,时钟保持电流最大为 81μA,当+2V 供电时,正常工作电流为 0.425mA,时钟保持电流最大为 25.3μA。
INT0、INT1 提供两个可编程的中断报警信号,可通过串行总线访问和设定秒、分、时、星期的报警时间。
X1、X2 引脚直接连接标准的 32.768kHz 晶振,无需外接其它元件。如实时时钟有误差,可以在振荡器两端并接 6pF 电容进行调整。
1.2 操作方式
DS1305 共有 148 个用户 RAM,其读操作地址与写操作地址空头分开,当其高位为 1 时,为写操作地址空间,0 为读操作地址。除实时时钟、日历寄存器和通用寄存器之外,还有作一般数据存储器用的 96 字节的 NVRAM。对 DS1305 操作之前,必须对控制寄存器、状态寄存器、涓流充电寄存器进行初始化。
以下为控制寄存器(0F 读,8F 字):

EOSC:设置为 0 使振荡器开始工作,设置为 1,DS1305 处于低功耗闲置状态。WP:写保护位,上电初始化后,WP 位处于三态,在任何写操作之前,该位必须清零。INTCN:中断控制位,控制两个中断之间的联系,置位后两个中断引脚 INT0、INT1 分别响应各自的中断(需中断使能),清零后,中断 1、2 报警时间匹配都只能引发 INT0 输入低电平,INT1 无效。ALE0、ALE1 置 1 时中断 0、1 使能。
状态寄存器(读 10H)只有两位 IRQF0、INQF1,置位时分别表示中断时间匹配。涓流充电寄存器(读 11H,写 91H)控制涓流充电的特性。
DS1305 标准三线模式的读写操作过程,每个字节需要 16 个 SCLK 时钟。通过 CE 引脚输入高电平来启动所有数据传送,前 8 个 SCLK 周期为输入写命令,后 8 个 SCLK 周期为输入或输出的数据。输入时,SCLK 的上升沿数据有效;输出时,SCLK 的下降沿输出数据有效。

2、 用 DS1305 开启数据采集系统
图 3 所示的电路是利用 DS1305 组成的数据采集系统。89C51 与 DS1305 使用标准三线形式进行通信,74HC73 为 JK 触发器,输入端 J、K、CD 接高电平,时钟 CLK 接 DS1305 的中断引脚 INT0,输出引脚 Q 与三极管组成数据采集系统的开关。此外,DS1305 在主电源断电时,可自动转换使用备用电池继续供电,不会造成时钟的丢失。
在采集系统上电初始化时钟芯片后,通过 I/O 口给 JK 触发器 CLK 引脚一个负脉冲,Q 引脚输出为低,三极管截止,采集系统断电,功耗降到零。但时钟电路部分保持供电,在 DS1305 实时时钟到设定采集时间,由 INT0 引脚发出中断信号给触发器 CLK 一个低电平。由于 CD 维持高电平,造成 JK 触发器翻转,三极管导通,VCC 给单片机上电复位。这样就将数据采集系统唤醒。可由单片机控制,导通模拟电路,启动传感器、AD 转换器等进行数据采集。采集结束后,单片机保存采集结果后,通过输出引脚发送低脉冲到 CLK 引脚,使 JK 触发器翻转,三极管截止,再次使得采集系统断电,进入瞬眠状态直至下一个采集时间,如此循环。

下面例程是图 3 电路所示系统的 DS1305 的初始化和读写程序,其中 CE 接 P1.3,I/O 引脚接 P1.1,SCLK 引脚接 P1.2。
(1)DS1305 初始化程序
RESETDS:CLR P1.2:置时钟信号 P1.2=0
CLR P1.3;置片选信号 P1.3=0
SETB P1.3;置片选信号 P1.3=1,DS1305 使能
RET
(2)对 DS1305 进行写操作程序
DSW: MOV R7,#08H ;该子程序为通过单片机写入地址或数据
WLOOP:RRC A ;A 中为要写入的数据或地址
MOV P1.1,C
SETB P1.2 ;时钟信号
NOP
CLR P1.2 ;产生时钟脉冲
DJNZ R7,WLOOP
RET
(3)对 DS1305 进行读操作程序
DSR:SETB P1.1 ;为读数据做准备。
CLR A
MOV R7,#08H
RLOOP:CLR R1.2 ;写入地址后的第一个时钟脉冲下降沿开始读出数据
MOV C,P1.1
RRC A ;A 中为读出的 8 位数据
SETB P1.2
DJNZ R7,RLOOP
RET
3、结语
用 DS1305 控制的电源管理系统,可使数据采集系统长时间在无人看管的环境中定时进行数据采集。根据这一思想所设计的电路,经笔者应用在远程输油管道上的压力测量,经过一个月的检验,采集时间准确,系统工作可靠。
为进一步节省功耗,我们在研制一数据采集系统时,利用实时时钟芯片 DS1305 设计一电源开关电路。利用该开关电路,可使系统在空头时处于关闭状态,每当采集时间到,由报警信号开启单片机系统以进行数据采集,在数据采集结束时,单片机关闭开关电路,系统断电。这样系统处于关闭状态,一直到下一次开关电路报警。

1、 DS1305 简介
DS1305 是美国 Dallas 公司推出的串行接口带报警实时时钟。它有 20 脚的 TSSOP、16 脚的 DIP 两种封装方式,工作电压范围从 2.0~5.5V。
1.1 主要特性
DS1305 用二一十进制(BCD)码表示实时时钟的秒、分、小时、星期、日、月和年的时间信息,并且自动对小月(少于 31 天的月份)和闰年的日期进行调整,兼有带 AM/PM 指示 12 小时和 24 小时两种时间指示格式。图 1 为 DS1305 两种引脚的排列。
DS1305 提供了主电源和后备电源的双电源引脚和一个电池输入引脚;Vcc1 为主电源,Vcc2 为后备电源,可充电电源接此引脚,VBAT 接 3V 的锂纽扣电池或其它电源。VCCIF 引脚用来驱动 SDO 和 PF(电源失效输出)引脚的电平和接口的电相兼容。DS1305 只支持三种电源连接方式,如图 2 所示。VCC1 和 VBAT 供电时,VCC1 大于 VBAT0.2V 时,正常对 DS1305 进行访问。当 VCC1 小于 CBAT 时,DS1305 进入写保护。VCC1、VCC2 供电时,当 Vcc1 比 Vcc2 大 0.2V,Vcc1 输入作为电源;当 Vcc1 小于 Vcc2,Vcc2 对 DS1305 供电。这种模式下,DS1305 不能写保护自己。当 Vcc1 以+5V 供电时,DS1305 正常工作电流为 1.28mA,时钟保持电流最大为 81μA,当+2V 供电时,正常工作电流为 0.425mA,时钟保持电流最大为 25.3μA。
INT0、INT1 提供两个可编程的中断报警信号,可通过串行总线访问和设定秒、分、时、星期的报警时间。
X1、X2 引脚直接连接标准的 32.768kHz 晶振,无需外接其它元件。如实时时钟有误差,可以在振荡器两端并接 6pF 电容进行调整。
1.2 操作方式
DS1305 共有 148 个用户 RAM,其读操作地址与写操作地址空头分开,当其高位为 1 时,为写操作地址空间,0 为读操作地址。除实时时钟、日历寄存器和通用寄存器之外,还有作一般数据存储器用的 96 字节的 NVRAM。对 DS1305 操作之前,必须对控制寄存器、状态寄存器、涓流充电寄存器进行初始化。
以下为控制寄存器(0F 读,8F 字):

EOSC:设置为 0 使振荡器开始工作,设置为 1,DS1305 处于低功耗闲置状态。WP:写保护位,上电初始化后,WP 位处于三态,在任何写操作之前,该位必须清零。INTCN:中断控制位,控制两个中断之间的联系,置位后两个中断引脚 INT0、INT1 分别响应各自的中断(需中断使能),清零后,中断 1、2 报警时间匹配都只能引发 INT0 输入低电平,INT1 无效。ALE0、ALE1 置 1 时中断 0、1 使能。
状态寄存器(读 10H)只有两位 IRQF0、INQF1,置位时分别表示中断时间匹配。涓流充电寄存器(读 11H,写 91H)控制涓流充电的特性。
DS1305 标准三线模式的读写操作过程,每个字节需要 16 个 SCLK 时钟。通过 CE 引脚输入高电平来启动所有数据传送,前 8 个 SCLK 周期为输入写命令,后 8 个 SCLK 周期为输入或输出的数据。输入时,SCLK 的上升沿数据有效;输出时,SCLK 的下降沿输出数据有效。

2、 用 DS1305 开启数据采集系统
图 3 所示的电路是利用 DS1305 组成的数据采集系统。89C51 与 DS1305 使用标准三线形式进行通信,74HC73 为 JK 触发器,输入端 J、K、CD 接高电平,时钟 CLK 接 DS1305 的中断引脚 INT0,输出引脚 Q 与三极管组成数据采集系统的开关。此外,DS1305 在主电源断电时,可自动转换使用备用电池继续供电,不会造成时钟的丢失。
在采集系统上电初始化时钟芯片后,通过 I/O 口给 JK 触发器 CLK 引脚一个负脉冲,Q 引脚输出为低,三极管截止,采集系统断电,功耗降到零。但时钟电路部分保持供电,在 DS1305 实时时钟到设定采集时间,由 INT0 引脚发出中断信号给触发器 CLK 一个低电平。由于 CD 维持高电平,造成 JK 触发器翻转,三极管导通,VCC 给单片机上电复位。这样就将数据采集系统唤醒。可由单片机控制,导通模拟电路,启动传感器、AD 转换器等进行数据采集。采集结束后,单片机保存采集结果后,通过输出引脚发送低脉冲到 CLK 引脚,使 JK 触发器翻转,三极管截止,再次使得采集系统断电,进入瞬眠状态直至下一个采集时间,如此循环。

下面例程是图 3 电路所示系统的 DS1305 的初始化和读写程序,其中 CE 接 P1.3,I/O 引脚接 P1.1,SCLK 引脚接 P1.2。
(1)DS1305 初始化程序
RESETDS:CLR P1.2:置时钟信号 P1.2=0
CLR P1.3;置片选信号 P1.3=0
SETB P1.3;置片选信号 P1.3=1,DS1305 使能
RET
(2)对 DS1305 进行写操作程序
DSW: MOV R7,#08H ;该子程序为通过单片机写入地址或数据
WLOOP:RRC A ;A 中为要写入的数据或地址
MOV P1.1,C
SETB P1.2 ;时钟信号
NOP
CLR P1.2 ;产生时钟脉冲
DJNZ R7,WLOOP
RET
(3)对 DS1305 进行读操作程序
DSR:SETB P1.1 ;为读数据做准备。
CLR A
MOV R7,#08H
RLOOP:CLR R1.2 ;写入地址后的第一个时钟脉冲下降沿开始读出数据
MOV C,P1.1
RRC A ;A 中为读出的 8 位数据
SETB P1.2
DJNZ R7,RLOOP
RET
3、结语
用 DS1305 控制的电源管理系统,可使数据采集系统长时间在无人看管的环境中定时进行数据采集。根据这一思想所设计的电路,经笔者应用在远程输油管道上的压力测量,经过一个月的检验,采集时间准确,系统工作可靠。
举报