摘要:DS1629是最新推出的带有二线制串行接口和年、月、日、周日的时钟数字化温度计。测温精度为±2℃,分辨率为0.5℃,测温范围为-55~+125℃;并具有可编程、宽电压、低功耗等特性,可用于电池供电系统。本文详细地介绍了DS1629的功能及使用方法。
关键词:温度传感器;实时时钟;DS1629
1. 概述
DS1629是达拉斯半导体公司1999年推出的2线制串行接口并带有日历和时钟的数字化温度计芯片,它将数字化温度传感器、实时时钟以及已做了Y2K千年虫修正的日历集成在一块芯片上。
DS1629通常可用于移动电话、工业控制、办公设备、数据采集和其它需要测温和定时控制的系统中。DS1629将两种功能集成在一块芯片上,这样,不但减少了外围元件数目和系统空间,而且还具有可编程、宽电压、低功耗等特性,可用于电池供电等低功耗系统中。
DS1629的引脚符号如图1所示,各引脚功能如表1所列。
DS1629数字式温度传感器的精度为±2.0℃,以0.5℃为刻度输出一个9-bit的温度测量值,以指示器件所在的环境温度。其测温范围为-55~+125℃;实时时钟能提供BCD码时钟/日历,并备有2100年以内的闫年补偿,提供12/24小时制两种模式;要求外接32.768kHz晶振,片内自带分频器,提供一个开漏的分频信号输出端;具有温度中断与时钟中断功能,可由用户设定为两者同时有效、单独有效或全部禁止(上电缺省状态)三种状态;另外,它还具有32字节通用SRAM,可供用户作一般记录使用。所有的通讯都由一个标准的二线制串行接口来完成。
2. 二线制串行总线
DS1629支持二线制串行数据传输协议。在总线上DS1629作为从属器件,与主控CPU通过SDA和SCL端连接。由主控CPU产生串行时钟,对总线进行访问。
总线协议定义如下:
●在总线空闲状态下,即数据线与时钟线均保持高电平时才可以开始数据传输。
●START位(数据传输起始位):时钟线为高电平时,数据线由高变低,定义为一个START位,表示开始传输一帧数据。
●STOP位(数据传输停止位):时钟线为高电平时,数据线由低变高,定义为一个STOP位,表示一帧数据传送的结束。
●有效数据位:在一个START位后,在时钟的高电平期间,数据线上的固定电平被认为是一位有效数据。在时钟的低电平期间,可以改变数据线的状态。一个数据位对应一个时钟脉冲。在传输数据的过程中,当时钟线为高电平时,数据线必须保持个固定的电平,如果在这时改变数据线的状态,将会被当作是START 位或STOP位而造成数据中断。
●每传输一帧数据都要以START开始,以STOP结束,也可以再用一个START位来开始新一帧数据传输。一帧数据的字节数没有限制,完全由主控CPU决定。每传送一个字节,DS1629回送一个ACK信号,表示接收。
●DS1629的最大时钟频率为400kHz。
●主控CPU在访问串行总线上的器件时,首先发送START位,然后需要发送一个控制字。这个控制字的定义如下:
D7、D6、D5、D4:控制码。对DS1629进行读写访问时,这4位设定为1001。
D3、D2、D1:地址码。DS1629的地址码由硬件固定为111,因此在总线上只能挂1片DS1629,否则会发生地址冲突。但总线上最多可以挂7片其它串行器件,只要它的控制码是1001、且地址码不是111。
D0(R/W):读写位。D0位为1时,表示读操作,D0位为0时,表示写操作。
在START位之后,DS1629将在数据线上检测控制字,在收到控制字后回送一个ACK信号,根据其中的读写位将工作模式设为接收或发送。
●二线制串行总线的电气参数如表2所列,时序图如图2所示。
3. 温度
DS1629出厂时设定为一上电即开始连续测量温度,这一操作类似后台工作,主控CPU可定时读取温度寄存器,而不会影响温度的测量与转换。用户也可以禁止DS1629上电自动测温,以降低功耗。
用户可设DS1629为单次转换,完成一次转换,写数据到温度寄存器(见图3)中,然后回到待机状态。也可设为连续转换。转换时间典型值为 400ms,最大值为1000ms,测量精确度为±2.0℃。无论何种模式,用户都可用读温度命令(AAh)得到温度寄存器中的数据。温度寄存器中低字节的最高位置1或清0,可得到0.5℃的分辨率。温度数据用二进制补码表示,格式如表3所列。
4. 时钟/日历
访问实时时钟/日历寄存器的命令为C0h。由串行通讯控制字中R/W位控制读写。数据为BCD码,格式如图4所示(填0位为只读位,且读出值恒为0)。
CH:时钟暂停位。CH=0,允许分频器工作;CH=1,禁止分频器工作。上电缺省为0时,一上电分频器就有信号输出。
12/24:计时模式选择位。0为24小时制,1为12小时制。02h单元的Bit5在24小时制时与Bit4同构成小时的高位(0、1、2),在12小时制时,Bit5为0,表示AM;Bit5为1,表示PM。
5. 中断
DS1629提供一个开漏输出的中断端。中断方式在状态寄存器中进行设置,可设为仅有温度或时间中断、温度与时间中断兼有、禁止中断。在状态寄存器中有两个状态位TAF和CAF,DS1629通过这两个状态位的逻辑或的结果来确定中断输出。
5.1 温度中断
每完成一次温度转换,温度比较器就刷新一次,当所测温度达到或超出温度上限寄存器TH中的数值时,状态寄存器的TAF位将被置1,并保持1状态直到温度值降到下限寄存器TL中的数值时才自动清0。
对TH和TL寄存器的读写,可以按照两线制串行总线的通讯协议利用A1h(访问TH)和A2h(访问TL)两个指令进行。TH和TL寄存器均为E2PROM寄存器,其格式与温度寄存器相同。
5.2 时间中断
当时间寄存器中的数据与时间中断寄存器中的数据相同时,DS1629将在1秒内将时间中断标志(CAF)置位,直到主控制器对时间或时间中断寄存器进行读写操作后被清除。时间中断寄存器的格式如图5所示。
DS1629的时间中断寄存器在上电时的缺省设置为星期天的12:00AM。访问时间中断寄存器的命令为C7h。设置中断时间时,时间是24小时制还是12小时制,必须与时间寄存器的格式相符。
6. 状态寄存器
访问状态寄存器的命令为Ach。读写操作高字节在先。状态寄存器的格式如图6所示。
1SH:温度转换模式选择。1SH为1时为单次转换模式,DS1629在收到启动温度转换命令EEh后进行一次温度转换。1SH为0时为连续转换模式,此时DS1629将连续进行温度转换,并将最近一次的结果保存在温度寄存器中。出厂缺省设置为0。
POL:中断输出状态选择。POL为0,中断输出低电平有效;POL为1,中断输出高电平有效。出厂缺省设置为0。
CNV:上电工作状态选择。CNV为0(出厂缺省设置)时,一上电DS1629便开始温度转换。CNV为1,上电后DS1629则处于待机状态。用户可根据对系统功耗的要求,选择1SH和CNV两个标志位的状态。
A0、A1:中断输出选择,(见表4)。
OS0、OS1:频率输出选择(见表5)。
CAF:时间中断标志,只读位。当实时时间与所设置的中断时间一致时,CAF位被置1,直到主控制器对时间或时间中断寄存器进行读写操作后自动清0。CAF为0表示实时时间不符合中断条件。上电时自动被清0。TAF:温度中断标志,只读位。当所测温度达到或超过TH寄存器中的温度值时,TAF位被置1,直到所测温度降至TL寄存器中温度值以下时才被清0。TAF为0表示所测温度不符合中断条件。上电时自动被清0。
CAL:时间中断锁存位。只读位。当发生时间中断时被置1。一旦被置1,将保持1状态直到DS1629重新上电复位。CAL为0表示在DS1629上电工作期间从未发生时间中断。上电时自动清0。
TAL:温度中断锁存位。只读位。当发生温度中断时被置1,将保持1状态直到DS1629重新上电复位。TAL为0表示DS1629在上电工作期间所测得的温度从未超出TH寄存器中所设置的温度值。上电时自动清0。
7. 命令集
DS1629的命令集如表6所列,其中命令的解释可参考备注栏的说明如下:
1、数据流向由串行通讯协议中控制字的读写位(R/W)决定。
2、在页读写模式下访问SRAM时,访问完最高地址的单元后,DS1629返回一个ACK信号,然后地址计数器自动回到最低地址。
3、在温度连续转换模式下,可以用停止温度转换命令中止测量。然后必须用启动温度转换命令来重新开始测量。在单次工作模式下,每次读温度都必须使用启动温度转换命令。
4、读温度寄存器时,如果精度要求不高,只需读取第一个字节,否则两个字节都要读取。
5、向E2寄存器内写数据时,典型写入时间在常温下约10ms,最大值为50ms,所以在两次写入操作之间,至少应间隔50ms。DS1629的TH、TL和状态寄存器为E2寄存器。
6、DS1629的状态寄存器的低字节是只读寄存器,在写操作时可以只写高字节,读操作时可以读高、低两个字节。
7、用于实现高精度的温度测量。