摘要 介绍了虚拟仪器领域中最具代表性的图形化编程开发平台 LabVIEW, 并对基于 LabVIEW编程环境实现数据采集进行了研究, 设计实现了一种基于 LabVIEW 8.5环境, 以 EMI噪声分析仪为下位机的数据采集与信号处理系统的设计方法.该设计方法主要实现了以 RS232为代表的串口通讯, 数组转换及频谱分析等功能, 结果表明应用该设计方法设计出的系统具有简洁友好的人机界面, 可直接在前面板上完成各种操作与观测.该设计方案较之目前大多数的设计方法相比有效地降低了程序的运算量, 节省了运算时间, 成功实现了实时无差错的采集到由下位机发来的完整数据。
关键词 LabVIEW, 串口通讯, 数组转换
LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench)是基于图形编译 G(Graphics)语言的虚拟仪器软件开发平台,具有数据采集、数据分析、信号发生 、信号处理 、输入输出控制等功能,是公认的标准数据采集和仪器控制软件.在 Labview环境下开发的应用程序称VI(VirtualInstrument).一个完整的LabVIEW程序主要由前面板 、程序框图和图标 /连接端口 3部分组成 1 , 前面板是交互式图形化用户界面 ,用于设置输入数值和观察输出量 ;程序框图是定义 VI功能的图形化源代码, 包括前面板上没有但编程必须有的对象,如函数 、结构和连线等 ,利用图形语言对前面板的控制量和指示量进行控制 ;图标 /连接端口是用于把程序定义成一个子程序, 以便在其他程序中加以调用 。LabVIEW中自带 450多个内置函数 ,专门用于从采集到的数据中挖掘有用的信息 ,用于分析测量数据及处理信号.
1 系统硬件结构部分
传导电磁干扰综合测量与分析系统可以对被测设备进行噪声诊断与抑制 , 包括硬件部分和软件部分。硬件部分的原理图如图 1所示.系统硬件又分为模拟部分和数字部分 ,模拟部分由中心控制模块、信号类型选择模块、放大倍数选择模块、滤波器模块构成.其中 ,中心控制模块为 Cylone公司的 EP1C3T144 FPGA芯片 ,负责控制信号类型 、放大倍数的选择 ,并控制采样、数据存储及传输 ;信号类型选择模块由新型噪声分离网络将输入信号分为共模 /差模信号 ,并由 FPGA芯片控制 G6S-2F型继电器 K, 选通共模/差模或直通信号的其中一路;噪声放大模块由 THS4271DGK运算放大器完成信号 20 dB放大;串口数据传输模块由 FPGA控制 RS232串口, 用于向计算机传输数据并接收计算机发送的命令。

2 软件设计部分
软件部分具有噪声测量结果显示 、噪声分析功能, 各个功能分别在相应的软件界面上实现。本系统采用模块化的软件设计思想来编写 , LabVIEW程序框图可以分为 3部分 :串口数据采集模块 、数组转换模块、波形显示模块.上位机程序的流程图如图 2所示。

2.1 串口数据采集模块
2.1.1 VISA概述
虚拟仪器软件架构 VISA(VirtualInstrumentsSoftwareArchitecture)是应用于仪器编程的标准 I/O应用程序接口, 是工业界通用的仪器驱动器标准 API(应用程序接口 )。它采用面向对象编程,具有很好的兼容性、扩展性和独立性 .通过 VISA,用户能与大多数仪器总线连接, 包括 GPIB、USB、串口、PXI、VXI和以太网。无论底层是何种硬件接口,用户只需要面对统一的编程接口,即 VISA。.
VISA的另一个显著优点是平台可移植性, 任何使用 VISA函数的程序可以很容易地移植到其他平台上 .VISA定义了自己的数据类型,就避免了在移植程序时由于数据类型大小不一导致的问题。
2.1.2 系统组成
(1)串口参数设置 4 .LabVIEW的串口通讯 VI位于 InstrumentI/OPlatte的 Serial中, 此部分程序用到了 LabVIEW中串口操作的配置节点设置串口通讯的波特率、校验方式、数据位数 、停止位数等参数。
(2)写模块 .包括两部分:前一部分用于发射同步时钟, 用于与下位机的时钟同步 ;后一部分为命令发
送部分 ,用于向下位机取任意时间的数据。
(3)读模块 .在接收数据之前需要使用 VISABytesatserialport查询当前串口接收缓冲区中的数据字节数.如果 VISAread要读取的字节数大于缓冲区中的数据字节数 , VISAread操作将一直等待 ,直至缓冲区中的数据字节数达到要求的字节数。在这部分的操作过程中,要注意延迟时间的设定, 过长会增加等待时间 ,过短会收不到完整的数据。经过多次试验 ,本程序的延迟时间为 2ms, 利用读串口节点读取串口缓冲区中的字符串,这部分的程序框图如图 3所示 :

2.2 数组转换与实时显示模块
2.2.1 数组转换
下位机传送的数据格式为十六进制 ASCII形式 ,需要将其转换为十进制数字形式后才能保存并显示 具体的操作方法是:首先判断收到的字符串是否是完整的 ,如果收到了完整的 8 K个字节, 则对字符串接收区连接至 "字符串至数组的转换"控件.由前面关于硬件部分的介绍可以得出下位机输出的噪声信号分为总信号、共模信号、差模信号 ,并都有 0 db, 20 db的两种输出 ,所以共 6组数据 ,因此本设计采用了事件结构, 设置 8个分支分别负责控制发送 6组代表不同信号的数据和保存数据 ,鼠标按下即可自动发送。
2.2.2 数据保存与实时显示
(1)数据保存是把采集来的数据保存到 MySQL数据库里,首先进行的是数据库的选择以及数据库表格的建立,然后用 LabSQL工具包将采集的数据按照一定的时间间隔保存到数据库的表格里。
(2)历史数据查询.因为已经把采集的数据保存在数据库里了,所以历史数据的查询只需要从数据库里按照一定的条件检索出来就行了。这样就涉及到检索条件的问题.而保存数据的表格的主键已设为保存时刻.每个数据在时间上是唯一的,因此检索条件确定为保存数据的时间段 .这一模块的程序图如图4所示。

2.3 波形显示与 FFT处理模块
经过上述的数组转换后 ,可以直接对一维数组进行快速傅里叶变换 , 本设计主要观察峰值信息 , 所以在显示波形模块中 , 设定属性时 , 选择所选测量---幅度 (峰值 ).图 5为曲线建立了一个游标 ,拖动游标中心点可以在波形图上自动搜索临近的峰值坐标。
GB9254 VoltageonQP下方曲线为标准线 ,此波形为在没有信号源输入时采集到的差模 0 DB噪声信号 .由图可以看到现在游标采集到的峰值坐标为 (8.976608, 22.518 9)。

3 结语
本文研究了利用 LabVIEW开发平台 、串口通讯及虚拟仪器技术成功的实现了对下位机进行数据采集 、显示及信号处理等功能 .结果表明, LabVIEW比其它文本语言更加简单直观可靠 ,且该系统具有良好的可移植性 ,通过扩展采集卡通道及重新编程 ,可以满足对不同数据的采集要求 .