DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出,相比较于模拟温度传感器(如热敏电阻),具有功能强大、硬件简单、易扩展、抗干扰性强等特点
测温范围:-55°C 到 +125°C通信接口:1-Wire(单总线)
其它特征:可形成总线结构、内置温度报警功能、可寄生供电
通过DQ线对该器件进行通讯
单总线:
单总线(1-Wire BUS)是由Dallas公司开发的一种通用数据总线
一根通信线:DQ异步、半双工
单总线只需要一根通信线即可实现数据的双向传输,当采用寄生供电时,还可以省去设备的VDD线路,此时,供电加通信只需要DQ和GND两根线
单总线电路规范:
- 设备的DQ均要配置成开漏输出模式
- DQ添加一个上拉电阻,阻值一般为4.7KΩ左右(前两条原因同I2C多机通讯)
- 若此总线的从机采取寄生供电,则主机还应配一个强上拉输出电路
不采用寄生供电:
采用寄生供电:
单总线时序结构:
ROM指令:对64 BIT ROM进行操作
功能操作:对RAM暂存器进行操作
数据帧:
sbit OneWire_DQ = P3^7;
/**
* @brief 单总线初始化
* @param
* @retval 从机应答返回0,反之返回1
*/
unsigned char OneWire_Init(){
unsigned char i, AckBit;
OneWire_DQ = 1; // 初始化DQ
OneWire_DQ = 0; // 拉低DQ
i = 219; while (--i);// 主机延时481us
OneWire_DQ = 1; // 主机释放总线
i = 29; while (--i