ds18b20

来源:互联网 发布:梦幻盒子软件 编辑:程序博客网 时间:2024/05/08 01:33

1.技术性能描述

  1.1 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

  1.2 测温范围 -55℃~+125℃,固有测温分辨率0.5℃。

  1.3 支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定,实现多点测温

  1.4 工作电源: 3~5V/DC

  1.5 在使用中不需要任何外围元件

  1.6 测量结果以9~12位数字量方式串行传送

  1.7 不锈钢保护管直径 Φ6

  1.8 适用于DN15~25, DN40~DN250各种介质工业管道和狭小空间设备测温

  1.9 标准安装螺纹 M10X1, M12X1.5, G1/2”任选

  1.10 PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。
 

2.接线说明

  特点 独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外部元件 可用数据总线供电,电压范围为3.0 V至5.5 V 无需备用电源 测量温度范围为-55 ° C至+125 ℃ 。华氏相当于是-67 ° F到257华氏度 -10 ° C至+85 ° C范围内精度为±0.5 ° C

  温度传感器可编程的分辨率为9~12位 温度转换为12位数字格式最大值为750毫秒 用户可定义的非易失性温度报警设置 应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统

 

DS18B20采用一线通信接口。因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用

 主要首先提供以下功能命令之一:

 1 )读ROM, 2 )ROM匹配, 3 )搜索ROM, 4 )跳过ROM, 5 )报警检查。

 这些指令操作作用在没有一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。

  若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。一个控制功能指挥指示DS18B20的演出测温。测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器TH和TL都有一字节EEPROM 的数据。如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写TH,TL指令以及配置字节利用一个记忆功能的指令完成。通过缓存器读寄存器。所有数据的读,写都是从最低位开始。
DS18B20有4个主要的数据部件:

 

 

  (1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

  (2) DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。

 

  DS18B20的存储器包括高速暂存器RAM和可电擦除RAM,可电擦除RAM又包括温度触发器TH和TL,以及一个配置寄存器。存储器能完整的确定一线端口的通讯,数字开始用写寄存器的命令写进寄存器,接着也可以用读寄存器的命令来确认这些数字。当确认以后就可以用复制寄存器的命令来将这些数字转移到可电擦除RAM中。当修改过寄存器中的数时,这个过程能确保数字的完整性。

  高速暂存器RAM是由8个字节的存储器组成;

      第一和第二个字节是温度的显示位。 第三和第四个字节是复制TH和TL,同时第三和第四个字节的数字可以更新;第五个字节是复制配置寄存器,同时第五个字节的数字可以更新;六、七、八三个字节是计算机自身使用。用读寄存器的命令能读出第九个字节,这个字节是对前面的八个字节进行校验

      DS18B20在出厂时以配置为12位,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判断正负。前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。16位数字摆放是从低位到高位

  指 令 约定代码 操 作 说 明

  温度转换 44H 启动DS18B20进行温度转换

  读暂存器 BEH 读暂存器9个字节内容

  写暂存器 4EH 将数据写入暂存器的TH、TL字节

  复制暂存器 48H 把暂存器的TH、TL字节写到E2RAM中

  重新调E2RAM B8H 把E2RAM中的TH、TL字节写到暂存器TH、TL字节

  读电源供电方式 B4H 启动DS18B20发送电源供电方式的信号给主CPU

 

  3. DS18B20的初始化

  

  (1) 先将数据线置高电平“1”。

  (2) 延时(该时间要求的不是很严格,但是尽可能的短一点)

  (3) 数据线拉到低电平“0”。

  (4) 延时750微秒(该时间的时间范围可以从480到960微秒)。

  (5) 数据线拉到高电平“1”。

  (6) 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。

  (7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。

  (8) 将数据线再次拉高到高电平“1”后结束。

 

 4. DS18B20的写操作

 

  (1) 数据线先置低电平“0”。

  (2) 延时确定的时间为15微秒。

  (3) 按从低位到高位的顺序发送字节(一次只发送一位)。

  (4) 延时时间为45微秒。

  (5) 将数据线拉到高电平。

  (6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。

  (7) 最后将数据线拉高。

  

   5. DS18B20的读操作
  (1)将数据线拉高“1”。

  (2)延时2微秒。

  (3)将数据线拉低“0”。

  (4)延时15微秒。

  (5)将数据线拉高“1”。

  (6)延时15微秒。

  (7)读数据线的状态得到1个状态位,并进行数据处理。

  (8)延时30微秒。

 

 

温度格式

这是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温度数据表DS18B20温度传感器的存储器

 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器 TH、TL和结构寄存 器。 (4)配置寄存器 该字节各位的意义如下:

 

 温度分辨率设置表 

TMR1R011111

 

 

根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:

每一次读写之前都要对DS18B20进行 复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,

这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后 释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。

 

 

ROM指令表   

指 令 约定代码功 能读ROM33H读DS1820温度传感器ROM中的编码(即64位地址)
  符合 ROM 55H发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS1820 使之作出响应,为下一步对该 DS1820 的读写作准备。
  搜索 ROM 0FOH用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。为操作各器件作好准备。
  跳过 ROM 0CCH
  忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。适用于单片工作。
  告警搜索命令 0ECH
  执行后只有温度超过设定值上限或下限的片子才做出响应。

  表6: RAM指令表

   指 令 约定代码功 能温度变换44H启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。
  读暂存器
  0BEH 读内部RAM中9字节的内容
  写暂存器
  4EH 发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。
  复制暂存器
  48H
  将RAM中第3 、4字节的内容复制到EEPROM中。
  重调 EEPROM
  0B8H
  将EEPROM中内容恢复到RAM中的第3 、4字节。 读供电方式 0B4H
  读DS1820的供电模式。寄生供电时DS1820发送“ 0 ”,外接电源供电 DS1820发送“ 1 ”。

 

R1R0分辨率温度最大转换时间009位
  93.75ms 0110位
  187.5ms 1011位
  375ms 1112位
  750ms

 

 

 

向DS18B20中写命令格式,从ram中读数据

 

 

原创粉丝点击