博客
关于我
DS18B20温度传感器解读单线协议
阅读量:260 次
发布时间:2019-03-01

本文共 1167 字,大约阅读时间需要 3 分钟。

DS18B20温度传感器是一款常见的温度传感器,基于单总线通信协议设计,能够通过一根总线实现数据的读写操作。以下是对DS18B20的详细介绍,包括其内部结构、工作原理以及与主机的通信流程。


DS18B20的主要知识点

DS18B20传感器内部主要包含两个核心组件:64位只读存储器(ROM)可写入的临时存储器。其中,ROM存储器用于存储传感器的唯一序列号,用于标识不同传感器,方便在多节点系统中进行通信。而临时存储器主要用于存储温度数据、高温限值、低温限值以及配置参数。

1. 64位只读存储器(ROM)

  • ROM存储器在出厂前通过光刻过程刻录64位独特序列号,这个序列号可以看作是传感器的身份证。
  • 主机通过读取ROM存储器的数据,可以确定与哪个传感器通信,特别是在多节点系统中非常有用。

2. 临时存储器

  • 临时存储器包括温度寄存器、高温限值寄存器、低温限值寄存器以及配置寄存器。
  • 温度寄存器:存储传感器读取的温度值,其中前五位用于符号位,后面可根据配置寄存器设置为1到12位有效位。
  • 高温限值寄存器(TH)和低温限值寄存器(TL):存储温度的高低限值,当温度超出范围时会触发报警。
  • 配置寄存器:用于设置传感器的精度,默认为12位分辨率。

3. 主机与DS18B20的通信流程

  • 复位操作:主机通过将总线拉低480微秒并释放,复位传感器。
  • 发送ROM指令:主机发送33H和55H命令,读取传感器的ROM存储器数据,用于身份验证。
  • 发送存储器指令:主机发送写命令(如4EH),将高温限值和低温限值写入传感器。

DS18B20的读写操作

1. 写操作

  • 主机通过总线发送数据信号,传感器根据信号状态进行响应。
  • 每个字节数据的写入包括两部分:拉低总线(按位写入)和拉高总线(完成写入)。

2. 读操作

  • 传感器通过总线反馈数据信号,主机根据信号状态逐位读取数据。
  • 读取一个字节数据需要检测总线状态,并组合成一个有效的字节值。

DS18B20的报警功能

  • 传感器内置高温和低温报警功能,主机可以通过发送特定命令(如ECH)检查报警状态。
  • 报警状态会保留在临时存储器中,主机可以读取并处理。

配置寄存器的作用

  • 通过配置寄存器可以设置传感器的分辨率,默认为12位。
  • 例如,配置寄存器中的R1和R2控制分辨率,R3用于高温限值,R4用于低温限值。

主机命令库

  • 发送存储器命令:用于写入高温限值和低温限值。
  • 发送ROM指令:用于读取传感器的唯一序列号。
  • 读取温度数据:通过读取温度寄存器获取传感器测量值。

温度传感器的实际应用

  • 在实际应用中,主机需要初始化传感器(复位和读写操作),然后通过读取温度数据并进行处理。
  • 传感器的报警功能可以用于触发警报系统或自动控制系统。

通过以上内容,我们可以清晰地了解DS18B20温度传感器的工作原理及其与主机的通信机制。

转载地址:http://igqx.baihongyu.com/

你可能感兴趣的文章
Notepad ++ 安装与配置教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
Notepad++在线和离线安装JSON格式化插件
查看>>
notepad++最详情汇总
查看>>
notepad如何自动对齐_notepad++怎么自动排版
查看>>
Notification 使用详解(很全
查看>>
NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()
查看>>
Now trying to drop the old temporary tablespace, the session hangs.
查看>>
nowcoder—Beauty of Trees
查看>>
np.arange()和np.linspace()绘制logistic回归图像时得到不同的结果?
查看>>
np.power的使用
查看>>
NPM 2FA双重认证的设置方法
查看>>
npm build报错Cannot find module ‘webpack‘解决方法
查看>>
npm ERR! ERESOLVE could not resolve报错
查看>>
npm error Missing script: “server“npm errornpm error Did you mean this?npm error npm run serve
查看>>
npm error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,1) 安装
查看>>
npm install digital envelope routines::unsupported解决方法
查看>>
npm install 卡着不动的解决方法
查看>>
npm install 报错 EEXIST File exists 的解决方法
查看>>
npm install 报错 ERR_SOCKET_TIMEOUT 的解决方法
查看>>
npm install 报错 fatal: unable to connect to github.com 的解决方法
查看>>