您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 基于VB与PCI-1712数据采集卡的虚拟示波器的设计
丽水学院毕业设计(论文)(2012届)题目基于VB与研华PCI-1712数据采集卡的虚拟示波器的设计指导教师院别班级学号姓名二〇年月日摘要上位软件设计与数据采集是虚拟示波器的主要部分。使用研华高数采集卡可完成对信号的高速采集与传输。软件与硬件的通信功能由VB6.0常用控件结合采集卡底层驱动函数与功能控件来实现,并运用DMA触发方式以保证传输速率。为了能清晰的显示波形,使用中值滤波算法对波形进行滤波,且程序简易。应用快速傅里叶变换算法解决对波形的频谱分析问题。目前,此设计已应用到兰州陆军总院骨质疏松治疗仪中的虚拟示波部分。经过反复试验,运行效果良好。关键词:虚拟示波器,PCI数据采集,DMA传输,VisualBasic,滤波,频谱分析.DesignofVirtualoscilloscopeBasedonVBandPCI-1712DataAcquisitionCardAbstract:Softwaredesignanddataacquisitionisthemainpartofthevirtualoscilloscope.UsingYanHuanhigh-speeddataacquisitioncancompletethesignalofhigh-speedacquisitionandtransmission.ThefunctionofSoftwareandhardwarecommunicationcanbeachievedwithVB6.0ActiveXcombinedwithacquisitioncardbottomdrivefunction,theDMAtriggermodecanensurethetransmissionrate.Usethemedianfilteringalgorithmforwaveformfiltering,programissimpleandwaveformdisplayclear.UseFFTforwaveformfrequencyspectrumanalysis.Atthepresent,thisdesignhasbeenappliedtothevirtualoscilloscopepartof.lanzhouarmyinstituteosteoporosistreatmenttherapy.Thepracticeprovesitsoperatingeffectisgood.Keywords:Virtualoscilloscope,PCIdataacquisition,DMAtransmission,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=0Forj=0Tocount/800–1’三角波第一段Fori=0To200-1voltage(k)=txtMagnitude.Text*(i/200)+txtOffset.Text*1k=k+1NextiFori=200To400–1’三角波第二段voltage(k)=txtMagnitude.Text*(1-(i-200)/200)+txtOffset.Text*1k=k+1NextiFori=400To600-1’三角波第三段voltage(k)=-txtMagnitude.Text*((i-400)/200)+txtOffset.Text*1k=k+1NextiFori=600To800-1’三角波第四段voltage(k)=-txtMagnitude.Text*(1-(i-600)/200)+txtOffset.Text*1k=k+1NextiNextj……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属性限定输入电压的幅值范围,本系统选定的电压范围为-10V—10V。完成初始化后,开始波形输出。对AdvGraph控件使用ClearData方法清除当前所有Plot中的数据再从新装入采集到FIFO内的数据。显示波形时,若采用默认方式,则波形将会堆积在有限区域内,所以需对波形显示部分加以设置,使波形能够在控件内清楚连续的显示。首先运用Axes函数的Minimun与Maxmun属性获取坐标轴的最大值与最小值,再运用ChartLength设置控件的每一条曲线在进行Chart方式输入数据时所保留的历史数据量。在以上的参数设置中,显示坐标轴的最小值为0最大值为输入频率的十分之一,历史数据的值设置为100000。即可以储存100000历史数据点。缓冲区内的数据存满时,而波形需要继续显示,则历史数据自动清除,重新载入新的数据,这些数据将记录在C:\DocumentsandSettings\Owner\MyDocuments\AIRawdata.dat中。将dat换成txt就可以在文本格式内查看数据。这样波形便可以连续不断的在控件内显示,示波显示程序如下:PrivateSubTimer5_Timer()DimlaopAsLongDimvalue1AsVariant
本文标题:基于VB与PCI-1712数据采集卡的虚拟示波器的设计
链接地址:https://www.777doc.com/doc-2572614 .html