DS18B20
- 格式:doc
- 大小:207.00 KB
- 文档页数:4
DS18B20
引 言
DS18B20是DS1820的更新产品,是美国)DALLAS 半导体公司生产的可组网数字式温度传感器。它的测量范围为-50℃至+125℃.精度可达0.1℃,不需 A/D转换电路,直接将温度值转换成数字量。
DS18B20遵循严格的单线串行通信协议,每一个DS18B20 在出厂时都用激光进行了调较,并具有唯一得64位序列号。DS18B20的内部使用了在板(ON-BOARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内如图1所示,三端口分别是地线 ,数据 ,电源。其外围电路简单,可广泛应用于温度控制,温度测量,工作系统及任何热敏感系统中。现在DS18B20 已经停产,DS18B20 比DS1820功能更强,但两者时序不同,使用中应注意。
1、DS18B20的工作原理
DS18B20的内部主要包括寄生电源、温度传感器、 64位激光ROM 单线接口、存放中间数据的高速暂存器(内含便笺式RAM)、用于存储用户设定的温度上下限值的TH 和TL 触发器存储与控制逻辑、8位循环冗余校验码(CRC) 发生器等七部分。
1、1温度测量原理
DS18B20测量温度时使用特有的温度测量技术。DS18B20 内部的低温度系数振荡器能产生稳定的F0,频率信号 ,高温度系数振荡器则将被测温度转换成频率信号f0,当计数门打开时,DS18B20 对f0 计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性予以补偿。测量结果存入温度寄存器中。一般情况下的温度值应为
9位(符号占1位) ,但因符号位扩展成高8位,故以 16位补码形式读出,表1 给出了温度和数字量的关系。
1、2 DS18B20的命令集
1、2、1 64位ROM的结构如图2所示,
开始8位是产品系列编码(DS18B20为10H),接着是每个器件的唯一的序列号,共有48 位,最后 8位是前56 位的CRC 校验码,这也是多个DS18B20 可以采用一线进行通信的原因。主机操作ROM的命令有五种,如表 3所示。暂存器的命令共6 条,如表4 所示。
1、2、2高速暂存器
它由便笺式RAM和非易失性电擦写EEPROM 组成,后者用于存储TH 、TL 值。数据先写入EEPROM,经校验后再传给EEPROM 。便笺式 RAM占9 个字节,包括温度信息( 第 、
1、2字节) 、TH 和TL 值(3、4字节)、计数寄存器(7、8字节)、 CRC第5、6 字节不用,见表5 。
在正常的温度情况下DS18B20的测温分辨力为0.5℃ ,可采用下述方法获得高分辨率的温度测量结果:首先用DS18B20提供的读暂存器指令(BEH)读出以0.5C为分辨率的温度测量结果,然后切去测量,结果中的最低有效位(LSB),得到所测实际温度的整数部分Tz,
然后再用BEH 指令取计数器 1的计数剩余值Cs和每度计数值CD。考虑到DS18B20测量
温度的整数部分以0.25℃、0.75℃为进位界限的关系,实际温度Ts可用下式计算
剩余值
可用下式计算
DS18B20采用9 或12 个位来表示被测量点的温度,通过单一根线和控制器进行信息通讯。温度读取,温度测量和温度设置等所需的能源也都可以数据线上获取而无须另加电源。由于每个DS18B20内部都设有一个独一的序列号,所以多个DS18B20可以共存与同一条线上。
设置寄存器的内容用于确定温度值的数字转换分辨率。该字节各位的意义如下:
低五位一直都是1 , TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0 ,用户不要去改动。R1 和R0 用来设置分辨率,如表6 所示(DS18B20 出厂时被设置为 12位) 。
多路温度测控仪的电路设计
用单片机控制的多路温度测控仪的电路如图 2所示。现用 6只DS18B20 同时测控6 路温度 (视实际需要还可任意扩展通道数)。图 2中采用89C51 单片机,其P1.0 口接单线总线。P1.2~P1.7 口用来输出温度测控信号,经驱动后分别驱动6只固态继电器,通过改变加热或致冷系统的工作状态,可实现对被监测系统的实时控制。
3、软件设计
对于DS18B20 的访问分为 3个步骤:
(1)初始化:用户通过信号线,向DS18B20 发送一个满足特定时序的负脉冲,信号线上的所有的芯片都被复位。准备接受用户的序列号访问命令。
(2)序列号访问命令:接下来,用户通过信号线,发送一个特定的 64位序列号编码。这时,信号线上所有相连DS18B20都进行编码匹配,只有编码一致的DS18B20 才被激活,可以接受下面的内存访问命令。
(3)内存访问命令:在用户发送序列号访问命令选定特定DS18B20芯片后,被选中的芯片便可以接受内存访问命令。读取温度数据,设定温度报警限。
需要注意的是,在系统安装及工作之前应将主机逐个与DS18B20挂接,以读出其序列号。其工作过程为:主机发出一个脉冲,待“0”电平大于480us后,复位DS18B20,在DS18B2所发响应脉冲由主机接收后,主机再发读ROM命令代码33H,然后发一个脉冲(>=15us),
并接着读取DS18B20序列号的一位,用同样方法读取序列号的56位。另外,由于DS18B20单线通信功能是分时完成的,遵循严格的时隙概念,因此,系统对DS18B20 和各种操作必须按协议进行,即:初始化DS18B20
(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。后附MCS-51 汇编语言编写的访问DS18B20 的子程序 (只接一个DS18B20) ,主程序中每隔 2秒调用一次测温子程序TEMPER,所用变量:FLAG1,RAM
50—58H单元,如果检测到传感器则FLAG1=00H 。如果没检测到传感器则FLAG1=0FH。
50—58H存储从DS18B20收到的9 字节数据。
系统的主程序用MCS-51汇编语言,完成对DS18B20的调用、中断管理、测量温度的
计算及温度值的显示等功能。显示程序实现定时对各路温度值的巡检和显示,并且在一个通道上允许修正中断,以实现根据温度标称值修正传感器的目的。使用者只需打开电源就可以从观察屏上看到关心的温度变化情况并且很方便纪录数据。
本系统已经投入使用,验证了DS18B20的性能,该系统设计简单、抗干扰能力强、扩展方便,在多点温度检测中有很广泛的应用前景。