数字温度传感器DS18B20详解
- 格式:docx
- 大小:326.87 KB
- 文档页数:16
一、概述
传统的温度检测大多以热敏电阻为传感器,采用热敏电阻,可满足40℃至90℃测量范围,但热敏电阻可靠性差,测量温度准确率低,对于小于1℃的温度信号是不适用的,还得经过专门的接口电路转换成数字信号才能由微处理器进行处理。
目前常用的微机与外设之间进行的数据通信的串行总线主要有I2C总线,SPI总线等。其中I2C总线以同步串行2线方式进行通信(一条时钟线,一条数据线),SPI总线则以同步串行3线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线)。这些总线至少需要两条或两条以上的信号线。而单总线( 1-wire bus ),采用单根信号线,既可传输数据,而且数据传输是双向的, CPU 只需一根端口线就能与诸多单总线器件通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。 因而,这种单总线技术具有线路简单,硬件开销少,成本低廉,软件设计简单,便于总线扩展和维护。同时,基于单总线技术能较好地解决传统识别器普遍存在的携带不便,易损坏,易受腐馈,易受电磁干扰等不足,因此,单总线具有广阔的应用前景,是值得关注的一个发展领域。
单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。主机或从机通过一个漏极开路或三态端口连至数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线。单总线通常要求外接一个约为 4.7K的上拉电阻,这样,当总线闲置时其状态为高电平。
DS18B20数字式温度传感器,与传统的热敏电阻有所不同的是,使用集成芯片,采用单总线技术,其能够有效的减小外界的干扰,提高测量的精度。同时,它可以直接将被测温度转化成串行数字信号供微机处理,接口简单, 使数据传输和处理简单化。 部分功能电路的集成,使总体硬件设计更简洁,能有效地降低成本,搭建电路和焊接电路时更快,调试也更方便简单化,这也就缩短了开发的周期 。
DS18B20单线数字温度传感器,即“一线器件”,其具有独特的优点:
( 1 )采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
( 2 )测量温度范围宽,测量精度高。DS18B20 的测量范围为-55℃ ~+125℃ ;在-10~+85℃ 范围内,精度为±0.5℃ 。
( 3 )在使用中不需要任何外围元器件即可实现测温。
( 4 )多点组网功能。多个DS18B20可以并联在惟一的三线上,实现多点测温。
( 5 )供电方式灵活。DS18B20可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外电源,从而使系统结构更趋简单,可靠性更高。
( 6 )测量参数可配置。DS18B20的测量分辨率可通过程序设定9~12位。
( 7 ) 负压特性。电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
( 8 )掉电保护功能。DS18B20内部含有EEPROM,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。
DS18B20 具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围,适合于构建自己的经济的测温系统,因此也就被设计者们所青睐。 二、DS18B20测温原理
DS18B20 的内部测温电路框图
低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,为计数器提供一频率稳定的计数脉冲。高温度系数晶振随温度变化其震荡频率明显改变,很敏感的振荡器,所产生的信号作为减法计数器2的脉冲输入,为计数器2提供一个频率随温度变化的计数脉冲。图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃ 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器 1 和温度寄存器被预置在-55℃ 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。
三、DS18B20
的管脚排列及封装图
DS18B20 实物管脚分布图
DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端,电源供电 3.0~5.5V (在寄生电源接线方式时接地)。
DS18B20的硬件接口非常简单。供电方式为计生电源供电或外部供电。
寄生电源工作方式
采用寄生电源供电时,在远程温度测量和测量空间受限的情况下特别有价值。寄生电源供电的原理是在数据线为高电平的时候“窃取”数据线的电源,电荷被存储在寄生供电电容上,用于在数据线为低的时候为设备提供电源。需要注意的是,DS18B20在进行温度转换或者将高速缓存里面的数据复制到EEPROM中时,所需的电流会达到1.5mA,超出了电容所能提供的电流,此时可采用一个MOSFET三极管来供电。
外接电源工作方式
当DS18B20采用外部供电时,只需将其数据线,与单片机的一位双向端口相连就可以实现数据的传递。
注意:当温度高于100℃ 时,不能使用寄生电源,因为此时器件中较大的漏电流会使总线不能可靠检测高低电平,从而导致数据传输误码率的增大。
四、DS18B20 内部结构
DS18B20的内部结构
DS18B20 内部结构如图所示,主要由四部分组成:64位光刻ROM 、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(地址: 28H )是产品类型标号,接着的 48 位是该 DS18B20 自身的序列号,并且每个 DS18B20 的序列号都不相同,因此它可以看作是该DS18B20 的地址序列码;最后 8 位则是前面 56 位的循环冗余校验码( CRC=X8+X5+X4+1 )。由于每一个DS18B20的ROM数据都各不相同,因此微控制器就可以通过单总线对多个 DS18B20 进行寻址,从而实现一根总线上挂接多个 DS18B20 的目的。
64B闪速ROM
DS18B20 中的温度传感器用于完成对温度的测量,它的测量精度可以配置成9位,10位,11位或12位四种状态。温度传感器在测量完成后将测量的结果存储在
DS18B20 的两个8BIT的RAM中,单片机可通过单线接口读到该数据,读取时低位在前,高位在后。数据的存储格式如下表(以 12 位转化为例):
温度信号寄存器格式
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0 ,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如:+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为 FC90H 。
DS18B20完成温度转换后,就把测得的温度值与TH,TL作比较,若T>TH或T
五、DS18B20 温度传感器的存储器
DS18B20 温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH 、TL和结构寄存器。数据先写入RAM,经校验后再传给 E2RAM 。
暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位TL,第二个字节是温度的高八位TH。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节,可用来保证通信正确。DS18B20的分布如下: DS18B20
的暂存寄存器分布
在 64B ROM 的最高有效字节中存储有循环冗余校验码( CRC )。主机根据 ROM
的前 56 位来计算 CRC 值,并和存入 DS18B20 中的 CRC 值做比较,以判断主机收到的 ROM 数据是否正确。
1. 设置寄存器
该位于高速闪存的第5个字节,这个寄存器中的内容被用来确定测试模式和温度的转换精度。寄存器各位的内容如下:
DS18B20 的设置寄存器各位内容 该寄存器的低五位一直都是 1 , TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。在 DS18B20 出厂时该位被设置为 0 ,用户不要去改动。 R1
和 R0 用来设置分辨率,如下表所示:( DS18B20 出厂时被设置为 12 位)
分辨率设置
由表可知,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要在分辨率和转换时间权衡考虑。
六、DS18B20 的温度测量
1-WIRE 网络具有严谨的控制结构,其结构如下图所示,一般通过双绞线与
1-WIRE 元件进行数据通信,它们通常被定义为漏极开路端点,主/从式多点结构,而且一般都在主机端接上一个上拉电阻 +5V 电源。通常为了给 1-WIRE 设备提供足够的电源,需要一个 MOSFET 管将 1-WIRE 总线上拉至 +5V 电源。 DS18B20
组成的
1-WIRE
网络
1-WIRE 网络通信协议是分时定义的,有严格的时隙概念,下图是复位脉冲的时隙。
1-WIRE 协议的复位脉冲时隙
1-WIRE
读写“ 0/ 1 ” 时隙
DS18B20 单线通信功能是分时完成的,他有严格的时隙概念,如果出现序列混乱, 1-WIRE 器件将不响应主机,因此读写时序很重要。系统对 DS18B20 的各种操作必须按协议进行。根据 DS18B20 的协议规定,微控制器控制 DS18B20 完成温度的转换必须经过以下 4 个步骤 :
(1)每次读写前对 DS18B20 进行复位初始化。复位要求主 CPU 将数据线下拉
500ms ,然后释放, DS18B20 收到信号后等待 16ms~60ms 左右,然后发出
60ms~240ms 的存在低脉冲,主 CPU 收到此信号后表示复位成功。
(2)发送一条 ROM 指令,如下表所示: