快速掌握单片机基础(4)(ds18b20)

二、ds18b20

1.传感器基础概念

传感器:将物理量转换为电信号的器件。此处特指数字温度传感器 DS18B20(用于设备温度、环境温度采集)。

1)传感器指标参数

(1)量程(温度测量范围):-55℃ ~ 125℃

(2)精度(传感器测量温度与实际温度值之间允许的最大误差):±0.5℃

举例:实际温度值25℃,传感器采集温度值应在 24.5 ~ 25.5℃ 之间。

(3)分辨率(对温度变化敏感程度,分辨率越高,能察觉的微小温度变化越小,读数越细腻):

9位:0.5℃

10位:0.25℃

11位:0.125℃

12位:0.0625℃(最高分辨率)

(4)工作电压:3V ~ 5.5V

2.通信方式与硬件连接

1)通信特点

51单片机与DS18B20通信属于:半双工、异步、串行。

采用 GPIO One-Wire 单总线 协议,传感器通过一根GPIO信号线与单片机通信。

2)硬件连线

单片机 P3.7 引脚接 DS18B20 的 DQ (数据信号线)。

单片机 VCC 接 DS18B20 VCC。

单片机 GND 接 DS18B20 GND。

3)线与特性(关键点)

核心规则:

引脚拉高,不能直接决定引脚电平(受对方影响)。

拉高:释放总线。

你作为数据的接收方时,需要释放总线(写1或读数据前)。

数据格式:

读取的数值为16位,采用符号位扩展,二进制补码形式存储。

3.DS18B20内部结构

64-BIT ROM:存储唯一ID,用于多器件挂载。

单线端口:连接外部DQ总线。

内部电源:寄生电源或外部供电(框图显示内部电源电路)。

存储器逻辑控制模块:协调其他模块工作。

暂存器(SCRATCHPAD):存放温度数据、高温触发阈值(TH)、低温触发阈值(TL)及参数配置。

8位CRC生成器:用于数据校验。

4.DS18B20采集温度流程

由于DS18B20转换温度需要时间,通常分为"启动转换"和"读取温度"两个步骤。

步骤一:启动温度转换

ds18b20_reset():复位DS18B20。

write_ds18b20(0xCC):发送0xCC,跳过ROM(跳过64位ID匹配,直接操作单节点)。

write_ds18b20(0x44):发送0x44,开启温度转换。

延时750ms(等待转换完成)。

步骤二:读取温度数据

ds18b20_reset():复位DS18B20。

write_ds18b20(0xCC):发送0xCC,跳过ROM。

write_ds18b20(0xBE):发送0xBE,读取温度(读取暂存器)。

读取2个字节温度(共16位,包含符号位和小数部分)。

5.通信时序

所有操作均以主机拉低总线开始。

1)复位时序(初始化)

(1)主机拉低总线 480us - 960us(发送复位脉冲)。

(2)主机释放总线,需要延时 15 - 60us。

(3)DS18B20拉低总线 60 - 240us(回复响应脉冲)。

(4)DS18B20释放总线,总线呈现高电平,初始化过程结束。

2)写时序

(1)写'0'时序:

1.主机将总线拉低 至少60us,最多不超过120us。

2.DS18B20在 15us - 60us内进行采样,若总线此时为低电平,则代表主机发送了'0'。

3.主机释放总线。

(2) '1' 时序

1.主机将总线拉低 小于15us,释放总线。

2.DS18B20在 15us - 60us内进行采样,若总线此时为高电平,则代表主机发送了'1'。

注:发送指令 0xCC(二进制 1100 1100)就是遵循上述写时序逐位发送。

3)读时序

(1)读'1'时序

1.主机拉低总线,大于1us,然后释放总线。

2.DS18B20释放总线,总线呈现高电平。

3.主机在 15us内采样电平,此时总线为高电平,代表主机读到'1'。

(2)读'0'时序:

1.主机拉低总线,大于1us,然后释放总线。

2.DS18B20在主机释放总线后,主动拉低(代表要传输'0')。

3.主机在 15us内进行采样,此时总线为低电平,代表主机读到'0'。

相关推荐
kkkkkkkkkk_Z1 小时前
单片机|学习日记:单片机底层架构与寄存器操作全解析
linux·笔记·单片机·学习·51单片机
LCG元1 小时前
STM32F103 双ADC交错采样实战:DUALMOD寄存器拆解、DMA位宽陷阱与1.71MSPS有效采样率实测
stm32·单片机·嵌入式硬件
朝发如雪1 小时前
快速掌握单片机基础(5)(ARM基本概念)
单片机·arm
星栖与芯11 小时前
LiteOS-M 切换汇编逐行图解(4):中断三件套与 HalTaskSchedule 触发
汇编·stm32·单片机·嵌入式硬件·harmonyos
朝发如雪18 小时前
快速掌握单片机基础(1)(嵌入式基本概念)
单片机
szxinmai主板定制专家19 小时前
【嵌入式实战】RK3588+GMSL多路相机采集方案|SerDes长距离低延时视频流落地教程
人工智能·单片机·机器人·边缘计算·zynq
LCG元19 小时前
STM32F103 SPI 驱动 W5500 以太网模块实战:硬件协议栈寄存器体系、Socket 状态机避坑与 TCP 吞吐实测
stm32·单片机·嵌入式硬件
Zhang.Yi19 小时前
STM32-SPI
stm32·单片机·嵌入式硬件
en.en..19 小时前
网络分层封装 与 TCP粘包的因果关系
网络·单片机·嵌入式硬件