单片机C语言实验及实践教程34:(一)

带有存储器功能的数字温度计-DS1624技术应用

1. DS1624基本原理

DS1624是美国DALLAS公司生产的集成了测量系统和存储器于一体的芯片。数字接口电路简单,与I2C总线兼容,且可以使用一片控制器控制多达8片的DS1624。其数字温度输出达13位,精度为0.03125℃。DS1624可工作在最低2.7V电压下,适用于低功耗应用系统。

(1). DS1624基本特性

◆ 无需外围元件即可测量温度

◆ 测量范围为-55℃~+125℃,精度为0.03125℃

◆ 测量温度的结果以13位数字量(两字节传输)给出

测量温度的典型转换时间为1秒

◆ 集成了256字节的E2PROM非易性存储器

◆ 数据的读出和写入通过一个2-线(I2C)串行接口完成

◆ 采用8脚DIP或SOIC封装,如图2.34.1

图2.34.1

(2). 引脚描述及功能方框图

其引脚描述如表1所示:

DS1624的功能结构图如图4.34.2所示:

图4.34.2

(3). DS1624工作原理

温度测量

图4.34.3是温度测量的原理结构图

图4.34.3 温度测量的原理结构图

DS1624在测量温度时使用了独有的在线温度测量技术。它通过在一个由对温度高度敏感的振荡器决定的计数周期内对温度低敏感的振荡器时钟脉冲的计数值的计算来测量温度。DS1624在计数器中预置了一个初值,它相当于-55℃。如果计数周期结束之前计数器达到0,已预置了此初值的温度寄存器中的数字就会增加,从而表明温度高于-55℃。

与此同时,计数器斜坡累加电路被重新预置一个值,然后计数器重新对时钟计数,直到计数值为0。

通过改变增加的每1℃内的计数器的计数,斜坡累加电路可以补偿振荡器的非线性误差,以提高精度,任意温度下计数器的值和每一斜坡累加电路的值对应的计数次数须为已知。

DS1624通过这些计算可以得到0.03125℃的精度,温度输出为13位,在发出读温度值请求后还会输出两位补偿值。表2给出了所测的温度和输出数据的关系。这些数据可通过2线制串行口连续输出,MSB在前,LSB在后。

表2 温度与输出数据关系表

温度

数字量输出(二进制)

数字量输出(十六进制)

+125℃

0111,1101,0000,0000

7D00H

+25.0625℃

0001,1001,0001,0000

1910H

+0.5℃

0000,0000,1000,0000

0080H

+0℃

0000,0000,0000,0000

0000H

-0.5℃

1111,1111,1000,0000

FF80H

-25.0625℃

1110,0110,1111,0000

E6F0H

-55℃

1100,1001,0000,0000

C900H

由于数据在总线上传输时MSB在前,所以DS1624读出的数据可以是一个字节(分辨率为1℃),也可以是两个字节,第二个字节包含的最低位为0.03125℃。

表2是13位温度寄存器中存储温度值的数据格式

高八位字节 低八位字节

S

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

0

0

0

表3 温度值的数据存储格式

其中S-为符号位,当S=0时,表示当前的测量的温度为正的温度;当S=1时,表示当前的测量的温度为负的温度。B14-B3为当前测量的温度值。最低三位被设置为0。

DS1624工作方式

DS1621的工作方式是由片上的配置/状态寄存器来决定的,如表4,该寄存器的定义如下:

表4 配置/状态寄存器格式

DONE

1

0

0

1

0

1

1SHOT

其中DONE为转换完成位,温度转换结束时置1,正在进行转换时为0;1SHOT为温度转换模式选择。1SHOT为1时为单次转换模式,DS1624在收到启动温度转换命令EEH后进行一次温度转换。1SHOT为0时为连续转换模式,此时DS1624将连续进行温度转换,并将最近一次的结果保存在温度寄存器中。该位为非易失性的。

片内256字节存储器操作

控制器对DS1624的存储器编程有两种模式:一种是字节编程模式,另一种是页编程模式。

在字节编程模式中,主控制器发送地址和一个字节的数据到DS1624。

在主器件发出开始(START)信号以后,主器件发送写控制字节即1001A2A1A00(其中R/W控制位为低电平“0”)。指示从接收器被寻址,DS1624接收后应答,再由主器件发送访问存储器指令(17H)后,DS1624接收后应答,接着由主器件发送的下一个字节字地址将被写入到DS1624的地址指针。主器件接收到来自DS1624的另一个确认信号以后,发送数据字节,并写入到寻址的存储地址。DS1624再次发出确认信号,同时主器件产生停止条件STOP,启动内部写周期。在内部写周期DS1624将不产生确认信号。