一、DS18B20简介
传统的温度检测元件有热敏电阻和热电偶。这些检测元件将所测温度信号转换为模拟电信号输出,需再经A/D转换电路将模拟信号转换为数字信号后送至单片机电路处理。采用这种温度检测方法,系统硬件电路与软件编程都相对复杂。
本文设计采用数字温度传感器DS18B20作为温度检测元件,测温范围为-55~125OC。DS18B20可以直接读出被测温度值,而且采用3线制与单片机相连,硬件电路简单,节省系统成本并提高了系统可靠性。DS18B20主要具有以下特点:
(1)采用单总线(1-wirebus)通信方式,仅需一条口线即可实现与单片机进行数据传输;
(2)具有3引脚小体积封装方式,全部传感元件及转换电路集成在形如一只三极管的集成电路内;
(3)测温范围为-550C~+1250C;
(4)电源供电范围为3.0~5.5V;
(5)可编程为9~12位数字量输出;
(6)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温;
(7)在每个DS18B20器件都有独一无二的序列号。
二、DS18B20内部结构
1.引脚功能
DS18B20为三引脚元件,外形同普通三极管,引脚功能详见下表。
序号 | 名称 | 引脚功能描述 |
1 | GND | 电源地 |
2 | DQ | 为数据(数字信号)输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源; |
3 | VDD | 为外接供电电源输入端(在寄生电源接线方式时此引脚必须接地) |
2.DS18B20内部结构
DS18B20主要由64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、及配置寄存器等组成。
三、DS18B20工作命令
工作时,DS18B20主机(单片机)可以使用各种命令对DS18B20进行操作。操作过程为:初始化DS18B20、发ROM功能命令、发存储器操作命令。
1.读ROM [33H]
这个命令允许总线控制器读到DS18B20的8位系列编码、唯一的序列号和8位CRC码。只有在总线上存在单只DS18B20的时候才能使用这个命令。如果总线上有不止一个从机,当所有从机试图同时传送信号时就会发生数据冲突。
2.匹配 ROM [55H]
这个是匹配ROM命令,后跟64位ROM序列,让总线控制器在多点总线上定位一只特定的DS18B20。只有和64位ROM序列完全匹配的DS18B20才能响应随后的存储器操作。所有和64位ROM序列不匹配的从机都将等待复位脉冲。这条命令在总线上有单个或多个器件时都可以使用。
3.跳过 ROM [0CCH]
这条命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令,在单点总线情况下,可以节省时间。如果总线上不止一个从机,在Skip ROM命令之后跟着发一条读命令,由于多个从机同时传送信号,总线上就会发生数据冲突。
4.搜索 ROM [0F0H]
当系统初次启动时,总线控制器可能并不知道单线总线上有多少器件或它们的64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。
5.报警搜索[0ECH]
这条命令的流程和Search ROM相同。然而,只有在最近一次测温后遇到符合报警条件的情况,DS18B20才会响应这条命令。报警条件定