新闻中心

EEPW首页 > 测试测量 > 设计应用 > DS1620实现高分辨率温度测量

DS1620实现高分辨率温度测量

作者:时间:2006-05-07来源:网络收藏

DS1620是DALLAS半导体公司的温度传感器家庭成员之一,是新型数字式温度传感器。其测温范围宽(-55℃~+125℃),感应能力精确,不需A/D转换电路,直接将温度值转换成数字量。其外围电路简单,可以不需要PC机和单片机等的支持,独立进行工作。可广泛应用于温度控制,温度测量,工作系统及任何热敏感系统中。

本文引用地址:http://www.eepw.com.cn/article/255670.htm

DS1620为8引脚DIP或SOIC封装,其引脚符号及功能见表1。

1

引脚号 符 号 功 能
1 DQ 3线数据输入/输出端
2 CLK/CONV 3线时钟输入端/独立工作端
3 RST 3线箝位输入端(低电平复位)
4 GND 接地端
5 THIGH 高温触发端
6 TLOW 低温触发端
7 TCOM 高温/低温结合触发端
8 VDD +5V 电源端



测温原理

DS1620通过专有的片载温度测量技术进行温度测量。其测温原理如图1所示。

计数器和温度寄存器预选设置为-55℃的基值,计数器对流经低温系数振荡器的脉冲进行计数,计数脉冲的周期由高温系数振荡器决定。如果计数器在高温系数振荡器发出结束信号之前到达0,则温度寄存器开始增值,表示温度值在-55℃之上。同时,计数器预设一个数值,此数值由非线性补偿累加器决定,以补偿振荡器测温过程中的抛物线性,即非线性。然后计数器重复进行计数。如此循环,最终温度寄存器中的数字量即为所测温度值。

温度值的换算在DS1620内部进行,分辨率为0.5℃。DS1620的温度值以1/2℃LSB(最低有效位)表示,9位数据格式如下:(T=25.5℃)

0 0 0 1 1 0 0 1 1

非线性补偿累加器的作用为补偿测温振荡器的非线性误差,改变每℃增值的计数器数值。若得知计数器中的数值和在补测温度下每℃的计数(非线性补偿累加器中的值),便可以实现高分辨率温度测量。

DS1620在正常测温情况下分辨率为0.5℃,根据其测温工作原理,可以将其分辨率提高到0.1℃~0.05℃,以适应需要精确温度值的工业测量及控制系统。

大多数Dallas数字式温度传感器都能通过将最低有效位(LSB)置位或清零,以确保0.5℃的分辨率。传感的误差范围由不同数值的LSB数字化决定。例如25℃至26℃之间的温度值可参考表2。

表2

实际温度值 置位/清零LSB 直接读数
25 清零 25
25.1 清零 25
25.2 清零 25
25.3 置位 25.5
25.4 置位 25.5
25.5 置位 25.5
25.6 置位 25.5
25.7 置位 25.5
25.8 清零 26
25.9 清零 26
26 清零 26

由表可知,对于每一次读入的温度值,都以1/2LSB为单位进行四舍五入计算,DS1620的1/2LSB为0.25℃,它在进行高分辨率测量的计算中必须考虑在内。

DS1620读进的原始数据为9位,对所读数据减去最低有效位,使可得到高分辨率值。计算过程为:将读入的温度可存器二进制数字量转化成带符号整数,即temp read;然后对DS1620执行特定的控制指令,使可得到保留在计数器中的数值,即转换停止后的计数器保留数cont remain:以另一特定控制指令或指令集读出非线性累加器中的数值,即在此温度下每℃的计数值count per degree,得知这些参数后,通过如下公式:

实际值=temp read 1/2LSB+(count per degree count remain)/count per degree

实际的精确温度值便可计算出来,分辨率高达0.1℃。

DS1620的工作方式及状态检测位由设置寄存器决定,在进行温度转换之前首先要对其初始化,由PC机或单片机设定设置寄存器的相应位。设置寄存器格式如下:

DONE THF TLF * * * CPU ISHOT

DONE(D7)位为1时表示温度转换已经完成,为0时表示转换正在进行。注意此位只在单次转换方式时有效。

THF(D6)TLF(D5)位分别为高于高温极限值或低于低温极限值时置位。

ISHOT(D0)位为1时表示以温度单次转换方式运行,为0时表示连续方式。

CPU(D1)位为1时表示DS1620以3线串行接口与PC机或单片机通信,为0时表示独立工作方式。

*表示无关位。

在DS1620以CPU方式工作时,PC机或单片机的程序流程如图2所示。

在实现过程中注意下面问题:

1.实现过程中必须用到两条特殊指令:读计数器指令(A0H)和装载计数器指令(41H),这两条指令在DS1620使用手册上查不到。前一条指令的作用为读出计数器中的数值,后一条指令的作用为将非线性累加器中的数值装入计数器。

2.在数据传输过程中,DQ线上数据的传输顺序为LSB(最低有效位)在先,MSB(最高有效位)在最后。例如设置寄存器状态字节的传送,第一位ISHOT位(D0),其次为CPU位(D1),依次下去,第八位为DONE位(D7)。

3.从DQ引脚上读取数据时,设置寄存器的状态为8位数据,而温度数据为9位,这在编程时要加以区别。可以编读取8位数据和9位数据的子函数分别调用,也可只编读取9位的程序,但在判断设置寄存器状态时只取前8位。

4.注意在常温下,每次写入DS1620存储器都需要近10ms,所以在写指令之后不能立即对DS1620进行读写访问,通常加10ms的延时。

5.DS1620是以STOP(RST=0)作为一次数据通信的结束。因此在每次设置操作结束或读取8位温度数据后,都要将RST引脚复位为低电平,然后置为高电平重新开始工作。

6.以在温度单次转换方式工作时,每次转换完成并读取温度值之后,都要重新发送开始温度转换指令(EE H)。而在连续转换方式只需开始发送转换指令,DS1620会在一次温度转换完成后,继续进行一睛次转换,时间间隔为1秒。此时停止转换指令(22H)将暂停温度转换,开始转换指令会重新开始转换。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭