上海羊羽卓进出口贸易有限公司

ds18b20 温度传感器 DS18B20温度传感器介绍

发布时间:2024-10-06 18:10:12

DS18B20温度传感器介绍

来源:百问网_嵌入式Linux wiki_jz2440 新1期视频维基教程 (视频文字版)

作者:韦东山

本文字数:1322,阅读时长:2分钟

比DHT11温湿度传感器精度高很多

DS18B20只通过一条数据线传输数据,既要控制器发送数据给芯片,又要通过芯片发送数据给控制器,所以这个是双向传输数据的

怎么在一个引脚上实现数据的双向传输 : 参考这视频的第19分钟之后的内容: 第19课_第001节_I2C协议与EEPROM

检测温度,我们需要一个主控芯片

如果有多个温度传感器,则需要一个主控制器去管理它们,通过发送命令传输数据,每个设备都会有固化在芯片内部的64bit ID的ROM来用于区分不同的设备

如果主控制器想访问设备,必须发送命令,这个命令中带有ID返回值

怎么访问指定的DS18B20

0 发出低脉冲,提醒准备工作: initialization1 发出ID命令:ROM Command2 发出功能命令: Function Command a转换温度 b读温度,读数据

每次操作,都要重重上述过程

内部框图

TEMPERATURE SENSOR温度ADC

SCRATCHPAD实际上是一个9 byte的内存 9byte的说明如下图所示

温度值会保存在9byte内存中的 BYTE0 和 BYTE1 也就是当我们发出一个温度值的命令之后,还需要发送一个读内存的命令才能把温度值读取出来

最后一位是CRC校验码,通过前8位的数据和最后一位的校验码比较 64位数据中有8位是校验码,

怎么采样温度?

1 初始化2 ROM命令3 FunctionCommand 设置某些值,比如转换温度4等待完成5 init6 R om cmd7 Function Command 读RAM中的值

关于EEPROM寄存器 前面两个字节可以用来设置用户自己的目的,也可以用来设置Th Tl 寄存器 Th Tl 寄存器就是用来设置警报,温度的上限或者下限,当温度超过某个值时它会发出警报 所谓警报只不过是在DS18B20中设置状态而已,并不能主动通知主芯片 主芯片可以发出某些命令来确定哪些芯片发出了警报 配置寄存器,用于设置精度,精度越高转换时间越长

EEPROM使用

1 上电

EEPROM自动放入RAM用于控制精度这些

2 写EEPROM

a 发出命令先写RAM

b从RAM转到EEPROM

3 读出EEPROM的值

a EEPROM值保存到RAM

b 发出命令读RAM

关于ROM命令和功能命令整理成一个表格

信号传输

1怎么initialization(初始化) 2 怎么发数据,怎么发出1bit

怎么发出bit0

怎么发出bit1

3怎么读数据==>怎么读1bit

怎么判读读到0

怎么判断读到1

初始化时序

一开始是高电平,想要开始传输信号,必须要拉低至少480us释放总线 经过15~60us之后 DS18B20会把这条线拉低60~240us

2 怎么发数据,怎么发出1bit

怎么发出bit0怎么发出bit1

写数据时序

不论是写0还是写1时序都是大于60us 写0拉低总线维持60us以上 写1时,信号线拉低1us时间,提醒要写数据了,然后回高,写1位之间的时间间隔1us

读数据时序 也是由主机发起 提醒脉冲大于1us,主机马上释放总线 在15us之内读信号,一个读周期至少是60us,每位的间隔也是1us

DS18B20提供了编程图

供电方式

「新品首发」STM32MP157开发板火爆预售!首批仅300套

数字温度传感器DS18B20简介

1、DS18B20的主要特性1.1、适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电1.2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯1.3、DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温1.4、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内1.5、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃1.6、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温1.7、在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快1.8、测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力1.9、负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。

2、DS18B20的外形和内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如下图1:

DS18B20引脚定义:

(1)DQ为数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

图2: DS18B20内部结构图

3、DS18B20工作原理

DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

图3: DS18B20测温原理框图

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为符号位。

表1: DS18B20温度值格式表

这是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。

表2: DS18B20温度数据表

(3)DS18B20温度传感器的存储器

DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。

相关问答

DS18B20温度传感器 的存储器_汽配人问答

[最佳回答]DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。(4)配...

DS18B20温度传感器 读出数据的转化问题?a=read_byte();\x05...

[最佳回答]乘以256是为了将读过来的数据转换成十进制数,再乘以25,然后在返回值里又左移了2,相当于(b*256+a)*0.0625*100!这段程序应该没有判断正负的语句!你多...

使用 温度传感器DS18B20 设计一温控系统,当温度超过35度或低...

[最佳回答]//这是我曾经做的一个温度控制系统,可以调节上下限温度,低于下限温度启动加热,高于上限停止加热。//温控系统控制程序//版本号:V1.0;2015.6.19//...

请问,热敏电阻(10k,25度)和 温度传感器 ( ds18b20 )哪个对温度比...

[最佳回答]1820,热敏电阻只是个廉价的方式,实现起来需要用AD转换器,1820是一块芯片,灵敏度高,进度高.热敏电阻一般做出来的进度是1度,1820是0.0625度.热敏电阻...

DS 是汽车上什么 传感器 ?

DS18B20温度传感器有两种供电方式:一是寄生电源方式,二是VDD电源引脚供电方式。寄生电源方式即DS18B20温度传感器不需要通过电源供电,而是当I/O、VDD电源引...

用一个 DS18B20传感器 和一个单片机最小系统和四位共阳极数码...

51单片机开发板使用例程,你找找,里面有一百个C的程序,有一个是关于这个的。这个挺简单的,网上搜搜一大把DS18B20的程序。我有。

用一个 DS18B20传感器 和一个单片机最小系统和四位共阳极数码...

这个挺简单的,网上搜搜一大把DS18B20的程序。51单片机开发板使用例程,你找找,里面有一百个C的程序,有一个是关于这个的。我有。

温度传感器DS18B20 和单片机AT89C51,怎么焊接啊,电路图也看不...

18B20的1脚接电源,2脚接51的第12脚(P3。2中断0),3脚接地有用(0)回复bik2011DS18B20是最简单的电路,没什么难的吧。有用(0)回复qxt000DS18B2...

ds18b20温度 传感是红外吗?

ds18b20温度传感不是红外。DS18B20是一款数字式普通温度传感器。它必须靠近被测温度场才能准确测量温度,不能远距离测量某一点的温度。红外温度传感器最主要...

怎么检测 18B20温度传感器 是否坏了?

用汇编拉低数据线600微秒然后延时等待60微秒来判断低电平,没出现是不是1820坏了,听说过的是18B20可以这样判断好坏。ds18B20是单片机系统中最常用的数字温...

展开全部内容