学海荡舟手机网

主页 > 实用文摘 > 教育文摘_22 > > 详细内容

用实时时钟芯片DS1305启动数据采集系统_传感与控制论文

摘要:介绍串行时钟芯片ds1305的功能、结构及其利用ds1305设计的电源开关电路,可使数据采集系统平时处于关闭状态。定时开启时系统上电,进行数据采集;一次工作结束时关闭开关,系统断电。

    关键词:ds1305 低功耗 数据采集

引言

对于许多便携式数据采集系统,需要长时间无人看管地工作,如在石油钻井下、输油管道等场所。一般需要间隔数小时进行一个采集,这样系统大部分时间处空闲状态。虽然现在低功耗单片机的睡眠状态提供了降低功耗的一种方法,但低功耗不等于没有功耗,系统长时间工作时不得不考虑功耗的问题。

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

1 ds1305简介

ds1305是美国dallas公司推出的串行接口带报警实时时钟。它有20脚的tssop、16脚的dip两种封装方式[1],工作电压范围从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。

ds1305支持通过spi串行数据端口或者标准的三线接口进行时间的校正和数据的读取,可进行单字节的或连读字节束发方式的访问。sermode接地,串口访问模式设定为标准3线模式:sd1(串口数据输入)与sdo(串口数据输出)连接在一起作为单一的i/o引脚,它与ce、sclk组成3线模式。sermode接vcc,选择spi通信模式,具体操作可查阅有关资料。

int0、int1提供两个可编程的中断报警信号,可通过串行总线访问和设定秒、分、时、星期的报警时间。

x1、x2引脚直接连接标准的32.768khz晶振,无需外接其它元件。如实时时钟有误差,可以在振荡器两端并接6pf电容进行调整。

1.2 操作方式

ds1305共有148个用户ram,其读操作地址与写操作地址空头分开,当其高位为1时,为写操作地址空间,0为读操作地址。除实时时钟、日历寄存器和通用寄存器之外,还有作一般数据存储器用的96字节的nvram。对ds1305操作之前,必须对控制寄存器、状态寄存器、涓流充电寄存器进行初始化。

以下为控制寄存器(0f读,8f字):

76543210
eoscwp000intcnaie1aie0

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

结语

用ds1305控制的电源管理系统,可使数据采集系统长时间在无人看管的环境中定时进行数据采集。根据这一思想所设计的电路,经笔者应用在远程输油管道上的压力测量,经过一个月的检验,采集时间准确,系统工作可靠。