【51单片机】DS18B20温度传感器(1-Wire)

🔎【博主简介】🔎

🏅全网技术博客粉丝量十万

🏅全网技术博客学习数百万

🏅CSDN博客专家领域专家

🏅2021年博客之星物联网与嵌入式开发TOP5

🏅2022年博客之星物联网与嵌入式开发TOP4

🏅2021年2022年C站百大博主

🏅华为云开发者社区专家博主

🏅阿里云开发者社区专家博主

🏅掘金INFOQ腾讯云优秀博主

📅创作时间2022年11月10日

DS18B20介绍

**🍎说明⇢**DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出。相比较于模拟温度传感器(功能强大、硬件简单、易扩展、抗干扰性强)等..特点。

₁测温范围**⇢-**55°C 到 +125°C

₂通信接口**⇢**1-Wire (单总线)

₃其它特征**⇢**可形成总线结构、内置温度报警功能、可寄生供电(如果是寄生供电的话连Vcc正极都不需要进行连接直接用一根数据线SDA和GND地十分的节省线路)

🍊**拓展说明⇢**DS18B20在里面集成了模拟温度传感器、芯片、微控制器。内部读取内部当中的传感器,通过内部转换存储在RAM(随机存储器)里面。

引脚电路

复制代码
VCC:电源(3.0v~5.5v)
GND:电源地
DQ: 单总线(通信端口)

📑说明⇢以上便是DS18B20的应用电路从这里我们可以看出它的应用电路也是非常简单的。

存储器结构

内部结构

⒈64-BIT ROM**⇢**作为器件地址,用于总线通信的寻址。

⒉SCRATCHPAD(暂存器)**⇢**用于总线的数据交互。

⒊EEPROM**⇢**用于保存温度触发阈值和配置参数。

⒋POWER-SUPPLYSENSE**⇢**可以感应外部的VDD是否存在,如果不存在就会调整内部的一个结构来进行省电|内部的执行操作逻辑。当然寄生电路它是自动运行的不需要对其中的程序进行配置。

🍏**注⇢**我们使用寄生供是需要加一个强上拉电阻在DQ上的而我们的开发板是没有给DQ强上拉。所以这里我们是使用不了寄身供电的。

🖋拓展知识点⇢寄生供电不是实际的电源器件,而是一种供电方式,即通过数据线供电。

单总线介绍

①单总线(1-Wire BUS)是由Dallas公司开发的一种通用数据总线。

②一根通信线→DQ ✔

③异步、半双工。

④单总线只需要一根通信线即可实现数据的双向传输,当采用寄生供电时,还可以省去设备的VDD线路,此时,供电加通信只需要DQ和GND两根线。

|--------|----------|----------|--------|
| 名称 | 引脚定义 | 通信方式 | 特点 |

|------------|--------|------------|-------------|
| 1-Wire | DQ | 半双工、异步 | 可挂载多个设备 |

半双工:通信双方可以互相传输数据,但必须分时复用一根数据线。

异步:通信双方各自约定通信速率。异步→不会那么的同步。

**总线→**连接各个设备的数据传输线路(类似于一条马路,把路边各住户连接起来,使住户可以相互交流)

**🍎****注意→**可以挂载多个设备都可以叫做是"总线"。

单总线的电路规范

⒈设备的DQ均要配置成开漏输出模式。

⒉DQ添加一个上拉电阻,阻值一般为4.7KΩ左右。

⒊若此总线的从机采取寄生供电,则主机还应配一个强上拉输出电路。

单总线的时序结构

⒈****初始化⇢主机将总线拉低至少480us(准确值)然后释放总线(注:释放把DQ置1即可) 等待15~60us(选取中间值),存在的从机会拉低总线60~240us以响应主机,之后从机将释放总线。

⒉发送一位如下↓

主机将总线拉低60~120us(选取中间值)然后释放总线,表示发送0;

主机将总线拉低1~15us ,然后释放总线,表示发送1;

从机将在总线拉低30us 后(典型值)读取电平,整个时间片应大于60us。

⒊接收一位如下↓

主机将总线拉低1~15us,然后释放总线。

然后释放总线,并在拉低后15us 内读取总线电平(尽量贴近15us的末尾)

读取为低电平则为接收0,读取为高电平则为接收1 ,整个时间片应大于60us的值。

发送字节/接收字节

发送一个字节→连续调用8次发送一位的时序,依次发送一个字节的8位(低位在前)

接收一个字节→连续调用8次接收一位的时序,依次接收一个字节的8位(低位在前)

🍎注→单总线是低位在前的,而在前面我们所说的IIC是高位在前依次发送数据的。这两者是有一定的区别的我们需要注意以下才行。

DS18B20操作流程

初始化→从机复位,主机判断从机是否响应。

ROM操作→ROM指令+本指令需要的读写操作。

功能操作→功能指令+本指令需要的读写操作。

|------------------------------|-------------------------------------|
| ROM****指令 | 功能指令 |
| SEARCH(搜寻) ROM F0h | CONVERT(温度转变) T 44h |
| READ(读) ROM 33h | WRITE(写) SCRATCHPAD(笺存储) 4Eh |
| MATCH(匹配) ROM 55h | READ(读) SCRATCHPAD(笺存储) BEh |
| SKIP(跳过) ROM CCh | COPY(复制) SCRATCHPAD(笺存储) 48h |
| ALARM(报警) SEARCH(搜索) ECh | RECALL E2(电可擦除可编程) B8h |
| | READ POWER SUPPLY(读取设备供电模式) B4h |

DS18B20数据帧

温度变换→初始化→跳过ROM →开始温度变换。

温度读取→初始化→跳过ROM →读暂存器→连续的读操作。

Temperature:温度

LSB:最低有效位。

MSB:最高有效位。

温度存储格式

相关推荐
冰茶丿1 小时前
嵌入式安全第一关:Secure Boot是怎么保护你的设备的?
嵌入式硬件·安全
卖萌的斜阳1 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
单片机·网络协议·tcp/ip
Kuakewei8882 小时前
4056充电芯片:28V高耐压+电池反接保护+热调节功能
嵌入式硬件
三品吉他手会点灯2 小时前
嵌入式机器学习 - 学习笔记1.1.1 - 什么是机器学习?
c语言·人工智能·笔记·嵌入式硬件·学习·机器学习
woohuwan2 小时前
CST 匝数比和采样电阻怎么算?
单片机·嵌入式硬件
王光环4 小时前
STM32H750串口一直进IRQ问题解决
stm32·单片机·嵌入式硬件
2401_854151555 小时前
STM32 选项字节与读写保护(RDP)
stm32·单片机·嵌入式硬件
piaoyiren6 小时前
STC8 单片机蜂鸣器播放音乐
单片机·嵌入式硬件
阿拉斯攀登6 小时前
无人售货柜MQTT客户端工业级配置:心跳、遗嘱、重连、QoS适配实战
嵌入式硬件·mqtt·安卓·零售·无人售货柜·无人售货机
KaifuZeng7 小时前
通信与接口协议面试问题汇总三
单片机·嵌入式硬件·面试·通信与接口协议