产品搜索 Search
产品目录 Product catalog
技术文章首页 > 技术文章 > 基于高速数据采集卡的虚拟示波器设计

基于高速数据采集卡的虚拟示波器设计

点击次数:1209 更新时间:2014-10-10

1 引言

    虚拟仪器(VI-ViItuaIInstrument)是指通过应用程序将通用计算机与功能化硬件结合起来,用户可通过友好的图形界面操作计算机,就像在操作自己定义、自己设计的单个仪器一样,从而完成对被测量的采集、处理、分析、判断、显示、数据存储等。在这种仪器系统中,各种复杂测试功能、数据分析和结果显示都*杉扑慊砑瓿桑诤芏喾矫娼洗骋瞧饔形薹ū饶獾挠诺悖缡褂昧榛罘奖恪⒉馐怨δ芊岣弧⒓鄹竦土⒁换嘤玫龋庑┦沟眯槟庖瞧鞒晌蠢吹缱硬饬恳瞧鞣⒄沟闹饕较蛑弧?

当今虚拟仪器系统开发采用的总线包括传统的Rs232串行总线、GPIB通用接口总线、VXI总线、PCI总线和IEEE 1394总线即Firewire(也叫做火线)。

    本文介绍基于PCI总线接口的CompuS,cope82G型高速数据采集卡和Visual C++编程工具的快速虚拟示波器试验系统,该系统集波形采集、数据分析、输出、显示为一体。为了保证数据采集和波形显示的实时性,设计中还采用了多线程技术。

2 系统组成和采集卡的硬件结构

2.1 系统组成

    虚拟示波器系统主要由数据采集卡、计算机和软件组成,其中,数据采集卡完成对输入测量信号的调理采集和缓存,并通过计算机PCI总线送入内存;计算机在应用程序控制下对数据进行处理、运算,zui后完成各种电量测试并在屏幕上用图形或数据形式显示。这一切均在人机交互方式下完成。

2.2 数据采集卡的硬件结构

本虚拟示波器采用Gage公司的CompuScope82G型高速数据采集卡作为PCI接口。采集卡的硬件结构如图1所示。

佳工机电网

    该数据采集卡主要由前置滤波器、可程控衰减器、可程控模拟放大电路、A/D转换器、D/A转换器、计数,定时电路、振荡电路、时序控制电路及PCI接口电路组成,其功能电路由数字控制逻辑电路统一控制。该卡是具有2个模拟量输入通道的标准的PCI总线插卡,卡上集成的2个高速8位ADC的工作频率高达IGHz,在单通道工作模式下,2个ADC同时工作,分别在脉冲的上升沿和下降沿进行转换,所以zui高采样频率可以达到2GHz。卡上配置有16M的高速存储器,解决了高采样率和相对较低PCI总线数据传输速率的匹配问题。在使用之前必须对采集卡的硬件进行配置,这些控制程序用到相应的底层DAQ驱动程序。通过采集卡自带的DLL可以在程序中灵活地对硬件进行控制,比如输入阻抗、输入电压范围、放大器增益、采样频率、每次采样点数等。

3 系统的软件设计

3.1 虚拟示波器的软件开发环境

    虚拟仪器zui核心的技术是软件技术。目前,用于虚拟仪器开发的软件开发平台主要有二大类:一类是通用的可视化软件编程环境,主要有Microsoft公司的Visual C++和Visual Basic、Inprise公司的Delphi和C++Builder等;另一类是一些公司推出的于虚拟仪器开发软件的编程环境,主要有NI公司的图形化编程环境LabView及文本编程环境IabWindows/CVI、Agilent公司的图形化编程环境Agilent VEE。考虑到软件的灵活性、性和可移植性,本设计中采用visual C++作为虚拟示波器的开发环境。

佳工机电网

3.2 软件功能模块

该虚拟示波器有5大功能模块:信号采集、用户界面、频谱分析、数字滤波、波形显示。

3.2.1信号采集模块

    信号采集模块主要完成数据的采集,根据采集信号的不同选用不同的采样频率。该模块中的应用程序通过采集卡的驱动程序和硬件进行通信,如果把该模块放在程序主线程中实现,那么,当应用程序与驱动程序进行数据通信时主界面就会冻结。为了解决这个问题,本文直接创建一种子线程来单独完成与驱动程序的通信任务,让主界面于响应视窗界面的信息。在子线程中通过调用gage_start_capture()函数进行数据的采集。图2示出数据采集流程。数据采集的主要代码如下:

佳工机电网

3.2.2用户界面模块

    界面主要切分为3个视图:主视图基类为ScrollView,用于显示波形;2个视图基类为For-mView,1个用于动态显示采集数据的特征参数,另1个用于对示波器进行操作。整个软件的主界面设计如图3所示。

佳工机电网

3.2.3频谱分析模块

    本软件利用快速傅里叶变换(FFT)进行频谱分析。频谱分析采用按时间抽取FFT算法,然后将幅值频谱分析结果在用户界面上以坐标曲线形式显示。进行FFT时可以选择点数,有1024、2048、4096 3种选择,

沪公网安备 31011402002799号

Baidu
map