基于LabVIEW的温度测量系统设计

2014-03-22 18:43李菲江世明
现代电子技术 2014年6期
关键词:串口通信

李菲 江世明

摘 要: 虚拟仪器将计算机技术与测量技术紧密融合,它在进行环境参数测量时无需使用大量的测量设备,最大限度地降低了开发成本。鉴于此,设计了一个基于虚拟仪器技术的温度测量系统。该系统主要由下位机和上位机两部分构成,下位机通过传感器采集温度信号,经单片机以串口通信的方式传送给上位机,上位机中由LabVIEW软件编写的温度测量系统可实时进行温度的显示与报警。测试结果表明,该设计系统的测量精度较高,操作简单,而且可视性很好。

关键词: 温度采集; AT89S52; 串口通信; LabVIEW

中图分类号: TN964?34 文献标识码: A 文章编号: 1004?373X(2014)06?0114?03

温度是我们日常生活中常见的物理量,也是工业、农业等领域需实时检测的物理量,那么如何进行温度实时有效的检测是必须考虑的一个问题。传统的测量方法大多偏硬件电路和C/C++语言,设计过程复杂,且可视效果不好,针对这些问题,本文中引入了虚拟仪器技术。

虚拟仪器技术是计算机与仪器测量技术结合的产物,它不再依托复杂的编程过程,而是采用一种图形化的编程形式,根据工程的实际需求构建虚拟的测量仪器与信号分析处理软件,不再需要大量的硬件设备,大大降低了系统的开发成本[1]。其中,LabVIEW作为虚拟仪器主要的开发软件,目前已广泛应用于数据采集、仪器控制、测量分析等应用系统的开发。

1 系统的组成与工作原理

本文设计的温度测量系统是基于LabVIEW平台来实现的,整个系统分为上位机和下位机2部分。上位机由装有LabVIEW软件平台的PC机来实现,下位机由温度采集模块、单片机控制模块、LCD显示模块、串口通信模块来构成,具体的系统框图如图1所示。

在上述设计的系统中,首先通过温度传感器采集当前实时温度,将温度信号转换成电信号传送到单片机进行处理,且实时温度在LCD1206上显示出来,同时将采样数据通过MAX232串口通信模块发送到PC机,PC机上的用LabVIEW实现的温度测量应用软件读取到串口数据后,把接收到的数据进行解码,将处理后的数据以波形的形式显示出来,且能进行相应的报警处理等。

2 下位机的具体设计

下位机的设计包含了硬件电路与程序设计两部分,具体的硬件电路结构如图2所示。

2.1 硬件设计

(1) 温度采集模块

在本系统中,温度的采集分别是采用9015型晶体管和AD590集成温度传感器[2]来实现,选择这2种测温传感器,主要是考虑到传感器的输出与温度之间的关系。

晶体管作为一种半导体测温元件,在温度不太高的情况下,晶体管的发射结上的正向电压与绝对温度是成线性关系变化的。AD590作为常用的集成温度传感器,测温范围为-55~150 ℃,其输出电流与绝对温度也是成正比的。由此可见,这两种测温传感器测温的线性度较好,外围电路也简单,无需如热电偶一样进行冷端补偿。

由于温度采集电路输出的是模拟量,因此在输送到单片机前还需进行A/D转换。本系统主要采用PCF8591芯片来实现的。PCF8591是一个单片集成、单独供电、低功耗、8?bit CMOS数据获取器件,可实现8?bit的模数转换和8?bit的数/模转换。

(2) 单片机控制与显示模块

单片机采用的是AT89S52芯片,显示模块采用LCD1602来显示实时的测量温度。

(3) 串口通信模块

本系统中的串行通信部分主要由MAX232来实现。MAX232芯片是MAXIM公司生产的具有两路接收器和驱动器的IC芯片,其内部有一个电源电压变换器,将单片机引脚的COMS电平(0~5 V)转换为RS 232电平(-12~12 V)输出。设计中将单片机的串行通信口与MAX232相连,再将MAX232的输出用9针RS 232 串口线与PC机连接就实现了上下位机之间串行通信的硬件连接。

2.2 程序设计

本系统由AT89S52单片机作为中央控制器,控制各功能模块的正常工作及数据的接收与处理。首先利用温度传感器采集外界温度数据,经 A/D转换,并用LCD显示出来,然后经编码通过串口发送到PC机。其主要的程序设计包括:A/D转换子程序、显示子程序、串行发送与接收子程序等。

3 上位机软件设计

LabVIEW软件是虚拟仪器常用的开发软件[3],本系统采用LabVIEW软件设计的温度测量系统[4]可实现对温度的采集,显示及处理,具体的设计包含了3部分:前面板的设计、程序框图的设计和连接器的设计。特别值得注意的是,作为上位机的测量软件必须与下位机的硬件电路相连接,这就牵涉到如何实现下位机与上位机串口通信的问题。

3.1 前面板设计

前面板是VI代码的接口,是用户的交互界面。本系统要求能对温度进行实时采集,并将采集的温度实时显示出来,同时本系统的温度上下限阈值可以设置,当实时温度超出预先设置的上下限范围时,系统会自动报警。因此,前面板的设计主要包含4个部分:波形显示部分、当前温度与电压值显示部分、温度上下限设置部分和报警部分。

为实现上述功能,在前面板上放置了各种的图形控件,这些控件都来源于控件选板,主要的控件有数值输入控件、数值显示控件、图形显示控件、文本输入控件等。具体的前面板设计见图3所示。

3.2 程序框图设计

程序框图是实现VI逻辑功能的图形化源代码,它通过将对象连接在一起构成程序框图来实现某种特定的功能。本系统中的程序框图的设计[5?8]主要分为5个模块:温度采集模块、温度显示模块、温度阈值设定模块、报警模块和串口通信模块。

3.3 串口通信

上位机与下位机之间的通信主要以串口通信的方式来实现数据的传输[9],串口操作的基主要工作为为:配置串口参数→发送和接收数据→关闭串口,这些都可通过调用串口通信的函数来实现[10]。

(1) 串口的参数配置。在串口通信之前,必须对串口的参数进行设置,而且上位机和下位机的设置必须相同。这些参数主要包括串口通信的资源名称、波特率、数据位、停止位、奇偶校验位和流控制,设计中通过调用VISA配置串口VI来完成。

(2) 数据的发送与接收。串口参数设置完成后,就可进行数据的发送与接收。发送数据主要使用VISA Write,即VISA写入函数;接收数据主要使用VISA Read,即VISA读取函数。在进行发送数据时,以字符串的形式循环发送;在接收数据时,可启用终止符来结束读取操作或者通过比较待读取的字节数与接收缓冲区中的字节数来判断读操作是否处于等待或执行状态。在本设计中启用了终止符来完成。

(3) I/O缓冲区设置。串口通信主要是通过发送缓冲区和接收缓冲区来发送和接收数据的,所以缓冲区的设置也必不可少。

4 测试结果

在上述设计的温度测量系统中,分别采用9015晶体管和AD590集成温度传感器对温度信号进行采集,并经过串口通信输送给LabVIEW软件,其测试结果说明如下:

(1) 晶体管9015测温测试:由于晶体管的的测温范围较窄,所以测温范围选取在25~70 ℃之间,测试数据见表1,具体显示结果如图4所示。

(2) AD590测温测试:AD590的测温范围较宽,本文的测试范围在25~110 ℃,测试数据见表2,显示结果如图5所示。从上述的测试结果可以看出,该系统较好地实现了温度测量与显示功能:

① 温度的变化过程能以波形的形式体现出来,而且误差较小;

② 可以实时显示当前的温度值及相对应的电压值。

③ 可实现报警功能。如温度的上限设置为60 ℃,当采集的实时温度为65 ℃时,温度过高,报警灯亮起。

5 结 语

本文基于LabVIEW软件平台设计了一个温度测量系统,该系统通过上位机与下位机之间的串口通信,较好地实现了温度测量的实时显示以及温度过高或温度过低时的报警,测量误差较小,且可视性较好。

LabVIEW作为一种图形化的编程软件,功能强大,而且操作方便。实验证明用该软件设计的测量系统交互性能好,成本低,为很多复杂的工程环境提供了简便有效的测量途径。

参考文献

[1] 雷国建,刘登科,石启亮.基于LabVIEW的远程温度检测控制系统设计与实现[J].现代电子技术,2012,35(19):111?113.

[2] 秦志强,谭立新,刘瑶生.现代传感器技术与应用[M].北京:电子工业出版社,2010.

[3] 卢贶,董英英.基于LabVIEW 的无线温度监测上位机软件系统设计[J].湖南工业职业技术学院学报,2012,4(12):17?19.

[4] 岂兴明,田京京,夏宁.LabVIEW入门与实践开发100例[M].北京:电子工业出版社,2011.

[5] 卢佳,徐熙平.LabVIEW环境下自动温度检测系统的研究[J].电子测量技术,2011,34(9):80?83.

[6] 吕龙飞,陈照章,黄永红.基于LabVIEW的虚拟仪器温度检测系统的设计[J].微计算机信息,2007,23(1):170?172.

[7] 刘金颂,严洁,郑庆红.基于LabVIEW和单片机的空调温度场测量系统的研究[J].现代电子技术,2006,29(1):78?80.

[8] 师玉宝,张翔,刘晓奎.基于LabVIEW技术的温度检测系统[J].物联网技术,2011,1(4):70?72.

[9] 龙华伟,顾永刚.LabVIEW8.2.1与DAQ数据采集[M].北京:清华大学出版社,2008.

[10] 陈树学,刘萱.LabVIEW宝典[M].北京:电子工业出版社,2011.

(1) 串口的参数配置。在串口通信之前,必须对串口的参数进行设置,而且上位机和下位机的设置必须相同。这些参数主要包括串口通信的资源名称、波特率、数据位、停止位、奇偶校验位和流控制,设计中通过调用VISA配置串口VI来完成。

(2) 数据的发送与接收。串口参数设置完成后,就可进行数据的发送与接收。发送数据主要使用VISA Write,即VISA写入函数;接收数据主要使用VISA Read,即VISA读取函数。在进行发送数据时,以字符串的形式循环发送;在接收数据时,可启用终止符来结束读取操作或者通过比较待读取的字节数与接收缓冲区中的字节数来判断读操作是否处于等待或执行状态。在本设计中启用了终止符来完成。

(3) I/O缓冲区设置。串口通信主要是通过发送缓冲区和接收缓冲区来发送和接收数据的,所以缓冲区的设置也必不可少。

4 测试结果

在上述设计的温度测量系统中,分别采用9015晶体管和AD590集成温度传感器对温度信号进行采集,并经过串口通信输送给LabVIEW软件,其测试结果说明如下:

(1) 晶体管9015测温测试:由于晶体管的的测温范围较窄,所以测温范围选取在25~70 ℃之间,测试数据见表1,具体显示结果如图4所示。

(2) AD590测温测试:AD590的测温范围较宽,本文的测试范围在25~110 ℃,测试数据见表2,显示结果如图5所示。从上述的测试结果可以看出,该系统较好地实现了温度测量与显示功能:

① 温度的变化过程能以波形的形式体现出来,而且误差较小;

② 可以实时显示当前的温度值及相对应的电压值。

③ 可实现报警功能。如温度的上限设置为60 ℃,当采集的实时温度为65 ℃时,温度过高,报警灯亮起。

5 结 语

本文基于LabVIEW软件平台设计了一个温度测量系统,该系统通过上位机与下位机之间的串口通信,较好地实现了温度测量的实时显示以及温度过高或温度过低时的报警,测量误差较小,且可视性较好。

LabVIEW作为一种图形化的编程软件,功能强大,而且操作方便。实验证明用该软件设计的测量系统交互性能好,成本低,为很多复杂的工程环境提供了简便有效的测量途径。

参考文献

[1] 雷国建,刘登科,石启亮.基于LabVIEW的远程温度检测控制系统设计与实现[J].现代电子技术,2012,35(19):111?113.

[2] 秦志强,谭立新,刘瑶生.现代传感器技术与应用[M].北京:电子工业出版社,2010.

[3] 卢贶,董英英.基于LabVIEW 的无线温度监测上位机软件系统设计[J].湖南工业职业技术学院学报,2012,4(12):17?19.

[4] 岂兴明,田京京,夏宁.LabVIEW入门与实践开发100例[M].北京:电子工业出版社,2011.

[5] 卢佳,徐熙平.LabVIEW环境下自动温度检测系统的研究[J].电子测量技术,2011,34(9):80?83.

[6] 吕龙飞,陈照章,黄永红.基于LabVIEW的虚拟仪器温度检测系统的设计[J].微计算机信息,2007,23(1):170?172.

[7] 刘金颂,严洁,郑庆红.基于LabVIEW和单片机的空调温度场测量系统的研究[J].现代电子技术,2006,29(1):78?80.

[8] 师玉宝,张翔,刘晓奎.基于LabVIEW技术的温度检测系统[J].物联网技术,2011,1(4):70?72.

[9] 龙华伟,顾永刚.LabVIEW8.2.1与DAQ数据采集[M].北京:清华大学出版社,2008.

[10] 陈树学,刘萱.LabVIEW宝典[M].北京:电子工业出版社,2011.

(1) 串口的参数配置。在串口通信之前,必须对串口的参数进行设置,而且上位机和下位机的设置必须相同。这些参数主要包括串口通信的资源名称、波特率、数据位、停止位、奇偶校验位和流控制,设计中通过调用VISA配置串口VI来完成。

(2) 数据的发送与接收。串口参数设置完成后,就可进行数据的发送与接收。发送数据主要使用VISA Write,即VISA写入函数;接收数据主要使用VISA Read,即VISA读取函数。在进行发送数据时,以字符串的形式循环发送;在接收数据时,可启用终止符来结束读取操作或者通过比较待读取的字节数与接收缓冲区中的字节数来判断读操作是否处于等待或执行状态。在本设计中启用了终止符来完成。

(3) I/O缓冲区设置。串口通信主要是通过发送缓冲区和接收缓冲区来发送和接收数据的,所以缓冲区的设置也必不可少。

4 测试结果

在上述设计的温度测量系统中,分别采用9015晶体管和AD590集成温度传感器对温度信号进行采集,并经过串口通信输送给LabVIEW软件,其测试结果说明如下:

(1) 晶体管9015测温测试:由于晶体管的的测温范围较窄,所以测温范围选取在25~70 ℃之间,测试数据见表1,具体显示结果如图4所示。

(2) AD590测温测试:AD590的测温范围较宽,本文的测试范围在25~110 ℃,测试数据见表2,显示结果如图5所示。从上述的测试结果可以看出,该系统较好地实现了温度测量与显示功能:

① 温度的变化过程能以波形的形式体现出来,而且误差较小;

② 可以实时显示当前的温度值及相对应的电压值。

③ 可实现报警功能。如温度的上限设置为60 ℃,当采集的实时温度为65 ℃时,温度过高,报警灯亮起。

5 结 语

本文基于LabVIEW软件平台设计了一个温度测量系统,该系统通过上位机与下位机之间的串口通信,较好地实现了温度测量的实时显示以及温度过高或温度过低时的报警,测量误差较小,且可视性较好。

LabVIEW作为一种图形化的编程软件,功能强大,而且操作方便。实验证明用该软件设计的测量系统交互性能好,成本低,为很多复杂的工程环境提供了简便有效的测量途径。

参考文献

[1] 雷国建,刘登科,石启亮.基于LabVIEW的远程温度检测控制系统设计与实现[J].现代电子技术,2012,35(19):111?113.

[2] 秦志强,谭立新,刘瑶生.现代传感器技术与应用[M].北京:电子工业出版社,2010.

[3] 卢贶,董英英.基于LabVIEW 的无线温度监测上位机软件系统设计[J].湖南工业职业技术学院学报,2012,4(12):17?19.

[4] 岂兴明,田京京,夏宁.LabVIEW入门与实践开发100例[M].北京:电子工业出版社,2011.

[5] 卢佳,徐熙平.LabVIEW环境下自动温度检测系统的研究[J].电子测量技术,2011,34(9):80?83.

[6] 吕龙飞,陈照章,黄永红.基于LabVIEW的虚拟仪器温度检测系统的设计[J].微计算机信息,2007,23(1):170?172.

[7] 刘金颂,严洁,郑庆红.基于LabVIEW和单片机的空调温度场测量系统的研究[J].现代电子技术,2006,29(1):78?80.

[8] 师玉宝,张翔,刘晓奎.基于LabVIEW技术的温度检测系统[J].物联网技术,2011,1(4):70?72.

[9] 龙华伟,顾永刚.LabVIEW8.2.1与DAQ数据采集[M].北京:清华大学出版社,2008.

[10] 陈树学,刘萱.LabVIEW宝典[M].北京:电子工业出版社,2011.

猜你喜欢
串口通信
基于Android的电解质分析仪设计与实现
基于Labview的高重频激光测量方法
串口通信在智能家居监控系统中的应用
基于Python实现设备控制台的集中控制和管理
基于OpenCV的室内照明智能控制系统设计与实现
基于Qt5的MODBUS协议编程与实现