搜档网
当前位置:搜档网 › A201003-591

A201003-591

A201003-591
A201003-591

温度数据采集系统的设计与实现

卞绍顺,王利华

中国矿业大学信息与电气工程学院,江苏徐州(221008)

E-mail:bianshaoshun@https://www.sodocs.net/doc/0b15830397.html,

摘要:本设计的主要目的是实现实时温度数据采集。在硬件上采用单片机AT89S52作为主处理芯片,通过温度传感器DS18B20对温度数据进行采集,将测得温度通过RS232串行接口标准送入计算机。上位机使用VB中的MSComm控件实现与下位机通讯,并在VB界面上显示监测点的实时温度值、最大值、最小值和采集温度的个数。

关键词:温度数据采集;单片机;Visual Basic;串行通讯

1 概述

随着科学技术的进步,在生产和科学实验中,常常要测控很多参数,诸如温度、压力、转速等,通常的方法是使用专用的仪表人为观测、记录处理数据、做出判断。然而,专用的这些仪表往往价格昂贵,外围电路比较复杂,测量精度受所选设备影响。因而传统的检测与控制越来越适应不了社会的要求。如何将计算机与各种设施、设备结合,简化人工操作并实现自动控制,满足社会的需求,成为一个很迫切的问题。本文根据自己的实验所写,实现一种实时温度数据采集系统,对采集数据的远距离传输,由于单片机处理数据的能力不是很快,因此需要单片机跟其他数据处理设备(例如PC机)进行交换,设计实时监控系统能很好的解决这些问题。

2 温度采集系统组成

系统分为两部分:实时温度数据采集终端(下位机)和通信控制软件(上位机)。数据采集终端(下位机)主要由AT89S52、DS18B20、MAX232组成。温度传感器DS18B20将被测环境温度转化成带符号的数字信号并传送给单片机,同时将信号进行编码传送给上位机。通信控制软件(上位机)主要由微机、主控软件等部分组成。上位机的控制界面采用Visual Basic6.0语言编写,上位机通过串口与下位机通信。在VB6.0的控件工具箱中,提供了一个使用非常方便的串行通信控件MSComm,可以通过这个控件控制COM口进行通讯[2]。下位机检测到现场温度数据,传送到上位机,上位机接收到数据,并对数据进行监测。上位机可以接收下位机传输的不同的测量的值,并在监控界面中显示出来,使用户能够看到现场测量温度的数值变化情况。

3 下位机系统的硬件设计

下位机部分主要由温度传感器、单片机等组成,在现场采集温度信号,并将温度信号转换成数字信号,通过RS232接口标准传送给上位机。温度传感器DS18B20的输出线与单片机AT89S52的P3.3口相连。AT89S52的输入端RXD和输出端TXD分别从芯片的10口和11口引出,并与MAX232的输出口12和输入口11相连。MAX232的输出口14和输入口13分别与DB9的输入口2和输出口3相连。实现下位机AT89S52与上位机PC的连接。硬件电路图见图1

图1温度数据采集系统原理图

通过这个电路我们便可以实现温度的采集、传输、以及在上位机上的显示,使用户能够清晰的了解现场温度的变化。实际做出的电路板如图2

图2温度数据采集系统下位机

3.1单片机的选择

单片机选择AT89S52,它是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案[3]。单片机的程序设计采用汇编语言,用查询方式采集温度数据,并进行数据处理。考虑到现在PC机很少带有串口,加上了USB口,当然程序要变的更为复杂。

3.2温度传感器的选择

DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在

远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU 只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。

3.3 其他器件选择

MAX232是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。由于电脑串口RS232电平是-10v +10v,而一般的单片机应用系统的信号电压是TTL电平0 +5v,MAX232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平[4]。该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F 电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F 电平。

4 上位机软件设计

上位机的控制界面采用Visual Basic6.0语言编写,通过COM口与下位机连接。将监控到的温度数据在监控界面中显示出来,使用户能够直观的了解到现场温度变化,并能够保存采集到的温度数据。而VB在程序界面设计、多媒体开发方面更是独具优势。因此特别适合初学者和业余人员使用。

4.1 VB环境下串行通讯的方法

VB中的MSComm控件是Microsoft公司提供的Windows下串行通讯编程的ActiveX控件。在VB工具工具栏里面打开工程,选中其中的部件,再在部件里面的控件栏里选中Microsoft Comm Control 6.0 图形如图3。在VB中的图标见图4。MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。

图3 Microsoft Comm Control 6.0 图形

图4串行通讯控件图标

4.2 VB界面设计

VB的设计界面包含5个Text文本框,2个Frame,4个Label,3个Command,一个Mscomm 控件和1个Time。Text1显示的是当前接收数据的内容,Text2显示的是所有接收到的数据,Text3显示的是所有接收数据中的最高值,Text4显示的是所有接收数据的最低值,Text5显示的是所有接收数据的个数。Frame1的内容是接收温度的最高、最低值,Frame2的内容是接收的温度数据。Label1的内容是当前温度,Label2的内容是温度最高值,Label3的内容是温度最低值,Label4的内容是数据个数。Command1的是接收按钮,Command2的内容是清空按钮,Command3是导出数据按钮以EXCEL形式表示出来[1]。其中VB的程序编写比较简单,文章中就不介绍编程思想。程序主界面如图5:

图5上位机界面

图6 EXCEL数据表

上图中显示的是以EXCEL形式导出的数据图,当我们点击导出数据时程序便会以EXCEL形式将文本框中的内容表示出来,并保存到电脑中。方便了我们对数据的统计分析,为以后的研究提供了方便。

5 总结

本次设计达到了预期效果,但是其中还有很多地方需要改进,比如说在设计中没有实现多点同时测量,传输距离比较近等问题。RS232接口是标准串行接口,其通讯距离小于15m,不能实现数据的远距离传输。这样大大限制了它的应用范围,为弥补RS-232之不足,电子工业协会(EIA)制订RS-422串口标准,将传输速率提高到10Mb/s传输距离延长到1000M (速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。这样就可以实现数据的远距离传输,使得温度数据采集系统应用的范围更加广泛。这些都需要在以后的设计中进一步完善。

参考文献

[1] 何东健,李书琴.Visual Basic 程序设计教程[M],西安:西北大学出版社,2005.

[2] 陈立元.利用Visual Basic 实现串并行通信技术[M],北京:清华大学出版社,2001.

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

[4] 胡汗才.单片机原理及其接口技术[M],北京:清华大学出版社,2003

Temperature Data Acquisition System Design and

Implementation

Bian shaoshun, Wang lihua

School of Information and Electrical Engineering of CUMT, Jiangsu Xuzhou (221008)

Abstract

The main purpose of this design is to achieve real-time temperature data collection. In the hardware to control the use of single-chip AT89S52 as the core, through the temperature sensor DS18B20 the temperature data collection, using the standard RS232 serial interface temperature measurement system into the computer. PC use in VB to achieve control of MSComm PC machines with lower communication, and VB-based surface display real-time monitoring of temperature, maximum, minimum temperature and the number of collection.

Keywords:real-time temperature data collection;single-chip;Visual Basic;serial communication

相关主题