基于高速数据采集卡的虚拟示波器的应用

上传人:痛*** 文档编号:101091054 上传时间:2022-06-04 格式:DOC 页数:38 大小:1.02MB
收藏 版权申诉 举报 下载
基于高速数据采集卡的虚拟示波器的应用_第1页
第1页 / 共38页
基于高速数据采集卡的虚拟示波器的应用_第2页
第2页 / 共38页
基于高速数据采集卡的虚拟示波器的应用_第3页
第3页 / 共38页
资源描述:

《基于高速数据采集卡的虚拟示波器的应用》由会员分享,可在线阅读,更多相关《基于高速数据采集卡的虚拟示波器的应用(38页珍藏版)》请在装配图网上搜索。

1、本科毕业设计论文题 目 基于高速数据采集卡的虚拟示波器的设计 系院 信息与控制工程系 年 级 04级 专 业 自动化 班 级 2班 学 号 160104211 学生 朱 彬 指导教师 景波 职 称 讲师 论文提交日期 20XX5月25日32 / 38基于高速数据采集卡的虚拟示波器的设计摘要随着计算机技术的发展,仪器工业正在经历一场巨变。计算机强大的处理和显示能力,使它可以在数据采集、分析和表达中的任意一个方面提升仪器的性能。以虚拟仪器为代表的新型仪器改变了传统仪器的思想,它们充分利用了计算机强大的软硬件资源,把计算机技术和测量技术紧密结合起来,是融合了电子测量、信号处理、计算机和网络技术的新型

2、测量仪器,由于成本低、使用方便等优点得到了广泛的应用。本文基于GaGe公司的高速数据采集卡CS 82G和通用PC平台,使用VC+ 6.0编程工具,完成了一种快速虚拟示波器的设计。首先,本文介绍了虚拟仪器的研究背景和意义以及国外的一些研究进展。对虚拟仪器总体进行了概述,讨论了虚拟仪器的概念、构成、特点、发展,建立了虚拟仪器的基本框架。然后对虚拟示波器的重要组成部分数据采集系统进行了探讨,同时对CS 82G数据采集卡进行了深入的研究,在此基础上,进行了虚拟示波器的系统设计。本文的重点是第五章虚拟示波器的具体实现,这部分完成了虚拟示波器各模块的详细设计,包括数据采集模块、用户界面模块、频谱分析模块、

3、数字滤波模块、波形显示模块和参数计算模块的设计,并给出了设计和实验结果,还讨论和实现了软件设计中的关键技术,最后进行了系统性能分析。文章的最后进行了课题的总结和展望。本文对相关高速、大容量数据采集系统和虚拟仪器的设计有重要的参考价值。关键词:虚拟仪器 虚拟示波器 数据采集 CS 82Design of Virtual Oscillograph Based on High Speed Data-acquisition CardAbstractThe instrumentation industry is undergoing a variety of exciting changes as a

4、result of the development of PCs, The PC revolution has equipped users with powerful processing and display capabilities of their own. The computer can enhance instrument functionality in any of the three areas-data acquisition, analysis, and presentation. Virtual instrument changed the ideas of tra

5、ditional instrument and made full use of the powerful resources of computer. It is a new-style instrument that combines the technologies of electronic measurement, signal processing, computer and network. In this dissertation, a new-style fast virtual oscillograph was designed with the use of VC+ 6.

6、0 programming tool based on a fast data-acquisition card, CS82G and universal PC platform.The research background and significance of VI are introduced in this dissertation firstly including the research status of VI in China and foreign countries. Then, the general technologies of VI are summarized

7、 including the definition of VI, the component of VI, the characters of VI and the development of VI, which established the framework of VI. Afterwards, the data-acquisition system is discussed detailedly as well as the studying of the data-acquisition card CS82G. On the basis of those work, the sys

8、tem of virtual oscillograph is designed. Chapter 5 is the emphasis of this dissertation. Every module is designed in detail including data-acquisition module, GUI module, FFT module, digital filter module, waveform display module and parameters computing module. Besides, the result of design and exp

9、eriments is put forward and some key technologies of software are discussed in this chapter. In the end, some existing problems are pointed out as well as the summary work. This dissertation is of important value to the design of correlative fast, large- capability data-acquisition system and VI. Ke

10、ywords:virtualinstrument;virtualoscillograph;data-acquisition;CS 82G目录第一章绪论11.1引言11.2 研究的背景和意义11.3 本文容安排2第二章虚拟仪器技术42.1虚拟仪器的基本概念42.2虚拟仪器的特点5第三章基于数据采集卡的虚拟示波器的研究63.1基于PC的数据采集系统63.2 超高速数据采集卡CS 82G63.3 基于数据采集卡的虚拟示波器的原理和结构73.3.1 虚拟示波器的工作原理73.3.2 系统的结构和特点8第四章虚拟示波器的方案设计94.1硬件和软件的选择94.1.1硬件的选择94.1.2软件开发环境的选择

11、104.2软件总体方案11第五章虚拟示波器系统的软件具体实现135.1虚拟示波器的系统软件功能框图135.2 数据采集模块的设计135.2.1 数据采集的编程过程135.2.2采集模块的流程图155.3 软面板的设计155.4 频谱分析模块的设计155.4.1 设计结果185.4.2 数字滤波模块的设计215.6 波形显示模块的设计235.6.1 数据插技术235.6.2 波形显示技术235.6.3设计结果265.6.4数据采集和数据处理的多线程实现275.7小结29第六章总结和展望316.1总结316.2 展望31参考文献33致34第一章绪论1.1引言虚拟仪器是随着计算机技术、电子测量技术和

12、通信技术而发展起来的一种新型仪器,虚拟仪器的出现是测量仪器领域的一个突破, 从根本上更新了测量仪器的概念。它是在以通用计算机为核心的硬件平台上,由用户设计定义,具有虚拟面板,测试功能由测试软件实现的一种计算机仪器系统。虚拟仪器技术充分利用计算机系统强大的数据处理。 能力,利用软件完成数据的采集、控制、数据分析和处理以及测试结果的显示等, 通过软、硬件的配合实现传统仪器的各种功能, 大大突破了传统仪器在数据处理、显示、传送、存储等方面的限制,使用户可以方便地对仪器进行维护、扩展和升级。它的优势在于可由用定义自己的专用仪器系统,且功能灵活,很容易构建,所以应用面极为广泛。尤其在科研、开发、测量、检

13、测、计量、测控等领域更是不可多得的好工具。虚拟仪器技术先进,十分符合国际上流行的硬件软件化的发展趋势,因而常被称作软件仪器。随着计算机技术的广泛应用,传统的仪器设备缺乏相应的计算机接口,因而配合数据采集及数据处理十分困难。而且,传统仪器体积相对庞大,多种数据测量时常常感到捉襟见肘。我们常见到硬件工程师的工作台上堆砌着纷乱的仪器,交错的线缆和繁多待测器件。然而在集成的虚拟测量系统中,我们见到的是整洁的桌面,条理的操作,不但使测量人员从繁复的仪器堆中解放出来,而且还可实现自动测量、自动记录、自动数据处理。其方便之极固不必多言,而设备成本的大幅降低却不可不提。一套完整的实验测量设备少则几万元,多则几

14、十万元。在同等的性能条件下,相应的虚拟仪器价格要低二分之一甚至更多。虚拟仪器强大的功能和价格优势,使得它在仪器计量领域具有很强的生命力和十分广阔的前景。1.2 研究的背景和意义所谓虚拟仪器就是微机化的智能电子测量仪器。虚拟仪器通过硬件功能模块和专用软件构成一种良好的人机交互界面,用户可以自定义测试功能以及使测量对象多样化。虚拟仪器的外部接口是通过数据采集卡将信号数据采集后送入计算机,各种复杂测试功能、数据分析和结果显示则完全由计算机软件完成。一台性能优良的虚拟仪器不仅可以实现传统测量仪器的大部分测量功能,在许多方面较传统仪器有无法比拟的优点,如使用灵活方便、测试功能丰富、价格低廉、一机多用等,

15、这些使得虚拟仪器成为未来电子测量仪器发展的方向。一台传统仪器有3大功能:对被测信号的采集与控制,分析与处理,结果的表达与输出。传统仪器的这些功能都是以硬件的形式存在的。虚拟仪器的特点就是将计算机技术和仪器技术有机结合,充分利用计算机技术,用计算机的显示器模拟各种仪器的控制面板,以多种形式表达输出检测结果;以计算机软件实现各种模拟信号分析,处理,完成多种多样的测试。在电子测量测试仪器中,示波器的使用围非常广泛。传统示波器包括宽带示波器,取样示波器和记忆示波器等,它们频带较宽,价格便宜,但测量精度不高,功能比较单一。近年推出的数字存储示波器,由于引入微处理器,极提高了测量准确度,同时还具有较强的数

16、字化处理功能,如FFT、信号平均和自动测频等。不过,这种示波器在应用上存在一些限制因素,例如价格昂贵,仪器功能和模式固定,不具备用户对仪器进行定义及编程的功能。本文采用基于计算机的虚拟技术,设计出虚拟存储示波器,模拟通用双踪示波器的面板操作和处理功能。使用个人计算机及其接口电路来采集现场和实验室信号,并通过图形用户界面来模仿示波器的操作面板完成试验采集,调理,分析处理和显示输出,存储记录等功能。当今,对低速的虚拟仪器的研究已经比较多,而以GaGe公司的高速卡为数据采集设备的虚拟示波器的研究与设计还未见报道。本课题研究的虚拟示波器是一种重要的虚拟仪器,主要用于超高频信号的采集、波形显示和频谱分析

17、,在雷达信号处理和激光信号处理等领域有着广泛的应用。1.3 本文容安排本文主要基于GaGe公司PCI接口的CompuScope 82G高速数据采集卡和Visual C+ 6.0编程工具,完成了一种快速的虚拟示波器试验系统的设计。第一章为绪论,介绍了虚拟仪器的研究背景和意义以及国外的一些研究进展;第二章为虚拟仪器总体概述,讨论了虚拟仪器的概念、构成、特点、发展,建立了虚拟仪器的基本框架。第三章为基于数据采集卡虚拟示波器的研究,主要包括对数据采集系统各组成部分进行了探讨。在这基础上,给出了基于数据采集卡的虚拟示波器的结构。第四章为虚拟示波器的方案设计,选择了示波器的硬件和示波器的软件开发环境,介绍

18、了虚拟仪器软件的设计方法,提出了系统软件的总体设计方案。第五章为虚拟示波器的具体实现,是本文的重点,完成了虚拟示波器各模块的详细设计,包括数据采集模块、用户界面模块、数字滤波模块和波形显示模块的设计,并给出了设计结果,最后讨论了软件设计中的关键技术的实现。第六章为总结和展望,主要对本文的已做工作做了总结,并对虚拟仪器的发展前景作出了展望。第二章虚拟仪器技术2.1虚拟仪器的基本概念虚拟仪器是指以通用计算机作为系统控制器、由软件来实现人机交互和大部分仪器功能的一种计算机仪器系统。用户可以通过友好的图形界面通常叫做虚拟前面板操作这台计算机,就象在操作自己定制的一台传统仪器一样。虚拟仪器的概念是对传统

19、仪器概念的重大突破,它的出现使测量仪器与个人计算机的界限模糊了。所有的测量、控制仪器的功能可由数据采集、数据分析、结果输出与显示三大部分组成。在这三大功能中,数据分析、算法实现和结果显示完全由基于计算机的软件完成,只要另外提供一定的数据采集硬件、输出端口和驱动设备,就可构成由计算机组成的测量、控制仪器。由此可以看到虚拟仪器与传统仪器的基本区别;传统仪器的这些功能都是以硬件或者固化的软件的形式存在的,而虚拟仪器的功能则是通过软件实现对数据的分析处理、表达以及图形化用户接口如图2-1 所示。图2-1 虚拟仪器的部功能划分测试应用程序将可选硬件如GPIB、VXI、PXI、RS232、DAQ 板和可重

20、复用原码库函数等软件结合在一起,实现仪器模块间的通讯、定时与触发。原代码库函数为用户构建自己的VI关系系统提供了基本的软件模块。由于VI的模块化、开放性和灵活性,以及软件是关键的特点,当用户的测试、控制要求变化时,可以方便的向用户自己来增减硬、软件模块,或重新配置现有系统以满足新的测试、控制要求。这样,当用户从一个项目转向另一个项目时,就能简单地构造出新的VI系统而不丢失已有的硬件和软件资源。2.2虚拟仪器的特点虚拟仪器是以装有测量应用软件的个人电脑为核心,具有虚拟的仪器操作面板,足够的硬件支持,有一定通信能力的测量装置。它和传统仪器相比具有以下的特点:虚拟仪器的关键环节是软件。虚拟仪器系统中

21、除PC机外的硬件主要用于数据的采集、输入,至于系统怎样处理数据,具有怎样的面板和数据输出的形式等都是由软件决定的。虚拟仪器的好坏,很大程度上取决于软件水平的高低。开发与维护的费用低,系统组建时间短。当需要增加新的测量功能,只需要增加软件模块或通用的硬件模块,缩短了系统的更新时间,而且有利于系统的扩展。应用软件不像传统仪器的硬件那样存在元器件老化的问题,大大节省了维护的费用,延长设备的使用寿命。测量更准确。传统仪器测量个体之间差异大,而虚拟仪器的应用软件在不同的PC机上具有相同的运行效果,在软件运行这方面不存在个体的差异。测量更方便。因为传统仪器功能单一,所以对一个信号完成多个参数的测量需要多台

22、仪器,使测量受连接方式、电缆度等因素的影响。虚拟仪器只需对信号进行一次采样,多个软件模块对同一组数据进行不同的处理就能实现多个参数的同时测量。具有强大的数据处理功能。计算机运算速度的大大提高和数字信号处理理论的丰富和完善,使虚拟仪器能够快速准确的处理数据。第三章基于数据采集卡的虚拟示波器的研究基于数据采集系统采集卡的虚拟示波器是虚拟仪器的一种重要的构成方式,其中的核心设备数据采集卡应具有高速采样、多种触发、存储数据以及与计算机之间交换数据的功能,有的数据采集卡还具有系统定时和系统同步等功能,它是外界电信号与计算机之间的桥梁,其性能直接决定着数据采集的精度和速度,影响着虚拟示波器的整体性能。3.

23、1基于PC的数据采集系统基于PC机的数据采集系统大致有两种,一种是采用插入PC控制槽中的插卡形式实现数据采集并将数据直接通过PC总线传入计算机存中;另外一种采用远端数据采集硬件完成数据采集,然后通过串行、并行方式或者USB接口将数据传回计算机。本课题采用的是第一种方式构成的数据采集系统,以便进行高速、大容量的数据采集和传输。基于计算机的数据采集系统的结构如图3-1 所示,该系统由传感器、信号调理、数据采集DAQ硬件、个人计算机、软件等基本要素构成。图3-1 基于计算机的数据采集系统常用的数据采集硬件的功能包括模拟量输入、模拟量输出、数字量输出、定时I/O和触发等。在数据采集系统中,软件起着将D

24、AQ硬件和PC转换成一个完整的数据采集、分析和显示系统的功能。软件主要有驱动器软件和应用软件两部分组成。3.2 超高速数据采集卡CS 82G本次设计中采用的CS 82G是一种超高速的基于PC的数据采集卡,CS 82G的硬件可以以极高的采样率和多通道采样模拟信号并缓存到卡上的存储器。CS 82G基于PC的一个主要优点是它能够以极高的速率把数据传输到PC的RAM中,数据可以从RAM中很容易地进行分析、存储和显示。CS 82G可以直接插在PC的PCI插槽里,因此不需要辅助的数据接口,比如GPIB接口,这也可以解释它的高速据传输率,图3-2展示CS 82G的结构框图。CS 82G的硬件主要由前置滤波器

25、、衰减器、可程控模拟放大电路、A/D 转换电路、D/A 转换电路、计数/定时电路、振荡电路、时序控制电路以及PCI接口电路构成,全卡的功能电路由数字控制逻辑电路统一控制。由此可见,CS 82G本身带有部分信号调理的功能,其结构框图如图3-2 所示。输入信号经衰减和放大后送入触发电路及A/D转换器。在触发电路,经调理后的输入信号或外部信号与基准电压发生器送来的基准信号进行比较,形成触发标志。振荡器产生的高频振荡信号扫描时间因数电路按设定系数分频,经脉冲形成电路产生系统所需的时钟信号,送往地址计数器,A/D 转换器。地址计数器产生RA M的读写地址及地址溢出标志。一个采集周期结束后,计算机通过PC

26、I总线把RAM中的数据读出,用于数据处理和构建信号波形。图3-2 CS 82G的系统框图3.3基于数据采集卡的虚拟示波器的原理和结构在电子测量中,传统仪器都是自成系统的,功能单一,模式固定,不具备用户对仪器进行定义及编程的功能。随着计算机技术特别是软件技术的发展,将个人计算机应用于测试和分析的虚拟示波器是一个顺应形势的新的发展方向。3.3.1虚拟示波器的工作原理模拟信号经同轴电缆进入采集卡的输入通道,经过前置滤波电路、衰减电路、可变增益的放大电路,将信号处理成A/D转换器可以处理的标准电平,经过A/D采样量化转化成计算机可以处理的数字信号并缓存到卡上的存储器。其支持软件通过PC机的PCI总线接

27、口控制模拟通道的阻抗匹配、放大器的增益选择、启动A/D转换及转换结束的识别,并将采集数据以DMA方式传输到计算机存,同时对数据信号进行分析处理、显示、存储及打印输出等。3.3.2系统的结构和特点基于数据采集卡的虚拟示波器由支持软件、数据采集卡及PC机组成,其结构如图3-3所示。图 3-3 基于数据采集卡的虚拟示波器的结构虚拟示波器和传统示波器的根本区别在于:1传统示波器完全用硬件实现,功能和模块固定,其功能的自动测试系统,功能及模式由用户自己定义。2传统示波器结构复杂,维护困难,对工作现场条件有较高的要求。器结构简单,仅由计算机和一块数据采集卡和一光盘组成,将采集卡插在PC机的扩展槽上即可工作

28、,软硬件维护都很方便。第四章虚拟示波器的方案设计4.1硬件和软件的选择虚拟示波器主要由仪器硬件和功能软件两部分组成。以DAQ方式构成的虚拟示波器的硬件主要由计算机和模块化硬件组成,计算机通常是个人计算机,也可以是任何通用计算机。模块化硬件主要是数据采集卡。本课题设计的虚拟示波器主要是由一块PCI总线的高速数据采集卡、PC机和用VC+ 6.0开发的功能模块软件组成。4.1.1硬件的选择计算机和数据采集卡组成了虚拟示波器的硬件平台。数据采集卡是虚拟示波器的重要组成部件,其性能指标直接决定着虚拟示波器的采样速率、精度等主要指标。CPU的速度及计算机的存影响着示波器处理数据的速度;计算机的硬盘决定着它

29、的存储数据的容量。数据采集系统的任务是采集原始的模拟信号,把它们转换为计算机可以处理的数字信号,其主要指标有采样精度和采样速度。采样精度主要由A/D转换器的位数决定,而采样速度由A/D转换器最高工作频率决定,然而,两个指标是相互制约的。数据采集卡的选择主要与采样率、采样通道数和测量精度有关。根据第三章的分析,采样率是指模拟量输入通道在单位时间能够采集的数据点数,一般用Hz即采样频率来表示,也有的用S/s表示。采样频率高,就能在一定时间获得更多的原始信号信息。为了再现原始信号,必须有足够高的采样频率。如果信号变化比采集卡的数字化要快,或者采样太慢,就会产生波形失真。根据奈奎斯特理论,采样频率至少

30、是被测信号最高频率的两倍,才不至于产生波形失真。即应选用2GHz的数据采集卡才可以完成最高频率为1GHz的被测信号的测量工作。采样通道数是系统可以同时进行采样的信号通道数,在选取采集卡时需要注意以下几点:采样通道数是否满足系统要求;在需要差分输入测量时,板上有无差分输入以及差分输入的通道数;在测量多通道时,应注意采集卡能否扩展以及最多的可扩展的通道数。4.1.2软件开发环境的选择在给定计算机和必要仪器硬件之后,构成虚拟仪器的关键在于软件。虚拟仪器系统的一个重要革新就是仪器硬件软件化,用软件实现硬件功能。虚拟仪器系统的核心技术是软件技术,一个现代化测控系统性能的优劣很大程度上取决于软件平台的选择

31、与应用软件的设计。因此正确选择软件开发环境对于程序的开发和设计起着重要的作用。目前,能够用于虚拟仪器系统开发、比较成熟的软件开发平台主要有两大类:一类是通用的可视化软件编程环境,主要有Microsoft公司的Visual C+和Visual Basic、Insprise公司的Delphi和C+ Builder等;另一类是一些公司推出的专用于虚拟仪器开发的软件编程环境,主要有Agilent公司由原HP公司分离出来的一个公司的图形化编程环境AgilentVEE、NI公司的图形化编程环境LabVIEW及文本编程环境LabWindows/CVI。在以上这些的软件开发环境中,面向仪器的交互式C语言开发平

32、台LabWindows/CVI具有编程方法简单直观、提供程序代码自动生成功能及有大量符合VPP规的仪器驱动程序源代码可供参考和使用等优点,是国虚拟仪器系统集成商使用较多的编程开发环境。Agilent VEE和LabVIEW则是一种图形化编程环境或称为G语言编程环境,采用了不同于文本语言的流程图编程方法,十分适合对软件编程了解较少的工程技术人员使用。Visual C+是一种功能齐全的面向对象的开发工具,可直接对硬件操作,支持多任务多线程。Visual C+不仅是C+语言的集成开发环境,而且与Win32紧密相连,所以利用Visual C+开发系统可以完成各种各样应用程序的开发,从底层软件直到上层面

33、向用户的软件都可以用Visual C+来开发完成;而且Visual C+强大的调试功能也为大型复杂软件的开发提供了有效的排错手段。随着软件版本的不断升级,其功能也越来越强大,几乎包括了Windows应用的各个方面。Visual C+可以说是汇集Microsoft公司技术精华的主流产品。它最重要的特征是提供了MFC类库,封装了Windows API函数,并建立了应用程序框架,使开发人员可以将主要精力集中在所要解决的具体问题上,尤其是利用Visual C+的AppWizard功能生成的SDI或MDI应用程序,进行少量修改后,就可以进入软件界面的外观设计。由于Visual C+的面向对象程序设计的特

34、性十分适合虚拟仪器系统的软件开发,而且在本设计中所使用的数据采集卡的驱动程序是由C语言开发,所以我们选用Visual C+6.0作为虚拟示波器系统的软件开发工具。4.2软件总体方案虚拟示波器是采用基于计算机的虚拟技术,用以模拟传统示波器的面板操作和处理功能,也就是使用个人计算机及其接口电路来采集现场或实验室信号,并通过软件的图形用户界面GUI来模仿示波器的操作面板,来完成信号的采集、分析处理和显示输出等功能。本课题设计的虚拟示波器,是在高速数据采集卡的支持下,配备一定功能的软件,完成波形的存储、分析、显示等功能。传统的测试仪器由信号采集、信号处理和结果显示三大部分组成,这三部分均由硬件构成。虚

35、拟示波器也是由这三大部分组成,但是除了数据采集部分是由硬件实现之外,其它两部分都是由软件实现。本次设计利用Visual C+ 6.0作为开发工具,采用了面向对象的程序设计方法,在Windows2000下进行。软件采用模块化设计,其总体框图如图4-1所示。从图4-1可以看出软件部分的总体框图以及数据流、控制流的流向。其中主控模块相当于一个任务调度中心。当软件开始运行时,首先进入主控模块,然后启动数据采集线程和数据处理线程,于是数据采集模块和数据处理模块开始工作直至用户停止系统工作。数据流从数据采集模块开始,分别流向数据存储模块和数据处理模块,数据存储模块负责把用户感兴趣的数据存人硬盘,而数据处理

36、模块负责数据的实时显示、数字滤波、频谱分析和波形的参数计算。当用户需要查询历史信号时,可以启动历史查询模块,然后把查询到的数据送往历史曲线显示模块;如果需要打印历史信号,调用曲线打印模块即可。图4-1 软件系统总体框图图4-2 软件系统总体流程图第五章虚拟示波器系统的软件具体实现5.1虚拟示波器的系统软件功能框图软件采用模块化设计,在功能上划分为多个模块,分别为数据采集模块、软面板模块用户界面模块、数据处理模块、数据存储模块和帮助文件模块。其中数据处理模块又划分为频谱分析模块、数字滤波模块、参数计算模块和波形显示模块。各个模块之间的联系如图5-1所示。由于篇幅关系,本文中只给出了重要模块的设计

37、。图5-1 系统软件功能框图5.2 数据采集模块的设计数据采集模块是最为关键的一个程序模块,这个模块中应用程序会通过采集卡的驱动程序和硬件进行通信,要发出各种控制字、参量字到仪器中去,同时又要对硬件的工作状态进行判断和处理,然后读取采样值。如果把这个模块程序在主线程中实现,那么,当应用程序与驱动程序进行数据通信时,主界面就会冻结。为了解决这个问题,本文直接创建一个子线程来单独完成与驱动程序的通信任务,让主界面专心于响应视窗界面的信息。在主线程过调用StartCapture函数启动数据采集子线程进行数据采集。5.2.1数据采集的编程过程1初始化采集卡的驱动程序和硬件这个过程包括两个部分,一是确定

38、硬件安装位置及I/O口和存映射,由GAGESCOP.INC文件来配置存区域和I/O地址,二是用户进行的采集卡驱动初始化,选择采集卡,读取配置文件等。驱动程序的初始化也可以直接调用InitBoard函数或对此函数进行适当的修改后调用。2设置相关参数准备进行数据采集该采集卡的所有的参数都是通过软件进行设置的,驱动程序中提供了一些数据结构,使得参数设置比较容易进行,也可以不用这些数据结构。设置参数主要包括:工作模式,采样率、输入电压的围、输入阻抗及耦合方式、触发源、上升沿、下降沿触发、触发电平、采样深度,所有这些参数设置被综合到一个函数中:SetBoard;对此函数进行适当的修改,即可满足采集的要求

39、。3开始采集数据调用gage_start_capture函数即开始采集数据,如调用时传给该函数的参数为非零值,且触发条件设置为软件触发,则调用此函数后立即开始采集数据,否则就等待至触发条件满足时开始采集数据。当计算机上只有一块GaGe公司的采集卡时,可以用另外两个函数来代替gage_start_capture;即顺序调用gage_init_clock和gage_get_data;执行这两个函数的速度比执行gage_start_capture要快许多,因为gage_start_capture要做一些额外的工作以确保多卡同时有效地工作。4检测数据是否采集结束相关函数为gage_triggered,

40、gage_busy,gage_force_capture,gage_abort_capture。gage_triggered是用来检测采集卡是否已经触发,如果没有触发,则在采集卡的RAM上没有有效数据。gage_busy则是用来判断是否已经采集结束。正在采集数据时,是不能读取采集卡上的RAM的。可以用gage_force_capture强制触发一次,或者用gage_abort_capture结束这一次数据采集,这样可以对后续的数据采集产生影响。5传输数据从采集卡RAM至计算机的存采样点在采集卡的RAM中存储的位置可由函数,gage_calculate_addresses,该函数返回三个地址值:

41、开始地址、触发地址、结束地址。传输数据的函数是gage_transfer_buffer_3;使用它时需要传递的参数为开始地址和要传送的数据量。数据采集的主要代码如下 InitBoard; /*初始化驱动程序和硬件*/ /* 校验当前采集卡的结构* /Gage_get_driver_info;board_setting;/*对采集卡进行参数设置*/ /*开始数据采集,触发源为软件触发*/gage_start_capture int16 board.source =GAGE_SOFTWARE; /*计算出起始地址、触发地址、结束地址*/ gage_calculate_addresses; /把采集

42、卡上的数据传输到计算机存*/ gage_transfer_buffer_3;5.2.2采集模块的流程图采集模块的流程图如图5-2所示。5.3 软面板的设计用户界面的设计采用了VC+中切分多视图技术,界面主要切分为三个视图:主视图基类为CscrollView,用于显示波形;还有两个视图基类为CformView,一个用于动态显示采集数据的特征参数,另一个用于对示波器进行操作。整个软件的主界面设计如图5-3所示。实现切分多视图的技术核心:1在框架窗口类中声明一个CSplitterWnd类对象,对MDI应用程序,框架窗口类为CChildFrame类;对SDI应用程序,框架窗口类为CMainFrame类

43、。CSplitterWnd类是专门绘制和处理分隔条的类。2在框架窗口类的OnCreateClient函数中创建分割条窗口。3为分割条窗口的每个子窗口创建视图。示波器主界面分为三个功能模块,波形显示模块,参数显示模块和示波器操作模块。在波形显示模块中,可以同时动态显示两个通道的波形。在参数显示模块中,可以动态显示两个通道的参数,主要有周期、最大值、有效值、功率和频率,当然周期和频率是针对周期信号来说的。在示波器操作模块中,又可以分为两个部分,分别是系统控制和通道控制。系统控制主要是对采样频率、触发源、触发电平、采样深度的控制;通道控制主要实现两个通道参数的设置和波形显示的控制。通道参数主要有输入

44、电压的围、单/双通道选择、输入阻抗和交直流耦合;显示控制包括时基控制、波形缩放和单/双通道显示选择。5.4 频谱分析模块的设计本软件利用快速傅里叶变换进行频谱分析。频谱分析采用按时间抽取FFT算法,然后将幅值频谱分析结果在用户界面上以坐标曲线形式显示。进行FFT时可以选择点数,有1024、2048、4096三种选择,如果点数不够,程序自动补零。图5-2 数据采集程序流程图5-3 虚拟示波器的主界面DFT为:由于所以其中和分别为和的N/2点DFT,即由于和均为N/2为周期,且,所以又可表示为 5-1 5-2这样,就将N点DFT分解为两个N/2点的DFT和式5-1以及5-2的运算。依次类推,经过M

45、-1次分解,最后将N点DFT分解成N/2个2点DFT.5.4.1设计结果频谱显示模块主要完成对不同通道信号频谱的显示,它由参数设置对话框和频谱显示对话框组成。参数设置对话框主要完成通道和采样点数的选择,如图 5-5 所示。图5-4 DIT-FET 运算和程序框图图5-5 FFT的控制对话框图5-6 锯齿波的频谱图图5-7 正弦波的频谱图5.4.2数字滤波模块的设计在虚拟示波器中,对被测信号背景噪声干扰的抑制是非常重要的一个任务,一般情况下,采用数字滤波可以较好地清除干扰。滤波器的设计采用了经典的设计方法,首先根据指标设计出巴特沃斯滤波器,然后利用双线性变换法设计数字低通滤波器,这部分的容在一般

46、的数字信号处理著作中都有详尽的介绍。数字滤波模块主要完成对不同通道的滤波和滤波前后波形的显示,图5-8为滤波器的控制对话框,它主要完成通道的选择、滤波器类型的选择和一些参数的输入。滤波前后波形的显示仍在主界面中的波形显示区进行,图5-9为锯齿波通过低通滤波器,其中下面的波形为输入的锯齿波,上面的波形为锯齿波滤波后的波形。图5-8 滤波器的控制对话框图5-9 锯齿波通过低通滤波器后的波形5.6 波形显示模块的设计5.6.1数据插技术要想观察采集好的波形,就必须采用某种方式将采集好的数据显示出来,这就要用到数据插技术。选择不同的插技术会对存储带宽带来不同的影响。常用的插技术有:直接点显示、矢量插和

47、正弦插。1直接点显示直接点显示是在显示器上直接按点显示,显示效果较为直观,但该方式也存在着严重的不足。当采样点较少时,观察者会把相邻的两个点连起来,随着信号频率的增加,很可能得出错误的结果。因此,要得到正确的结果就必须采集更多的点,但是太多的点反而会影响观察结果。一般情况下,每个周期要求2025个点。2矢量插显示矢量插是在采集点之间采用直线拟合方式画线显示的方法。它可以消除视觉上混淆,矢量越短效果就越好。对正弦信号而言,如果每周期只有两个采样点,那么矢量插就没有什么效果。一般当采样点增加到10个以上时,才能得到较为准确的正弦波。因此,采用矢量插的方法,可以将有效存储带宽提高两倍以上。矢量插法适

48、合于显示脉冲和数字信号,在显示正弦波时可能会产生失真。3正弦插显示正弦插法是用sin/x函数曲线将各采样点连接起来。正弦插器基本上可看作是理想的矩形滤波器,它与矢量法相比不但可以产生精确的波形,也可以得到较高分辨率的定时和幅度测量。正弦插法分两步来完成。首先,在每个己采样点之后插入L-1个零值,这时产生的新序列的奈奎斯特频率已经提高了L倍,然后我们就可以通过适当的数字滤波器来获取原始采样数据。我们可以采用有限长脉冲响应FIR数字滤波器来近似该理想滤波器。因此,正弦插法本质上是一个线性滤波器。这种方法对于显示正弦波特别有效,它一般只需每个周期有2.5个采样点。当脉冲信号的上升与下降时间大于采样周

49、期的1.7倍时,正弦插法对脉冲信号也十分有效。但是,对于变化很快的脉冲信号,该方法就不可能精确的恢复该信号。5.6.2波形显示技术虚拟示波器的工作原理是对信号波形进行密集的采样,采样值被数字化并被存储,然后从存储器中读出,重建波形并用清晰的、均匀一致轨迹映现在屏幕上。由于检测的波形经数字化后只是一连串离散的数据,因此,如何重建波形是设计虚拟示波器的关键问题。虚拟示波器与传统示波器的一大区别在于它没有扫描电路,它也不是基于示波管的线性偏转特性而工作,对于虚拟示波器而言,波形重现靠的是计算机的图形处理功能。因此,它属于软件处理的畴。与数字示波器类似,虚拟示波器也有一个不工作区的问题,捕捉信号需要时

50、间,还有一些附加时间。当虚拟示波器进行上述工作时它便停止了波形的采集。根据这个特点,我们在波形的重现上面采用两种处理方式,第一种方式是采用照像技术,也称为分段方式;第二种方式是采用滚动方式。1照像方式照像方式是把信号波形一幅一幅地取样回来,在此同时,也将波形一幅一幅地送至屏幕去显示。前后两幅波形在时间上不连续,中间有一段时间差。这种捕捉信息的方式类似于照像的过程,故称之为照像方法。采用照像方法的原因是为了让人们在观看波形时能留有一段视觉时间,以便看到稳定的波形,这种采样方法适合于捕捉快速信号的波形。采样波形的最大频率取决于A/D板卡的采集速率。2滚动方式滚动方式是通过绘图方法滚动数字化波形,使

51、其连续不断地被显示在屏幕上,它的工作方式很象图表记录仪。它的工作原理是每隔一个时钟周期取样一次,接着将波形从右到左滚动一位,滚动模式适合于观察变化缓慢的信号、随机信号和非重复信号。传统的滚动显示方式是这样实现的,设采样值在数组data 中保存。在显示波形的过程中,采样数据依次从右向左平移,即在数组的低端data0不断补进最新采样数据newData,同时数组的高端data2*length-1自动丢失,例如:丢失data2*length-1dataidata0newData 采样值在屏幕上的定位映象有严格的要求。我们定义时间轴的中点为坐标原点,观察窗口的围从-lengh至length 因此,在时间

52、轴坐标点为legth-i处,对应的纵坐标为datalegth-i 。图5-10波形滚动方式显示在本次设计中采用了新的算法来实现波形的动态显示,新的算法改变了滚动方式只能观察变化缓慢的信号的限制,使示波器的动态显示波形效果得到了很大的改观。算法核心思想如下: 得到所采集数据块的第一个和最后一个数据点的横坐标m_xMin和m_xMax,m_xMaxm_xMin为波形的逻辑宽度。 m_xMaxm_xMin的值为逻辑坐标,把它转化为设备坐标cx,用cx设定整个滚动视图的宽度。 为了提高画图的效率,只需画出滚动视图可视部分的图形,也就是剪裁区的图形,因此要得到剪裁区。 画出坐标和剪裁区的一段波形。 利用

53、CSplitterWnd:DoScrollBy函数,根据采样间隔的大小决定视图滚动速度的快慢。这样视图滚动以后相应的剪裁区也会发生改变,促使动态画出新的波形。下面是波形显示的主要代码 /*得到第1个数据的横坐标*/ m_xMin=pMem-m_TestQF3FileInfo.xMin; /*得到最后1个数据的横坐标*/ m_xMax=pMen-m_TestQF3FileInfo.xMax; /*逻辑坐标转换为设备坐标*/ LogToDew_X; /*设定滚动视图的宽度*/ sizeTotal.cx=cx; /*得到裁剪区矩形*/ pDC-GetClipBox; /*画出坐标*/ DrawGri

54、d; /*画出一段波形*/ DrawCurve; /*得到滚动视图*/ CGraphView* View1=this-m_SW1.GetPane; /*根据采样间隔不断滚动视图,动态显示波形*/This-m_SW1.DoScrollByView,CSize,TRUE; 5.6.3设计结果波形显示模块主要负责两个通道信号的波形滚动显示,工具栏上的按钮可以控制波形滚动的启动和停止,测试者如果发现感兴趣的波形可以停止滚动,以便进行仔细的分析,设计效果如图5-11所示。图5-11 波形显示模块设计效果5.6.4数据采集和数据处理的多线程实现数据采集及其波形实时显示是虚拟示波器中最为重要的模块,通过充分

55、发掘Windows的系统资源,我们可以设计出高质量的通用软件模块。Windows NT和Windows 95之后的版本都是多线程、抢先式多任务的操作系统。在Windows中,一个可执行程序的运行时刻实例称为进程process。一个进程可以有多个线程thread,Windows是按照线程分配CPU时间片的,而分配的机制就是抢先多任务方式。Windows给所有当前进程分配动态优先级,为进程所属的每一个线程分配相对优先级,Windows把进程优先级与各线程的相对优先级相结合,就得到该线程的优先级数围是0到31。在操作系统分配CPU的时间片的时候,高优先级的线程总是可以优先得到执行。同时,高优先级的线

56、程还可以终止低优先级别线程的执行,抢占时间片中剩余的时间。不同线程可以采用定时器、中断、休眠、同步对象等方法同步。显示模块的特点是必须承担繁重的图形显示输出任务,而这部分的实时性要求一般不苛刻。这样的功能模块如果用单任务操作系统如Dos或非抢先式操作系统如Windows3.1实现,数据采集任务将无权剥夺显示任务的执行权利而只能等待后者自行交出对CPU的控制权,从而使显示模块的延迟影响波及对时间响应要求较严格的数据采集任务。但是在Windows9X下,实现中可以依靠系统的多线程、抢先多任务机制,将显示功能在不同于数据采集线程的单独线程中实现,然后通过上面提到的优先级调度、线程同步等机制保证数据采

57、集线程不被耗时的显示线程所延误。在数据采集和显示任务由不同的线程完成的前提下,采集线程的执行和休眠可以采用定时器或中断调度等方式主动控制。而显示线程的调度主要有两种策略:1将显示线程的优先级设置成低于数据采集线程的优先级,那么显示线程将始终处于等待状态,只有在采集线程休眠后才能获得CPU时间片执行,这实际上是通过Windows的优先级调度机制完成的线程同步。2使用自定义消息,在采集线程每次休眠之前调用PostMessage函数发出一个消息,由数据处理线程的消息响应函数进行响应,进而激活数据处理线程。在本次设计中,除了一个处理用户输入消息的用户界面线程User_InterfaceThreads之

58、外,创建了两个辅助线程Worker Threads。在主线程中,主要进行触发控制、通道控制、时基控制、增益控制等有关示波器的操作和控制。一个辅助线程用于数据采集,另外一个辅助线程用于数据处理,其中最主要的是波形显示。软件的多线程设计框图如图5-15所示。由于CS 82G的存储器为单口存储器,我们只能采用单缓冲区的工作方式,就是说,每采集一定长度的点后,采集线程休眠,并唤醒数据处理线程,当数据处理线程有信号时,再唤醒采集线程,循环进行,直至用户发出中止命令。该方法的关键在于线程的同步,就是要保证在采集线程写存的时候,数据处理线程不能读存,反之亦然,否则,会产生错误。可以采用临界区或者Event同

59、步对象来实现,为了保证在一次采集中采集线程不被中断,而不仅仅是出于存访问保护的考虑,我们选择Event同步对象的实现线程间的同步。图5-12 软件多线程设计框图采用了多线程,那么就可以用一个单独的线程进行数据采集,而另一个线程进行数据显示和处理。这样,能最大限度的保证采集的实时性,而另外的线程同时又能及时地响应用户的操作或进行数据显示。否则,程序在采集数据时就不能响应用户的操作;在响应用户操作时就不能进行数据采集。尤其当采集的数据量很大,数据处理任务很重时,如果不采用多线程,采集时的漫长的等待是很难让人接受的。多线程可明显提高程序的执行效率。5.7小结本课题在Visual C+6.0开发环境下

60、,利用CS 82G高速数据采集卡开发出了双通道的虚拟示波器。其主要可实现的功能及性能指标为:1两通道同时进行数据采集,将采集到的数据实时地在示波器中以时域信号显示,并可把采集到的数据很方便的存储于计算机软硬盘中。2显示信号的最高频率是300MHz,最高采样频率为2GHz。3可对两个通道进行频谱分析和数字滤波,包括高通和低通滤波。4可以通过软件控制采样率、触发源、触发电平、时基、波形缩放、放大器增益、输入阻抗等。5示波器分辨率是8位,时基为0.526ns,电压灵敏度为0.2mv。本课题开发的虚拟示波器除了通用功能以外,还具有传统示波器所没有的优点,与传统示波器比较,其优点主要表现在:1捕捉的波形

61、可以保存在磁盘中或打印出来备份,可将存储的样板波形与实测波形同时显示,以便进行比较。2测量准确度高,虚拟示波器采用自动测量,能减少输入放大器和示波管线性度的影响,可以获得较高的准确度。3波形均匀、稳定、无闪烁,同时还能跟随观察窗口的放大、缩小,而放大、缩小为用户作细致的观测提供方便。4通过用户编程模块,可扩充用户自己的数据处理和分析功能,因此,虚拟示波器适合对被测系统进行性能测试和故障诊断。5窗口显示模式。虚拟示波器可将多个通道的实测波形同时映现在屏幕的不同窗口中。这一功能使虚拟示波器可用于对控制系统多个工作部位的工况进行监视。6成本低。PC机在价格上通常只有数据存储示波器的1/5到1/10 左右,此外,PC机的资源并非全部为测试专用,当不需要进行测量时,PC机可用作其它用途。第六章总结和展望6.1总结虚拟仪器技术强调利用计算机的强大资源使本来需要硬件实现的技术软件化,在相同的硬件模块条件下通过调用不同软件来实现不同的仪器功能,完成多种参数测试,以便最大限度地降低系统成本,增强系统功能与灵活性。本文所做的主要工作为:1研究了虚拟仪器的当今发展,介绍了虚拟仪器概念和特点,与传统仪器进行了比较。并跟踪国际上的最

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!