温度的测量是从金属(物质)的热胀冷缩开始,水银温度计至今仍是各种温度测量的计量标准,可是它的缺点是只能近距离观测,而且水银有毒,玻璃管易碎。代替水银的有酒精温度计和金属簧片温度计,它们虽然没有毒性,但测量精度较低,只能作为一个概略指示。在工业生产和实验研究中为了配合远传仪表指示,出现了许多不同的温度检测方法,常用的有电阻式、热电偶式、PN结型、辐射型、光纤式及石英谐振型等。它们都是基于温度变化引起其物理参数(如电阻值,热电势等)变化的原理。随着大规模集成电路工艺的提高,出现了多种集成的数字化温度传感器。
温度传感器DS18B20是美国DALLAS半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度。
一、DS18B20的主要特性
(2)可通过数据线供电,电压范围为:3.0~5.5V。
(3)用户可自设定报警上下限温度值,不需要外部组件,能测量-55℃~+125℃范围内的温度。
(4)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
(5)报警搜索命令识别并标志超过程序限定温度的器件。
(6)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
(7)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
(8)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
二、DS18B20的外形和内部结构
DS18B20的外形及管脚排列如图6.23所示。各引脚定义如下:
图6.23 DS18B20的外形及管脚
(1)DQ为数字信号输入/输出端;
(2)GND为电源地;
(3)VDD为外接供电电源输入端。
内部结构如图6.24所示。
图6.24 DS18B20内部结构
64位ROM的位结构图如图6.25所示。开始8位是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
64位ROM的结构如下:
图6.25 64位ROM结构框图
DS18B20中的温度传感器的内部存储器包括一个非易失性的EEPROM和一个高速暂存RAM。
非易失性温度报警触发器TH和TL可通过软件写入用户报警上下限数据。
高速暂存RAM由9个字节组成,其分配如表6.5所示。
表6.5 DS18B20暂存寄存器分布
前两个字节包含测得的温度信息。第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5字节为配置寄存器,其内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值,该字节各位的定义如图6.26所示。
(www.daowen.com)
图6.26 配置寄存器位定义
其中,低5位一直都是“1”,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要改动。R1和R0用来设置分辨率,如表6.6所示(DS18B20出厂时被设置为12位)。
由表6.6可见,分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。
表6.6 温度分辨率设置表
高速暂存RAM的第6、7、8字节保留未用,表现为全1。第9个字节是前面8个字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换,经转换所得的温度值以二进制补码形式存放到高速暂存RAM的第1、2字节中。
单片机可通过单线接口读到该数据,读取时低位在前、高位在后,数据格式以0.0625℃/LSB形式表示,温度值格式如表6.7所示。
表6.7 DS18B20温度值格式表
表中S为符号位,对应的温度计算:当符号位S=0时,表示测得的温度值为正值,可直接将二进制位转换为十进制;当S=1时,表示测得的温度值为负值,可先将补码变为原码,再计算十进制值。表6.8是对应的一部分温度值。
表6.8 部分DS18B20温度与表示值对应表
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容做比较,若温度值>TH或温度值<TL,则将该器件内的报警标志位置位,并向主机发出的报警搜索命令做出响应。
三、DS18B20工作原理
1.DS18B20的测温原理
DS18B20的测温原理如图6.27所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。
图6.27 测温原理内部装置
2.ROM操作命令
当主机收到DSl8B20的响应信号后,便可以发出ROM操作命令之一,这些命令如表6.9所示。
表6.9 ROM操作命令
续表
3.DS18B20工作时序
根据DS18B20的通信协议,主机控制DS18B20完成温度转换必须经过三个步骤:
(1)每一次读写之前都必须要对DS18B20进行复位。
(2)复位成功后发送一条ROM指令。
(3)最后发送RAM指令,这样才能对DS18B20进行预定的操作。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。