基于单总线的数字温度传感器
时间:12-04
来源:互联网
点击:
DSl8B20是Dallas生产的支持单总线接口的温度感器。单总线独特而且经济的特点,使用户可轻松地组建传感器网络。与其他温度传感器相比,DSl8B20具有以下特性:
(1)具有3引脚TO-92小体积封装形式。管脚排列:DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。在其内部使用了在板(ON-BOARD)专利技术,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
(2)量范围为-55~+125℃,可编程为9~12位A/D转换精度。测温分辨率可达0.0625℃。被测温度用符号摭展的16位数字量方式串行输出。
(3)其工作电源既可在远端引入,也可采用寄生电源方式产生。
(4)独特的单总线接口方式:DSl8B20在与微处理器连接时仅需要一条口线即可实现微处理器与DSl8B20的双向通讯。
(5)DS18B20支持多点组网功能。多个DSl8B20可以并联在唯一的3线上,实现多点测温,可节省大量的引线和逻辑电路。
1 DS18B20的主要内部结构
DSl8B20内部结构主要由4部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。每一个DSl8B20包括一个唯一的64位长的序号。该序号值存放在DSl8B20内部的ROM(只读存贮器)中。开始8位是产品类型编码(DSl8B20编码均为28H),接着的48位是每个器件唯一的序号,最后8位是前面56位的CRC循环冗余校验码。ROM的作用是使每一个DSl8B20都各不相同,这样就可以实现一根总线上挂接多个DSl8820的目的。
DSl8B20中的温度传感器可完成对温度的测量,以12位转化为例,如图1所示。用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。负温度S=I,正温度S=O。
2 DS18B20的工作原理
2.1 工作序列
根据DSl8B20的通讯协议,主机控制DSl8B20完成温度转换必须经过3个步骤:
(1)每一次读写之前都必须要对DSl8B20进行复位;
(2)复位成功后发送一条ROM指令;
(3)最后发送RAM指令,这样才能对DSl8B20进行预定的操作。
复位要求主CPU将数据线下拉500μs,然后释放,DSl8B20收到信号后等待16~60μs左右,后发出60~240μs的存在低脉冲,主CPU收到此信号表示复位成功。
2.2 ROM操作命令
当主机收到DSl8B20的响应信号后,便可以发出ROM操作命令之一,这些命令如下:
指令代码 代码
Read ROM(读ROM) [33H]
Match ROM(匹配ROM) [55H]
SkipROM(跳过ROM) [CCH]
SearchROM(搜索ROM) [FOH]
Alarmsearch(告警搜索) [ECH]
3 DS18B20的多点测温
3.1 多点测温的原理
每一片DSl8B20在其ROM中都存有其唯一的48位序列号,在出厂前已写入片内ROM中。主机在进入操作程序前必须用读ROM(33H)命令将该DSl8B20的序列号读出:
当主机需要对众多在线18820的某一个进行操作时,首先要发出匹配ROM命令(55H)。接着主机提供64位序列(包括该18B20的48位序列号),之后的操作就是针对该DSl8820的。而跳过ROM命令,之后的操作是对所有D518820的。
程序可以先跳过ROM.启动所有DSl8B20进行温度变换,之后通过匹配ROM,再逐一地读回每个DSl8B20的温度数据。
在DSl8B20组成的多点测温系统中,主机在发出跳ROM命令之后,再发出统一的温度转换启动码44H,就可以实现所有DSl8B20的统一转换。再经过1s后就可以用很少的时间去逐一读取,这种方式使其时间值往往小于传统方式(由于采取公用的放大电路AD转换器,只能逐一转换)。显然通道数越多这种省时效应就越明显。
3.2 多点测试系统的组建
实验采用AT89C51为主机,3个DSl8B20组成一个多点测试系统,如图2所示。硬件接口非常简单。DSl8B20的3个管脚DQ、VDD、GND分别接到主机的数据脚P1.0口、外接电源VCC以及GND上,非常节约资源,仅仅用到了主机的一条口线。
根据多点测温的原理,软件基本流程为:复位→眺过匹配(0CCH)→发出温度转换命令(44H)→延时1s→复位→匹配1号DSl8B20(55H)→读取1号
温度→复位→匹配2号DSl8B20(55H)→读取2号
温变→复位→匹配3号DSl8B20(55H)→读取3号温度。
由于DSl8B20与微处理器间采用串行数据传送,在对DSl8B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。因此,对DSl8B20操作部分采用了汇编语言来实现,晶振12MHz,温度三感器采用器件默认的12位转化,最大转化时间为750μs。图3为初始化流程图,图4为多点温度读取转换流程图。
根据多点测温的原理,软件基本流程为:复位→眺过匹配(0CCH)→发出温度转换命令(44H)→延时1s→复位→匹配1号DSl8B20(55H)→读取1号
温度→复位→匹配2号DSl8B20(55H)→读取2号
温变→复位→匹配3号DSl8B20(55H)→读取3号温度。
由于DSl8B20与微处理器间采用串行数据传送,在对DSl8B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。因此,对DSl8B20操作部分采用了汇编语言来实现,晶振12MHz,温度三感器采用器件默认的12位转化,最大转化时间为750μs。图3为初始化流程图,图4为多点温度读取转换流程图。
5 结束语
将3个DSl8B20构建成为一个多点测试系统,实现了多点温度测量,其转换精度高,抗干扰能力强,使用时无需标定或调试;与微处理器的接口简单,可方便地实现多点组网测温。给硬件设计工作带来了极大的方便。另外采用0518B20能有效地降低成本,简化系统设计,缩短开发周期,占用系统I/O资源少、扩展方便 ,在多点温度检测中将有极为广泛的应用前景。
- 单总线协议(ds18b20)读写详解(12-01)
- I-wire总线(单总线)读写51程序(11-26)
- DS18B20单总线温度控制(11-17)
- 基于单总线的分布式温湿度监测系统设计(01-11)
- 单总线传感器DHT11在温度测控中的应用(12-11)
- 单总线技术及其应用(12-10)