温度传感器技术

定制 DS18B20 传感器探头 & 1-电线电缆组件

DS18B20温度传感器1线防水电缆 + 转接板组

我们提供各种最佳的 1-Wire DS18B20 传感器连接器, 包括 Nanoflex, 显示端口, USB, 太阳的, SATA, HDMI, 这就是主意, SAS & 还有更多. 所有电缆均按照最高行业标准制造. 使用传感器电路组件进行整机组装可让您专注于设计和营销, 降低成本, 并从我们的装配线中获益, 质量保证流程, 和制造专业知识.

DS18B20 传感器使用以下方式进行通信 “1-金属丝” 协议, 这意味着它使用一条数据线与微控制器进行所有通信, 允许多个传感器连接在同一条线上并通过其唯一的 64 位串行代码进行识别; 该单条数据线通过电阻器拉高,传感器通过在特定时隙期间拉低线来发送信息位来传输数据.

DS18B20温度传感器: DS18B20防水探头专为水下使用而设计, 能够在潮湿的环境中运行而不会被水或湿气损坏.
温度传感器供电电压: 3.0电压~5.25V;
工作温度范围:-55 ℃ 至 +125 ℃ (-67 华氏度 至 +257 华氏度);
提供 9 位至 12 位摄氏度温度测量;
适配器模块配有上拉电阻, 直接连接树莓派的GPIO,无需外接电阻;
使用此适配器模块套件可以简化防水温度传感器与您的项目的连接.

DS18B20数字温度传感器探头 & XH2.54转PH2.0模块

DS18B20数字温度传感器探头 & XH2.54转PH2.0模块

国产DS18B20芯片温度采集TO-92温度传感器

国产DS18B20芯片温度采集TO-92温度传感器

DS18B20温度传感器1线防水电缆 + 转接板组

DS18B20温度传感器1线防水电缆 + 转接板组

1. 有关 1-Wire 协议的要点:
单数据线:
传感器和微控制器之间的通信只需要一根线.
半双工通信:
数据可以双向发送, 但一次只有一个方向.
寄生力量:
DS18B20在通信过程中可以直接由数据线供电, 在某些情况下无需单独的电源.
唯一的设备地址:
每个 DS18B20 传感器都有一个独特的 64 位串行代码,允许微控制器识别和寻址总线上的各个传感器.
与 DS18B20 的通信步骤:
1.1 复位脉冲:
微控制器通过将数据线拉低一段特定的持续时间来启动通信 (复位脉冲).
1.2 存在脉冲:
如果总线上存在 DS18B20, 它将以短脉冲响应, 表明它的存在.
1.3 ROM命令:
微控制器发送 ROM 命令来读取特定传感器的唯一 64 位代码 (“匹配ROM”) 或寻址总线上的所有传感器 (“跳过ROM”).
1.4 功能命令:
取决于所需的操作 (比如读取温度), 微控制器向传感器发送特定功能命令.
1.5 数据传输:
数据是逐位传输的, 传感器将数据线拉低以发送 ‘0’ 并让线路变高以发送“1”.

2. DS18B20的1-Wire通信协议详解
DS18B20传感器之所以被广泛应用,很大程度上得益于其独特的通信协议 – 1-有线通讯协议. 该协议简化了对硬件连接的要求,提供了一种有效的数据传输方式. 本章将深入剖析1线通信协议的工作机制和数据交换过程,为后续的编程实践打下坚实的基础.
2.1 1-Wire 通信协议基础知识
2.1.1 1-Wire 通信协议的特性:
DS18B20 1-Wire 通信协议也称为 “单总线” 技术. 它具有以下特点: – 单总线通讯: 仅使用一根数据线进行双向数据传输, 与传统的多线传感器通信方式相比,大大降低了布线的复杂性. – 多设备连接: 支持在一根数据总线上连接多个设备, 并通过设备识别码进行识别和通信. – 低功耗: 沟通过程中, 设备在不参与通信时可以处于低功耗待机状态. – 高精度: 数据传输时间更短, 减少外界干扰,提高数据准确性.
2.1.2 1-wire通信的数据格式和时序分析
1-wire通信协议的数据格式遵循特定的时序规则. 它包括初始化时序, 写时序和读时序:
初始化时序: 主机首先启动存在检测计时 (存在脉冲) 通过将总线拉下来一段时间, 然后传感器发送存在脉冲作为响应.
写入时序: 当主机发送写时序时, 它首先将总线拉下来大约 1-15 微秒, 然后释放总线, 并且传感器拉低总线 60-120 微秒响应.
读取时序: 主机通过拉低总线并释放来通知传感器发送数据, 传感器会在一定的延迟后将数据位输出到总线上.

模拟器件 DS18B20+, MAXIM 可编程分辨率 1-Wire 数字温度计

模拟器件 DS18B20+, MAXIM 可编程分辨率 1-Wire 数字温度计

DS18B20 12 位 1 线数字温度传感器 1 仪表电缆

DS18B20 12 位 1 线数字温度传感器 1 仪表电缆

DS18B20传感器探头专用于冷链冷库温湿度采集

DS18B20传感器探头专用于冷链冷库温湿度采集

2.2 数据通信的软件实现
2.2.1 1线通讯的初始化和复位
在软件层面, 1-Wire通信的初始化和复位是通信的第一步. 下面是实现这个过程的伪代码:

// OneWire通讯初始化函数
无效 OneWire_Init() {
// 将总线设置为输入模式并启用上拉电阻
设置引脚模式(DS18B20_PIN, 输入上拉);
// 等待公交车空闲
延迟微秒(1);
// 发送复位脉冲
OneWire_重置();
}

// OneWire通讯复位功能
无效 OneWire_Reset() {
// 把公交车拉下来
设置引脚模式(DS18B20_PIN, 输出低电平);
延迟微秒(480);
// 释放总线
设置引脚模式(DS18B20_PIN, 输入上拉);
延迟微秒(70);
// 等待脉冲的出现
如果 (!等待OneWire存在())
// 未检测到脉搏, 可能是传感器没有连接或者初始化失败
处理错误();
延迟微秒(410);
}

// 等待脉冲的出现
布尔 WaitForOneWirePresence() {
返回读取密码(DS18B20_PIN) == 0; // 假设低电平是信号存在
}

2.2.2 数据读写操作

数据读写操作是传感器通信的核心部分. 下面的代码展示了如何将一个字节写入单线总线:
// 将一个字节写入单线总线
无效 OneWire_WriteByte(字节数据) {
为了 (整数我 = 0; 我 < 8; 我++) {
OneWire_WriteBit(数据 & 0x01);
数据 >>= 1;
}
}

// 向单线总线写入一位
无效 OneWire_WriteBit(位数据) {
设置引脚模式(DS18B20_PIN, 输出低电平);
如果 (数据) {
// 写入时释放总线 1
设置引脚模式(DS18B20_PIN, 输入上拉);
延迟微秒(1);
} 别的 {
// 写入时继续将总线拉低 0
延迟微秒(60);
}
设置引脚模式(DS18B20_PIN, 输入上拉);
延迟微秒(1);
}

接下来是读取一个字节的函数:
// 从单线总线读取一个字节
字节 OneWire_ReadByte() {
字节数据= 0;
为了 (整数我 = 0; 我 < 8; 我++) {
数据 >>= 1;
如果 (OneWire_ReadBit())
数据 |= 0x80;
}
返回数据;
}

// 从单线总线读取一位
位 OneWire_ReadBit() {
设置引脚模式(DS18B20_PIN, 输出低电平);
设置引脚模式(DS18B20_PIN, 输入上拉);
延迟微秒(3);
布尔结果 = ReadPin(DS18B20_PIN);
延迟微秒(57);
返回结果;
}

2.2.3 OneWire通信的验证机制

OneWire通信协议在数据交换过程中采用简单的验证机制, 通常通过读回写入的数据来验证数据的正确性. 以下是验证写入数据的示例代码:

字节数据 = 0x55; // 假设要发送的数据

OneWire_WriteByte(数据); // 将数据写入 OneWire 总线

字节读取数据 = OneWire_ReadByte(); // 从 OneWire 总线读回数据

如果 (读取数据 != 数据) {
处理错误(); // 如果读回的数据与写入的数据不匹配, 处理错误