基于DSl8820的多点温度测量系统设计
介绍一种基于数字温度传感器芯片DSl8820的高精度、多点温度测量系统设计方案;阐述单总线数字温度传感器DSl8820的基本工作原理和使用方法;主要分析由多个DSl8820组成的温度传感器网络的自动搜索算法,井给出系统设计实例。
本文引用地址:http://www.amcfsurvey.com/article/78718.htm引 言
在传统的温度测量系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。美国Dallas半导体公司推出的数字温度传感器DSl8820,具有独特的单总线接口,仅需要占用一个通用I/O端口即可完成与微处理器的通信;在一10~+85℃温度范围内具有±O.5℃精度;用户可编程设定9~12位的分辨率。以上特性使得DSl8820非常适用于构建高精度、多点温度测量系统。
1 DSl8820简介
1.1 DSl8820的特点
DSl8820是美国Dallas半导体公司继DSl820之后最新推出的一种改进型智能数字温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过编程实现9~12位的数字值读数方式;可以分别在93.75ms和75O ms内完成9位和12位的数字量;从DSl8820读出信息或写入DSl8820信息仅需要1根口线(单线接口);温度变换功率来源于数据总线,总线本身也可以向所挂接的DSl8820供电,而无需额外电源。使用DSl8820可使系统结构更趋简单,可靠性更高。DSl8820在测温精度、转换时间、传输距离、分辨率等方面较DSl820有了很大的改进。
1.2 DSl8820内部结构及工作原理
DSl8820的内部结构如图1所示,主要包括寄生电源电路、64位只读存储器(ROM)和单线接口、存储器和控制逻辑、存放中间数据的高速暂存存储器、温度传感器、报警上限寄存器TH、报警下限寄存器TL、配置寄存器和8位CRC(循环冗余校验码)发生器。
DSl8820的核心是其数字温度传感器,精度可以通过用户编程配置为9、10、ll和12位,其分别对应于0.5℃、O,25℃、O.125℃和0.062 5℃,可以满足各种不同的分辨率要求。开始一次温度转换时,微处理器需要向DSl8820发出Convert T指令。转换完成之后,该温度数据存放在高速暂存存储器的温度寄存器中,占用2字节,并且DSl8820返回到空闲状态。当DSl8820采用外部供电方式时,主机可以在发送温度转换指令后发起一次读时隙。若此时该DSl8820已经完成温度转换,它将会返回“1”,否则返回“0”。
2 温度测量系统设计
由DS18820和美国Microchip公司推出的PIC单片机PICl8F8620以及相关外围电路组成的高精度、多点温度测量系统的结构框图如图2所示。系统采用6片DSl8820构成小型温度传感器网络,通过单线连接方式连接至微处理器的通用I/O端口RB0。其中DSl8820的分辨率为11位模式,即O.125℃。微处理器通过单线协泌与温度传感器网络实现通信。微处理器获得温度信息后,通过特定的算法,将处理后的温度信息通过USB口或RS485接口传送至上位机。
2.1 DSl8820的自动搜索算法
由于系统中使用了多片DS18B20构成温度传感器网络,因此,如何准确、有效地对每一温度传感器进行寻址成为该系统设计的一个核心问题。结合DS18820的实际特点和系统的需求,提出如下解决方案:首先利用DS18820的内部报警上限寄存器(如图1所示,以下简称“TH寄存器”)存放温度传感器的编号,并将其编号贴在温度传感器表面。由于TH寄存器具有掉电不丢失数据功能,因此,便把每片DSl8820的唯一64位注册码及其编号一一对应起来。这一过程需要对DSl8820进行单独编程。然后,将确定好编号的温度传感器接入单线网络,利用DSl8820特有的单线网络自动搜索功能,即可搜寻到每片DSl8820的注册码,再利用该注册码和相应的ROM操作指令,即可从每片DSl8820的TH寄存器中读出相应的设定编号,实现每片DS18820的寻址功能。下面重点介绍一下该自动搜索功能。
每片DS18820有唯一的64位注册码,存储在只读存储器(ROM)中,其结构如下:
其中低8位是产品的工厂代码(DSl882(1为28H),接着是每个器件的唯一序号,共48位,最高8位是前56位的循环冗余校验码。这就准许总线主机对总线上特定的DS18820进行寻址。只有与64位注册码严格相符的DSl8820,才能对后续的操作作出反应。所有与64位注册码不符的DSl8820将等待复位脉冲。
搜索算法首先通过复位和在线应答脉冲时隙将单线总线上的所有DS18820复位。成功地执行该操作后发送1字节的搜索命令,使所有连接到单总线的DSl8820准备就绪,开始进行搜索操作。搜索命令发出之后,开始实际的搜索过程。
首先,总线上的所有DSl8820同时发送注册码中的第1位(最低有效位,参见上述DS18820内部64位注册码结构)。按照单总线的特性,当所有DS18820同时应答主机时,结果相当于全部被发送数据位的逻辑“与”。DSl8820发送其注册码的第1位后,主机启动下一位操作,接着DS181320发送第l位数据的补码。从两次读到的数据位可以对注册码的第1位作出几种判断,如表1所列。
然后,主机向总线上的所有器件发回一个指定位。如果DSl8820巾注册码的当前位的值与该数据位匹配,则继续参与搜索过程;若DS18820的当前位与之不匹配,则该器件转换到等待状态并保持等待状态,直到下一个复位信号到来。其余63位注册码的搜索依然按照这种读2位写1位的模式进行重复操作。按照这种搜索算法进行下去,最终除了唯一一个DSl8820外,所有DS18820将进入等待状态,经过最后一轮检测就可得到最后保留未进入等待状态的DSl8820的注册码。在后续搜索过程中选用不同的路径或分支来查找其他器件的注册码,即可完成所有器件注册码的识别。
2.2 软件系统设计
系统软件采用C语言编写。在中断服务程序中,实现用户输入以及和上位机的接口功能;在主程序中,实现温度传感器网络的自动搜索、编号排序、获取温度信息,并根据预先设定的温度上下限,实现相应的报警功能。该系统中,根据不同的分辨率要求,DSl8820的分辨率可通过编程设定,最高分辨率为12位,即0.0625℃,可满足高精度设计要求。同时,由于设计中使用传感器网络的自动搜索算法,因此,当对网络中的温度传感器作出调整(如更换、添加、删除等操作)时,系统具有很强的自适应能力。系统软件流程如图3所示。
3 结论
在传统的温度测量系统中,往往采用模拟的温度传感器进行设计,必须经过A/D转换后才可以被微处理器识别和处理。这样的设计方法不仅对前端模拟信号处理电路提出了更高的要求,而且不具有数字通信和网络功能。本文结合DSl8820的新特性和现代温度测量系统提出的新要求,提出了基于智能数字温度传感器DSl8820的高精度、多点温度测量系统设计方案。该方案具有安装方便、数字化程度高、精度高、适应性强等特点,在多种温度检测中具有广阔的应用前景。
评论