博客
关于我
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/

你可能感兴趣的文章
Nodejs中的fs模块的使用
查看>>
nodejs包管理工具对比:npm、Yarn、cnpm、npx
查看>>
NodeJs单元测试之 API性能测试
查看>>
nodejs图片转换字节保存
查看>>
nodejs字符与字节之间的转换
查看>>
NodeJs学习笔记001--npm换源
查看>>
NodeJs学习笔记002--npm常用命令详解
查看>>
nodejs学习笔记一——nodejs安装
查看>>
nodejs封装http请求
查看>>
nodejs常用组件
查看>>
nodejs开发公众号报错 40164,白名单配置找不到,竟然是这个原因
查看>>
Nodejs异步回调的处理方法总结
查看>>
NodeJS报错 Fatal error: ENOSPC: System limit for number of file watchers reached, watch ‘...path...‘
查看>>
Nodejs教程09:实现一个带接口请求的简单服务器
查看>>
nodejs服务端实现post请求
查看>>
nodejs框架,原理,组件,核心,跟npm和vue的关系
查看>>
Nodejs模块、自定义模块、CommonJs的概念和使用
查看>>
nodejs生成多层目录和生成文件的通用方法
查看>>
nodejs端口被占用原因及解决方案
查看>>
Nodejs简介以及Windows上安装Nodejs
查看>>