基于VB与PCI1712数据采集卡的虚拟示波器的设计.docx

上传人:b****1 文档编号:60591 上传时间:2022-10-01 格式:DOCX 页数:10 大小:191.77KB
下载 相关 举报
基于VB与PCI1712数据采集卡的虚拟示波器的设计.docx_第1页
第1页 / 共10页
基于VB与PCI1712数据采集卡的虚拟示波器的设计.docx_第2页
第2页 / 共10页
基于VB与PCI1712数据采集卡的虚拟示波器的设计.docx_第3页
第3页 / 共10页
基于VB与PCI1712数据采集卡的虚拟示波器的设计.docx_第4页
第4页 / 共10页
基于VB与PCI1712数据采集卡的虚拟示波器的设计.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

基于VB与PCI1712数据采集卡的虚拟示波器的设计.docx

《基于VB与PCI1712数据采集卡的虚拟示波器的设计.docx》由会员分享,可在线阅读,更多相关《基于VB与PCI1712数据采集卡的虚拟示波器的设计.docx(10页珍藏版)》请在冰豆网上搜索。

基于VB与PCI1712数据采集卡的虚拟示波器的设计.docx

基于VB与PCI1712数据采集卡的虚拟示波器的设计

丽水学院

毕业设计(论文)

(2012届)

题目基于VB与研华PCI-1712数据采集卡的虚拟示波器的设计

指导教师

院别

班级

学号

姓名

 

二〇年月日

摘要

上位软件设计与数据采集是虚拟示波器的主要部分。

使用研华高数采集卡可完成对信号的高速采集与传输。

软件与硬件的通信功能由VB6.0常用控件结合采集卡底层驱动函数与功能控件来实现,并运用DMA触发方式以保证传输速率。

为了能清晰的显示波形,使用中值滤波算法对波形进行滤波,且程序简易。

应用快速傅里叶变换算法解决对波形的频谱分析问题。

目前,此设计已应用到兰州陆军总院骨质疏松治疗仪中的虚拟示波部分。

经过反复试验,运行效果良好。

关键词:

虚拟示波器,PCI数据采集,DMA传输,VisualBasic,滤波,频谱分析.

DesignofVirtualoscilloscopeBasedonVBandPCI-1712DataAcquisitionCard

Abstract:

Softwaredesignanddataacquisitionisthemainpartofthevirtualoscilloscope.UsingYanHuanhigh-speeddataacquisitioncancompletethesignalofhigh-speedacquisitionandtransmission.ThefunctionofSoftwareandhardwarecommunicationcanbeachievedwithVB6.0ActiveXcombinedwithacquisitioncardbottomdrivefunction,theDMAtriggermodecanensurethetransmissionrate.Usethemedianfilteringalgorithmforwaveformfiltering,programissimpleandwaveformdisplayclear.UseFFTforwaveformfrequencyspectrumanalysis.Atthepresent,thisdesignhasbeenappliedtothevirtualoscilloscopepartof.lanzhouarmyinstituteosteoporosis treatmenttherapy.Thepracticeprovesitsoperatingeffectisgood.

Keywords:

Virtualoscilloscope,PCIdataacquisition,DMA transmission,VisualBasic,filtering,spectrumanalyzer.

0引言

在电子测量系统中,示波器是必不可少的电子测量设备。

传统示波器由硬件电路集成,软件固化在硬件中很难修改,且结构复杂,造价高,设备不易维修。

目前,随着集成电路与RAM的高速发展,现代工业测量系统,越来越趋向于软件测试系统,并有了虚拟仪器的概念。

所谓虚拟仪器,就是利用目前种类繁多,功能强大的应用软件通过windows操作平台,并结合板卡底层的驱动函数来实现硬件的部分功能。

本文研究设计的虚拟示波器就是利用这种思想设计完成的,这不但扩展了硬件功能,且具有开发周期短,稳定性高等特点。

1系统硬件结构

如图1为系统硬件的整体设计图。

图1系统硬件结构图

如图1所示,系统的硬件部分主要由计算机,PCI板卡,信号调理电路组成,完成信号的采集、调理、放大、输出等功能。

其中信号的采集是系统硬件的关键部分,使用研华厂家提供的PCI-1712采集板卡来完成。

PCI-1712是一款高速多功能PCI总线数据采集卡。

它有1M转换速度的12位A/D转换器,卡上带有FIFO缓冲器(可存储1KA/D采样值和32KD/A转换数据)。

PCI-1712提供16路单端或8路差分的模拟量输入(也可单端差分混合使用),2路12位D/A模拟量输出通道,16路数字量输出通道,以及3个10MHz时钟的16位多功能计数器通道。

完全满足了本设计的高频率波形输出和高速数据采集的需要。

PCI-1712/1712L是一个即插即用设备,完全符合PCI规格Rev2.1标准。

在安装插卡时,用户不需要设置任何跳线和DIP拨码开关。

实际上,所有与总线相关的配置,比如基地址、中断,均由即插即用功能自动完成。

触发源既可以是模拟量,也可以是数字量。

模拟量触发信号可以由一个专门的输入管脚产生。

信号调理电路就是信号调理辅助电路,通过多路传感器检测各种被测信号的物理量,并从混合信号中提取出待测的微弱信号,再经过功率放大器进行放大。

此时输出的多路信号是已经放大滤波和电平变换后的标准信号,通过采集卡的模拟量输入通道(AI)送入进计算机进行处理。

功率放大器输入端通过端子排ADAM-3968和PCI-1712的模拟量输出通道相连,接受采集卡输出的电压范围为-10-10V,频率在0-1000HZ之间的电压波形信号。

PCI-10168(两端针型接口的68芯SCSI-II电缆,1米和2米)将PCI-1712与ADAM-3968(可DIN导轨安装的68芯SCSI-II接线端子板)连接,这样PCI-1712的68个针脚和ADAM-3986的68个接线端子一一对应,可通过将输入信号连接到接线端子来测试PCI-1712管脚。

2.系统软件部分

软件部分是设计的核心内容,完成信号分析与处理功能,系统在开发方式上采用研华提供的设备底层驱动函数和功能控件,并结合VB6.0常用的一些控件进行设计。

在软件开发之前,将PCI板卡插入PCI插槽内,开机,计算机自动扫描硬件,发现有新的硬件,计算机自动给硬件分配地址,并在硬件资源管理器中可看到有研华板卡的图标,表示计算机已经识别到硬件。

然后安装板卡驱动程序,驱动程序兼容多种编程语言,选择VB进行安装。

安装完成之后,在工具箱内添加板卡的控件,编写程序时就可以调用板卡控件及库函数来对板卡进行控制。

如图2所示为虚拟示波器的操作界面。

图2虚拟示波器操作界面

2.1信号输出的设计

操作界面的左侧部分为信号输出部分,此部分实现的功能是通过数据采集卡的模拟量输出通道,输出电压幅值在-10-10V,频率在0-1000HZ的正弦波、三角波、锯齿波、方波、脉冲波等。

除此之外,用户还可以根据需要,编辑相应的波形输出程序。

在编写代码之前应先加载Adsapi32.lib库文件和Driver.h头文件,并添加相应的ActiveDAQ控件,此部分主要调用AdvAO模拟量输出控件,这些文件中声明了有关常量、变量、DLL函数及相应的结构,在设计中只需按要求使用即可而无需再次定义。

在波形输出界面内,提供了波形种类,及其幅值,频率的选择。

另外还添加了波形输出时间,即用户可根据需要设置波形输出时间。

软件将波形参数记录在TextBox控件内,txtMagnitudeTextBox控件为幅值选择,RaceRateTextBox控件为频率选择。

设置好的波形参数将以变量的形式应用在程序中。

对于AO通道参数使用函数AdvAO的ChannelExportStart属性设定起始通道号,ChannelExportCount属性设置通道数,这两个属性共同决定了输出通道的宽度(这里系统可根据需要扩展多通道同时输出,本系统根据陆军总院的用户需要只使用一路模拟量输出通道。

)。

在参数设置时需要考虑到,板卡的转换速度是1M/S如果选择周期内采样点过多,图形显示会更清晰准确,但是上线频率会受到限制,反之亦然。

综合考虑,系统选择每秒800个采样点,上限频率可达到1000HZ,也可以显示相对较清晰的波形。

程序中波形函数定义的点以一维数组的形式存储在C:

\DocumentsandSettings\Owner\MyDocuments\AoRawdata.dat文件中。

当点击开始输出时,被选通的AO量通将按设置好的参数输出相应波形。

以下为三角波波形输出程序如下:

PrivateSubcmdRun_Click()’开始输出按钮执行代码

……

AdvAO1.ChannelExportStart=0’设置起始通道编号

AdvAO1.ChannelExportCount=1’设置通道数

AdvAO1.DataPacerRate=CLng(PacerRate.Text)’设置输出频率

b=AdvAO1.SetValueRange(0,LowRange.Text,HighRange.Text)’设置0通道电压范围

……

IfcmbWaveForm.Text="三角波"Then’三角波输出,一个周期800个点,分四段

k=0

Forj=0Tocount/800–1’三角波第一段

Fori=0To200-1

voltage(k)=txtMagnitude.Text*(i/200)+txtOffset.Text*1

k=k+1

Nexti

Fori=200To400–1’三角波第二段

voltage(k)=txtMagnitude.Text*(1-(i-200)/200)+txtOffset.Text*1

k=k+1

Nexti

Fori=400To600-1’三角波第三段

voltage(k)=-txtMagnitude.Text*((i-400)/200)+txtOffset.Text*1

k=k+1

Nexti

Fori=600To800-1’三角波第四段

voltage(k)=-txtMagnitude.Text*(1-(i-600)/200)+txtOffset.Text*1

k=k+1

Nexti

Nextj

……

b=AdvAO1.ConvertAnalogValueToDigital(voltage,vs,count)’数字型转模拟数据

b=AdvAO1.TransferBulkDataFromMemory(count,vs,-1,1,False)’调用函数输出波形

EndSub

这里只以三角波输出为例,正弦波,方波等常用周期波形的编程算法与此相同。

程序中还设置了各种提示,当输入的参数为空或是超出制定范围时,则使用msgbox函数提示参数设置错误,起到保护硬件设备的作用。

2.2信号采集

如图2所示界面的右侧部分为信号显示部分。

传感器将现场信号经信号调理电路转换为标准的电压信号传送给PCI采集卡。

采集卡先将这些电压量数据存储在板卡自带的缓冲区内,再调用板卡提供的AdvGraph控件显示波形。

具体实现方法如下:

选择一路模拟量输入通道作为信号采集通道,与从信号调理电路转换过来的标准信号相连接。

当触发按钮控件的click事件时,计时器开始计时,并对模拟量输入通道进行初始化。

调用AdvAI函数,设置其ChannelScanStart、ChannelScanCount、DataSampleRate的值来获得模拟量输入的通道号、通道个数及获取FAI方式的采集频率(单位Hz)的参数值。

SetValueRange属性

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1