首页 理论教育 DS18B20温度传感器的原理及应用详解

DS18B20温度传感器的原理及应用详解

时间:2023-06-22 理论教育 版权反馈
【摘要】:DS1822的精度较差为±2 ℃。除了DS18B20发送0的时间段,其他时间其输出口自动截止。为了使DS18B20能完成准确的温度变换,当温度变换发生时,DQ线上必须提供足够的功率。当1-wire上所挂DS18B20超过8个时,就需要考虑微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。连接DS18B20的总线电缆是有长度限制的。

DS18B20温度传感器的原理及应用详解

1.DS18B20简介

1)DS18B20的主要特性及管脚功能

Dallas半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。一线总线独特而经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS1822数字化温度传感器同DS18B20一样,DS18B20支持“一线总线”接口,测量温度范围为-55~+125 ℃,在-10~+85 ℃范围内,精度为±0.5 ℃。DS1822的精度较差为±2 ℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。DS18B20的管脚配置和封装结构如图8.12所示。

图8.12 DS18B20的管脚配置和封装结构

引脚定义如下:

(1)DQ为数字信号输入/输出端。

(2)GND为电源地。

(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

2)DS18B20的单线系统

单线(1-wire bus)总线结构是DS18B20的突出特点,也是理解和编程的难点。可从两个角度来理解单线总线:第一,单线总线只定义了一个信号线,而且DS18B20智能程度较低(这点可以与微控制器和SPI器件间的通信做比较),所以DS18B20和处理器之间的通信必然要通过严格的时序控制来完成。第二,DS18B20的输出口是漏级开路输出,通过一个微控制器和DS18B20连接,使总线上的器件在合适的时间驱动它。显然,总线上的器件与(wired AND)关系决定微控制器不能单方面控制总线状态。之所以提出这点,是因为相当多的文献资料上认为,微控制器在读取总线上数据之前的I/O口的置1操作是为了给DS18B20一个发送数据的信号,这是一个错误的观点。如果当前DS18B20发送0,即使微控制器I/O口置1,总线状态还是0;置1操作是为了使I/O口截止(cut off),以确保微控制器正确读取数据。除了DS18B20发送0的时间段,其他时间其输出口自动截止。自动截止是为确保:1时,在总线操作的间隙总线处于空闲状态,即高态;2时,确保微控制器在写1的时候DS18B20可以正确读入。

由于DS18B20采用的是1-wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S52单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。

(1)DS18B20的复位时序如图8.13所示。

图8.13 DS18B20的复位时序

(2)DS18B20的读时序。对于DS18B20的读时序分为读0时序和读1时序两个过程。

对于DS18B20的读时序是从主机把单总线拉低之后,在15 μs之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60 μs才能完成。DS18B20的读、写时序如图8.14所示。

(3)DS18B20的写时序。对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。

对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60 μs,保证DS18B20在15~45 μs能够正确地采样IO总线上的“0”电平;当要写1时序时,单总线被拉低之后,在15 μs之内就得释放单总线。

3)DS18B20的供电方式(www.xing528.com)

图8.15所示为DS18B20的寄生电源电路。当DQ或VDD引脚为高电平时,这个电路便“取”的电源。寄生电路的优点是双重的,远程温度控制监测无须本地电源,缺少正常电源条件下也可以读ROM。为了使DS18B20能完成准确的温度变换,当温度变换发生时,DQ线上必须提供足够的功率

图8.14 DS18B20的读、写时序

图8.15 DS18B20的寄生电源电路

有两种方法确保 DS18B20 在其有效变换期内得到足够的电源电流。第一种方法是发生温度变换时,在 DQ 线上提供一强的上拉,这期间单总线上不能有其他的动作发生。如图8.15所示,通过使用一个MOSFET(金属一氧化物半导体场效应晶体管)把 DQ 线直接接到电源可实现这一点,这时DS18B20 工作在寄生电源工作方式,在该方式下 VDD 引脚必须连接到地。

另一种方法是 DS18B20 工作在外部电源工作方式,如图8.16所示。这种方法的优点是在 DQ 线上不要求强的上拉,总线上主机不需要连接其他的外围器件便在温度变换期间使总线保持高电平,这样也允许在变换期间其他数据在单总线上传送。此外,在单总线上可以并联多个 DS18B20,而且如果它们全部采用外部电源工作方式,那么通过发出相应的命令便可以同时完成温度变换。

图8.16 DS18B20供电方式2

4)DS18B20设计中应注意的问题

DS18B20具有测温系统简单、测温精度高、连接方便、占用接口线少等优点,但在实际应用中还应注意以下几方面的问题:较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20 与微处理器间采用串行数据传送。因此,在对DS18B20 进行读写编程时,必须严格地保证读写时序,否则将无法读取测温结果。在DS18B20 有关资料中均未提及1-wire上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当1-wire上所挂DS18B20超过8个时,就需要考虑微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。连接DS18B20的总线电缆是有长度限制的。实际应用中,测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一对接VCC 和地线,屏蔽层在源端单点接地。

事实上,基于1-wire总线的产品还有很多种,如1-wire总线的E2PROM、实时时钟、电子标签等。它们都具有节省I/O资源、结构简单、开发快捷、成本低廉、便于总线扩展等优点,因此有广阔的应用空间,具有较大的推广价值。

2.DS18B20测温原理

每一片DSl8B20的ROM中都存有其唯一的48位序列号,在出厂前已写入片内ROM中。主机在进入操作程序前必须用读ROM(33H)命令将该DSl8B20的序列号读出,见表8.5。

表8.5 ROM操作命令

续表

程序可以先跳过ROM,启动所有DSl8B20进行温度变换,之后通过匹配ROM,再逐一地读回每个DSl8B20的温度数据。DS18B20测温原理内部装置如图8.17所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图8.17中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 ℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图8.17中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。DS18B20测温流程如图8.18所示。

图8.17 DS18B20测温原理内部装置

图8.18 DS18B20测温流程

另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈