DS18B20构成的多点温度测量系统

2007-03-22 13:56:27来源: 单片机及嵌入式系统应用

引 言

在传统的温度测量系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向「1」。美国Dallas半导体公司推出的数字温度传感器DSl8820,具有独特的单总线接口,仅需要占用一个通用I/O端口即可完成与微处理器的通信;在-10~+85℃温度范围内具有±0.5℃精度;用户可编程设定9~12位的分辨率。以上特性使得DSl8820非常适用于构建高精度、多点温度测量系统。

1 DSl8B20简介

1.1 DSl8B20的特点

DSl8820是美国Dallas半导体公司继DSl820之后最新推出的一种改进型智能数字温度传感器[2]。与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过编程实现9~12位的数字值读数方式;可以分别在93.75 ms和750 ms内完成9位和12位的数字量;从DSl8820读出信息或写入DSl8820信息仅需要1根口线(单线接口);温度变换功率来源于数据总线,总线身也可以向所挂接的DSl8820供电,而无需额外电源。使用DSl8820可使系统结构更趋简单,可靠性更高。DSl8B20在测温精度、转换时间、传输距离、分辨率等方面
较DSl820有了很大的改进。

1.2 DSl8B20内部结构及工作原理

DSl8B20的内部结构「3」如图1所示,主要包括寄生电源电路、64位只读存储器(ROM)和单线接口、存储器和控制逻辑、存放中间数据的高速暂存存储器、温度传感器、报警上限寄存器TH、报警下限寄存器TL、配置寄存器和8位CRC(循环冗余校验码)发生器。

 

DSl8B20的核心是其数字温度传感器,精度可以通过用户编程配置为9、10、11和12位,其分别对应于O.5℃、O.25℃、O.125℃和O.062 5℃,可以满足各种不同的分辨率要求。开始一次温度转换时,微处理器需要向DSl8B20发出Convert T指令。转换完成之后,该温度数据存放在高速暂存存储器的温度寄存器中,占用2字节,并且DSl8B20返回到空闲状态。当DSl8B20采用外部供电方式时,主机可以在发送温度转换指令后发起一次读时隙。若此时该DSl8820已经完成温度转换,它将会返回"1",否则返回"O"。

2 温度测量系统设计

由DSl8B20和美国Microchip公司推出的PIC单片机PICl8F8620以及相关外围电路组成的高精度、多点温度测量系统的结构框图如图2所示。系统采用6片DSl8820构成小型温度传感器网络,通过单线连接方式连接至微处理器的通用I/O端口RBO。其中DSl8B20的分辨率为11位模式,即0.125℃。微处理器通过单线协议与温度传感器网络实现通信。微处理器获得温度信息后,通过特定的算法,将处理后的温度信息通过USB口或RS485接口传送至上位机。

2.1 DSl8820的自动搜索算法「4」

由于系统中使用了多片DSl8B20构成温度传感器网络,因此,如何准确、有效地对每一温度传感器进行寻址成为该系统设计的一个核心问题。结合DSl8B20的实际特点和系统的需求,提出如下解决方案:首先利用DSl8B20的内部报警上限寄存器(如图1所示,以下简称"TH寄存器")存放温度传感器的编号,并将其编号贴在温度传感器表面。由于TH寄存器具有掉电不丢失数据功能,因此,便把每片DSl8B20的唯一64位注册码及其编号一一对应起来。这一过程需要对DSl8B20进行单独编程。然后,将确定好编号的温度传感器接入单线网络,利用DSl8B20特有的单线网络自动搜索功能,即可搜寻到每片DSl8B20的注册码,再利用该注册码和相应的ROM操作指令,即可从每片DSl8B20的TH寄存器中读出相应的设定编号,实现每片DSl8820的寻址功能。下面重点介绍一下该自动搜索功能。

每片DSl8B20有唯一的64位注册码,存储在只读存
储器(ROM)中,其结构如下:

 

其中低8位是产品的工厂代码(DSl8B20为28H),接着是每个器件的唯一序号,共48位,最高8位是前56位的循环冗余校验码。这就准许总线主机对总线上特定的DSl8B20进行寻址。只有与64位注册码严格相符的DSl8B20,才能对后续的操作作出反应。所有与64位注 册码不符的DSl8B20将等待复位脉冲。

搜索算法首先通过复位和在线应答脉冲时隙将单线总线上的所有DSl8B20复位。成功地执行该操作后发送1字节的搜索命令,使所有连接到单总线的DSl8B20准备就绪,开始进行搜索操作。搜索命令发出之后,开始实际的搜索过程。

首先,总线上的所有DSl8B20同时发送注册码中的第1位(最低有效位,参见上述DSl8B20内部64位注册码结构)。按照单总线的特性,当所有DSl8B20同时应答主机时,结果相当于全部被发送数据位的逻辑"与"。DSl8B20发送其注册码的第1位后,主机启动下一位操作,接着DSl8B20发送第1位数据的补码。从两次读到的数据位可以对注册码的第1位作出几种判断,如表1所列。 


然后,主机向总线上的所有器件发回一个指定位。如果DSl8B20中注册码的当前位的值与该数据位匹配,则继续参与搜索过程;若DSl8B20的当前位与之不匹配,则该器件转换到等待状态并保持等待状态,直到下一个复位信号到来。其余63位注册码的搜索依然按照这种读2位写1位的模式进行重复操作。按照这种搜索算法进行下去,最终除了唯一一个DSl8B20外,所有DSl8B20将进入等待状态,经过最后一轮检测就可得到最后保留未进入等待状态的DSl8B20的注册码。在后续搜索过程中选用不同的路径或分支来查找其他器件的注册码,即可完成所有器件注册码的识别。

2.2软件系统设计

系统软件采用C语言编写。在中断服务程序中,实现用户输入以及和上位机的接口功能;在主程序中,实现温度传感器网络的自动搜索、编号排序、获取温度信息,并根据预先设定的温度上下限,实现相应的报警功能「5」。该系统中,根据不同的分辨率要求,DSl8B20的分辨率可通过编程设定,最高分辨率为12位,即O.062 5℃,可满足高精度设计要求。同时,由于设计中使用传感器网络的自动搜索算法,因此,当对网络中的温度传感器作出调整(如更换、添加、删除等操作)时,系统具有很强的自适应能力.系统软件流程如图3所示


3 结 论

在传统的温度测量系统中,往往采用模拟的温度传感器进行设计,必须经过A/D转换后才可以被微处理器识别和处理。这样的设计方法不仅对前端模拟信号处理电路提出了更高的要求,而且不具有数字通信和网络功能。本文结合DSl8B20的新特性和现代温度测量系统提出的新要求,提出了基于智能数字温度传感器DSl8B20的高精度、多点温度测量系统设计方案。该方案具有安装方便、数字化程度高、精度高、适应性强等特点,在多种温度检测中具有广阔的应用前景。

关键字:传感器  通信  编程

编辑: 引用地址:http://www.eeworld.com.cn/Test_and_measurement/zhzx/200703/1895.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
传感器
通信
编程

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved