基于LabVIEW的多种信号发生器设计论文Word下载.docx
- 文档编号:19851721
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:38
- 大小:1.18MB
基于LabVIEW的多种信号发生器设计论文Word下载.docx
《基于LabVIEW的多种信号发生器设计论文Word下载.docx》由会员分享,可在线阅读,更多相关《基于LabVIEW的多种信号发生器设计论文Word下载.docx(38页珍藏版)》请在冰豆网上搜索。
随着计算机技术、大规模集成电路技术和通讯技术的飞速发展,仪器技术领域发生了巨大的变化,美商国家仪器公司(NationalInstruments)于八十年代中期首先提出基于计算机技术的虚拟仪器的概念,把虚拟测试技术带入新的发展时期,随后研制和推出了基于多种总线系统的虚拟仪器。
虚拟仪器就是在通用计算机上加上软件和(或)硬件,使得使用者在操作这台计算机时,就像是在操作一台他自己设计的专用的传统电子仪器。
在虚拟仪器系统中,硬件仅仅是为了解决信号的输入输出,软件才是整个仪器系统的关键,任何一个使用者都可以通过修改软件的方法,很方便地改变、增减仪器系统的功能与规模,所以有“软件就是仪器”之说。
虚拟仪器技术的出现,彻底打破了传统仪器由厂家定义,用户无法改变的模式,虚拟仪器技术给用户一个充分发挥自己的才能、想象力的空间。
用户(而不是厂家)可以随心所欲地根据自己的需求,设计自己的仪器系统,满足多种多样的应用需求。
虚拟仪器系统概念是对传统仪器概念的重大突破,是计算机系统与仪器系统技术相结合的产物。
它利用计算机系统的强大功能,结合相应的硬件,大大突破传统仪器在数据处理、显示、传送、处理等方面的限制,使用户可以方便地对其进行维护、扩展、升级等。
本文设计的多种信号发生器虚拟仪器设计正是在这个背景下确立的。
1.2虚拟仪器的概述和在国内外的发展状况
1.2.1虚拟仪器概述
虚拟仪器从概念的提出到目前技术的日趋成熟,体现了计算机技术对传统工业的革命。
在虚拟仪器技术发展中有两个突出的标志,第一是VXI总线标准的建立和推广,VXI总线系统具有标准化、通用化、系列化、模块化的显著特点,它集测量、计算、通信功能于一体,不仅继承了GPIB智能仪器和VME总线的特点,还具有高速、模块化、易子使用等优势。
二是图形化编程语言的出现和发展。
前者从仪器的硬件框架上实现了设计先进的分析与测量仪器所必须的总线结构,后者从软件编程上实现了面向工程师的图形化而非程序代码的编程方式,两者统一形成了虚拟仪器的基础规范。
硬件技术的发展要保证虚拟仪器具备与传统仪器匹配的实时处理能力和可靠性,很重要的一点取决于传输测量数据的总线结构。
通用仪器总线GPIB于1978年问世,实现了计算机与测量系统的首次结合。
它标志着测量仪器从独立的手工操作单台仪器走向程控多台仪器的自动测试系统,是虚拟仪器技术发展的第一阶段。
在虚拟仪器中,其分析功能是由计算机来完成的,或由计算机来控制的。
因此,接口、总线的速度和可靠性是关键。
1987年GPIB仪器总线与VME微机总线结合,诞生了VXI标准仪器总线,使得用户可以像仪器厂商一样,从访问寄存器这样的低层资源来设计和安排仪器功能,也使得用户化仪器功能设计得以实现。
VXI总线的出现,使得虚拟仪器设计有了一个高可靠性的硬件平台.目前已出现了用于射频和微波领域的高端VXI仪器。
当然,采用普通PC总线,尤其是工业PCI总线的虚拟仪器也在不断发展,这类虚拟仪器主要面向一般工业控制、过程监测和实验室应用。
软件技术的发展和有关国际标准的建立,是推动虚拟仪器技术发展的决定性因素之一。
在GPIB接口总线出现以后,关于程控仪器的句法格式、信息交换协议和公用命令的标准化,一直是人们关心的问题。
标准程序命令(SCPI)标准的建立,向解决程控命令与仪器厂家无关这一目标迈进了重要的一步,随着虚拟仪器思想的深入,用户自己开发仪器驱动器己成为技术发展的客观需要。
过去仪器驱动都是由仪器厂家专门设计,缺乏标准,使得用户在仪器软件方面的投资得不到保护。
为此,国际上专门制定r虚拟仪器软件体系结构(VISA)标准,建立了与仪器接口总线无关的标准I/O软件,使得不同总线结构的硬件产品在相互取代时不必重新编写驱动程序,VISA标准与LabVIEW、HPVEE、Labwindows/cVI等先进开发环境软件相适应。
开发一个由用户定制的虚拟仪器在软件技术上已经成熟。
可以预计,未来的电子测量仪器和自动化测试技术的发展还将更多地渗透虚拟仪器的思想。
1.2.2虚拟仪器国内外的发展状况
虚拟仪器技术目前在国外发展很快,以美国国家仪器公司(NI)为代表的一批厂商已经在市场上推出了基于虚拟仪器技术而设计的商品化仪器产品。
近年来,世界各国的虚拟仪器公司开发了不少虚拟仪器开发平台软件,使用者利用这些公司提供的开发平台软件组建自己的虚拟仪器或测试系统,并编制测试软件。
最早和最具有影响力的开发软件,是NI公司的LabVIEW软件和LabWindows/CVI开发软件。
LabVIEW采用图形化编程方案,是非常实用的开发软件。
当今虚拟仪器的系统开发采用的总线包括传统的RS232串行总线、GPIB通用接口总线、VXI总线,以及已经被PC机广泛采用的USB串行总线和IEEE1394总线。
世界各国的公司,特别是美国NI公司,为使虚拟仪器能够适应上述各种总线的配置,开发了大量的软件以及适应要求的硬件,可以灵活的组建不同复杂的虚拟仪器子自动检测系统。
虚拟仪器的开发厂家,为扩大虚拟仪器的功能,在测量结果的数据处理、表达及其变换方面也做了很多工作,发布了各种软件,建立了数据处理的高级分析库和工具开发库(例如测量结果的谱分析、快速傅里叶变换、各种数据滤波器、卷积处理和相关函数处理、微积分、峰值、阈值检测、波形发生、回归分析、数值运算、时域和频域分析等),使虚拟仪器可以组建极为复杂的自动检测系统。
在国内,我国将有50%的仪器为虚拟仪器。
国内将有高校和大型企业使用虚拟仪器系统对生产设备的运行状况进行实时检测。
哈工大仪器王电子有限责任公司就是其中之一,它的产品已达到了一定的批量。
其主要产品有数字存储示波器系列、任意波形发生器及频率计系列、多通道大容量波形记录系列。
LabVIEW作为虚拟仪器开发系统的杰出代表,在我国虽然引进的时间不长,但是现在己经被认识和推广、应用,它促进了中国测试领域的技术革命,在科研及教育领域都得到了迅速推广。
随着微型计算机的发展,虚拟仪器将会逐步取代传统的测试仪器而成为测试仪器的主流。
虚拟仪器技术的提出和发展,标志着二十一世纪自动测试与电子测试仪器领域技术发展的一个重要方向。
1.3课题的意义
多种信号发生器是一种常用的信号源,是电子工程师在进行各种测试和诊断时必备的工具,广泛应用于电子技术实验、自动控制系统和科学研究等诸多领域。
而传统信号发生器电路复杂,抗干扰能力差,实现困难及设计周期长。
在这种传统信号发生器已严重滞后于信息时代和工程实际需要的背景下,人们开始致力于开发虚拟信号发生器。
它把计算机技术、电子技术、传感器技术、信号处理技术、软件技术很好地结合起来,由用户定义仪器功能,桌面整洁,操做条理,不但使测量人员从繁复的仪器堆中解放出来,而且具有精度高、速度快、系统组建时间短、可扩展性强、技术更新快和仪器智能化等优点,尤其是在需要现场测试的地方发挥了很大的优势。
传统台式多种信号发生器是由仪器厂家设计并定义好功能的一个封闭结构。
它有特定的输入/输出接口和仪器操作面板,具有多种信号发生功能,当要实现更多的信号发生功能时,就要配置更多的仪器,这给用户的使用带来诸多不便。
此外由于缺乏相应的计算机接口,配合数据采集及数据处理比较困难且体积相对庞大,制造成本比较高,这就增加了系统的开发成本。
虚拟仪器技术的提出和飞快发展和传统台式音频信号发生器表现出的弊端,使得虚拟音频信号发生器应运而生。
1.4论文的内容以及构成
本课题以计算机强大的信息处理能力为基础,充分利用LabVIEW多线程技术及其图形化、结构化的特征,实现多种信号发生器的软件化设计,能够完成对多种常用信号的生成及模拟输出。
内容主要涉及了多种信号发生器的软面板制作,常用信号的生成及显示,驱动程序的应用。
具体内容分为几个部分:
学习虚拟仪器及LabVIEW语言的有关知识;
学习常用信号生成的基本方法及信号波形的显示;
学习LabVIEW的硬件处理模块设置及运用;
学习虚拟多种信号发生器的相关调试;
具体论文的结构如下:
第一章简要介绍课题背景,虚拟仪器的基本概述和虚拟仪器的国内外研究现状以及发展方向。
分析了本课题的研究目的和意义,介绍了本文的课题内容和论文结构安排。
第二章描述了本课题所开发系统的基本功能和所用的软硬件。
详细介绍了软件编程平台LabVIEW语言,重点分析了LabVIEW的三种模板。
除此之外对系统所用硬件的工作流程及各项指标做了介绍,为后面的编程奠定基础。
第三章介绍了系统的整体实现方案,依据整体方案的各组成部分,对各部分的不同实现方案进行了描述,并通过对比分析确定各组成部分最终将采用的方案。
第四章介绍多种信号发生器系统的详细设计过程,包括系统的前面板设计和流程框图的设计,并对整个系统的运行结果进行显示。
第五章介绍对系统进行的调试和运行结果的分析。
第六章结论,主要是对本文所设计系统进行总结。
2系统基本功能和软硬件概述
2.1系统基本功能
多种信号发生器能够实现对常用正弦波,三角波,方波,锯齿波等信号的生成和显示。
在设计过程中使用美国国家仪器(NI)公司开发的图形化编程工具LabVIEW作为软件开发平台,开发出的系统前面板必须功能齐全、美观。
能够在系统要求范围内实现对输出波形频率、相位、振幅和占空比的调节。
2.2LabVIEW软件概述
当今,C/C++、VC、VB和美国国家仪器(NI)公司的LabVIEW都可以作为虚拟仪器的软件开发工具。
其中C/C++、VC、VB等传统软件开发平台为众多编程人员所熟悉,可以用来开发测试软件,但这种开发方式对测试人员要求很高,需要自己将各种数据处理方法用计算机语言实现,还要对用于数据通信的各种连接总线(如RS232、GPIB、USB等)非常熟悉,绝大多数测试工程人员难以做到,或者需要花费大量的时间来研究,而懂得这些编程方法的人员又不一定懂得测试,因此用这种平台开发测试工程软件难度大、周期长、费用高、可扩展性差。
顺应形势的发展,一些专业测试开发平台纷纷推向市场,如HPVEE、组态软件平台、TPS平台等,但这些平台的专用性太强,可扩展性、通用性比较差。
NI公司的LabVIEW全称叫LaboratoryVirtualInstrumentEngineeringWorkBench,它是一个高效的图形化程序设计语言。
它采用了简单易用的图形式开发环境和灵活强大的函数库,为编程提供了一个直观的环境,与测量硬件紧密结合,能让工程师与科学家们迅速开发出有关数据采集、数据分析及显示的解决方案。
LabVIEW是一个划时代的图形化编程系统,它提供了一种全新的程序编写方法,可通过交互式图形前面板进行系统控制和结果显示,即设计虚拟仪器的操作面板,通过框图模块来指示各种功能。
现今数以万计的工程师、科学家及技术人员正在通过LabVIEW来构建测量与自动化解决方案。
概括的说,LabVIEW作为测试软件开发平台有如下特点和优点:
图形化编程环境。
LabVIEW的基本编程单元是图标,不同的图标表示不同的功能模块。
用LabVIEW编写程序的过程也就是多个图标用线连起来的过程,连线表示功能模块之间存在数据的传递。
被连接的对象之间的数据流控制着程序执行,并允许有多个数据通路同步运行。
其编程过程近似人的思维过程,直观易学,编程效率高,无须编写任何文本格式的代码,易为多数工程技术人员接受。
可重用性高。
LabVIEW继承并发展了结构化和模块化程序设计概念,使测试程序能够很好地体现分层性、模块化,即可以把任意一个测试程序当作顶层程序,也可将其当做其他测试程序的子程序,这样用户就可以把一个复杂的应用任务分解为一系列、多层次的子任务。
通过为每个子任务设置不同的功能,并将这些测试子程序进行适当的组合、修改、交叉和合并等,就可以在顶层最终建成一个所有应用功能的测试系统。
开发功能高效、通用。
LabVIEW是一个带有扩展功能库和子程序库的通用程序设计系统,提供数百种功能模块(类似其他计算机语言的子程序或函数),包括算术运算、函数运算、信号采集、信号输出、数据存取、信号分析处理、数据通信等功能模块,涵盖了测试的各个环节,用户通过拖放及简单的连线,就可以在极短的时间内设计好一个高效而使用的测试软件,再配以相应的硬件就可以完成各种测试任务。
这样既节约了时间,又可提高测试的可控制性及测试速度。
支持多种仪器和数采硬件的驱动。
LabVIEW提供了数百种仪器的源码级驱动程序,包括DAQ、GPIB(IEEE488)、PXI、VXI、RS232,根据需要还可以在LabVIEW中自行开发各种硬件驱动程序,也可以通过动态链接库(DLL)利用其他语言开发函数库,从而进一步扩展其功能。
网络功能强大。
LabVIEW支持常用网络协议,如传输控制协议(TCO/IP)和用户数据报协议(UDP),方便网络、远程测控系统的开发。
开放性强。
LabVIEW具有很强的开放性,是一个开放的开发环境,能和第三方软件轻松连接,通过LabVIEW可以把现有的应用程序和NET组件、ActiveX、DLL等相连,可以和MATLAB混合编程,也可以在LabVIEW中创建能在其他软件环境中调用的独立执行程序或动态链接库。
由于LabVIEW虚拟仪器系统具有上述优点,所以本设计将采用LabVIEW作为编程的开发平台。
2.2.1LabVIEW的结构
所有的LabVIEW程序,即虚拟仪器(VIs),都包括前面板(FrontPanel)和程序流程图(BlockDiagram)两部分。
前面板是LabVIEWVI的图形用户接口,集成了用户输入和显示输出功能。
前面板中包括旋钮、按钮、图形和其他的控制(Controls)与显示(Indicators)模块。
用户可以根据自己的需要在前面板上放置按钮等控制模块及显示模块,如图2-1。
流程图是指程序的内部运行结构,是系统结构、数据处理的流程,包含了虚拟仪器的图形化源代码。
流程图由端口、节点、图框和连线构成。
其中端口被用来同程序前面板的控制和显示传递数据,节点被用来实现函数和功能调用,图框被用来实现结构化程序控制命令,而连线代表程序执行过程中的数据流,定义了框图内的数据流动方向。
它和文本式开发平台(如VC++)中的*.h、*.cpp等文件的作用是一样的,只是LabVIEW流程图的开发是图形化的,更简单、高效、直观,如图2-2。
图2-1LabVIEW前面板
图2-2LabVIEW流程图
2.2.2LabVIEW的操作模板
LabVIEW具有多个图形化的操作模板,用于创建和运行程序。
这些操作模板可以随意在屏幕上移动,并可以放置在屏幕的任意位置。
操纵模板共有三类,为工具(Tools)模板、控制(Controls)模板和功能(Functions)模板。
2.2.2.1工具模板(ToolsPalette)
工具模板为编程者提供了各种用于创建、修改和调试VI程序的工具。
如果该模板没有出现,则可以在Windows菜单下选择ShowToolsPalette命令以显示该模板。
当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。
当从Windows菜
单下选择了ShowHelpWindow功能后,把工具模板内选定的任一种工具光标放在框图程序的子程序(SubVI)或图标上,就会显示相应的帮助信息。
工具图标有如下几种:
操作工具:
使用该工具来操作前面板的控制和显示。
使用它向数字或字符串控制中键入数值时,工具会变成标签工具的形状。
选择工具:
用于选择、移动或改变对象的大小。
当它用于改变对象的连框大小时,会变成相应形状。
标签工具:
用于输入标签文本或者创建自由标签。
当创建自由标签时它会变成相应形状。
连线工具:
用于在框图程序上连接对象。
如果联机帮助的窗口被打开时,把该工具放在任一条连线上,就会显示相应的数据类型。
对象弹出菜单工具:
用左鼠标键可以弹出对象的弹出式菜单。
漫游工具:
使用该工具就可以不需要使用滚动条而在窗口中漫游。
断点工具:
使用该工具在VI的框图对象上设置断点。
探针工具:
可以在框图程序内的数据流线上设置探针。
程序调试员可以通过探针窗口来观察该数据流线上的数据变化状况。
颜色提取工具:
使用该工具来提取颜色用于编辑其他的对象。
颜色工具:
用来给对象定义颜色。
它也显示出对象的前景色和背景色。
与上述工具模板不同,控制和功能模板只显示顶层子模板的图标。
在这些顶层子模板中包含许多不同的控制或功能子模板。
通过这些控制或功能子模板可以找到创建程序所需的面板对象和框图对象。
用鼠标点击顶层子模板图标就可以展开对应的控制或功能子模板,只需按下控制或功能子模板左上角的大头针就可以把对这个子模板变成浮动板留在屏幕上。
2.2.2.2控制模板(ControlsPalette)
用控制模板可以给前面板添加输入控制和输出显示。
每个图标代表一个子模板。
如果控制模板不显示,可以用Windows菜单的ShowControlsPalette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。
注:
只有当打开前面板窗口时才能调用控制模板。
控制模板如左图所示,它包括如图所示的几个子模板。
数值子模板:
包含数值的控制和显示。
布尔值子模块:
逻辑数值的控制和显示。
字符串子模板:
字符串和表格的控制和显示。
列表和环(Ring)子模板:
菜单环和列表栏的控制和显示。
数组和群子模板:
复合型数据类型的控制和显示。
图形子模板:
显示数据结果的趋势图和曲线图。
路径和参考名(Refnum)子模板:
文件路径和各种标识的控制和显示。
控件容器库子模板:
用于操作OLE、ActiveX等功能。
对话框子模板:
用于输入对话框的显示控制。
修饰子模板:
用于给前面板进行装饰的各种图形对象。
用户自定义的控制和显示。
调用存储在文件中的控制和显示的接口。
2.2.2.3功能模板(FunctionsPalette)
功能模板是创建框图程序的工具。
该模板上的每一个顶层图标都表示一个子模板。
若功能模板不出现,则可以用Windows菜单下的ShowFunctionsPalette功能打开它,也可以在框图程序窗口的空白处点击鼠标右键以弹出功能模板。
只有打开了框图程序窗口,才能出现功能模板。
功能模板如下图所示。
结构子模板:
包括程序控制结构命令,例如循环控制等,
以及全局变量和局部变量。
数值运算子模板:
包括各种常用的数值运算符,如+、-等;
以及各种常见的数值运算式,如+1运算;
还包括数制转换、三角函数、对数、复数等运算,以及各种数值常数。
布尔逻辑子模板:
包括各种逻辑运算符以及布尔常数。
字符串运算子模板:
包含各种字符串操作函数、数值与字符串之间的转换函数,以及字符(串)常数等。
数组子模板:
包括数组运算函数、数组转换函数,以及常数数组等。
群子模板。
包括群的处理函数,以及群常数等。
这里的群相当于C语言中的结构。
比较子模板:
包括各种比较运算函数,如大于、小于、等于。
时间和对话框子模板:
包括对话框窗口、时间和出错处理函数等。
文件输入/输出子模板:
包括处理文件输入/输出的程序和函数。
仪器控制子模板:
包括GPIB(488、488.2)、串行、VXI仪器控制的程序和函数,以及VISA的操作功能函数。
仪器驱动程序库:
用于装入各种仪器驱动程序。
数据采集子模板:
包括数据采集硬件的驱动程序,以及信号调理所需的各种功能模块。
信号处理子模板:
包括信号发生、时域及频域分析功能模块。
数学模型子模块:
包括统计、曲线拟合、公式框节点等功能模块,以及数值微分、积分等数值计算工具模块。
图形与声音子模块:
包括3D、OpenGL、声音播放等功能模块。
通讯子模板:
包括TCP、DDE、ActiveX和OLE等功能的处理模块。
应用程序控制子模块:
包括动态调用VI、标准可执行程序的功能函数。
底层接口子模块:
包括调用动态连接库和CIN节点等功能的处理模块。
文档生成子模板。
示教课程子模板:
包括LabVIEW示教程序。
用户自定义的子VI模板。
“选择…VI子程序”子模板:
包括一个对话框,可以选择一个VI程序作为子程序(SUBVI)插入当前程序中。
其它几个子模板是LabVIEW的附加Toolkit安装上去的。
在LabVIEW完全版中不包括这些子模板。
编制软件时通过对控制和功能模块中子模块的灵活调用,选取相应的功能子模块,分别置于前后面板内,使用连线工具即可完成虚拟仪器设计。
2.3数据采集系统
数据采集(DataAcquisition,DAQ),就是将被测对象的各种参量(物理量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 LabVIEW 多种 信号发生器 设计 论文