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

你可能感兴趣的文章
NIO三大组件基础知识
查看>>
NIO与零拷贝和AIO
查看>>
NIO同步网络编程
查看>>
NIO基于UDP协议的网络编程
查看>>
NIO笔记---上
查看>>
NIO蔚来 面试——IP地址你了解多少?
查看>>
NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
查看>>
NISP国家信息安全水平考试,收藏这一篇就够了
查看>>
NIS服务器的配置过程
查看>>
Nitrux 3.8 发布!性能全面提升,带来非凡体验
查看>>
NiuShop开源商城系统 SQL注入漏洞复现
查看>>
NI笔试——大数加法
查看>>
NLog 自定义字段 写入 oracle
查看>>
NLog类库使用探索——详解配置
查看>>
NLP 基于kashgari和BERT实现中文命名实体识别(NER)
查看>>
NLP 模型中的偏差和公平性检测
查看>>
Vue3.0 性能提升主要是通过哪几方面体现的?
查看>>
NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
查看>>
NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
查看>>
NLP三大特征抽取器:CNN、RNN与Transformer全面解析
查看>>