文档库 最新最全的文档下载
当前位置:文档库 › 多功能波形发生器(张艺川)修改稿3

多功能波形发生器(张艺川)修改稿3

西南林学院

本科毕业(设计)论文

(二○○八届)

题目:基于Lab Windows/CVI的多功能波形发生器的设计与实现

分院系部:计算机与信息科学系

专业:电子信息工程

姓名:张艺川

导师姓名:鲁莹

导师职称:助教

二○○八年六月

基于LabWindows/CVI的多功能波形发生器的设计与实现

张艺川

(西南林学院计算机与信息科学系,云南昆明650224)

摘要:虚拟仪器是利用最新的计算机技术来实现和扩展传统仪器的功能。虚拟仪器应用软件集成了仪器的所有采集、控制、数据分析、结果输出和用户界面等功能,使传统仪器的某些硬件甚至整个仪器都被计算机软件所代替。因此从某种意义上说,计算机就是仪器,软件就是仪器。

本文以PC机做为设计平台,使用LabWindows/CVI软件,设计并实现了多功能波形发生器,通过C语言编程实现它的一系列功能,它是一种信号源,具有连续相位变换和频率稳定等优点,不仅可以模拟多种信号,还可以对频率、幅值、相移、波形进行动态、实时控制,并能和PC机及其它模块组成自动测试系统,从而使多功能波形发生器的实现更加灵活,功能也更加强大,而且可以利用串口功能实现信号的发送与接收。

关键词:虚拟仪器,波形发生器,LabWindows/CVI,串口

The Design and realization of Multi-Function Waveform Generator

Based on LabWindows / CVI

Yichuan Zhang

(Dept. of Computer and Information Science, Southwest Forestry College, Kunming,

Yunnan, 650224, China)

Abstract: Virtual instruments uses the newest computer technology to realize and expand the founction of tradition instrument.The application software of virtual instruments integrates all functions, such as gathering, control, data analysis,result output and user interface and so on, causing the traditional instrument's certain hardware even entire instrument to replace by the computer software. Therefore in a sense, the computer is an instrument,And, the software is an instrument.

This article takes PC machine as design-platform, and uses the LabWindows/CVI software, has designed and realized the multi-function waveform generator. Then through the C language programming has realized the functions of it. It was one kind of supply oscillator, has the merit like continual phase transformation and frequency fixing. Not only can simulate many kinds of signals, but also can carry on the tendency, the real-time control of the frequency, the peak-to-peak value, the phase-shift, the profile, and could composite automated test system with PC machine and other module, thus cause the multi-purpose profile generators to realize more nimble, the function also more formidable. Moreover it can realize the signal transmission and the receive using the serial port function.

Key words: Virtual Instrument, Waveform Generator, Lab Windows/CVI, Serial port

目录

1前言 (1)

1.1虚拟仪器简介 (1)

1.1.1虚拟仪器的定义 (2)

1.1.2虚拟仪器的特点 (2)

1.1.3虚拟仪器的构成 (3)

1.1.4常用的虚拟仪器软件开发工具 (3)

1.1.5 虚拟仪器技术的应用与前景 (4)

1.2多功能波形简介 (4)

1.2.1多功能波形的特殊几种类型 (4)

1.2.2 多功能波形工作原理 (6)

1.2.3多功能波形的工作特性 (7)

2概述 (8)

2.1研究背景 (8)

2.2研究的目的及意义 (9)

2.3国内外研究现状及发展趋势 (10)

2.4本课题研究的主要内容 (10)

3编程语言Lab Windows /CVI概述 (11)

3.1 Lab Windows/CVI语言概况 (11)

3.2 Lab Windows/CVI语言特点 (11)

3.3 LabWindows/CVI的开发环境 (11)

3.3.1 LabWindows/CVI的安装 (12)

3.4 LabWindows/CVI的事件驱动编程 (13)

4波形分析处理软件的设计与实现 (15)

4.1信号产生类函数及其应用 (15)

4.1.1虚拟面板 (15)

4.1.2软件结构 (16)

4.2模块功能及实现方法 (17)

4.2.1信号产生类函数 (17)

4.2.2 串口设置功能 (20)

4.2.3波形存储与读取功能 (22)

4.2.4动态波形显示功能 (23)

4.2.5波形参数调节 (24)

4.2.6显示界面控件颜色的修改功能 (24)

4.2.7任意波形的绘制 (25)

5波形发生器的运行结果及分析 (27)

5.1波形显示 (27)

5.2串口通信功能 (32)

5.3存储与读取功能 (34)

5.4结果分析及展望 (35)

5.5结论 (36)

5.6下一步要做的工作 (36)

参考文献 (38)

指导教师简介 (39)

致谢 (40)

1前言

多功能波形发生器是一种能够产生多种标准信号和用户自定义信号的电子仪器,并具有高精度、高稳定性、可重复性和易操作性的特点。它是一种信号源,具有连续相位变换和频率稳定等优点,不仅可以模拟多种信号,还可以对频率、幅值、相移、波形进行动态、实时控制,并能和PC机及其它模块组成自动测试系统。信号源主要给被测电路提供已知信号,然后测试有研究和实用价值的参数。信号源在自动化、雷达、电子测量等方面有着广泛的应用。现在,随着多功能波形发生器输出波形频率的进一步提高,较新的多功能波形发生器己能提供几百MHz频率的波形,从而广泛应用于诸如通讯,计算机和显示等领域。提高多功能波形发生器输出频率,需要高速的存储器和高速的D/A转换器。

多功能波形发生器软件不仅简化了操作,而且更加贴近用户。它可以让工程师使用鼠标、数学方程式在PC机上以图解方式设计波形,或者从现有的波形库中取出小段波形和部分波形并以此在PC机上设计波形。用户不必编制任何程序,也不用操作面板。

本篇论文共分为五章:第一章主要介绍多功能波形、虚拟仪器和多功能波形发生器及其基本原理;第二章为研究课题概述;第三章是关于应用软件LabWindows/CVI 的简介;第四章主要介绍多功能波形发生器的设计思想、基本功能及具体实现方法;第五章,多功能波器发生器的运行效果、结果分析及总结。总体来说,本次设计主要侧重于多功能波形软件的开发与设计,该软件能完成多功能波形的基本功能,可以对频率、幅值、相移、波形进行动态、实时控制并使其自动化、智能化,达到了预期的效果。

1.1虚拟仪器简介

随着科学实验和工业生产的规模不断扩大和精度要求不断提高,人们建立大规模、自动化、智能化电子测控系统的需求越来越迫切。20世纪90年代发展起来的虚拟仪器技术开辟了电子测控系统的新纪元。“软件就是仪器”的思想十分符合国际上流行的“硬件软件化”的发展趋势,因而常被称作“软件仪器”。虚拟仪器技术先进,功能强大,在科研、开发、测量、检测、计量、测控等领域得到广泛的发展与应用。

1.1.1虚拟仪器的定义

从某种意义上来说,“软件就是仪器”这个概念克服了传统仪器的功能在制造时就被限定而不能变动的缺陷。所谓虚拟仪器(Virtual Instrument,VI),实际上就是一种基于计算机的自动化测试仪器系统,是电子测量技术与计算机技术深层次结合的、具有很好发展前景的新一类电子仪器。一台工业标准计算机或工作站配上功能强大的应用软件、低成本的硬件(例如插入式板卡)及驱动软件,他们在一起共同完成传统仪器的功能。它将计算机采集测试分析引入到电子测量领域,用数字化和软件技术极大地提高了测试的灵活性和可扩充性。

图1-1虚拟仪器组成原理

“虚拟”二字主要包括两方面的含义。

〔1〕虚拟仪器的面板是虚拟的。

虚拟仪器面板上的各种“控件”所完成功能和传统仪器上的控件功能是相同的。如:各种开关、按键、显示器等实现仪器的“通”、“断”、“显示”功能;被测信号“输入通道”、“放大倍数”等参数设置;测量结果的“数字显示”等。

传统仪器面板的器件都是实物,而且是由“手动”和“触摸”来进行操作的;而虚拟仪器面板的控件是外形与实物相似的图标等对应着相应的软件程序,通过PC键盘或鼠标进行操作。

〔2〕虚拟仪器的测量功能是由软件编程来实现的。

在以PC为核心的硬件平台支持下,通过应用软件来实现信号处理、采集控制与仪器测试功能。虚拟仪器的不同测量特性,往往只对应不同的软件模块,进而通过将不同测试功能模块加以组合来实现多种测试功能。

1.1.2虚拟仪器的特点

虚拟仪器的技术实质是充分利用最新的计算机软硬件技术来实现和扩展传统仪器的功能。具有如下性能特点:

〔1〕灵活性:有面向总线的接口,功能由用户自己定义,可方便的与网络、外部设备等连接。

〔2〕功能强大:基于计算机技术的功能模块可构成多种仪器,可以很容易的组建用户所需的测试系统。

〔3〕使用方便:传统的仪器面板被计算机软件在屏幕上显示的软面板代替。利用计算机强大的图形显示功能,用户可以从图库里调出不同的图形控件,如开关、按钮、旋钮、波形显示区等,用户自己定义设计各种仪器,借助鼠标、键盘对软面板进行操作,就象操作传统仪器一样。

1.1.3虚拟仪器的构成

虚拟仪器由通用仪器硬件平台和应用软件两大部分组成。

〔1〕通用仪器硬件平台

虚拟仪器的硬件平台由两部分构成——“计算机”和“I/O接口设备”。计算机是硬件平台的核心;I/O接口设备主要完成被测输入信号的采集、A/D转换等,根据采用的不同总线及其响应的I/O接口硬件设备,如利用PC机总线的数据采集卡、GPIB 总线仪器、VXI总线仪器模块、串口总线仪器等。

〔2〕软件结构

虚拟仪器软件由两大部分构成——“应用程序”和“I/O接口仪器驱动程序”。应用软件实现虚拟仪器的前面板功能,达到控制仪器工作的作用。I/O接口仪器驱动程序实现与外部硬件设备的扩展、驱动、通信等功能设计。

1.1.4常用的虚拟仪器软件开发工具

虚拟仪器的软件开发工具有文本式编程语言和图形化编程语言两种:

〔1〕文本式编程语言

有C、VisualC++、VB和LabWindows/CVI等。LabWindows/CVI是面向仪器的交互式C语言开发平台,是一个理想的软件开发环境。

〔2〕图形化编程语言

有NI公司的LabVIEW和HPVEE等。LabVIEW是实验室虚拟仪器工程平台,是基

于C语言的虚拟仪器软件开发工具。

1.1.5 虚拟仪器技术的应用与前景

虚拟仪器精确的采样,及时的数据处理和快速的数据传输使其在自动控制领域和工业控制领域得到广泛的应用。它以计算机的发展为平台,更迎合了当今信息社会等各行业向智能化、自动化、集成化发展的趋势。灵活性,软、硬件的标准化令其在仪器计量领域逐渐取代传统仪器。

网际网络的潮流将资料共享带入了一个新的阶段,加速了虚拟仪器的网络技术及远程监控技术的发展。PC技术与嵌入式系统融合发展,虚拟仪器的功能得以进一步的发展如更多的嵌入式和实时功能。随着PC技术和相关科技的发展,虚拟仪器技术已成为一项前沿学科,代表着仪器发展的最新方向,不断地被推向各个新的领域,在新的世纪将大行其道。

1.2多功能波形简介

多功能函数波形发生器属于电子仪器中的波形发生器。它由A/D转换器、D/A转换器、存贮器以及控制电路等组成。是由所要产生波形的数字量经D/A变换而实现该信号的,与计算机相配合,能产生出多种函数的波形。仪器还可用于波形存储或数据采集,与波形发生器配合,能完成记忆波形发生器的功能。仪器具有外时钟输入端,使它特别适用于记录长时间缓变信号以及进行时间压缩和展宽。仪器可由计算机控制,用于自动测试系统中,作为波形发生器或信号采集装置。

1.2.1多功能波形的特殊几种类型

〔1〕正弦波

图1-2正弦波

频率是最为单一的一种信号,因为这种信号的波形是数学上的正弦曲线而得名。任何复杂信号——例如音乐信号,都可以看成由许许多多频率不同、大小不等的正弦波复合而成。

我们可以设一个函数为y=sin X,当X 分别取0、30、60、90、120、150、180 时,Y 数值分别为0、0.5、0.8660、1、0.8660、0.5、0。在坐标系中画出对应的点就可以得出正弦波的图像了。该图像有一个特点,就是周期性变化,例如X = 0 时,Y = 0,X = 180 时,Y = 0;若X 取值【180~360】,可以看到,图像正好与原来的相反(在第四象限),这就是正弦波的图像。

〔2〕方波

图1-3方波

电流的波形为矩形的电流即为方波电流。不论t 轴上下是不是对称的,只要是矩形就可叫方波,必要时,可加“对称”,“不对称”加以说明。

方波不一定是交流波。主要看该方波有没有正负交替,要一直是一个符号就是直流,可以全是正的,也可以全是负的;如果有正有负就是交流。

方波﹑正弦波﹑三角波之间的转化:

①方波积分就是三角波,三角波微分是方波。

②三角波再多次积分就可以得到正弦波,或者经过二极管网络转化。

③正弦波通过施密特触发器转换为方波。

〔3〕三角波

三角波也叫锯齿波,主要用在CRT作显示器件的扫描电路中,如示波器、显像管、显示器等。CRT是由许多点组成的,要形成光栅就要有电子束轰击这些发光点,扫描电路分水平和垂直扫描两种,可以一行或一帧的对CRT进行扫描,电子束从第一行或帧的一端开始扫到另一端,马上返回扫第二行或第二帧.......三角波的特点是电压渐渐增大突然降到零.正好适合用于扫描电路中。

〔4〕锯齿波

图1-4锯齿波

锯齿波:波形是锯齿形,与时间成正比上升,到达一定值,快速下降到零,再重复上升,下降,成锯齿形。

锯齿波扫描:广泛的应用于电视,显示器,示波器,即把锯齿波电流加在水平偏转线圈,或把锯齿波电压加在示波管水平偏转电极,使电子枪发出的电子射线,按时间原则偏转,扫描屏幕。

扫频信号的产生:锯齿波,通过V/F转换电路,即可得到扫频信号。

1.2.2 多功能波形工作原理

近年来,仪器技术己经逐步从模拟仪器、数字式仪器、智能仪器向虚拟仪器(Virtual Instrument)发展。虚拟仪器系统中最引人注目的应用就是基于VXI总线平台技术的自动测试仪器系统,这些系统很多都是用来测量和产生复杂的波形,VXI的系统资源在这些应用中具有明显的优势。

多功能波形发生器作为一种激励,首先要考虑的是它的输出波形和波形参数。输出波形和波形参数将影响到多功能波形发生器的性能和应用范围。其中尤为重要的是输出频率。输出频率高是一个难点,国外的信号发生器已经达到了1GHz。国内虽然已经开始研制多功能波形发生器,并取得可喜的成果,但是波形发生器只能达到几百MHz,相比之下,国内就比较落后。因为西方国家对我国实行技术封锁,限制频率高信号源设备出口我国,从而制约我国军事、工业的发展。因而必须加紧这类产品的研制开发。首先波形发生器输出比较高的频率,才有使用价值和意义。其次从成本和开发周期角度出发,采用LabWindows/CVI虚拟仪器开发设计波形发生器比较合适。

所以本设计选择功能强大的LabWindows/CVI虚拟仪器,因为LabWindows/CVI

将数据采集、数据分析以及数据表达集成于一体,并且有功能强大的函数库,如接口函数库、信号处理函数、Windows SDK等,这使得程序设计十分简练、函数调用更为便捷。另外,LabWindows/CVI还提供了单步执行、断点执行、过程跟踪、参数检查、运行时内存检查等多种调试手段。

1.2.3多功能波形的工作特性

多功能波形发生器的工作特性是利用LabWindows CVI此软件来产生波形,然后通过串口通信功能将信号传播出去!软件面板可以产生任意波形,其单个波形分别有冲击信号、脉冲信号、斜坡信号、正弦信号、均匀噪声信号、Sinc信号,高斯噪声信号、锯齿波信号、三角波信号、方波信号。还可以对任意两个波形进行相、加、减、乘、除,用户可以用画笔绘制任意一个自己想绘制的波形、可以通过鼠标和键盘对软件面板进行操作:如选取波形类型、设置波形参数,然后发出命令,得到相应的波形。还可以根据自己的喜好对控件的颜色进行设置,能够对波形存储和读取、调节波形的参数等。

2概述

2.1研究背景

信号发生器是最重要的测量仪器之一,随着测试对象的多样化和数字技术的进步,信号发生器获得了广泛的应用和快速的发展。正弦信号发生器作为电子技术领域中最基本的电子仪器,广泛应用于航空航天测控、通信系统、电子对抗、电子测量、科研等各个领域中。它能满足测试系统的多种要求,成为了系统综合测试中不可缺少的组成部分。

随着现代信息事业的发展,测试对象不断丰富,现代通信系统和电子系统对测试系统提出了越来越高的要求,进而对信号发生器也提出了更高的要求。信号发生部件的要求大致归纳为以下四点:

〔1〕高频谱纯度、宽频带。

随着技术的发展,被测试对象性能指标的提高必然要求测试系统性能相应提高。

〔2〕快速和多点频率捷变。

为适应电子战的需要,新一代雷达要求能实现多点频率捷变,捷变时间应达到us量级,电子对抗要求0.lus量级。通信则要求频率点非常多。相应测试系统中的信号发生部件也应能实现这些指标。

〔3〕系列化、模块化。

电子系统门类繁多,体制各异,其测试系统及测试系统信号发生部件的也应多样化。这将借助于信号发生部件的系列化来实现。同时,为方便测试系统的组建,模块化也是信号发生部件必须具备的特点。

〔4〕小型化和工程化。

随着科学技术的不断发展,测试科学与技术学科发生了很大的变化。20世纪90年代以来,在仪器中引入计算更为复杂的人工智能实现智能化测量己经成为一个重要的发展趋势。仪器仪表学科的发展趋势正是在测试系统的各个环节更多、更好地利用数字信号处理技术,使仪器能够在测量过程中取代(或部分取代)测试人员进行

复杂而精确的操作,以获得传统方法难以获得的测量结果。

由于数字信号在信号的处理,存储及传输等方面到都具有独特的优点,因此现代电子测量系统大都采用数字信号处理方法对测试的各环节优化,对信号进行计算和处理,实现测试系统性能的提高。数字信号引入测量系统从根本上提高了测量技术水平,开始了测量技术的新发展。同样,测试激励信号的产生中也大量使用了数字技术,改善了激励信号的性能,提高了测试水平。

2.2研究的目的及意义

虚拟仪器通过软件将计算机硬件资源与仪器硬件有机的融合为一体,从而把计算机强大的计算处理能力和仪器硬件的测量、控制能力结合在一起,大大缩小了仪器硬件的成本和体积,并通过软件实现对数据的显示、存储以及分析处理。从发展史看,电子测量仪器经历了由模拟仪器、智能仪器到虚拟仪器。由于计算机性能以摩尔定律(每半年提高一倍)飞速发展,已把传统仪器远远抛到后面。并给虚拟仪器生产厂家不断带来较高的技术更新速率。虚拟仪器技术的优势在于可由用户定义自己的专用仪器系统,且功能灵活,很容易构建,所以应用面极为广泛。尤其在科研、开发、测量、检测、计量、测控等领域更是不可多得的好工具。

随着电子信息技术的发展,对其性能的要求也越来越高,如要求频率稳定性高、转换速度快,具有调幅、调频、调相等功能。首先波形发生器输出比较高的频率,才有使用价值和意义。其次从成本和开发周期角度出发,采用LabWindows/CVI虚拟仪器开发设计波形发生器比较合适。

信号源作为一种基本电子设备无论是在教学、科研还是在部队技术保障中,都有着广泛的使用。信号源作为一种通用电子测试仪器是我军进行高科技战争不可缺少的一种测试仪器。因此,从理论到工程对信号的发生进行深入研究,不论是从教学科研角度,还是从部队技术保障服务角度出发都有着积极的意义。随着科学技术的发展和测量技术的进步,对信号源的要求越来越高,普通的信号发生器已无法满足目前日益发展的数字技术领域科研和教学的需要。

2.3国内外研究现状及发展趋势

虚拟仪器精确的采样,及时的数据处理和快速的数据传输使其在自动控制领域和工业控制领域得到广泛的应用。它以计算机的发展为平台,更迎合了当今信息社会等各行业向智能化、自动化、集成化发展的趋势。灵活性,软、硬件的标准化让其在仪器计量领域逐渐取代传统仪器。

随着虚拟仪器技术向纵深发展和各项高新技术的进步,人们完全可以实现将电子实验室"装入"电脑的设想。虚拟仪器不是计算机功能简单的扩展,也不单纯是传统智能仪器的替代品,虚拟仪器的概念代表了当今测试仪器领域发展的重要方向之一,有着广阔的发展前景。

波形发生器是电子系统的心脏,随着科学技术的发展,现代雷达系统和电子对抗系统对信号源的要求越来越高,提高信号源性能已经成为国内和国外工程师的主要方向。多功能信号发生器的发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。

2.4本课题研究的主要内容

本课题的主要任务是利用LabWindows/CVI 软件编程实现多功能信号发生器的功能。软件面板可以产生任意波形,其单个波形分别有冲击信号、脉冲信号、斜坡信号、正弦信号、均匀噪声信号、Sinc信号,高斯噪声信号、锯齿波信号、三角波信号、方波信号。还可以对任意两个信号波形进行相加、减、乘、除,由此产生三十多种波形。用户可以通过画笔绘制任意波形并通过鼠标和键盘对软件面板进行操作:如选取波形类型、设置波形参数,然后发出命令,得到相应的波形。还可以根据自己的喜好对控件的颜色进行设置,能够对波形存储和读取、调节波形的参数等,而且能利用串口功能来实现信号的发送与接收。

3编程语言LabWindows/CVI概述

3.1 LabWindows/CVI语言概况

LabWindows/CVI是National Instruments公司(简称NI公司)推出的一套面向测控领域的软件开发平台。它以ANSI C为核心,将功能强大,使用灵活的C 语言平台与数据采集,分析和表达的测控专业工具有机地结合起来。它的集成化开发平台,交互式编程方法,丰富的控件和库函数大大增强了C语言的功能,为熟悉C语言的开发人员建立检测系统,自动测量环境,数据采集系统,过程监控系统等提供了一个理想的软件开发环境。它在我国已经得到了较为广泛的使用。

3.2 LabWindows/CVI语言特点

和其他虚拟仪器开发工具相比,LabWindows/CVI具有如下特点:

〔1〕由于LabWindows/CVI的编程技术主要采用事件驱动方式与回调函数方式,编程方法简单易学。

〔2〕运用LabWindows/CVI进行系统软件设计,以工程文件为主体框架,它包含了C源代码文件(*.c)、头文件(*.h)、用户界面文件(*.uir)等3个部分。全部软件调试好后,可将工程文件生成应用文件(*.exe)。

〔3〕提供大量与外部代码或软件进行连接的机制,诸如DLL(动态连接库)、DDE(共享库)、ActiveX等。

同时,LabWindows/CVI还有以下的模块:

〔1〕用于仪器控制、数据采集和分析的交互式ANSI C编译软件包。

〔2〕用于构成GUI的用户界面编程器。

〔3〕用于快速样机开发的代码产生工具和内部编译器。

〔4〕包含GPIB、VXI、PXI、RS-232/485等在内的各种仪器通讯总线标准的所有功能函数,使得不懂得总线标准的开发者也能够驱动不同总线标准的接口设备与仪器。

3.3 LabWindows/CVI的开发环境

3.3.1 LabWindows/CVI的安装

在安装LabWindows/CVI过程中,需要注意两个方面:

〔1〕选择安装的类型

LabWindows/CVI安装程序中一共有4种安装类型可供选择。

① Typical Installtion(典型安装),只安装LabWindows/CVI中常用的部分,适合初学者使用,需要大约85MB的硬盘空间。

② Minimal Installtion(最小安装),只安装LabWindows/CVI中必须的部分,帮助文件部分不会安装,需要大约35MB的硬盘空间。

③ Custom Installation(自定义安装),可以根据自身要求选择安装组件,只有在自定义安装才能安装Windows SDK(包括导入库、头文件、帮助文件和应用程序)。

④Change Compatibility Mode,改变编译兼容模式。

〔2〕选择编译器兼容模式

LabWindows/CVI可与4种不同的编译器兼容,在安装过程中必须选择与程序兼容的编译器:

① BolandC++4.51、5.0编译器;

② Microsoft VisualC++2.x、4.x、5.0编译器;

③ Symantec C++7.2编译器;

④ Watcom C++10.5、11.0编译器。

另外,在典型安装和自定义安装时,还将安装电子文档阅读器(Adobe Acrobat Reader),该阅读器可以用来阅读联机手册文件。

当LabWindows/CVI成功地安装在计算机上后,按照图 3-1所示即可启动CVI。

图3-1 启动CVI

启动CVI后,将会出现如图所示的运行窗口。

图3-2 CVI运行窗

3.4 LabWindows/CVI的事件驱动编程

LabWindows/CVI将源代码编辑、32位ANSI C编译、连接、调试以及标准C库集成在一个交互式开发环境中。因此,用户可以快速方便的编写、调试和修改应用程序,最后生成可执行文件。使用LabWindows/CVI设计的应用程序可脱离LabWindows/CVI开发环境,用户最终看见的是和实际物理仪器相似的虚拟仪器软件面板。

在应用程序开发环境LabWindows/CVI中设计一个用户接口,实际上是在用户计算机屏幕上定义一个相当于物理仪器面板的软件面板文件,它由各种控件(如命令按钮、开关、指示灯等)构成。用户选中这些控件就可以产生一系列用户接口事件。例如:当一个用户单击一个按钮,就会触发一个用户接口事件,并传递给开发者编写的C语言驱动程序中对应的函数。这是运用了Windows编程的事件驱动机制。Windows下的事件很多,但大多数都很少用。在LabWindows/CVI中,也只有几种事件需要识别处理。事实上,在LabWindows/CVI 的图形用户界面(GUI)上的一次操作就会同时产生多种接口事件,如用鼠标单击命令按钮将触发下列事件,驱动应用程序去做相应的处理。

EVENT_GOT_FOCUS事件:表示当命令按钮处于非激活状态,单击后将激活该控件;而当按钮本身处于激活状态,则获取输入并产生一个GOT_FOCUS 事件。

EVENT_LEFT_CLICK事件:在命令按钮或其它控件上单击鼠标左键就会产生LEFT_CLICK事件,LabWindows/CVI用户接口控制项能识别鼠标的左击、右

击、左双击、右双击。

EVENT_COMMIT事件:当用户松开鼠标键时,就会产生一个COMMIT事件,表明用户对某控件完成了一个确定的事件。

还有其它许多事件类型,这里就不再一一介绍。在下面的叙述中对重要的事件处理将做特殊的说明。

LabWindows/CVI中可用的各种类型的控件项,在软件面板编辑器中将显示不同类型的信息,并产生不同的接口事件,程序开发人员编写C程序来处理这些事件,在LabWindows/CVI中提供了两种基本的事件驱动编辑方法:回调函数法和事件循环处理法。

〔1〕回调函数法

回调函数法是开发者为软件面板上的控件编写一个独立的函数,当触发某个事件,就调用该函数进行相应的事件处理。例如:在编写触发波形产生的函数,它对应GUI上的“触发”按钮,当该按钮被鼠标点击,所有信息都送至回调函数,由它进行波形触发的一系列操作。

〔2〕事件循环处理法

即是使用一个事件循环来处理用户接口的COMMIT事件。在循环处理方法中只处理GUI控制项产生的COMMIT事件。通过GetUserEvent函数过滤,将所有的COMMIT事件区分开,识别出是哪个控件产生的事件,并执行相应的处理。

本软件使用的是第一种方法——回调函数法。

4波形分析处理软件的设计与实现

在“多功能波形发生器”的开发中,其软件实现是整个项目的重要组成部分,也是其中的关键技术之一。从总体来看,该系统可分为前台面板设计和后台编程两个部分。其中编程来实现波形各项功能为课题重点。信号产生类函数是用来产生仿真信号的。它主要包括冲击信号、脉冲信号、斜坡信号、正弦信号、均匀噪声信号、Sinc信号,高斯噪声信号、锯齿波信号、三角波信号、方波信号等函数。下面详细介绍它们的使用方法。

4.1信号产生类函数及其应用

4.1.1虚拟面板

虚拟面板是软件部分的核心,它直接面向用户,是虚拟信号发生器控制软件的最上层,它不仅提供与用户交互的界面,而且还能通过面板上的各种按钮、开关等控件来控制信号发生器的工作。这部分必须做到界面美观、友好方便、操作简洁,能够通过面板上的菜单或按钮实现功能和操作的相互转换,以控制数据的采集、存储、再现和分析等功能的实现,本设计中虚拟面板用LabWindows/CVI来开发。共有四个面板(产生波形面板、颜色设置面板、参数调节面板,利用串口功能实现信号发送与接收面板)初始面板如图错误!文档中没有指定样式的文字。-2所示:

图错误!文档中没有指定样式的文字。-2虚拟面板

相关文档