一、基础参数指标
- 测温量程:-55℃ ~ 125℃
- 测量精度:-10℃~80℃区间,测量误差 ±0.5℃
- 分辨率(可配置,分辨率越高转换耗时越长)
- 9 位:0.5℃
- 10 位:0.25℃
- 11 位:0.125℃
- 12 位(默认):0.0625℃,转换时间 750ms
- 工作电压:3V ~ 5.5V
二、通信协议、上拉电阻与线与特性
1. 通信协议
采用单总线 One-Wire通信,半双工、串行异步传输,仅需一根 GPIO 信号线 DQ 即可完成主机与传感器的数据交互。
2. 上拉电阻作用
DQ 引脚为开漏输出结构,无法主动输出高电平;搭配上拉电阻后,主机和传感器全部释放总线时,总线稳定维持高电平,是单总线正常通信的必要电路。
3. 线与特性
单总线总线为线与逻辑,依托开漏引脚 + 上拉电阻实现:
- 总线上任意一个器件拉低 DQ 引脚,整条总线电平直接变低;
- 只有总线上所有器件全部释放 DQ,上拉电阻才能将总线拉为高电平;
- 核心应用:复位应答、单总线半双工读写、多传感器并联组网均依靠该特性实现。
三、芯片内部结构
- 内置供电电路,支持寄生电源供电模式;
- 64 位 ROM + 单总线接口电路;
- 存储器逻辑控制模块,统筹内部各单元工作;
- 暂存器:存储温度原始数据、配置寄存器参数;
- 温度采集核心模块;
- 可自定义配置的高低温报警阈值寄存器;
- 8 位 CRC 校验生成器,用于数据校验,提升传输可靠性。
四、温度数据格式
采集到的温度以16 位带符号二进制补码形式存储,通过 DQ 总线串行向外发送。
五、单传感器完整温度采集流程(跳过 ROM 指令)
- 发送总线复位信号,初始化传感器;
- 发送指令 0xCC:跳过 ROM 寻址,适配单传感器场景;
- 发送指令 0x44:启动芯片温度转换;
- 延时 750ms,等待 12 位分辨率温度转换完成;
- 再次发送总线复位;
- 再次发送 0xCC 跳过 ROM;
- 发送指令 0xBE:读取内部暂存器数据;
- 连续读取 2 字节原始温度数据,拼接后换算实际温度。
六、单总线核心通信时序
1. 复位时序(初始化 + 存在应答)
- 主机拉低总线 480~960μs,输出复位脉冲;
- 主机释放总线,上拉电阻将总线拉高;
- DS18B20 等待 15~60μs 后,主动拉低总线 60~240μs,发送应答脉冲;
- 传感器释放总线,总线恢复高电平,初始化完成。
2. 写时序(主机下发指令 / 配置参数)
写 0 时序
- 主机拉低总线 60~120μs;
- 传感器在 30~60μs 区间采样,识别低电平为数字 0;
- 主机释放总线,恢复高电平。
写 1 时序
- 主机拉低总线时长小于 15μs 后立即释放;
- 传感器在总线拉高后的 45μs 内采样,识别高电平为数字 1。
程序逻辑:逐位读取字节最低位,分别调用写 0 / 写 1 时序,循环移位发送完整 8 位数据。
3. 读时序(主机读取温度、寄存器数据)
- 主机拉低总线仅 1μs 后快速释放;
- 主机需在 15μs 内完成电平采样:
- 总线为高电平 → 读取到 1;
- 传感器主动拉低总线 → 读取到 0;
- 单次读取 1 字节需循环读取 8 个位,移位拼接为完整数据。