DS18B20温度传感器简介
第二章 DS18B20温度传感器简介
2.1 温度传感器的历史及简介
温度传感器一般分为接触式和非接触式两大类。所谓接触式就是传感器直接与被测物体接触进行温度测量,这是温度测量的基本形式。而非接触方式是遥测,主要是红外测温,这是接触方式做不到的。红外测温是通过测量物体热辐射发出的红外线,从而测量物体的温度,红外辐射的物理本质是热辐射。热辐射是由于内外原因使物体内部带电粒子不断运动,使物体具有一定温度(高于绝对零度)而产生懂得一种热辐射现象。虽然红外测温传感器有诸多的优点,但其市场价格昂贵。
温度的测量是从金属(物质)的热胀冷缩开始。水银温度计至今仍是各种温度测量的计量标准。可是它的缺点是只能近距离观测,而且水银有毒,玻璃管易碎。代替水银的有酒精温度计和金属簧片温度计,它们虽然没有毒性,但测量精度很低,只能作为一个概略指示。不过在居民住宅中使用已可满足要求。在工业生产和实验研究中为了配合远传仪表指示,出现了许多不同的温度检测方法,常用的有电阻式、热电偶式、PN结型、辐射型、光纤式及石英谐振型等。它们都是基于温度变化引起其物理参数(如电阻值,热电势等)的变化的原理。随着大规模集成电路工艺的提高,出现了多种集成的数字化温度传感器。
2.2 DS18B20的工作原理
2.2.1 DS18B20工作时序
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:
1. 每一次读写之前都必须要对DS18B20进行复位; 2. 复位成功后发送一条ROM指令;
3. 最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待15~60微秒左右后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。其工作时序包括初始化时序、写时序和读时序,具体工作方法如图2-1,2-2,2-3所示。
7
DS18B20温度传感器简介
(1) 初始化时序
等待15-60主机主机复位脉冲最小480US最小480响应脉冲60~240
图2-1 初始化时序
总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲。应答脉冲使主机知道,总线上有从机设备,且准备就绪。主机输出低电平,保持低电平时间至少480us,以产生复位脉冲。接着主机释放总线,4.7KΩ上拉电阻将总线拉高,延时15~60us,并进入接受模式,以产生低电平应答脉冲,若为低电平,再延时480us。
(2) 写时序
主机写\序>1>1主机写\序采样15~45样15~45采
图2-2 写时序
写时序包括写0时序和写1时序。所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us的恢复时间,都是以总线拉低开始。写1时序,主机输出低电平,延时2us,然后释放总线,延时60us。写0时序,主机输出低电平,延时60us,然后释放总线,延时2us。
(3) 读时序
8
DS18B20温度传感器简介
主机写\序>1>1主机写\序主机采样45主机采样45
图2-3 读时序
总线器件仅在主机发出读时序是,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。所有读时序至少需要60us,且在2次独立的读时序之间至少需要1us的恢复时间。每个读时序都由主机发起,至少拉低总线1us。主机在读时序期间必须释放总线,并且在时序起始后的15us之内采样总线状态。主机输出低电平延时2us,然后主机转入输入模式延时12us,然后读取总线当前电平,然后延时50us。 2.2.2 ROM操作命令
当主机收到DSl8B20 的响应信号后,便可以发出ROM 操作命令之一,所有ROM操作命令均为8位长,这些命令如下表3-1 ROM操作命令。
表2-1 ROM操作命令
指令 读ROM 符合ROM 搜索ROM 约定代码 33H 55H 0F0H 功 能 读DS18B20 ROM中的编码 发出此命令之后,接着发出64位ROM编码,访问单线总线上与该编码相对应的DS18B20 使之作出响应,为下一步对该DS18B20的读写作准备 用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备 跳过ROM 告警搜索 命 令 温度变换 44H 启动DS18B20进行温度转换,转换时间最长为500MS,结果存入内部9字节RAM中 读暂存器 写暂存器 0BEH 4EH 读内部RAM中9字节的内容 发出向内部RAM的第3,4字节写上、下限温度数据命令,紧跟读命令之后,0CCH 0ECH 忽略64位ROM地址,直接向DS18B20发温度变换命令,适用于单片工作。 执行后,只有温度超过设定值上限或者下限的片子才做出响应 9
DS18B20温度传感器简介
是传送两字节的数据 复制暂存器 重调E2PRAM 读 供 电 方 式 48H 0BBH 0B4H 将E2PRAM中第3,4字节内容复制到E2PRAM中 将E2PRAM中内容恢复到RAM中的第3,4字节 读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1” 2.3 DS18B20的测温原理
2.3.1 DS18B20的测温原理
每一片DSl8B20在其ROM中都存有其唯一的48位序列号,在出厂前已写入片内ROM 中。主机在进入操作程序前必须用读ROM(33H)命令将该DSl8B20的序列号读出。
程序可以先跳过ROM,启动所有DSl8B20进行温度变换,之后通过匹配ROM,再逐一地读回每个DSl8B20的温度数据。
DS18B20的测温原理既低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 ℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。其中斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。
另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
10
DS18B20温度传感器简介
斜坡累加器 预 置 计数比较器 低温度系数 振 荡 器 减法计数器 预 置 减到0 温度寄存器 高温度系数 振 荡 器 减法计数器
图3-4 测温原理内部装置
减到0
2.3.2 DS18B20的测温流程
初始化 DS18B20 跳过ROM 匹配 温度变换 延时1S 数码管显示 转换成显示码 读暂存器 跳过ROM 匹配 图3-5 DS18B20测温流程
11