工控网首页
>

应用设计

>

基于单总线的数字温度传感器

基于单总线的数字温度传感器

2006/4/28 9:37:00

   [摘 要]:介绍了Dallas公司的单总线数字数字传感器DS19B20的特性、工作原理及传输通讯协议。该芯片能够在单总线上进行双向数据传输,并可组网实现多点测温。文章给出了单总线数字温度传感器多点测试技术及应用实例。

   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资源少、扩展方便 ,在多点温度检测中将有极为广泛的应用前景。

投诉建议

提交

查看更多评论
其他资讯

查看更多

智光节能内蒙古阿拉善左旗瀛海建材余热发电机组首次启动成功

智光电气台州电厂给水泵系统节能改造项目成功投运

智光节能荣登2014年度全国节能服务公司百强榜第五位

索引程序编程凸轮表

奥越信300系列PLC手册