DS1620是DALLAS半导体公司的温度传感器家庭成员之一,是新型数字式温度传感器。其测温范围宽(-55℃~+125℃),感应能力精确,不需A/D转换电路,直接将温度值转换成数字量。其外围电路简单,可以不需要PC机和单片机等的支持,独立进行工作。可广泛应用于温度控制,温度测量,工作系统及任何热敏感系统中。
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
实际的精确温度值便可计算出来#e#
实际的精确温度值便可计算出来,分辨率高达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)将暂停温度转换,开始转换指令会重新开始转换。
上一篇:基于PLC的水位测控装置
下一篇:实时测试(RTT)技术的演变进程
推荐阅读最新更新时间:2024-03-30 23:27