设计基于LabVIEW的虚拟仪器系统

2012-08-09 14:56:08来源: 21ic

  本文将介绍如何在LabVIEW下快速搭建基于MSP-060101的虚拟示波器和频谱分析软件。

  一、硬件部分

  本文中所用到的MSP-060101是一款16bit、500ksps的单通道USB数据采集卡。它具有接口简单、量程可选(±1V与±10V)、速度快、精度高、驱动函数接口简单等优点,非常适合用来快速实现虚拟示波器和频谱分析功能。

  MSP-060101硬件连接非常简单,将采集卡插入PC的USB接口,按说明安装好驱动程序,就可以进行数据采集了,不需要外接电源和其他繁琐的设备。MSP-060101前端接信号的端口只有两个,分别接到差分输入信号的正端和负端即可,简单明了,一目了然。

  二、底层函数

  连接好硬件,接下来了解该卡驱动函数的使用。该卡驱动函数只有两个,封装于MSP-16bitDAQCard.dll中,用户可通过调用DLL的方式来执行函数。函数定义如下:

  int SetSampleRate (int SampleRate,  int DeviceNumber)

  int GetVoltage(float *DataArray, int ArraySize, float mult, float Offset, int DeviceNumber)

  SetSampleRate 函数用来设置采集卡的采样率。其参数为 SampleRate(采样率,1K-500K范围内任意设置) 和 DeviceNumber(设备序号,同时支持10块采集卡)。

  GetVoltage 函数用来采集电压数据。其参数为DataArray(缓存数组)、ArraySize(缓存长度)、mult(增益系数)、Offset(偏移量)和DeviceNumber(设备序号)。

  这两个函数都有返回值,如果函数执行成功,则返回1,否则返回0。

  在LabVIEW中,是通过Call Library Function Node来调用DLL函数的。为了便于使用,我们将调用DLL的代码做成子VI函数,子VI主要有两个,即采集数据.VI 和 频率设置.VI。其内部程序框图如下:

内部程序框图

内部程序框图

  三、软件编写

  编写好子VI,接下来的工作就是按照LabVIEW的程序设计方法来设计应用软件。本文以基本的示波软件为例,并结合频谱分析,示范如何利用LABVIEW的高效控件来编写测试软件。

  软件的整体设计思路大致如下:软件执行为一个无限循环,每次循环分为三个步骤,一是设置采集卡的采样率,二是连续采集一段长度的数据,三是进行数据分析。因此,程序的主体框架就是一个while循环内嵌套一个顺序结构。

  下面我们来看每次循环的第一个步骤,设置采样率。采样率的设置很简单,直接调用子VI即可。但为了让程序运行的稳定,防止由于采集卡无响应造成的程序死机,同时也使软件更人性化,在这里需要加入一个硬件检查报错机制。其思路是调用设置采样率的函数,如果采集卡硬件没有连好,或是硬件工作不正常,函数执行不成功,将返回0,则通过判断返回值是否为0,就可以判断采集卡硬件是否出现问题。如果出现问题,则向用户报错,提示用户检查硬件,并停止程序,不再向下执行。如果硬件正常,则继续执行数据采集程序。

  接下来是第二个步骤,采集一定长度的数据。这部分也较为简单,直接调用采集函数即可。数据采集的同时可以设置数据的增益系数和偏移量,以便获得更好的波形效果,也可以用来进行数据校准。

  对于一个数据采集软件来讲,重点在于第三个步骤,即数据的处理。本例中,目的是要显示一个稳定的波形,并对其频谱做初步的分析。这里将用到一个比较重要的功能,即软件的内触发。该功能是通过判断波形在某一个特定电平(触发电平)点上是上升还是下降(触发极性)来决定后续显示波形的起始点。经过内触发后,每次采集得到的波形都将从相同的电压点,按相同的变化趋势开始,因此对于周期变化的信号来说,波形就能较为稳定的重复出现,便于人们进行观察和分析。在本例中,内触发功能被做成了功能子VI,通过调用该VI就可以将波形进行软件触发。

  波形经过触发后,基本已经有了一个较为稳定的显示效果。接下来需要给波形数据加入时间特性。其方法是根据采样率算出采样间隔时间Δt,并通过建立波形的控件将Δt赋给波形数据。

  至此,我们已经得到了一个较为完整的显示波形,简单示波器的功能就已经实现了。

  想要给软件加上频谱分析的功能,在LabVIEW中也是很容易实现的。只需将我们前面得到的波形数据直接送入FFT函数中,就可以得到波形的频域数据。但为了便于分析,我们希望能自动从频域中提取信号的主频。其算法也很简单,就是由低到高依次扫描不同频率的功率分布值,找到最大值后,根据最大值所在的位置序号来推算主频。值得注意的是扫描时不能从频率0点开始,不然0频率可能对应的是最大的功率分布,一般要把前几个点排除在外。

[1] [2]

关键字:LabVIEW  虚拟仪器  示波器  数据采集

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2012/0809/article_5634.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
LabVIEW
虚拟仪器
示波器
数据采集

小广播

独家专题更多

TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved