基于Proteus和LabVIEW软件的温度采集系统的设计与仿真

2011-03-18 08:11邢鹏康刘彦华
河北软件职业技术学院学报 2011年2期
关键词:机系统下位上位

邢鹏康,刘彦华

(河南工业职业技术学院 电子工程系,河南 南阳 473009)

0 引言

温度采集系统是我们日常生活环境或者工业现场经常需要用到的系统,一般由下位机系统和上位机系统两部分构成,其中下位机系统负责温度信号的采集,一般由单片机、数字温度传感器、通讯接口电路等部分组成,上位机系统负责监控下位机的运行、数据的处理等。开发上位机的编程语言有很多,如面向对象的高级语言VC++、VB、Dephi,图形化编程语言LabView、中文编程语言易语言等[1]。

在系统设计前阶段,利用计算机仿真技术进行电子工程项目的验证论证,不仅可以降低成本,而且还可以大大缩短开发周期,提高开发效率。随着EDA仿真软件功能越来越强大和完善,该技术也日益普及[2]。本文以常用的温度采集系统为例,下位机系统利用Proteus进行仿真运行,上位机利用Lab-VIEW编程实现对下位机数据的采集和显示,两个软件之间采用虚拟串口进行RS-232串行通信,在纯软件仿真环境下,完成温度采集系统的组建。

1 下位机系统设计

1.1 硬件仿真电路

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件,它不仅具有其他EDA工具软件的模拟和数字电路仿真功能,而且还能仿真单片机及外围器件,是目前最好的仿真单片机及外围器件的工具,因此本次设计采用Proteus作为下位机的仿真平台[3]。

系统硬件电路主要由单片机的最小系统、数字温度传感器和串口通信三部分电路组成。其中单片机选用最常用的STC89C52,温度传感器选用常用的数字温度传感器DS18B20,器件采用单器件接法,数据线DQ通过上拉电阻连接到单片机P3.6引脚。在Proteus软件环境下,单片机和计算机进行RS232串行通信是靠COMPIM器件来实现的,在仿真时,可以不需要电平转换芯片MAX232进行RS232电平和TTL电平转换,直接将51单片机的RXD和COMPIM的引脚2连接,TXD和COMPIM的引脚3连接,如图1所示。

1.2 下位机程序设计

下位机程序首先从单片机串口初始化开始,包括设置串口工作方式以及波特率等,接着等待上位机发送过来的启动命令,若接收到采集启动命令则开始读取DS18B20温度数据。由于DS18B20输出的温度值是以一个16位有符号补码数的格式存于两个寄存器中,为了方便后续的正负温度数据处理,将其数据转换为4个字节的数据,转换完毕后从单片机串口依次发送出去,具体流程如图2所示。

2 LabVIEW上位机程序设计

LabVIEW是美国国家仪器公司(NI公司)推出的专为数据采集、仪器控制、数据分析与数据表达设计的的图形化编程软件,它是一个开放的开发环境,具有PCI,GPIB,PXI,VXI,RS-232/485,USB等各种仪器通讯总线标准的所有功能函数,开发者可以利用这些函数与不同总线标准接口的数据采集硬件交互工作[4]。

LabVIEW虚拟仪器程序由前面板和后面板框图程序组成。前面板是人机交互的界面,界面上有用户输入和显示输出两类控件;框图程序则是用户编制的程序源代码,以定义和控制在前面板上的控件输入和输出功能。图3为温度采集系统的框图程序。

图1 系统硬件电路

整个程序首先由初始化串口开始,最后是关闭并清除有可能出现的错误码,中间采用While循环结构,连续不断地采集数据并显示。由于单片机一次只传4字节数据回来,所以程序利用“VISA读取”函数从串口每次读回来4字节数据,收到的数据一部分直接送到字符串直接显示,另一部分送到“字符串长度”函数,测出字符串长度送到LENGTH里边,在前面板上显示收到的数据的长度。

除此之外,还有一路数据经过处理后送到波形图表上显示出来。由于DS18B20输出温度值为16位有符号补码的格式,所以首先截取判断收到的第一字节是不是为0,为0就为正温度值,否则就为负的温度值。这里的判断是通过CASE选择结构实现的,若为1,即负温度,则需要进行补码转换,若为0,即正温度,由于正数的补码是本身,因此不需要转换。

图2 下位机程序流程图

截取第二、三、四字节数据,由于得到的数据是ASCII码形式,为了方便后面的处理和显示,将数据送入子VI进行数据格式转换,转换成对应的数字后送至“连接字符串”函数连接成16进制字符串,接着送至“十六进制数字字符串至数值转换”函数转换,将转换后的数值乘以温度增量0.0625,最后将结果送至“波形图表”实时显示。

图3 后面板程序框图

3 Proteus与LabVIEW的连接

Proteus仿真软件虽然可以仿真单片机硬件,但要进行单片机电路与计算机通过RS232接口进行仿真的开发,必须将计算机与Proteus软件联系起来。文中使用一款虚拟串口软件Virtual Serial Port Driver6.0在计算机虚拟出一对串口来实现该功能,首先打开该虚拟串口软件,在界面左边的浏览界面可以显示出所用计算机已经存在的物理串口和已经虚拟出的串口,接着在Manage ports面板中选择要虚拟出的串口名称,如COM3和COM4,点击Add pair按钮,即可虚拟出一组连接的串口,如图4所示[5]。另外还需要在Proteus环境中,对COMPIM模块进行设置,在参数设置对话框中,把物理串口设置为Virtual Serial Port Driver6.0软件模拟出的虚拟串口COM4,波特率设为9600,并且设置数据位为8位,停止位为1位,无奇偶校验位,如图5所示。

图4 虚拟串口软件

图5 COMPIM模块参数设置

4 联合仿真

单片机程序利用keil软件编译成HEX目标文件,在Proteus环境下将程序目标代码加载到单片机里,点击运行按钮电路开始运行,当前实时温度为15.3摄氏度,如图6所示;接着在LabVIEW前面板中选择串口3(与虚拟出来的串口4为一组),波特率设置为与单片机一致,点击运行按钮,上位机开始采集温度数据,同时将采集到的实时温度利用波形图表显示出来,如图7所示。

5 结束语

图6 下位机仿真

本文以温度采集系统的设计为例,分析应用Proteus仿真软件进行单片机系统开发,以及Lab-VIEW图形化编程语言进行串口数据系统开发的方法,通过虚拟串口连接进行联合仿真,运行正常。实践证明,利用该方法开发类似的系统可以大幅度提高开发效率,降低成本,具有推广价值。

图7 上位机实时显示

[1]唐继贤.51单片机工程应用实例[M].北京:北京航空航天大学出版社,2009:225-226.

[2]陈雷,高兴龙,陈爽.Proteus和LabVIEW在计算机检测系统中的应用[J].大庆石油学院学报,2009,33(5):98-102.

[3]蒋辉平,周国雄.基于Proteus的单片机系统设计与仿真实例[M].北京:机械工业出版社,2009:1-3.

[4]张力,晏红.基于LabVIEW串口通讯的虚拟数字电压表的设计[J].三峡大学学报,2010,32(2):81-83.

[5]王亮,陈静静.利用Proteus与LabVIEW仿真数据采集[J].山东轻工业学院学报,2010,24(1):69-71.

猜你喜欢
机系统下位上位
手持式触摸测试机对闸机系统的维护研究
发射机房监控系统之下位机
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
景洪电厂监控系统下位机数据传输网络改造
围观党“下位”,吐槽帝“登基”
经济、可靠的自动开关机系统
以新思路促推现代农业上位
CAN总线并发通信时下位机应用软件设计