首页 > 范文大全 > 正文

基于单总线数字传感器的温度控制系统原理及应用

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于单总线数字传感器的温度控制系统原理及应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:随着现代化生产和科学研究的发展,人们对温度过程控制的要求越来越高。文章介绍以单片机 P89C668为核心的智能温度控制系统。它使用一线制数字温度传感器DS18B20采集温度,与传统测温装置相比,具有结构简单,测温精度高、应用面广等特点。另外,系统还扩展了和上位计算机的串行通信,实现远程监控。整个系统不但成本低廉、而且使用和扩展方便,可广泛应用于人们日常生活、工农业生产和科学研究领域,为广泛深入应用提供了借鉴。

关键词:单片机;DS18B20;单总线;温度控制;串行通信

中图分类号:TP216文献标识码:A文章编号:1009-3044(2008)31-1011-03

The Principle and Application of Temperature Control System of 1-Wire Digital Sensor

XUE Feng1,2, WANG Hong-hai2

(1.The School of Electrical Science and Technology of Anhui University, Hefei 230039, China; 2. Department of Information and Communication Technology, Anhui Sanlian College, Hefei 230601, China)

Abstrsct: With the development of moden industry and science research, it is higher of the demand of temperature controlling. The article introduces the intellectual temperature control system based on single chip microcomputer of P89C668. It makes use of 1-Wire digital temperature sensor of DS18B20 to collect temperature. Compared withthe traditional measuring system, it features simple construction, accurate measuring and wide application. In addition, it develops serial communication of PC, achieves long-distance monitor and control. This system is low-cost and convenient to use. It can apply to people's daily life, scientific research andindustrial and agricultural production.

Key words: single chip microcomputer; DS18B20; 1-Wire bus; temperature; temperature control; serial communication

1 引言

随着科学技术的不断进步与发展,温度控制在工业控制、电子测温计、医疗仪器、家用电器等各种温度控制系统中广泛应用。目前,国际上新型温度传感器正从模拟式向数字式,从集成向智能化、网络化的方向飞速发展,其中以美国 DALLAS公司生产的DS18B20数字温度传感器为代表。DS18B20是一种单总线(1-Wrie)数字温度传感器,可把温度信号直接转换成串行数字信号供微机处理,在一条总线上可挂接多个DS18B20芯片,微处理器只需1根端口线就能与诸多 DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。本文介绍以P89C668单片机为控制核心,由数字温度传感器DS18B20组成的测温系统进行的温度测量处理。

2 系统构成

系统分为现场温度数据采集和上位监控计算机两部分。图1为系统的结构图。

下位机主要由单片机P89C668、采集温度的温度传感器DS18B20、键盘、显示电路、报警电路、RS232通信接口组成,单片机通过对采集到的温度数据进行分析处理,并将数据上传给上位机,下位机可以脱离上位计算机而独立工作。系统中设计上位机的目的在于能够更方便地远离现场实现监控、管理,上位机与下位机的数据传送接口采用RS232接口。

2.1 DS18B20单总线数字温度传感器

DS18B20数字温度传感器是一种新型“一线器件”产品,它具有体积小、适用电压宽、接口方便、传输距离远等特点。主要性能特点有:①采用单总线专用技术,微处理器仅需要1条端口线即可实现与DS18B20的双向通信。②内含寄生电源,电压范围:3.0~5.5V,支持外接电源。③测温范围:-55~125℃。通过编程可实现9-12位的数字读数方式。④12位数字(测温分辨率达 0.0625℃)转换时间750ms(最大)。⑤用户可自设定非易失性的报警上下限值。

DS18B20内部框图如图2所示。ROM中的64位序列号是出厂前被光刻好的,可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。通过识别不同序列号标志,可以实现1根总线上挂接多个DS18B20的目的。

其温度灵敏元件可完成对温度的测量,测到的温度以16位带符号扩展的二进制补码形式,存储在高速暂存存储器的第0、1字节。第2个字节和第3个字节存放用户设定的温度上下限值(TH和TL)。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.0625℃/LSB形式表示。DS18B20完成温度转换后,就把测得的温度值与TH,TL做比较,若T>TH或 T<TL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令做出响应。

3系统硬件电路设计

本温度控制系统选择菲利浦公司生产的P89C668单片机为控制核心,P89C668具有64K可编程的非易失性FLASH程序存储器和8K数据存储器,存贮容量大,不需外接存储器,为单片机控制显示驱动电路预留了大量的I/O口,方便电路进一步的扩展。此外,P89C668可选择1个机器周期由6个时钟周期组成的工作方式,运行速度就可比传统80C51提高一倍。

3.1 系统主电路设计

系统主要由三部分组成:DS18B20与单片机接口电路、显示电路、输出控制电路。硬件结构如图3所示。

3.1.1 DS18B20与单片机接口电路

DS18B20与单片机P89C668连接非常简单,只需将DS18B20信号线与单片机一位I/O线相连,且一位I/O线可连接多个DS18B20,以实现单点或多点温度测量。温度传感器 DS18B20将被测环境温度转化成带符号的数字信号,输出脚 DQ直接与单片机的P3.2相连,接4.7K上拉电阻,传感器采用外部电源供电。若采用带屏蔽的双绞电缆线,传感器可置于离装置150米以内的任何地方。P89C668是整个装置的控制核心,用户程序存放在P89C668的64K字节的FlashROM里。

3.1.2 显示电路

显示器模块由四位共阳数码管和4个9012组成,根据设计温度范围需要,三个数码管显示测量的温度,一个数码管显示温度符号。用户可通过数码管的显示数据来确定系统的当前工作状态以及即时观察所采样的温度值信息等。为节约成本,采用单片机直接驱动数码管,动态扫描方式。

3.1.3 键盘及报警电路

键盘电路主要通过编程完成设置、查询等功能,如对系统的复位,温度值进行标定设置,给传感器设定上下限报警值等。当被测温度值超过预先设定的上下限时,由报警电路作出响应,蜂呜器发出响声,告知用户温度的异常,继而调整该现场温度,以达到对温度波动的控制。

3.1.4 输出控制电路

系统的输出模块设计采用固态继电器控制外部加热或制冷设备从而达到调节温度的目的。固体继电器是一种四端器件,两个输入端,两个输出端。输入端接控制信号,输出端与负载、电源串联,实际是一个受控电力电子开关。单片机通过处理设定温度与当前温度,通过PID算法,从P1.7口输出PWM波,经ULN2003反相驱动后作为固体继电器的控制信号。

3.2 串行通信电路

本系统用串口实现单片机与上位计算机的连接,下位机向上位机上传温度值,上位机显示此温度值,并可以整定PID参数,让系统得以适用于不同的对象,具体电路可以选择MAX232芯片与DB9接口连接。限于篇幅,这里不给出具体电路。

4 软件设计及流程

系统软件主要包括系统初始化程序、LED显示子程序、DS18B20信号处理程序子程序、温度计算子程序、温度判断分析及报警子程序、按键处理子程序和串口通信程序设计等,所有下位机程序均采用MCS51汇编语言编写。系统主程序流程如图5所示。为节省篇幅,以下仅介绍DS18B20信号处理程序设计和串口通信程序设计。

4.1 DS18B20信号处理程序设计

DS1820单线通信功能是分时完成的,它有严格的时隙概念。因此系统对DS1820的各种操作必须按协议进行。操作协议为:初始化DS1820(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。[1-2]

DS18B20操作程序流程如图6所示。其中任何一步失败时自动重新初始化。

对单个DS18B20温度进行1次转换并读取温度值子程序ZH_T如下。

ZH_T:LCALL INIT;复位 DS18B20

JNB 00H,$+4

RET;复位错误,则返回

MOV A,#OCCH

LCALL WRITE;发跳过 ROM 命令

MOV A,#44H

LCALL WRITE;发启动转换命令

LCALL DELAY;等待 DS18B20转换

LCALL INIT

MOV A,#0CCH;发跳过 ROM命令

LCALL WRITE

MOV A,#OBEH;发读存储器命令

LCALL WRITE

LCALL READ

MOV 40H,A;温度值低位存 30H

LCALL READ

MOV 41H,A;温度值高位存 31H

RET

4.2 串行通信程序设计

P89C668单片机通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界通讯SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。在四种工作方式中,方式0和2的波特率是固定的,方式1和3的波特率是可变的,由定时器T1的溢出率控制。方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当。

上位机编程中,我们采用最常用的通信控件MSComm来实现可视化界面。MSComm控件的常用属性有:CommPort设置并返回通讯端口号;Settings以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位;PortOpen设置并返回通讯端口的状态。也可以打开和关闭端口;Input从接收缓冲区返回和删除字符;Output向传输缓冲区写一个字符串。

串口初始化如下:

RXTXDlg::CHSHUDialog( )

{

Comport.SetCommPort(1);//设定串口号为 COM1

if(!Comport.GetPortOpen( )) //判断串口是否已经打开

Comport.SetPortOpen(TRUE);//打开指定的串口

Comport.SetSettings("19200,n,8,1"); //设置波特率、数据位、停止位等参数

Comport.SetRThreshold(n);//设定每接受 n个字符触发一次MSComm事件

Comport.SetlnputLen(0); //设置读取方式

Comport.Getlnput( );//预置缓冲区以清除残留数据

return TRUE;

}

5 结束语

本文介绍的智能温度控制系统,由于所采用的单总线数字温度传感器DS18B20其体积小,构成系统结构简单,能有效地降低成本,缩短开发周期。通过 RS232通信进行数据上传,可由上位计算机处理复杂数据,提高了系统的速度和性能,并且系统能够适应远程控制、恶劣环境条件下工作等优点,在人们日常生活和工农业生产中,有着广泛的应用前景。

参考文献:

[1] DS18B20 Data Sheet[Z].DALLAS SEMICONDUCTOR,2001.

[2] 韩志军,刘新民. 数字温度传感器DS18B20及应用[J].南京工程学院学报(自然科学版),2003,1(1):9-14.

[3] 沙占有. 智能化集成温度传感器原理应用[M].北京:机械工业出版社.2002.

[4] 储海兵,谭功全.单片机温度控制实验系统[J].仪表技术,2007,12(5):22-24.

[5] 刘俊伏,宗云.DS18B20与单片机的接口及编程技术[J].河北工业科技,2007,24(4):227-229.

[6] 何立民.单片机应用系统设计[M].北京:北京航空航天大学出版社,1995.