湖北大学本科毕业论文设计
Labview作为一个图形化编程软件,是开发测试系统的一种功能强大、方便快捷的编程工具。其良好的相通性、开放性、专用性,使测试系统的开发周期短、成本低、质量高。基于Labview的虚拟函数信号发生器具有人机交互性好、易于操作等特点,能够广泛的应用与于科研、生产等领域。
本文第二章主要介绍了虚拟仪器的概念、产生发展背景、优势及发展现状以及信号发生器的概述,第三章主要阐述了LABVIEW软件的特点,并介绍了基于声卡的虚拟仪器相关知识。第四章是本文的重点,主要是论述了虚拟信号发生器的设计思路、设计过程。我查阅了有关基于声卡的虚拟仪器的设计,并且把它用在了本设计中,使得该论文具有理论和实践意义。最后对自己的设计做了相关总结并列举了所查阅到参考资料。
2
湖北大学本科毕业论文设计
第1章 虚拟仪器技术
1.1 虚拟仪器的产生背景
当今我们处于一个正在高度发展的信息社会,要求在有限的时空上实现大量信息的交换,必然带来信息密度的急剧增大,要求电子系统对于信息的处理速度越来越高,功能越来越强,这使得系统结构日趋复杂。对体积、耗电和价格的要求使得系统及IC的集成度越来越高,同时激烈的市场竞争使得产品价格及研制生产周期缩短,传统的测试仪器已经越来越不能满足时代的要求,主要表现在以下几个方面:
1、要求测试仪器不仅能单独测量某个电量,而且测试仪器之间必须具备控制通道和数据交换通道,以便完成对各个被测量同时进行自动分析、信息综合及准确判断,传统的测试仪器在这方面受到极大的限制。
2、微处理器和DSP技术的飞速发展及它们价格的不断降低,改变了传统的电子设计概念,原来许多由硬件完成的功能现在逐步由运行在微处理器和DSP芯片上的软件来完成,这样给产品带来了巨大的好处:自动化、程序高、可靠性高、价格低、容易升级、系统具有宽 适应范围的柔性结构、可维护性好等等。硬件软化的设计方法对当今测试仪器的设计产生了深刻的影响。
3、良好的人机界面的要求促进了传统测试仪器的改造。对于越来越复杂的被测系统,如果仍然使用传统的测试仪器必然会需要众多的仪器设备,面对各个生产厂家的不同设备,使用者需要学习不同设备的使用方法后方可使用。这样的测试仪器不仅使用效率及利用效率都很低,而且硬件存在巨大的冗余。
4、微计算机的广泛使用,给基于微计算机的测试仪器提供了巨大的市场,人们在使用计算机及测试仪器时越来越明显的感觉到测试仪器的许多功能不仅可以由已有的计算机来完成,而且需要增加某种测试功能时,只增加少量的模块化功能硬件即可,同时基于微计算机的测试仪器具有更多的优点。
可见,一方面电子技术及市场的发展从客观上要求测试仪器向自动化及柔性化的方向发展,另一方面,电子技术及市场的发展也给虚拟仪器的产生提供了可能。在这种形式下,基于微计算机的虚拟仪器逐步变得现实,它的出现和广泛使用为测试系统的设计提供一个极佳的模式,并且使工程师们在测量和控制方面得到强大功能和灵活性。
1.2 虚拟仪器的概念
虚拟仪器(Virtual Instrument,简称VI)的概念是由美国国家仪器公司(NI)在20世纪80年代最早提出的。虚拟仪器就是在以通用计算机为核心的硬件平台上,由用户设计定义、具有虚拟前面板、测试功能由测试软件实现的一种计算机仪器系统。其核心的思想是利用计算机的强大资源使本来需要硬件实现的技术软件化,以便最大限度地降低系统成本,增强系统
3
湖北大学本科毕业论文设计
功能与灵活性。虚拟仪器代表着从传统硬件为主的测试系统到以软件为中心的测试系统的根本性转变。虚拟仪器的出现是仪器发展史上的一场革命,代表着仪器发展的最新方向和潮流,对科学技术的发展和工业生产的进步将产生不可估量的影响。
虚拟仪器利用个人计算机强大的图形环境和在线帮助功能,建立虚拟仪器面板,完成对仪器的控制,数据分析与显示,代替传统仪器,改变传统仪器的使用方式,提高仪器的功能和使用效率,大幅度降低仪器价格,使用户可以根据自己的需要定义仪器的功能。
1.3 虚拟仪器的优势
1、性能高
虚拟仪器技术是在PC技术的基础上发展起来的,所以完全“继承”了以现成即用的PC技术为主导的最新商业技术的优点,包括功能超卓的处理器和文件I/O,使您在数据高速导入磁盘的同时就能实时地进行复杂的分析。此外,不断发展的因特网和越来越快的计算机网络使得虚拟仪器技术展现其更强大的优势。
2、扩展性强
NI的软硬件工具使得我们不再受限于当前的技术中。这得益于NI软件的灵活性,只需更新计算机或测量硬件,就能以最少的硬件投资和极少的、甚至无需软件上的升级即可改进整个系统。在利用最新科技的时候,我们可以把它们集成到现有的测量设备,最终以较少的成本加速产品上市的时间。
3、开发时间少
在驱动和应用两个层面上,NI高效的软件构架能与计算机、仪器 传统仪器与虚拟仪器构成比较仪表和通讯方面的最新技术结合在一起。NI设计这一软件构架的初衷就是为了方便用户的操作,同时还提供了灵活性和强大的功能,使我们轻松地配置、创建、发布、维护和修改高性能、低成本的测量和控制解决方案。
4、无缝集成
虚拟仪器技术从本质上说是一个集成的软硬件概念。随着产品在功能上不断地趋于复杂,工程师们通常需要集成多个测量设备来满足完整的测试需求,而连接和集成这些不同设备总是要耗费大量的时间。NI的虚拟仪器软件平台为所有的I/O设备提供了标准的接口,帮助我们轻松地将多个测量设备集成到单个系统,减少了任务的复杂性。
1.4 虚拟仪器的发展方向
虚拟仪器作为新兴的仪器仪表,其优势在于用户可自行定义仪器的功能和结构等,且构建容易、转换灵活,它已广泛应用于电子测量、声学分析、故障诊断、航天航空、机械工程、建筑工程、铁路交通、生物医疗、教学及科研等诸多方面。
随着计算机软硬件技术、通信技术及网络技术的发展,给虚拟仪器的发展提供了广阔的天地,国内外仪器界正看中这个大市场。测控仪器将会向高效、高速、高精度和高可靠性以
4
湖北大学本科毕业论文设计
及自动化、智能化和网络化的方向发展。开放式数据采集标准将使虚拟仪器走上标准化、通用化、系列化和模块化的道路。
虚拟仪器作为教学的新手段,已慢慢地走进了电子技术的课堂和实验室,正逐渐改变着电子技术教学的传统模式,这也是现代教育技术发展的必然。在电工电子实验室的建设中,实验室常规设备有的已经老化,有的技术上有些落后,在当前学校经费较少的情况下,如果配置常规仪器、仪表,学校财力难以支付,也不符合目前学校的实际。而且,随着测试仪器的数字化、计算机化的发展趋势,传统测试仪器渐渐有被取代的趋势。如果运用虚拟仪器技术,以微机为基础,构建集成化测试平台,代替常规仪器、仪表,不但满足电工电子实验教学的需要,而且将这批微机可作为其他有关计算机课程教学用机,大大提高了设备利用率,降低了实验室建设的成本。当前应该解决的是如何使虚拟仪器和现有仪器配合,挖掘现有仪器的潜力,达到逐步淘汰和取代传统仪器的目的。
总之,虚拟仪器有很广阔的发展空间,并最终要取代大量的传统仪器成为仪器领域的主流产品,成为测量、分析、控制、自动化仪表的核心。
1.5 图形化虚拟仪器开发平台——Labview 简介
Labview是Laboratory Virtual Instrument Engineering Workbench (实验室虚拟仪器集成开发环境)的简称,是由美国国家仪器公司(National instruments, IN)创立的一个功能强大而又灵活的仪器和分析应用开发工具。Labview是一种图形化的编程语言,主要用来开发数据采集,仪器控制及数据处理分析等软件,功能强大。目前,该开发软件在国际测试、测控行业比较流行,在国内的测控领域也得到广泛应用。函数信号发生器是在科学研究和工程设计中广泛应用的一种通用仪器。本文将结合一个虚拟函数信号发生器的设计实现具体介绍基于图形化编程语言Labview的虚拟仪器编程方法与实现技术。
Labview是基于数据流的编译型图形编程环境,可以在不同操作系统下保持兼容,为数据的采集、分析、显示提供集成的开发工具,而且还可以通过DDE和TCP/TP实现共享,节约了80%的程序开发时间,而速度几乎不受影响。事实上,Labview已经成为图形化编程语言的工业标准。Labview不同于基于文本的编程语言(如Fortran和C),他是一种图形编程语言----通常称为G语言,其编程过程就是同过图形符号描述程序的运行。NI Labview使用已获取专利的数据流编程模式,他能使用户从基于文本程序语言的循序结构中解脱出来,他的执行顺序是由节点间的数据而不是由文本行的顺序决定的。并且,Labview是唯一具有编译器的图形化程序环境,所生成的优化代码的执行速率可以和C语言媲美。
LABVIEW是一种图形化的编程语言和开发环境,被公认为是标准的数据采集和仪器控制软件。它为设计者提供了一个便捷、轻松的设计环境,利用它设计者可以像搭积木一样,轻松组建一个测量系统或数据采集系统,并任意构造自己的仪器面板,而无需进行任何繁琐的计算机程序代码的编写,从而可以大大简化程序的设计。Labview与VC++, Visual Basic, Lab Windows/CVI等编程语言不同,后者采用的是基于文本语言的程序代码,而LABVIEW则是使用图形化程序设计语言G,用对话框代替了传统的程序代码。LABVIEW所运用的设备图标与科学家、工程师们习惯的大部分图标基本一致,这使得编程过程和思维过程非常相
5
湖北大学本科毕业论文设计
似。用Labview设计的虚拟仪器可以脱离Labview开发环境,最终用户看一见的是和实际的硬件仪器相似的操作面板。Labview包含有专门用于设计数据采集程序和仪器控制程序的功能库和开发工具库。Labview的程序设计实质上就是设计一个个的“虚拟仪器”,即“VI(Virtual Instruments) \。在计算机显示屏幕上利用功能库和开发工具库,产生一个前面板(front panel );在后台则利用图形化编程语言编制用于控制前面板的程序。程序的前面板具有与传统仪器类似的界面,可接受用户的鼠标指令。一般来说,每一个VI都可以作为其它VI的调用对象,其功能类似于文本语言的子程序。
Labview是带有可扩展功能库和子程序库的通用程序设计系统。它提供了用于GPIB设备控制、VXI总线控制、串行口设备控制、以及数据分析、显示和存储的应用程序模块。Labview可调用Windows动态链接库和用户自定义的动态链接库中的函数。Labview的CIN节点使用户可以使用由其它语言,如ANSIC编译的程序模块,使Labview成为一个开放的开发平台。Labview还直接支持动态数据交换(DDE)、结构化查询语言(SQL) , TCP和UDP网络协议等。此外,Labview还提供了专门用于程序开发的工具箱,使得用户能够设置断点,动态执行程序来观察数据的传输过程,以及进行方便的调试。Labview的运行机制就宏观上讲已经不再是传统上的冯·诺依曼计算机体系结构的执行方式。传统的计算机语言(如C语言)中的顺序执行结构在Labview中被并行机制所代替:从本质上讲,它是一种带有图形控制流结构的数据流模式,这种方式确保程序中的节点只有在获得它的全部数据后才能执行。也就是说,在这种数据流程序的概念中,程序的执行是数据驱动的,它不受操作系统、计算机等因素的影响。Labview程序是数据流驱动的。数据流程序设计规定,一个目标只有当它的所有输入有效时才能执行;而目标的输出,只有当它的功能完全时才是有效的。这样,Labview中被连接的对话框之间的数据流 控制着 程序的执行次序,而不像文本程序受到行顺序执行的约束。从而可以通过相互连接功能对话框快速简洁地开发应用程序,甚至还可以有多个数据通道同步运行。
Labview的核心是VI。VI有一个人机对话的用户界面——前面板((front panel)以及类似于源代码功能的对话框(diagram)。前面板 接受来自对话框的指令。在VI的前面板中,控制器(controls)模拟了仪器的输入装置并把数据提供给VI的对话框;而指示器(indicators)则模拟了仪器的输出装置并显示由对话框获得或产生的数据。当把一个控件或指示器放置到前面板上时,Labview在对话框中相应地放置了一个端口(terminals),这个从属于控件或指示器的端口不能随意删除,只有删除它对应的控件或指示器时它才随之一起被删除。用Labview编制对话框程序时,不必受常规程序设计语法细节的限制。首先,从功能菜单中选择需要的功能方框,将之置于面板上适当的位置;然后用导线(wires)连接各功能方框在对话框中的端口,用来在功能方框之间传输数据。这些方框包括了简单的算术功能,高级的采集和分析VI以及用来存储和检索数据的文件输入输出功能和网络功能。 用LABVIEW编制出的图形化VI是分层次和模块化的。可以将之用于顶 层(top level)程序,也可用作其它程序或子程序的子程序。一个VI用在其它VI工中,称之为子VI(sub VI)。 sub VI在调用它的程序中同样是以一个图标的形式出现的。LABVIEW依附并发展了模块化程序设计的概念。用户可以把一个应用题目分解为一系列的子任务,每个子任务还可以进一步分解成许多更低一级的子任务,直到把一个复杂的题目分解为许多子 任务的组合。首先设计sub VI完成每个子任务,然后将之逐步组合成能够解决最终问题的VI 。
6