基于高速数据采集卡的虚拟示波器的应用毕业设计_第1页
基于高速数据采集卡的虚拟示波器的应用毕业设计_第2页
基于高速数据采集卡的虚拟示波器的应用毕业设计_第3页
基于高速数据采集卡的虚拟示波器的应用毕业设计_第4页
基于高速数据采集卡的虚拟示波器的应用毕业设计_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I本科毕业设计(论文)题目基于高速数据采集卡的虚拟示波器的设计使它可以在数据采集、分析和表达中的任意一个方面提升仪器的性能。以虚拟仪器为代表的新型仪器改变了传统仪器的思想,它们充分利用了计算机强大的软硬件资源,把计算机技术和测量技术紧密结合起来,是融合了电子测量、信号处理、计算机和网络技术的新型测量仪器,由于成本低、使用方便等优点得到了广泛的应用。本文基于GaGe公司的高速数据采集卡CS82G和通用PC平台,使用VC++6.0编程工具,完成了一种快速虚拟示波器的设计。首先,本文介绍了虚拟仪器的研究背景和意义以及国内外的一些研究进展。对虚拟仪器总体进行了概述,讨论了虚拟仪器的概念、构成、特点、发展,建立了虚拟仪器的基本框架。然后对虚拟示波器的重要组成部分一数据采集系统进行了探讨,同时对CS82G数据采集卡进行了深入的研究,在此基础上,进行了虚拟示波器的系统设计。本文的重点是第五章虚拟示波器的具体实现,这部分完成了虚拟示波器各模块的详细设计,包括数据采集模块、用户界面模块、频谱分析模块、数字滤波模块、波形显示模块和参数计算模块的设计,并给出了设计和实验结果,还讨论和实现了软件设计中的关键技术,最后进行了系统性能分析。文章的最后进行了课题的总结和展望。本文对相关高速、大容量数据采集系统和虚拟仪器的设计有重要的参考价值。关键词:虚拟仪器虚拟示波器数据采集CS82TheinstrumentationindustryisudevelopmentofPCs,ThePCrevolutionhasequifideasoftraditionalinstrumentannew-styleinstrumentthatcombinesthetechnincludingtheresearchstatusofVIinChinaandforeigncountries.Then,tofVIaresummarizedincludingtheandthedevelopmentofVI,whichestablishedtheframeworkofVI.Aexistingproblemsarepointedoutaswellasthesummaryvaluetothedesignofcorrelativefast,large-capabilitydata-acquisitionsystemaKeywords:virtualins 1 2第二章虚拟仪器技术 4 42.2虚拟仪器的特点 5第三章基于数据采集卡的虚拟示波器的研究 63.1基于PC的数据采集系统 6 6 7 3.3.2系统的结构和特点 8第四章虚拟示波器的方案设计 94.1硬件和软件的选择 94.1.1硬件的选择 94.1.2软件开发环境的选择 4.2软件总体方案 第五章虚拟示波器系统的软件具体实现 5.2数据采集模块的设计 5.2.1数据采集的编程过程 5.2.2采集模块的流程图 5.3软面板的设计 5.4频谱分析模块的设计 5.4.1设计结果 V5.4.2数字滤波模块的设计 5.6波形显示模块的设计 5.6.1数据内插技术 5.6.2波形显示技术 5.6.3设计结果 第六章总结和展望 6.2展望 参考文献 1第一章绪论1.1引言虚拟仪器是随着计算机技术、电子测量技术和通信技术而发展起来的一种新型仪器,虚拟仪器的出现是测量仪器领域的一个突破,从根本上更新了测量仪器的概念。它是在以通用计算机为核心的硬件平台上,由用户设计定义,具有虚拟面板,测试功能由测试软件实现的一种计算机仪器系统。虚拟仪器技术充分利用计算机系统强大的数据处理。能力,利用软件完成数据的采集、控制、数据分析和处理以及测试结果的显示等,通过软、硬件的配合实现传统仪器的各种功能,大大突破了传统仪器在数据处理、显示、传送、存储等方面的限制,使用户可以方便地对仪器进行维护、扩展和升级。它的优势在于可由用定义自己的专用仪器系统,且功能灵活,很容易构建,所以应用面极为广泛。尤其在科研、开发、测量、检测、计量、测控等领域更是不可多得的好工具。虚拟仪器技术先进,十分符合国际上流行的“硬件软件化”的发展趋势,因而常被称作“软件仪器”。随着计算机技术的广泛应用,传统的仪器设备缺乏相应的计算机接口,因而配合数据采集及数据而且,传统仪器体积相对庞大,多种数据测量时常常感到捉襟见肘。我们常见到硬件工程师的工作台上堆砌着纷乱的仪器,交错的线缆和繁多待测器件。然而在集成的虚拟测量系统中,我们见到的是整洁的桌面,条理的操作,不但使测量人员从繁复的仪器堆中解放出来,而且还可实现自动测量、自动记录、自动数据处理。其方便之极固不必多言,而设备成本的大幅降低却不可不提。一套完整的实验测量设备少则几万元,多则几十万元。在同等的性能条件下,相应的虚拟仪器价格要低二分之一甚至更多。虚拟仪器强大的功能和价格优势,使得它在仪器计量领域具有很强的生命力和十分广阔的前景。1.2研究的背景和意义所谓虚拟仪器就是微机化的智能电子测量仪器。虚拟仪器通过硬件功能模块和专用软件构成一种良好的人机交互界面,用户可以自定义测试功能以及使测量对象多样化。虚拟仪器的外部接口是通过数据采集卡将信号数据采集后送入计算机,各种复杂测试功能、数据分析和结果显示则完全由计算机软件完成。一台性能优良的虚拟仪器不仅可以实现传统测量仪器的大部分测量功能,在许多方面较传统仪器有无法比拟的优点,如使用灵活方便、测试功能丰富、价格低廉、一机多用等,这些使得虚拟仪器成为未来电子测量仪器发展的2一台传统仪器有3大功能:对被测信号的采集与控制,分析与处理,结果的表达与输出。传统仪器的这些功能都是以硬件(或固化的软件)的形式存在的。虚拟仪器的特点就是将计算机技术和仪器技术有机结合,充分利用计算机技术,用计算机的显示器模拟各种仪器的控制面板,以多种形式表达输出检测结果;以计算机软件实现各种模拟信号分析,处理,完成多种多样的测试。在电子测量测试仪器中,示波器的使用范围非常广泛。传统示波器包能比较单一。近年推出的数字存储示波器,由于引入微处理器,极大地提高了测量准确度,同时还具有较强的数字化处理功能,如FFT、信号平均和自动测频等。不过,这种示波器在应用上存在一些限制因素,例如价格昂贵,仪器功能和模式固定,不具备用户对仪器进行定义及编程的功能。本文采用基于计算机的虚拟技术,设计出虚拟存储示波器,模拟通用双踪示波器的面板操作和处理功能。使用个人计算机及其接口电路来采集现场和实验室信号,并通过图形用户界面来模仿示波器的操作面板完成试验采集,调理,分析处理和显示输出,存储记录等功能。当今,对低速的虚拟仪器的研究已经比较多,而以GaGe公司的高速卡为数据采集设备的虚拟示波器的研究与设计还未见报道。本课题研究的虚拟示波器是一种重要的虚拟仪器,主要用于超高频信号的采集、波形显示和频谱分析,在雷达信号处理和激光信号处理等领域有着广泛的应用。1.3本文内容安排本文主要基于GaGe公司PCI接口的CompuScope82G高速数据采集卡和VisualC++6.0编程工具,完成了一种快速的虚拟示波器试验系统的设计。第一章为绪论,介绍了虚拟仪器的研究背景和意义以及国内外的一些研究进展;第二章为虚拟仪器总体概述,讨论了虚拟仪器的概念、构成、特点、发展,建立了虚拟仪器的基本框架。第三章为基于数据采集卡虚拟示波器的研究,主要包括对数据采集系统各组成部分进行了探讨。在这基础上,给出了基于数据采集卡的虚拟示波器的结构。第四章为虚拟示波器的方案设计,选择了示波器的硬件和示波器的软件开发环境,介绍了虚拟仪器软件的设计方法,提出了系统软件的总体设计方案。第五章为虚拟示波器的具体实现,是本文的重点,完成了虚拟示波器各模块的详细设计,包括数据采集模块、用户界面模块、数字滤波模块和波形显示模块的设计,并给出了设计结果,最后讨论了软件设计中的关键技术的实现。第六章为总结和展望,主要对本文的已做工作做了总结,并对虚拟仪器的发展3前景作出了展望。4第二章虚拟仪器技术2.1虚拟仪器的基本概念虚拟仪器(VirtualInstruments,缩写为VI)是指以通用计算机作为系统控制器、由软件来实现人机交互和大部分仪器功能的一种计算机仪器系统。用户可以通过友好的图形界面(通常叫做虚拟前面板)操作这台计算机,就象在操作自己定制的一台传统仪器一样。虚拟仪器的概念是对传统仪器概念的重大突破,它的出现使测量仪器与个人计算机的界限所有的测量、控制仪器的功能可由数据采集、数据分析、结果输出与显示三大部分组成。在这三大功能中,数据分析、算法实现和结果显示完全由基于计算机的软件完成,只要另外提供一定的数据采集硬件、输出端口和驱动设备,就可构成由计算机组成的测量、控制仪器。由此可以看到虚拟仪器与传统仪器的基本区别;传统仪器的这些功能都是以硬件或者固化的软件的形式存在的,而虚拟仪器的功能则是通过软件实现对数据的分析处理、表达以及图形化用户接口(如图2-1所示)。插入式数据采集卡数字信号处理数据表达Networking文件1/0图2-1虚拟仪器的内部功能划分测试应用程序将可选硬件(如GPIB、VXI、PXI、RS—232、DAQ板)和可重复用原码库函数等软件结合在一起,实现仪器模块间的通讯、定时与触发。原代码库函数为用户构建自己的VI关系系统提供了基本的软件模块。由于VI的模块化、开放性和灵活性,以及软件是关键的特点,当用户的测试、控制要求变化时,可以方便的向用户自己来增减硬、软件模块,或重新配置现有系统以满足新的测试、控制要求。这样,当用户从一个项目转向另一个项目时,就能简单地构造出新的VI系统而不丢失已有的硬件和软件资源。52.2虚拟仪器的特点虚拟仪器是以装有测量应用软件的个人电脑为核心,具有虚拟的仪器操作面板,足够的硬件支持,有一定通信能力的测量装置。它和传统仪器相比具有以下的特点:(1)虚拟仪器的关键环节是软件。虚拟仪器系统中除PC机外的硬件主要用于数据的采集、输入,至于系统怎样处理数据,具有怎样的面板和数据输出的形式等都是由软件决定的。虚拟仪器的好坏,很大程度上取决于软件水平的高低。(2)开发与维护的费用低,系统组建时间短。当需要增加新的测量功能,只需要增加软件模块或通用的硬件模块,缩短了系统的更新时间,而且有利于系统的扩展。应用软件不像传统仪器的硬件那样存在元器件老化的问题,大大节省了维护的费用,延长设备的使用寿命。传统仪器测量个体之间差异大,而虚拟仪器的应用软件在不同的PC机上具有相同的运行效果,在软件运行这方面不存在个体的差异。因为传统仪器功能单一,所以对一个信号完成多个参数的测量需要多台仪器,使测量受连接方式、电缆度等因素的影响。虚拟仪器只需对信号进行一次采样,多个软件模块对同一组数据进行不同的处理就能实现多个参数的同时测量。(5)具有强大的数据处理功能。计算机运算速度的大大提高和数字信号处理理论的丰富和完善,使虚拟仪器能够快速准确的处理数据。6第三章基于数据采集卡的虚拟示波器的研究基于数据采集系统(采集卡)的虚拟示波器是虚拟仪器的一种重要的构成方式,其中的核心设备数据采集卡应具有高速采样、多种触发、存储数据以及与计算机之间交换数据的功能,有的数据采集卡还具有系统定时和系统同步等功能,它是外界电信号与计算机之间的桥梁,其性能直接决定着数据采集的精度和速度,影响着虚拟示波器的整体性能。3.1基于PC的数据采集系统基于PC机的数据采集系统(DataAcQuisition,DAQ)大致有两种,一种是采用插入PC控制槽中的插卡形式实现数据采集并将数据直接通过PC总线传入计算机内存中;另外一种采用远端数据采集硬件完成数据采集,然后通过串行、并行方式或者USB接口将数据传回计算机。本课题采用的是第一种方式构成的数据采集系统,以便进行高速、大容量的数据采集和传输。基于计算机的数据采集系统的结构如图3-1所示,该系统由传感器、信号调理、数据采集(DAQ)硬件、个人计算机、软件等基本要素构成。信号调理传感器信号调理传感器软件数据软件常用的数据采集硬件的功能包括模拟量输入、模拟量输出、数字量输出、定时I/0和触发等。在数据采集系统中,软件起着将DAQ硬件和PC转换成一个完整的数据采集、分析和显示系统的功能。软件主要有驱动器软件和应用软件两部分组成。3.2超高速数据采集卡CS82G本次设计中采用的CS82G是一种超高速的基于PC的数据采集卡,CS82G的硬件可以以极高的采样率和多通道采样模拟信号并缓存到卡上的存储器。CS82G基于PC的一个主要优点是它能够以极高的速率把数据传输到PC的RAM中,数据可以从RAM中很容易地进行分析、存储和显示。CS82G可以直接插在PC的PCI插槽里,因此不需要辅助的数据接口,比如GPIB接口,这也可以解释它的高速据传输率,图3-2展示CS82G的结构框图。CS82G的硬件主要由前置滤波器、衰减器、可程控模拟放大电路、A/D转换电路、7能,其结构框图如图3-2所示。增益可调放大器增益可调放大器计数器-触发器振荡器数据缓存控制器ADC-地址线滤波ETETPCI总线FF图3-2CS82G的系统框图3.3基于数据采集卡的虚拟示波器的原理和结构3.3.1虚拟示波器的工作原理83.3.2系统的结构和特点基于数据采集卡的虚拟示波器由支持软件、数据采集卡及PC机组成,其结构如图3-3所示。数据采集卡数据采集卡计算机计算机软件图3-3基于数据采集卡的虚拟示波器的结构虚拟示波器和传统示波器的根本区别在于:(1)传统示波器完全用硬件实现,功能和模块固定,其功能的自动测试系统,功能及模式由用户自己定义。(2)传统示波器结构复杂,维护困难,对工作现场条件有较高的要求。器结构简单,软硬件维护都很方便。9第四章虚拟示波器的方案设计4.1硬件和软件的选择虚拟示波器主要由仪器硬件和功能软件两部分组成。以DAQ方式构成的虚拟示波器的硬件主要由计算机和模块化硬件组成,计算机通常是个人计算机,也可以是任何通用计算机。模块化硬件主要是数据采集卡。本课题设计的虚拟示波器主要是由一块PCI总线的高速数据采集卡、PC机和用VC++6.0开发的功能模块软件组成。4.1.1硬件的选择计算机和数据采集卡组成了虚拟示波器的硬件平台。数据采集卡是虚拟示波器的重要及计算机的内存影响着示波器处理数据的速度;计算机的硬盘决定着它的存储数据的容量。数据采集系统的任务是采集原始的模拟信号,把它们转换为计算机可以处理的数字信号,其主要指标有采样精度和采样速度。采样精度主要由A/D转换器的位数决定,而采样速度由A/D转换器最高工作频率决定,然而,两个指标是相互制约的。数据采集卡的选择主要与采样率、采样通道数和测量精度有关。根据第三章的分析,采样率是指模拟量输入通道在单位时间内能够采集的数据点数,一般用Hz即采样频率来表示,也有的用S/s表示。采样频率高,就能在一定时间获得更多的原始信号信息。为了再现原始信号,必须有足够高的采样频率。如果信号变化比采集卡的数字化要快,或者采样太慢,就会产生波形失真。根据奈奎斯特理论,采样频率至少是被测信号最高频率的两倍,才不至于产生波形失真。即应选用2GHz的数据采集卡才可以完成最高频率为1GHz的采样通道数是系统可以同时进行采样的信号通道数,在选取采集卡时需要注意以下几点:采样通道数是否满足系统要求;在需要差分输入测量时,板上有无差分输入以及差分输入的通道数;在测量多通道时,应注意采集卡能否扩展以及最多的可扩展的通道数。4.1.2软件开发环境的选择在给定计算机和必要仪器硬件之后,构成虚拟仪器的关键在于软件。虚拟仪器系统的一个重要革新就是仪器硬件软件化,用软件实现硬件功能。虚拟仪器系统的核心技术是软件技术,一个现代化测控系统性能的优劣很大程度上取决于软件平台的选择与应用软件的设计。因此正确选择软件开发环境对于程序的开发和设计起着重要的作用。目前,能够用于虚拟仪器系统开发、比较成熟的软件开发平台主要有两大类:一类是通用的可视化软件编程环境,主要有Microsoft公司的VisualC++和VisualBasic、Insprise公司的Delphi和C++Builder等;另一类是一些公司推出的专用于虚拟仪器开发的软件编程环境,主要有Agilent公司(由原HP公司分离出来的一个公司)的图形化在以上这些的软件开发环境中,面向仪器的交互式C语言开发平台LabWindows/CVI具有编程方法简单直观、提供程序代码自动生成功能及有大量符合VPP规范的仪器驱动程序源代码可供参考和使用等优点,是国内虚拟仪器系统集成商使用较多的编程开发环境。AgilentVEE和LabVIEW则是一种图形化编程环境或称为G语言编程环境,采用了不同于文本语言的流程图编程方法,十分适合对软件编程了解较少的工程技术人员使用。VisualC++是一种功能齐全的面向对象的开发工具,可直接对硬件操作,支持多任务多线程。VisualC++不仅是C++语言的集成开发环境,而且与Win32紧密相连,所以利用VisualC++开发系统可以完成各种各样应用程序的开发,从底层软件直到上层面向用户的软件都可以用VisualC++来开发完成;而且VisualC++强大的调试功能也为大型复杂软件的开发提供了有效的排错手段。随着软件版本的不断升级,其功能也越来越强大,几乎VisualC++可以说是汇集Microsoft公司技术精华的主流产品。它最重要的特征是提供了MFC类库,封装了WindowsAPI函数,并建立了应用程序框架,使开发人员可以将主要精力集中在所要解决的具体问题上,尤其是利用VisualC++的AppWizard功能生成的SDI或MDI应用程序,进行少量修改后,由于VisualC++的面向对象程序设计的特性十分适在本设计中所使用的数据采集卡的驱动程序是由C语4.2软件总体方案虚拟示波器是采用基于计算机的虚拟技术,用以模拟传统示波器的面板操作和处理功能,也就是使用个人计算机及其接口电路来采集现场或实验室信号,并通过软件的图形用户界面(GUI)来模仿示波器的操作面板,来完成信号的采集、分析处理和显示输出等功本课题设计的虚拟示波器,是在高速数据采集卡的支持下,配备一定功能的软件,完成波形的存储、分析、显示等功能。传统的测试仪器由信号采集、信号处理和结果显示三大部分组成,这三部分均由硬件构成。虚拟示波器也是由这三大部分组成,但是除了数据本次设计利用VisualC++6.0作为开发工具,采用了面向对象的程序设计方法,在Windows2000下进行。软件采用模块化设计,其总体框图如图4-1所示。从图4-1可以看出软件部分的总体框图以及数据流、控制流的流向。其中主控模块相当于一个任务调度中心。当软件开始运行时,首先进入主控模块,然后启动数据采集线程和数据处理线程,于是数据采集模块和数据处理模块开始工作直至用户停止系统工作。数据流从数据采集模块开始,分别流向数据存储模块和数据处理模块,数据存储模块负责把用户感兴趣的数据存人硬盘,而数据处理模块负责数据的实时显示、数字滤波、频谱分析和波形的参数计算。当用户需要查询历史信号时,可以启动历史查询模块,然后把查询到的数据送往历史主控模块历史查询模块曲线打印模块频谱分析模块数字滤波模块实时显示示模块数据查询曲线显示模块帮助文件模块数据处理模块参数计算模块图4-1软件系统总体框图开始开始主程序是否查看历史数据历史曲线显示打印模块消息循环数据选择数据区间存储数据启动采样数据是否收到选择处理种类图4-2软件系统总体流程图第五章虚拟示波器系统的软件具体实现5.1虚拟示波器的系统软件功能框图软件采用模块化设计,在功能上划分为多个模块,分别为数据采集模块、软面板模块 (用户界面模块)、数据处理模块、数据存储模块和帮助文件模块。其中数据处理模块又划分为频谱分析模块、数字滤波模块、参数计算模块和波形显示模块。各个模块之间的联系如图5-1所示。由于篇幅关系,本文中只给出了重要模块的设计。5.2数据采集模块的设计数据采集模块是最为关键的一个程序模块,这个模块中应用程序会通过采集卡的驱动程序和硬件进行通信,要发出各种控制字、参量字到仪器中去,同时又要对硬件的工作状态进行判断和处理,然后读取采样值。如果把这个模块程序在主线程中实现,那么,当应用程序与驱动程序进行数据通信时,主界面就会冻结。为了解决这个问题,本文直接创建一个子线程来单独完成与驱动程序的通信任务,让主界面专心于响应视窗界面的信息。在主线程中通过调用StartCapture()函数启动数据采集子线程进行数据采集。5.2.1数据采集的编程过程(1)初始化采集卡的驱动程序和硬件文件来配置内存区域和I/0地址,二是用户进行的采集卡驱动初始化,选择(打开相应的)采集卡,读取配置文件等。驱动程序的初始化也可以直接调用InitBoard()函数或对此函数进行适当的修改后调用(该函数的源代码在app_supp.c文件中)。(2)设置相关参数准备进行数据采集该采集卡的所有的参数都是通过软件进行设置的,驱动程序中提供了一些数据结构,通道,多通道),采样率、输入电压的范围、输入阻抗及耦合方式、触发源、上升沿、下降沿触发、触发电平、采样深度(采样点数),所有这些参数设置被综合到一个函数中:SetBoard();对此函数进行适当的修改,即可满足采集的要求。(3)开始采集数据调用gage_start_capture()函数即开始采集数据,如调用时传给该函数的参数为非零值,且触发条件设置为软件触发,则调用此函数后立即开始采集数据,否则就等待至触发条件满足时开始采集数据。当计算机上只有一块GaGe公司的采集卡时,可以用另外两个函数来代替gage_start_capture();即顺序调用gage_init_clock()和gage_get_data();执行这两个函数的速度比执行gage_start_capture()要快许多,因为gage_start_capture()要做一些额外的工作以确保多卡同时有效地工作。(4)检测数据是否采集结束gage_abort_capture()。gage_triggered()是用来检测采集卡是否已经触发,如果没有触发,则在采集卡的RAM上没有有效数据。gage_busy()则是用来判正在采集数据时,是不能读取采集卡上的RAM的(该卡上的RAM是单端口的)。可以用gage_force_capture()强制触发一次,或者用gage_abort_capture()结束这一次数据采(5)传输数据从采集卡RAM至计算机的内存gage_transfer_buffer_3();使用它时需要传递的参数为开始地址和要传送的数据量。{/*校验当前采集卡的结构*/gage_start_capture((int16)/*计算出起始地址、触发地址、结束地址*/gage_calculate_addresses(GAGE_CHAN_A,board.[board.srindex].sr_calc/把采集卡上的数据传输到计算机内存*/}5.2.2采集模块的流程图采集模块的流程图如图5-2所示。5.3软面板的设计类为CscrollView,用于显示波形;还有两个视图基类为CformView,一个用于动态显示采集数据的特征参数,另一个用于对示波器进行操作。整个软件的主界面设计如图5-3所(1)在框架窗口类中声明一个CSplitterWnd类对象,对MDI应用程序,框架窗口类为CChildFrame类;对SDI应用程序,框架窗口类为CMainFrame类。CSplitterWnd类是(2)在框架窗口类的OnCreateClient()函数中创建分割条窗口。(3)为分割条窗口的每个子窗口创建视图。示波器主界面分为三个功能模块,波形显示模块,参数显示模块和示波器操作模块。在波形显示模块中,可以同时动态显示两个通道的波形。在参数显示模块中,可以动态显示两个通道的参数,主要有周期、最大值、有效值、功率和频率,当然周期和频率是针对周期信号来说的。在示波器操作模块中,又可以分为两个部分,分别是系统控制和通道控制。系统控制主要是对采样频率、触发源、触发电平、采样深度的控制;通道控制主要实现两个通道参数的设置和波形显示的控制。通道参数主要有输入电压的范围、单/双通道选择、输入阻抗和交直流耦合;显示控制包括时基控制、波形缩放和单/双通道显示选择。5.4频谱分析模块的设计本软件利用快速傅里叶变换(FFT)进行频谱分析。频谱分析采用按时间抽取FFT算法,然后将幅值频谱分析结果在用户界面上以坐标曲线形式显示。进行FFT时可以选择点数,有1024、2048、4096三种选择,如果点数不够,程序自动补零。初始化驱动器和硬件分配存储空间开始采集N触发Y超时Y强迫采集Y忙超时Y放弃采集分析,处理数据传输数据N图5-2数据采集程序流程图日值0T87棋oMede数期天有平项oa5-3虚拟示波器的主界面由于X₁(k)和X₂(k)均为N/2为周期,且Wk+(N/2)=-W,所以X(k)又可表示为X(k)=X₁(k)+W*X₂(k).这样,就将N点DFT分解为两个N/2点的DFT和式5-1以及5-2的运算。依次类推,经过M-1次分解,最后将N点DFT分解成N/2个2点DFT.5.4.1设计结果频谱显示模块主要完成对不同通道信号频谱的显示,它由参数设置对话框和频谱显示对话框组成。参数设置对话框主要完成通道和采样点数的选择,如图5-5所示。开始开始倒序输出结束图5-4DIT-FET运算和程序框图图5-6锯齿波的频谱图5.4.2数字滤波模块的设计在虚拟示波器中,对被测信号背景噪声干扰的抑制是非常重要的一个任务,一般情况下,采用数字滤波可以较好地清除干扰。滤波器的设计采用了经典的设计方法,首先根据指标设计出巴特沃斯滤波器,然后利用双线性变换法设计数字低通滤波器,这部分的内容在一般的数字信号处理著作中都有详尽的介绍。数字滤波模块主要完成对不同通道的滤波和滤波前后波形的显示,图5-8为滤波器的控制对话框,它主要完成通道的选择、滤波器类型的选择和一些参数的输入。滤波前后波形的显示仍在主界面中的波形显示区进行,图5-9为锯齿波通过低通滤波器,其中下面的波形为输入的锯齿波,上面的波形为锯齿波滤波后的波形。图5-8滤波器的控制对话框图5-9锯齿波通过低通滤波器后的波形5.6波形显示模块的设计5.6.1数据内插技术要想观察采集好的波形,就必须采用某种方式将采集好的数据显示出来,这就要用到数据内插技术。选择不同的内插技术会对存储带宽带来不同的影响。常用的内插技术有:直接点显示、矢量内插和正弦内插。(1)直接点显示直接点显示是在显示器上直接按点显示,显示效果较为直观,但该方式也存在着严重的不足。当采样点较少时,观察者会把相邻的两个点连起来,随着信号频率的增加,很可能得出错误的结果。因此,要得到正确的结果就必须采集更多的点,但是太多的点反而会影响观察结果。一般情况下,每个周期要求20~25个点。(2)矢量内插显示矢量内插是在采集点之间采用直线拟合方式画线显示的方法。它可以消除视觉上混淆,矢量越短效果就越好。对正弦信号而言,如果每周期只有两个采样点,那么矢量内插就没有什么效果。一般当采样点增加到10个以上时,才能得到较为准确的正弦波。因此,采用矢量内插的方法,可以将有效存储带宽提高两倍以上。矢量内插法适合于显示脉冲和(3)正弦内插显示正弦内插法是用sin(x)/x函数曲线将各采样点连接起来。正弦内插器基本上可看作是理想的矩形滤波器,它与矢量法相比不但可以产生精确的波形,也可以得到较高分辨率正弦内插法分两步来完成。首先,在每个己采样点之后插入L-1个零值,这时产生的新序列的奈奎斯特频率已经提高了L倍,然后我们就可以通过适当的数字滤波器来获取原我们可以采用有限长脉冲响应(FIR)数字滤波器来近似该理想滤波器。因此,正弦内插法本质上是一个线性滤波器。这种方法对于显示正弦波特别有效,它一般只需每个周期有2.5个采样点。当脉冲信号的上升与下降时间大于采样周期的1.7倍时,正弦内插法对脉冲信号也十分有效。但是,对于变化很快的脉冲信号,该方法就不可能精确的恢复该信5.6.2波形显示技术虚拟示波器的工作原理是对信号波形进行密集的采样,采样值被数字化并被存储,然后从存储器中读出,重建波形并用清晰的、均匀一致轨迹映现在屏幕上。由于检测的波形经数字化后只是一连串离散的数据,因此,如何重建波形是设计虚拟示波器的关键问题。虚拟示波器与传统示波器的一大区别在于它没有扫描电路,它也不是基于示波管的线它属于软件处理的范畴。与数字示波器类似,虚拟示波器也有一个不工作区的问题,捕捉信号需要时间(包括采样时间和转换时间),还有一些附加时间(包括存储波形、处理波形和显示等)。当虚拟示波器进行上述工作时它便停止了波形的采集。根据这个特点,我们在波形的重现上面采动方式。(1)照像方式照像方式是把信号波形一幅一幅地取样回来,在此同时,也将波形一幅一幅地送至屏幕去显示。前后两幅波形在时间上不连续,中间有一段时间差。这种捕捉信息的方式类似留有一段视觉时间,以便看到稳定的波形,这种采样方法适合于捕捉快速信号的波形。采样波形的最大频率取决于A/D板卡的采集速率。(2)滚动方式滚动方式是通过绘图方法滚动数字化波形,使其连续不断地被显示在屏幕上,它的工作方式很象图表记录仪。它的工作原理是每隔一个时钟周期取样一次,接着将波形从右到左滚动一位(屏幕的一个点距),滚动模式适合于观察变化缓慢的信号、随机信号和非重复信号。传统的滚动显示方式是这样实现的,设采样值在数组data[]中保存。在显示波形的过程中,采样数据依次从右向左平移,即在数组的低端data[0]不断补进最新采样数据采样值在屏幕上的定位映象有严格的要求。我们定义时间轴的中点为坐标原点,观察窗口的范围从-lengh至length因此,在时间轴坐标点为legth-i处,对应的纵坐标为Vt在本次设计中采用了新的算法来实现波形的动态显示,新的算法改变了滚动方式只能观察变化缓慢的信号的限制,使示波器的动态显示波形效果得到了很大的改观。算法核心思想如下:(1)得到所采集数据块的第一个和最后一个数据点的横坐标m_xMin和m_xMax,m_xMax—mxMin为波形的逻辑宽度。图的宽度。(3)为了提高画图的效率,只需画出滚动视图可视部分的图形,也就是剪裁区的图形,因此要得到剪裁区。(4)画出坐标和剪裁区内的一段波形。度的快慢。这样视图滚动以后相应的剪裁区也会发生改变,促使动态画出新的波形。下面是波形显示的主要代码{/*得到第1个数据的横坐标*/m_xMin=pMem->m_TestQF3File/*得到最后1个数据的横坐标*/m_xMax=pMen->m_TestQF3File/*逻辑坐标转换为设备坐标*//*设定滚动视图的宽度*//*得到裁剪区矩形*/pDC->GetClipBox(&m_Cli/*画出坐标*//*画出一段波形*//*得到滚动视图*/View1=(CGraphView*)this->m_SW1.Ge/*根据采样间隔不断滚动视图,动态显示波形*/This->m_SW1.DoScrollBy(Vi}5.6.3设计结果波形显示模块主要负责两个通道信号的波形滚动显示,工具栏上的按钮可以控制波形滚动的启动和停止,测试者如果发现感兴趣的波形可以停止滚动,以便进行仔细的分析,设计效果如图5-11所示。文拌编辑查看义解购0图5-11波形显示模块设计效果Windows中,一个可执行程序的运行时刻实例称为进程(process)。一个进程可以有多个同线程可以采用定时器、中断、休眠、同步对象等方法同步。苛刻。这样的功能模块如果用单任务操作系统(如Dos)或非抢先式操作系统(如在不同于数据采集线程的单独线程中实现,然后通过上面提到的优先级调度、线程同步等机制保证数据采集线程不被耗时的显示线程所延误。在数据采集和显示任务由不同的线程完成的前提下,采集线程的执行和休眠可以采用定时器或中断调度等方式主动控制。而显(1)将显示线程的优先级设置成低于数据采集线程的优先级,那么显示线程将始终(2)使用自定义消息,在采集线程每次休眠之前调用PostMessage()函数发出一个消在本次设计中,除了一个处理用户输入消息的用户界面线程(User_Interface发控制、通道控制、时基控制、增益控制等有关示波器的操作和控制。一个辅助线程用于数据采集,另外一个辅助线程用于数据处理,其中最主要的是波形显示。软件的多线程设计框图如图5-15所示。由于CS82G的存储器为单口存储器,我们只能采用单缓冲区的工作方式,就是说,每采集一定长度的点后,采集线程休眠,并唤醒数据处理线程,当数据处理线程有信号时,再唤醒采集线程,循环进行,直至用户发出中止命令。该方法的关键在于线程的同步,就是要保证在采集线程写内存的时候,数据处理线程不能读内存,反之亦然,否则,会产生错误。可以采用临界区或者Event同步对象来实现,为了保证在一次采集中采集线程不被中断,而不仅仅是出于内存访问保护的考虑,我们选择Event同步对象数据存储参数计算频谱分析波形显示数字滤波数据采集图5-12软件多线程设计框图采用了多线程,那么就可以用一个单独的线程进行数据采集,而另一个线程进行数据显示和处理。这样,能最大限度的保证采集的实时性,而另外的线程同时又能及时地响应用户的操作或进行数据显示。否则,程序在采集数据时就不能响应用户的操作;在响应用户操作时就不能进行数据采集。尤其当采集的数据量很大,数据处理任务很重时,如果不5.7小结本课题在VisualC++6.0开发环境下,利用CS82G高速数据采集卡开发出了双通道(1)两通道同时进行数据采集,将采集到的数据实时地在示波器中以时域信号显示,并可把采集到的数据很方便的存储于计算机软硬盘中。(2)显示信号的最高频率是300MHz,最高采样频率为2GHz。(3)可对两个通道进行频谱分析和数字滤波,包括高通和低通滤波。(4)可以通过软件控制采样率、触发源、触发电平、时基、波形缩放、放大器增益、输入阻抗等。(5)示波器分辨率是8位,时基为0.5~26ns,电压灵敏度为0.2mv。本课题开发的虚拟示波器除了通用功能以外,还具有传统示波器所没有的优点,与传统示波器比较,其优点主要表现在:(1)捕捉的波形可以保存在磁盘中或打印出来备份,可将存储的样板波形与实测波(2)测量准确度高,虚拟示波器采用自动测量,能减少输入放大器和示波管线性度(3)波形均匀、稳定、无闪烁,同时还能跟随观察窗口的放大、缩小,而放大、缩(4)通过用户编程模块,可扩充用户自己的数据处理和分析功能,因此,虚拟示波(5)窗口显示模式。虚拟示波器可将多个通道的实测波形同时映现在屏幕的不同窗口中。这一功能使虚拟示波器可用于对控制系统多个工作部位的工况进行监视。(6)成本低。PC机在价格上通常只有数据存储示波器的1/5到1/10左右,此外,第六章总结和展望6.1总结虚拟仪器技术强调利用计算机的强大资源使本来需要硬件实现的技术软件化,在相同的硬件模块条件下通过调用不同软件来实现不同的仪器功能,完成多种参数测试,以便最大限度地降低系统成本,增强系统功能与灵活性。本文所做的主要工作为:(1)研究了虚拟仪器的当今发展,介绍了虚拟仪器概念和特点,与传统仪器进行了比较。并跟踪国际上的最新技术,从构成形式上划分出的四种常见的体系结构,然后根据实际需求,选择了以计算机数据采集卡(PC-DAQ)为体系结构的虚拟仪器进行了深入研究。(2)对CS82G高速数据采集卡的硬件和SDK进行了深

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论