之前的学习中我们了解到了一些基本外设的使用,今天我们将利用DS18B20 这款芯片来实现外设的温度采集与主控之间的数据交互
首先我们先来了解一下什么是DS18B20
DS18B20 介绍
1.基本概念
DS18B20 : 数字温度传感器
数据交互模式:
- 半双工:双方都可以做发送/接收,但同一时刻只能有一方作为发送端/接收端
- 异步:无时钟线规定发送与接收时间
- 串行:一根数据线逐个bit 发送数据
2.传感器参数
| 传感器名称 | 功能 | 量程 | 精度 | 工作电压 | 分辨率 |
|---|---|---|---|---|---|
| DS18B20 | 温度采集 | -55 - 135 | ± 0.5 | 3V - 5.5V | 12位 0.0625 |
- 分辨率
| 位数 | 分辨率 |
|---|---|
| 9位 | 0.5 |
| 10位 | 0.25 |
| 11位 | 0.125 |
| 12位 | 0.0625 |
- 默认 12 位 0.0625 的分辨率
- 最终读取到的数值需要 * 分辨率才可以得到真实的温度数据
3.操作DS18B20 的 ROM 的 指令
- 读ROM :向DS18B20 写入(0x33);
- 匹配ROM :向DS18B20 写入(0x55);
- 搜索ROM :向DS18B20 写入(0xF0);
- 跳过ROM :向DS18B20 写入(0xCC);
- 报警搜索:向DS18B20 写入(0xEC);
4.外设与主控同时控制串口时的线与特性

1.线与特性:
概念:通信时,一方为低电平,两方都表现为低电平,必须两方都为高电平,在外部强上拉电阻的作用下,双方才能同时表现为高电平
上拉电阻:
- 给单总线提供 "稳定高电平"
- 保证通信时序正确
- 给 DS18B20 供电
执行过程:
释放总线:一方将电平拉高,引脚电平由另一方控制
- 想要读取DS18B20 数据时,主控需要释放总线,检查引脚电平变化读取DS18B20 给主控的输入
5.DS18B20时序
1.复位时序:
- 主机先将总线拉低至少480us,再释放总线,代表主机发送复位脉冲;
- 主机如果在60 - 240 us 检测到总线中发出低电平,代表DS18B20 回复了一个存在脉冲
- PS18B20 最终释放总线

2.写时序:
1.写0时序:
- 主机将总线拉低大于60us
- DS18B20 在60us内进行采样,如果采到低电平,则代表发送了一个0;
- 主机释放总线,将引脚拉高
2.写1时序
- 主机将总线拉低大于1us
- 主机释放总线,将引脚拉高
- DS18B20 在45 s内,进行采样,如果采到高电平,代表主机发送了一个1;

3.读时序:
- 主机将总线拉低大于1us,释放总线,引脚变为高电平
- 主机在15us内进行采样
- 若采到1个高电平,代表读到,若采到低电平,则读到0
- 最终DS18B20释放总线
