第 20 章 18B20 温度检测
20.1 18B20 概述
20.1.1 简介
18B20 是一种常用的数字温度传感器,广泛应用于环境监测、工业控制、家居自动化
和设备温度监控等领域。

20.1.2 引脚功能
18B20 引脚功能如下图所示,需要特别强调的是,18B20 采用 1-wire 总线进行通信,
数据的输入输出仅靠一个 DQ 引脚完成。
20.1.3 基本工作原理
20.1.4 1-wire 通信协议
20.1.4.1 概述
1-Wire 协议是一种半双工、串行通信协议,主要用于与各种低成本传感器和存储设备
进行数据交换。同 I2C 协议类似,1-Wire 也采用主从架构,一个主设备可以连接多个从设
备。如下图所示。

由于 1-wire 总线也要求各设备以开漏(Open-Drain)模式接入,因此 DQ 信号线也要
使用上拉电阻。
另外,在 1-Wire 总线中,每个从设备都有一个唯一的 64 位地址,用于设备识别和通
信,这 64 位地址是由制造商在生产设备时烧录进去的,不可更改。
20.1.4.2 初始化
1-Wire 规定,每次通信主设备都要先发送一个复位脉冲,从设备接收到该脉冲后,会
进行复位(例如:从低功耗状态恢复到正常通信状态),然后回复一个存在脉冲,主设备可
根据该存在脉冲获知从设备的健康状态。
初始化操作的时序如下。
20.1.4.3 写操作
写操作的时序如下。
20.1.4.4 读操作
读操作的时序如下。
20.1.5 18B20 通信流程
18B20 规定,主设备与其的每次通信,都要遵循以下流程。
1)初始化
主设备发送复位脉冲,从设备回复存在脉冲。
2)发送 ROM 命令
每个 18B20 都有一个唯一个的 64 位序列号,该序列号存储于其内部的一个 64 位的
ROM 中。在一个主设备同时连接多个 18B20 的场景下,该序列号能起到唯一标识的作用。
通过发送 ROM 命令,主设备可以获取总线上所连接的 18B20 的序列号,并根据序列号,
与特定的 18B20 进行通信。具体 ROM 命令有:
(1)搜索 ROM 命令[0xF0]
功能:识别和列出所有连接在总线上的 18B20 设备。
(2)读取 ROM 命令[0x33]
功能:在单设备连接时,主机可以使用此命令直接读取设备的 ROM 代码。
(3)匹配 ROM 命令[0x55]
功能:该命令后边会跟随一个特定的 64 位 ROM 代码,用以选择总线上特定的设备进
行通信。
(4)跳过 ROM 命令[0xCC]
功能:在单设备环境中,跳过 ROM 步骤,直接与设备通信。
3)发送功能命令
功能命令用于控制 18B20 的具体操作,向前文提到的测温命令、读取温度命令等均属
于功能命令。 常用的命令如下。
(1)温度转换[44h]
该命令的作用是启动温度测量并将温度数据转换为数字格式。接收到该命令后,
18B20 会读取其内部的温度传感元件,将测量到的温度值转换为数字信号,并存储在内部
的暂存器中,以便后续读取。完成上述操作后,18B20 会自动恢复到低功耗状态。
(2)读取暂存寄存器 [BEh]
该命令用于读取 18B20 暂存器中存储的值。该命令会返回暂存器






最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



