微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 一种基于DS18B20的温度采集新方案

一种基于DS18B20的温度采集新方案

时间:12-14 来源:互联网 点击:

摘要:目前DS18B20数据的采集方法,存在不能自动更新DS18B20序列号和定位DS18B20的不足,因此不能及时进行 DS18B20的更换。本课题利用单片机I/O端口号和DS18B20的温度报警触发器(TH和TL),作为在外部存储器中的存储地址和DS18B20的物理地址,实现了DS18B20和ROM序列号的自动更新,和温度数据的准确定位。并给出了软、硬件设计。


关键词:DS18B20 AVR单片机;单总线



0 引言


温度监控系统在工业、农业和医疗领域拥有很大的应用价值和前景。随着计算机技术、测量技术和无线通信技术的发展,传统的人工监控由于存在很多缺点,正在逐渐被电子监控所代替。现有的一根I/O线上连接多个DS18B20的数据采集方法,在DS18B20接入系统之前,需要采用人工方式将DS18B20的64位ROM序列号逐一读出,并在单片机程序中或外部存储器中进行存储。这种方法给DS18B20物理位置的确定带来了困难,特别是当更换出现故障的DS18B20时,这个问题变得尤为突出。


因此,本课题通过采用软件编程与硬件设计相结合的方式,解决了在AVR单片机与DS18B20结合的测温系统中数字传感器的更换问题。在本课题提出的解决方案中,数据采集模块采用低功耗AVR单片机-Atmega16、单总线数字温度传感器DS18B20以及外部存储器-低能耗串行EEP-ROM。系统根据DS18B20数量的多少,可以选择基于MAX485的有线组网,也可以选择基于nRF905或ZigBee的分布式无线组网。



1 DS18B20简介


1.1 概述


DS18B20是由美国DALLAS(达拉斯)公司生产的高性能单线数字式温度传感器。该传感器提供9到12位温度读数;可实现-55℃到+125℃范围内的温度测量,增量值为0.5℃。现场测量的温度值通过单总线接口传给微处理器,多个DS18B20可以存在于同一条单线总线上。因此,在实际应用中可以在多个不同的地方放置DS18B20,并将这些传感器接在同一条单线总线上,由一个单片机进行控制。对DS18B20数字传感器供电有两种方式:一是寄生电源供电;二是外部电源供电。每个DS18B20在出厂时都有一个唯一的64位编号,存放在内部ROM中。


1.2 引脚说明


DS18B20只有三个引脚:一个是GDN(电源地);一个是VDD(当采用寄生电源供电时,VDD接地;若采用外部电源供电时,VDD接工作电源 );还有一个引脚是DQ(数据输入/输出引脚)。


1.3 硬件电路


1.3.1 寄生电源供电电路


a.JPG



1.3.2 外部电源供电电路



b.JPG


采用寄生电源供电时,VDD引脚必须接地,由I/O引脚为DS18B20提供电源电流。采用外部电源供电时,VDD接外部电源,为DS18B20提供电源电流。寄生电源有双重优点:a.利用此引脚,远程温度检测无需本地电源;b.缺少正常电源条件下也可以读ROM。但是这种供电方式无法保证在数据转换期间的供电,从而DS18B20无法进行精确地温度转换。当多个DS18B20挂在同一根I/O线上并同时进行温度转换时,这个问题变得更加明显。所以本课题采用外部电源供电方式,以达到提高温度转换精确度的目的。


1.4 内部结构


DS18B20内部主要包括:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。如图3所示:


c.JPG



1.4.1 64位光刻ROM


用于存储64位序列号。该序列号是DS18B20的唯一编号,在出厂前被光刻在64位ROM中。DS18B20在与单片机通信时,用此序列号以区别其它传感器。64位序列号可以看作是DS18B20的地址序列码。


64位光刻ROM的位排列是:低8位是产品类型标号;接着的48位是该DS18B20的自身序列号;最后高8位是低56位的循环冗余校验码,该8位又被单独提出,称为CRC发生器,主要是实现串行通信中的数据校验,判断接收的数据是否正确。64为序列号的作用,是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20。


1.4.2 非易失性温度报警触发器


DS18B20的温度报警触发器TH和TL各由一个非易失性EEPROM字节构成,如果没有对DS18B20使用报警搜索指令,可以作为一般的EEPROM存储器使用。利用每个DS18B20唯一的序列号可读取同一根I/O线上的多个DS18B20的温度数据,利用I/O端口号和已经写入层数信息的DS18B20的温度报警触发器(TH和TL),可将每个DS18B20的温度数据和其物理位置对应起来。因此在DS18B20安装之前,就需将DS18B20所在层的信息写入到温度报警触发器(TH和TL)中。



2 DS18B20与AVR单片机的连接

在本课题中DS18B20采用寄生电源供电,单片机选用AVR单片机-Atmega16。之所以选择AVR单片机,是因为其具有51单片机无法提供的优点:a.读写速度快,AVR单片机采用了大型快速存取寄存器文件和快速单周期指令。其快速存取RISC寄存器文件由32个通用工作寄存器组成。AVR用32个通

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top