位置:51电子网 » 技术资料 » 测试测量

基于多功能DAQ卡的虚拟数字示波器的设计

发布时间:2007/8/24 0:00:00 访问次数:538

作者:西安市第二炮兵工程学院控制系 惠俊军 王志贤


摘 要:简要介绍了虚拟仪器的组成,基于Labwindows/CVI和NI公司的PXI-6670E数据采集卡,设计了一个虚拟数字示波器。该系统功能强大,不仅具有实时采集功能,还具有频谱分析、加窗处理、滤波功能和数字存储等功能。


关键词:虚拟仪器;Labwindows/CVI;数据采集卡;频谱分析


引言


虚拟仪器中有一类是基于多功能DAQ卡的虚拟仪器,结构简单,开发成本低,目前已经得到了广泛的应用。本文以一个基于多功能DAQ卡的虚拟数字示波器为例,来说明如何开发基于多功能DAQ卡的虚拟仪器。 


虚拟数字示波器的结构与组成
虚拟数字示波器由一块PXI总线的多功能数据采集卡和相应的软件组成。将它们安装在一台运行Windows的PC上,即构成一个功能强大的可存储数字示波器。数字示波器的前面板如图1所示。



● 数据采集卡。


设计中所采用的是NI公司生产的多功能数据采集卡PXI-6670E,其主要功能如下:
64路单端/32路差分模拟输入;12位精度;1.25MSPS采样速度;1.25MSPS磁盘写入速度;±0.05~±10V输入范围;两路12位模拟输出;8条数字I/O线;两路24位计数器/定时器。


● 仪器功能。


本例虚拟数字示波器具有实时数据采集、频谱分析、加窗处理和滤波等功能。在虚拟数字示波器主面板上有数据采集、频谱分析、加窗处理、滤波功能等功能键,按相应的功能键就可进入相应的子面板。



软件的设计与实现 。


● 软件开发环境。
 
虚拟数字示波器软件设计采用了基于C语言的编程环境LabWindows/CVI。LabWindows/CVI支持数值型、布尔型、文本型和串等数据类型,而且最大优点是能够通过对话框形式的交互式操作生成标准C程序代码。另外LabWindows/CVI提供了非常丰富的调试工具,包括单步执行、断点、变量查看、监视窗口等,这些功能使程序的调试变 得更为容易。


● 主要功能模块。
 
虚拟数字示波器主要由软件控制完成信号的采集和显示处理,功能结构框图如图2所示。



在数据采集面板中主要完成以下功能:设置通道、设置采样频率、设置产生方式、显示波形等,其软面板如图3所示。



在数据采集面板中主要完成以下功能:对实时采集的信号和自行产生的信号进行频谱分析,查看谱线等功能,其软面板如图4所示。 



加窗处理面板对实时采集的信号和自行产生的信号加窗处理(包括海明窗、汉明窗、平滑窗和布拉克曼窗等),其软面板如图5所示。



在滤波处理面板中包括以下功能:对实时采集的信号和自行产生的信号进行滤波处理(包括单步滤波法、多步滤波法和传统方法等),其软面板如图6所示。


● 源程序文件的生成。


当完成面板各个控件的设置后,就可以产生程序的代码函数了。具体方法为:把已完成的面板定为当前响应状态,在[Code]菜单中,选中[Generate]中的[All Code],在弹出的对话框中选定函数主面板和退出函数,就能产生与用户接口文件相对应的框架代码函数。


● 添加程序代码。


上一步自动生成的是控件对应的函数的框架,要使控件完成一定的功能,必须添加程序代码来控制控件。其中main()函数是程序的入口,它的功能是初始化程序,装载用户面板并显示,如要完成其他功能须添加代码。以下这段代码实现数据采集功能,程序通过调用数据采集按钮的回调函数SHOU进行外部采集。


int CVICALLBACK SHOW(int panel,int control,int event,void *callbackData,int eventData1,int eventData2)
{
int NumChan;/*定义所用通道*/
double ActScanRate;/*定义采样速率*/
switch (event)
{
case EVENT_COMMIT:
nidaqAICreateTask(“daq::1!(0)”, kNidaqWaveformCapture, &NumChan,&AiTask);/*创建采样任务*/
nidaqAIConfigScanClockRate(AiTask,400000,&ActScanRate); /*设置采样速率*/
nidaqAIConfigBuffer(AiTask,1000,kNidaqFinite);/*设置采样数据缓冲区*/
nidaqAIStart(AiTask);/*启动采样*/
nidaqAIRead(AiTask,“daq::1!(0)”,1000,-1.0,wave);/*读取采样数据*/
nidaqAIStop(AiTask);/*结束采样*/
DeleteGraphPlot(EEpanel,EEPANEL_WAVEGRAPH, -1,VAL_IMMEDIATE_DRA);/*删除显示的波形*/
PlotY(EEpanel, EEPANEL_WAVEGRAP

作者:西安市第二炮兵工程学院控制系 惠俊军 王志贤


摘 要:简要介绍了虚拟仪器的组成,基于Labwindows/CVI和NI公司的I-6670E数据采集卡,设计了一个虚拟数字示波器。该系统功能强大,不仅具有实时采集功能,还具有频谱分析、加窗处理、滤波功能和数字存储等功能。


关键词:虚拟仪器;Labwindows/CVI;数据采集卡;频谱分析


引言


虚拟仪器中有一类是基于多功能DAQ卡的虚拟仪器,结构简单,开发成本低,目前已经得到了广泛的应用。本文以一个基于多功能DAQ卡的虚拟数字示波器为例,来说明如何开发基于多功能DAQ卡的虚拟仪器。 


虚拟数字示波器的结构与组成
虚拟数字示波器由一块I总线的多功能数据采集卡和相应的软件组成。将它们安装在一台运行Windows的PC上,即构成一个功能强大的可存储数字示波器。数字示波器的前面板如图1所示。



● 数据采集卡。


设计中所采用的是NI公司生产的多功能数据采集卡I-6670E,其主要功能如下:
64路单端/32路差分模拟输入;12位精度;1.25MSPS采样速度;1.25MSPS磁盘写入速度;±0.05~±10V输入范围;两路12位模拟输出;8条数字I/O线;两路24位计数器/定时器。


● 仪器功能。


本例虚拟数字示波器具有实时数据采集、频谱分析、加窗处理和滤波等功能。在虚拟数字示波器主面板上有数据采集、频谱分析、加窗处理、滤波功能等功能键,按相应的功能键就可进入相应的子面板。



软件的设计与实现 。


● 软件开发环境。
 
虚拟数字示波器软件设计采用了基于C语言的编程环境LabWindows/CVI。LabWindows/CVI支持数值型、布尔型、文本型和串等数据类型,而且最大优点是能够通过对话框形式的交互式操作生成标准C程序代码。另外LabWindows/CVI提供了非常丰富的调试工具,包括单步执行、断点、变量查看、监视窗口等,这些功能使程序的调试变 得更为容易。


● 主要功能模块。
 
虚拟数字示波器主要由软件控制完成信号的采集和显示处理,功能结构框图如图2所示。



在数据采集面板中主要完成以下功能:设置通道、设置采样频率、设置产生方式、显示波形等,其软面板如图3所示。



在数据采集面板中主要完成以下功能:对实时采集的信号和自行产生的信号进行频谱分析,查看谱线等功能,其软面板如图4所示。 



加窗处理面板对实时采集的信号和自行产生的信号加窗处理(包括海明窗、汉明窗、平滑窗和布拉克曼窗等),其软面板如图5所示。



在滤波处理面板中包括以下功能:对实时采集的信号和自行产生的信号进行滤波处理(包括单步滤波法、多步滤波法和传统方法等),其软面板如图6所示。


● 源程序文件的生成。


当完成面板各个控件的设置后,就可以产生程序的代码函数了。具体方法为:把已完成的面板定为当前响应状态,在[Code]菜单中,选中[Generate]中的[All Code],在弹出的对话框中选定函数主面板和退出函数,就能产生与用户接口文件相对应的框架代码函数。


● 添加程序代码。


上一步自动生成的是控件对应的函数的框架,要使控件完成一定的功能,必须添加程序代码来控制控件。其中main()函数是程序的入口,它的功能是初始化程序,装载用户面板并显示,如要完成其他功能须添加代码。以下这段代码实现数据采集功能,程序通过调用数据采集按钮的回调函数SHOU进行外部采集。


int CVICALLBACK SHOW(int panel,int control,int event,void *callbackData,int eventData1,int eventData2)
{
int NumChan;/*定义所用通道*/
double ActScanRate;/*定义采样速率*/
switch (event)
{
case EVENT_COMMIT:
nidaqAICreateTask(“daq::1!(0)”, kNidaqWaveformCapture, &NumChan,&AiTask);/*创建采样任务*/
nidaqAIConfigScanClockRate(AiTask,400000,&ActScanRate); /*设置采样速率*/
nidaqAIConfigBuffer(AiTask,1000,kNidaqFinite);/*设置采样数据缓冲区*/
nidaqAIStart(AiTask);/*启动采样*/
nidaqAIRead(AiTask,“daq::1!(0)”,1000,-1.0,wave);/*读取采样数据*/
nidaqAIStop(AiTask);/*结束采样*/
DeleteGraphPlot(EEpanel,EEPANEL_WAVEGRAPH, -1,VAL_IMMEDIATE_DRA);/*删除显示的波形*/
PlotY(EEpanel, EEPANEL_WAVEGRAP

相关IC型号

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!