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

你可能感兴趣的文章
Node.js 之 log4js 完全讲解
查看>>
Node.js 函数是什么样的?
查看>>
Node.js 函数计算如何突破启动瓶颈,优化启动速度
查看>>
Node.js 切近实战(七) 之Excel在线(文件&文件组)
查看>>
node.js 初体验
查看>>
Node.js 历史
查看>>
Node.js 在个推的微服务实践:基于容器的一站式命令行工具链
查看>>
Node.js 实现类似于.php,.jsp的服务器页面技术,自动路由
查看>>
Node.js 异步模式浅析
查看>>
node.js 怎么新建一个站点端口
查看>>
Node.js 文件系统的各种用法和常见场景
查看>>
Node.js 模块系统的原理、使用方式和一些常见的应用场景
查看>>
Node.js 的事件循环(Event Loop)详解
查看>>
node.js 简易聊天室
查看>>
Node.js 线程你理解的可能是错的
查看>>
Node.js 调用微信公众号 API 添加自定义菜单报错的解决方法
查看>>
node.js 配置首页打开页面
查看>>
node.js+react写的一个登录注册 demo测试
查看>>
Node.js中环境变量process.env详解
查看>>
Node.js之async_hooks
查看>>