毕业设计(论文)-基于LabVIEW的仿真信号发生器的设计.doc_第1页
毕业设计(论文)-基于LabVIEW的仿真信号发生器的设计.doc_第2页
毕业设计(论文)-基于LabVIEW的仿真信号发生器的设计.doc_第3页
毕业设计(论文)-基于LabVIEW的仿真信号发生器的设计.doc_第4页
毕业设计(论文)-基于LabVIEW的仿真信号发生器的设计.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

基于labview的仿真信号发生器的设计基于labview的仿真信号发生器的设计摘 要本文首先概述了信号发生器及虚拟仪器技术在国内外的发展及趋势,然后介绍了信号发生器的相关理论,给出了信号发生器的基本原理框图,并探讨了虚拟仪器的总线及其标准、框架结构、labview开发平台。在分析本系统功能需求的基础上,介绍了数据采集卡、labview的编程模式等设计中所涉及到的硬件和技术。本设计采用usb6211数据采集卡,将虚拟仪器技术用于信号发生器的设计。该系统具有生成正弦波、方波、三角波、锯齿波的功能。本设计是虚拟仪器模拟真实仪器的尝试。实践证明虚拟仪器是一种优秀的解决方案,能够实现各种硬件可以完成的任务。关键词 labview 数据采集卡 信号发生器 ii based on the simulation signal generator labview the designabstractthis article summarizes the development and trend of the signal generator and virtual instrument at home and abroad at first. and then introduces the theory of signal generator, gives a basic block diagram of signal generator, also the frame structure and labview development platform of the virtual instrument with the inquiry of the buss standard. based on the analysis of this systems functional requirements, this article introduces the hardware and technology which involved in design of the data acquisition card and the labviews programming modes. this design uses usb6211 data acquisition card. the virtual instrument technology has been utilized in the design of signal generator. the system has ability to produce sine wave, square wave, and triangle wave, saw tooth wave and pwm wave.the design is an attempt of virtual instrument to simulate the reality instrument. it shows the virtual instrument is an excellent solution to achieve the task which is achieved by traditional hardware in the past. key words labview data acquisitioncards signal generator目 录摘 要iabstractii1 绪论11.1 研究背景及动态11.2 虚拟仪器发展前景12 labview设计的总体概述32.1 labview的介绍32.2 设计的目的及其要求42.3 设计的基本流程和方案53 数据采集的介绍与应用73.1 数据采集的系统构成73.2 数据采集卡的选择83.2.1 数据采集卡的主要性能指标93.2.2 数据采集卡的组成93.2.3 数据采集卡usb-6211103.3 数据采集的硬件的安装与配置103.4 数据采集的子程序113.5 模拟输入123.5.1 创建虚拟通道函数123.5.2 定时设定vi133.5.3 daqmx 触发设定vi133.5.4 daqmx读取vi143.6 模拟输出1537 4 虚拟仪器软件硬件的设计174.1 虚拟仪器硬件平台174.2.1 pc机174.2.2 i/o接口设备174.2 虚拟仪器的软件设计194.2.1 labview应用程序的构成194.2.2 labview的操作模板204.3 仿真信号的生成224.3.1 正弦信号的生成224.3.2 方波信号的生成234.3.3 三角波信号的生成244.3.4 锯齿波信号的生成265 系统的仿真波形生成275.1 仿真实现的流程图275.2 仿真波形模块的设计及生成275.2.1 数字波形产生模块的基本概述275.2.2 仿真信号通道设置及波形生成的设计285.3 系统总程序框图的设置及其仿真图的生成315.4 信号生成过程需要注意的事项34致 谢36参考文献371 绪论1.1 研究背景及动态由于微电子技术、计算机技术、通信技术、网络技术的高度发展及其在电子测量技术与仪器上的应用,新的测试理论、新的测试方法、新的测试领域以及新的仪器结构不断出现,在许多方面已经突破了传统仪器的概念,电子测量仪器的功能和作用已经发生了质的变化,其中计算机处于核心地位,计算机软件技术和测试系统更紧密地结合成一个有机整体,导致仪器的结构、概念和设计观点等也发生了突破性的变化。在这种背景下,美国国家仪器公司(national instruments)在20世纪80年代最早提出虚拟仪器(virtual instrument)的概念,同时推出了用于虚拟仪器开发的工程软件包labview。ni公司宣称“the software is the instrument”,即“软件就是仪器”。在这里,计算机是虚拟仪器的核心设备,该仪器的功能是通过软件仿真实现的。它将传统仪器由硬件电路实现的数据分析处理与显示功能,改由功能强大的计算机来执行,所以计算机是其核心;当计算机与适当的i/o接口设备配置完毕,虚拟仪器的硬件平台就被确定,此后软件就成为仪器的关键部分,这也是“软件就是仪器”之说的来由。这意味着只要按照测量原理,采用适当的信号分析技术与处理技术,编制某种测量功能的软件就可构成该种功能的测量仪器。虚拟仪器的出现是仪器发展史上的一场革命,代表着仪器发展的最新方向和潮流,对科学技术的发展和工业生产的进步将产生不可估量的影响,同时对改善高校实验教学仪器设备,提高教学质量也是一个福音。1.2 虚拟仪器发展前景虚拟仪器依靠其自身的优势使它在仪器市场的竞争力不断增强。许多大型仪器公司均在虚拟仪器市场上占有一席之地。1988年国际上开始有虚拟仪器产品面市,当时只有五家制造商推出的30种产品。此后,虚拟仪器产品每年成倍增加,到1994年底,虚拟仪器制造厂已达95家共生产1000多种虚拟仪器产品,销售额达2.93亿美元,占整个仪器销售额73亿的4%。目前,我国正处于科学技术和教育事业蓬勃发展的新时期,对仪器设备的需求将更加强劲。虚拟仪器赖以生存的pc计算机近几年正以迅猛的势头席卷全国,这为虚拟仪器的发展奠定了基础。虚拟仪器作为传统仪器的替代品,市场容量巨大。据统计,1998年我国进口电子测量仪器73.5台,价值32亿美元。据专家预测,到本世纪初我国将有50%的仪器为虚拟仪器1。以上统计数字表明,虚拟仪器具有广阔的发展前景。但同时也应认识到,现在我国的科技水平还相对落后,每年需要花费大量的外汇进口电子仪器产品。如何发展我国自己的仪器产品,尤其是具有广阔发展前景的虚拟仪器,是我们应该迫切解决的问题。2 labview设计的总体概述2.1 labview的介绍labview(laboratory virtual instrument engineeringworkbench,实验室虚拟仪器集成环境)是一种图形化的编程语言,简称g语言,它是由美国ni公司推出的虚拟仪器开发平台应用labview 开发平台编制的程序称为虚拟仪器,其核心概念就是“软件即是仪器” labview 提供了测控仪器图形化编程环境,在这个环境中提供了一种像数据流一样的编程模式,用户只需连接各个逻辑框即可构成程序。它集成了与满足gpib、vxi、rs232和rs485协议的硬件及数据采集卡通讯的全部功能,同时,它还内置了便于应用tcpip、activex等软件标准的库函数,利用它可以方便地建立自己的虚拟仪器。本文介绍一种自行开发的基于labview 的虚拟函数信号发生器,该仪器界面设计友好,功能强大,操作方便。自从1986年美国ni(national instrument)公司提出虚拟仪器的概念以来,随着计算机技术和测量技术的发展,虚拟仪器技术也得到很快的发展。虚拟仪器是指:利用现有的pc机。加上特殊设计的仪器硬件和专用软件。形成既有普通仪器的基本功能,又有一般仪器所没有的特殊功能的新型仪器。与传统的仪器相比其特点主要有:具有更好的测量精度和可重复性:测量速度快;系统组建时间短;由用户定义仪器功能;可扩展性强;技术更新快等。虚拟仪器以软件为核心,其软件又以美国ni公司的labview虚拟仪器软件开发平台最为常用。labview是一种图形化的编程语言,主要用来开发数据采集,仪器控制及数据处理分析等软件,功能强大。目前,该开发软件在国际测试、测控行业比较流行,在国内的测控领域也得到广泛应用。函数信号发生器是在科学研究和工程设计中广泛应用的一种通用仪器2。虚拟仪器具有传统独立仪器无法比拟的优势。在高速度、高带宽和专业测试领域,独立仪器具有无可替代的优势。在中低档测试领域,虚拟仪器可取代一部分独立仪器的工作,但完成复杂环境下的自动化测试是虚拟仪器的强项,这是传统的独立仪器难以胜任的。(1) 传统仪器的面板只有一个,上面布置了种类繁多的显示和操作元件。由此导致许多识读和操作错误。虚拟仪器与之不同,它可以通过在几个分面板上的操作来实现比较复杂的功能。这样,在每个分面板上就可以实现功能操作的单纯化和面板布置的简洁化,从而提高操作的正确性和便捷性。同时,虚拟仪器的面板上的显示元件和操作元件的种类与形式不受标准元件和加工工艺的限制,由编程来实现,设计者可以根据用户的要求和操作需要来设计仪器面板。(2) 在通用硬件平台确定后,软件取代传统仪器中由硬件完成的仪器功能。(3) 仪器的功能是由用户根据需要用软件来定义,不是事先由厂家定义的。(4) 仪器性能的改进和功能扩展只需更新相关软件设计,不需购买新仪器。(5) 虚拟仪器开放、灵活,与计算机同步发展,与网络及其他周边设备互联。(6) 由于其以pc为核心,使得许多数据处理的过程不必像过去那样由测试仪器本身来完成,而是在软件的支持下,利用pc机cpu的强大的数据处理功能来完成,使得基于虚拟仪器的测试系统的测试精度、速度大为提高,实现自动化、智能化、多任务测量。(7) 可方便地存贮和交换测试数据,测试结果的表达方式更加丰富多样。(8) 虚拟仪器在高性价比的条件下,降低了系统开发和维护费用,缩短技术更新周期。近年来,随着网络技术的发展,己经形成了网络虚拟仪器。这是一种新型的基于web技术的虚拟仪器,使得虚拟仪器测试系统成为internet的一部分,实现现场监控和管理3。2.2 设计的目的及其要求函数信号发生器是一种多波形的信号源,它能产生某些特定的周期性时间函数波形,可在生产、测试、仪器维修和实验时做信号源使用。labview是一种功能强大的虚拟仪器开发平台,在labview环境下可以随时对比设计要求调整参数,本课题的目的就是利用labview软件进行虚拟信号发生器的设计。掌握和学习labview软件,了解数据采集卡的采样原理,利用labview软件进行虚拟信号发生器的前面板和流程图的设计分别能产生正弦波、三角波、矩形波和方波幅度为0-5v可调,频率0-1khz可调,并能通过示波器等其他手段进行输出显示,并给出显示结果。本仪器功能主要包括四类函数信号正弦波、方波、三角波、锯齿波的输出,频率的倍乘与微调相结合,以及实现输出波形的直流偏置、电压幅度的控制等功能。具体指标如如表1所示:表1 信号发生器性能要求指标输出波形正弦波、方波、三角波、锯齿波输出频率范围01khz直流偏置0-5v方波占空比0100%输出波形幅度05v2.3 设计的基本流程和方案 虚拟仪器通过底层设备驱动软件与真实的仪器系统进行通讯,并以虚拟仪器面板的形式在计算机屏幕上显示与真实仪器面板操作元素相对应的各种控键. 虚拟信号发生器可产生正弦波、方波和三角波等信号,根据需要,可调节其中面板上的控键,改变信号的频率、幅度与相位,并可以进行数据存储,所有信号发生的结果都可以通过软件设计的虚拟面板显示。labview的图形化程序设计是基于现代软件的面向对象技术和数据流技术而发展起来的。数据流程序设计表示只有在所有输入都有效时,一个对象才开始执行,同样,只有当对象的功能完成以后,对象输出才有效。这样的话,互相在对象间的数据流控制执行顺序,执行顺序不局限于来自文本式程序设计的线性顺序,它可以不受其限制。用户能够通过连接模块来快速开发自己的应用程序,甚至能够使用多路数据通道,实现同步操作。与传统的文本式程序设计一样,labview也有控制流程图功能执行的部分,它们包括sequence case statement,for loop,while loop,它们被图形化地描述成边界结构,像在传统的线形化程序设计中可以插入代码段一样,可以把图标放在labview图形结构的界限内部。labview有一个图形编辑器来产生最优化的编辑代码,虚拟仪器执行他们相当编译c的速度。利用应用程序生成器,用户能够产生虚拟仪器,就像独立的执行程序一样4。下面按步骤说明进行图形化的程序设计。(1) 建立方案:选用labview软件,可以构建虚拟仪器而不是编写程序。有了交互式控制的软件系统,用户可以很方便地建立其前面板窗口。为了实现具体的功能,用户利用向导把流程图结合在一起。信号调理数据采集卡数据处理虚拟仪器面板被测对象图2-1 常见虚拟仪器应用方案(2) 建立前面板:从控制模板上选择你需要的对象,放在虚拟仪器的前面板上。控制模板上的对象包括数字显示、表头、压力计、热敏计外壳、表、图片等。当你的虚拟仪器完成以后,就能在虚拟仪器工作十利用前面板去控制整个系统,如移动滑动片、在图象中变向、从键盘输入等。(3) 构建图形化的流程图:对虚拟仪器进行程序设计,你不必担心很多传统设计所需的语法细节,而可自己构建流程图。从功能模板上选择对象(用图标表示),并用线将它们连接起来以便数据进行传递。功能模块上的对象包括简单的数学运算、高级数据采集和分析方法、以及网络和文件输入输出操作。(4) 数据流程图设计:labview用一种精巧的数据流程序设计模式把用户从文本式语言的线形化方式构建程序的方法中解放出来。因为在labview软件中程序的执行顺序由各方块中的数据流决定。你也可以建立同步操作的流程图。labview软件是一个多任务系统具有多线程功能并运行多个虚拟仪器。(5) 模块化和层次:labview虚拟仪器实行模块化设计,因而任何虚拟仪器既能独立运行,又能被用作其他虚拟仪器的一部分。甚至可以创建自己的虚拟仪器图标,因而可以设计由虚拟仪器构成的多层系统,并可以改变它,同其他虚拟仪器交换和连接以满足不断变化的应用需要。(6) 图形编辑器:在许多场合,程序运行速度都很关键。labview软件是唯一的带有编辑器的图形化编程环境,可以产生最优化的代码,其运行速度与编译c的速度相当。利用内置的绘图器,甚至能够对时间很关键的代码部分进行分析和优化。因而,不会因为图形化编程降低了效率。图形化程序设计编程简单、直观、开发效率高。3 数据采集的介绍与应用3.1 数据采集的系统构成在计算机广泛应用的今天,计算机为“智能处理核心部件”的检测、控制系统在现代化的工业生产中发挥着越来越重要的作用。这种“智能处理核心部件”客观上要求我们能够将计算机与外部物理设备相连,实现这种连接的桥梁就是数据采集,而数据采集系统设计的优劣将十分显著地反应出我们描述客观世界的准确性。对于一个具体的数据采集系统,其硬件部分的设计内容包括模拟信号输入/输出通道的设置和数字信号输入/输出通道的设置。ni公司把这两种设置都归于数据采集(data acquisition, daq)模块,熟悉该模块的功能对于我们完成数据采集系统的设计具有重要的意义。一个完整的数据采集系统通常由原始信号、信号调理设备、数据采集设备和计算机四个部分组成。但有的时候,自然界中的原始物理信号并非直接可测的电信号,所以,我们会通过传感器将这些物理信号转换为数据采集设备可以识别的电压或电流信号。加入信号调理设备是因为某些输入的电信号并不便于直接进行测量,因此需要信号调理设备对它进行诸如放大、滤波、隔离等处理,使得数据采集设备更便于对该信号进行精确的测量。数据采集设备的作用是将模拟的电信号转换为数字信号送给计算机进行处理,或将计算机编辑好的数字信号转换为模拟信号输出。计算机上安装了驱动和应用软件,方便我们与硬件交互,完成采集任务,并对采集到的数据进行后续分析和处理5。基于pc的数据采集系统的组成部分可分为5个部分:(1) pc(2) 传感器(3) 信号调理(4) 数据采集硬件(5) 软件传感器信号调理daq硬件pc软件图3-1 基于pc的daq系统daq的任务就是测量或生成物理信号。一个daq系统通常具有一套用于获取、处理原始数据,分析串岗其和转换器,信号调节及其显示,存储数据的软件。如图给出了数据采集系统的结构。在数据采集之前,程序将对daq板初始化,板卡上和内存中的buffer 是数据采集存储的中间环节。a/dldlkkkkjddbuffer(fifo)( )驱动程序labview程序硬件内存buffer显示外触发发图3-2 数据采集系统结构在给予计算机的系统测量到物理信号之前,需要通过传感器将物理信号转换成电信号。为了更精确地测量信号信号调理部分能放大低电压信号,并对信号进行隔离和滤波。此外某些传感器需要有电压或电流激励源来生成电压输出。daq系统由软件控制来获取数据行、分析数据并得到结论6。3.2 数据采集卡的选择数据采集板卡的性能与众多因素相关,要根据具体情况来具体分析。所以在选择数据采集卡构成系统时,首先必须对数据采集卡的性能指标有所了解。3.2.1 数据采集卡的主要性能指标(1) 采样频率采样频率的高低,决定了在一定时间内获取原始信号信息的多少,为了能够较好的再现原始信号,不产生波形失真,采样率必须要足够高才行。根据奈奎斯特理论采样频率至少是原信号的两倍,但实际中,一般都需要510倍。(2) 采样方法采集卡通常都有好几个数据通道,如果所有的数据通道都轮流使用同一个放大器和a/d转换器,要比每个通道单独使用各自的经济的多,但这仅适用于对时间不是很重要的场合。如果采样系统对时间要求严格,则必须同时采集,这就需要每个通道都有自己的放大和a/d转换器。但是处于成本的考虑,现在普遍流行的是各个数据通道公用一套放大器和a/d转换器。(3) 分辨率adc的位数越多,分辨率就越高,可区分的电压就越小。(4) 电压动态范围电压范围指adc能扫描到的最高和最低电压。一般最好能够使进入采集卡的电压范围刚好与其符合,以便利用其可靠的分辨率范围。 (5) i/o通道数该参数表明了数据采集卡所能够采集的最多的信号路数。3.2.2 数据采集卡的组成(1) 多路开关。将各路信号轮流切换至放大器的输入端,实现多参数多路信号的分时采集。(2) 放大器。将切换进入采集卡的信号放大至需要的量程内。通常的放大器都是增益可调的,使用者可根据需要来选择不同的增益倍数。(3) 采样保持器。把采集到的信号瞬间值保持在a/d转换的过程中不变化。(4) a/d转换器。将模拟的输入信号转化为数字量输出,完成信号幅值的量化。3.2.3 数据采集卡usb-6211usb-6211是ni公司的一款多功能数据采集卡,是一款usb 总线供电 m系列多功能daq模块,在高采样率下也能保持高精度。该模块提供了16路模拟输入;250 ks/s单通道采样率;2路模拟输出;4路数字输入线;4路数字输出线;每通道有4个可编程输入范围(0.2 v10 v) ;8路可编程数字i/0口。ni usb-6211为移动应用或空间上有限制的应用专门设计。其即插即用的安装最大程度地降低了配置和设置时间,同时它能直接与螺丝端子相连,从而削减了成本并简化了信号的连接。usb总线可以供电,使用户不再需要携带多余的外部电源。 ni-daqmx驱动程序和测量服务软件提供了简单易用的配置和编程界面,其中daq assistant等功能可帮助用户缩短开发时间7。基于以上原因,本设计采用了usb6211数据采集卡。3.3 数据采集的硬件的安装与配置在使用labview进行数据采集之前,必须对daq硬件进行正确的安装和配置,具体过程分为以下3步。(1) 安装n1一daq驱动程序:在windows环境下,labvlew安装软件会提示用户安装nidaq驱动器软件。nidaq驱动器软件为labview提供了与daq器件和信号调理硬件之间的高级接口。ni公司的全部daq器件都与ni-daq驱动器软件组装在一起。(2) daq卡的安装与配置:daq卡的安装需参照采集卡用户手册。daq卡的配置则可参照n1一daq配置向导在线帮助文件“nidaqcfg cxc”来进行,可配置daq卡的设备号、模拟输入极性(单极或双极)、模拟输入模式(单端输入或差分输入)、模拟输出极性等属性。(3) 模拟输入通道配置:通道配置可通过执行labview中“project”菜单的“daq wizards”子菜单里“daqchannelwizards”命令来完成。该通道配置向导(daqchannelwizard)是windows环境f的应用程序,用来对包括daq插卡、独立daq产品以及scxi模件等daq器件的模拟输入通道进行配置。通过用户渐入通道名称、被测最物理信号的范围、所使用的传感器、传感器输出范围以及相关的daq硬件等信息,daq通道配置向导可确定在daq硬件通道上测量的物理参数8。3.4 数据采集的子程序labview的daq程序包括模拟输入(analoginput)、模拟输出(analogoutput)、数字输入输出(digital i/0)、计数器(counter)、标定和配置(calibration andconfigmafion)以及信号调理(signalconditioning)等6类。其中,每类又分成简单程序(easyfovls)、中级程序(intermediatevis)、应用程序(utilityvis)和高级程序(advancedvis)4类。简单程序仅仅只是表而培接口程序,它能执行基本的模拟量输入、模拟量输出、数字i/o以及计数器,定时器操作。它简单易用,并且包含个简单的出错处理方法。当出错时,将弹出一个对话框,显示出错信息,用户可以选择终止程序执行或者忽略错误。相对于简单程序而言,中级程序具备更多的硬什设置功能,使用上具有更大的灵活性,可以更有效地开发实用程序。它具有许多简单程序所缺乏的功能,如外部时钟等。它对出错的处理也更加灵活,可以把出错状态信息传递给其它程序,可以编程处理出错情况。应用程序是中级程序的通用组合,在功能和操作上与中级程序相同。高级程序涉及到与daq驱动程序的低层接口。开发实用程序时通常并不需要用到高级程序,但当简单程序和中级程序不具备用于控制特殊daq功能的输入时,可以使用高级程序来实现。高级程序从daq驱动程序返旧的状态信息最多9。在实用程序开发中,常用的daq子程序包括模拟输入与输出、波形的输入与输出、连续数据采集。(1) 模拟输入与输出:模拟输入与输出是daq卡的基本功能。“analog input”子模板下的“ai sample channel”程序测量指定通道上信号的一个采样点,并返回测量值。“analog output”了模板下的“ao update channel”程序把一个给定电压值在一个模拟输出通道上输出。(2) 波形的输入与输出:在许多应用场合,一次只采样一个数据点是远远不够的。另外,采样点之间的间隔很难恒定,因为它受到多种因素的影响,如循环的执行速度、子程序的调用时间等。然labview的daq程序库提供的“ai acquirewaveform(s)”和“ao generatewaveform”程序可以以大干单点操作的速度进行多点的数据采集和波形生成并且用户可咀自定义采样率。”ai acquirewavcform(s)”程序从一个(多个)指定的输入通道按用户定义的采样率、采样点数采集数据,并返回采样结果数据到计算机。”ao generatewaveform”程序在一个模拟输出通道上以用户定义的更新速率生成一个电压波形10。3.5 模拟输入使用daqmx底层vi进行数据采集:图3-3 daqmx 数据采集子选板如图3-3所示,我们看到的所有的daqmx底层驱动vi都能在测量i/o选版下的daqmx子选版下找到 包括了i/o 端口,创建通道,读取,写入,定时,触发等等。3.5.1 创建虚拟通道函数通过给出所需的目标通道名称以及物理通道连接,用来在程序中创建一个通道,如下图3-4所示。图3-4创建虚拟通道在max当中创建通道时进行的相同的设置在这个函数中均会得到设置。 当程序操作员需要经常更换物理通道连接设置而非其他诸如终端配置或自定义缩放设置的时候,这个创建虚拟通道vi就非常有用了。物理通道下拉菜单被用来指定daq板卡的设备号以及实际连接信号的物理通道。通道属性节点是创建虚拟通道函数的功能扩展,允许您在程序当中动态改变虚拟通道的设置11。举例来说,对于一组测试我们可用通过它来对一个通道设置一个自定义缩放之后在对另一组进行测试时可以通过属性节点改变自定义缩放的值。3.5.2 定时设定vi daqmx定时vi 配置了任务、通道的采样定时以及采样模式,并在必要时自动创建相应的缓存。如图3-5所示。这个多态vi的实例与任务中使用到的定时类型相关联,包扩数字握手,隐式(设置持续时间而非定时)或波形(使用波形数据类型中的dt元素来确定采样率)等实例。类似的定时属性节点允许您进行高级的定时属性配置。图3-5 daqmx定时vi3.5.3 daqmx 触发设定vidaqmx触发vi 配置了任务、通道的触发设置。如图3-6所示。 这个多态vi的实例包括了触发类型的设置,数字边沿开始触发模拟边沿开始触发,模拟窗开始触发, 数字边沿参考触发,模拟边沿参考触发或是模拟窗口参考触发等等。同样的我们会使用触发属性节点来配置更多高级的触发设置。图3-6 触发设定vi3.5.4 daqmx读取vi daqmx 读取vi 从特定的任务或者通道当中读取数据,如图3-7所示,这个vi的多态实例会指出vi所返回的数据类型,包括一次读取一个单点采样还是读取多点采样,以及从单通道读取还是从多通道中读取数据,其相应的属性节点可以设置偏置波形属性以及获取当前可用采样数等数据12。图3-7 daqmx 读取vi图3-8程序完成了模拟信号的连续采集,与使用daq 助手快速vi不同,这里我们使用的都是daqmx的底层驱动vi。图3-8模拟信号的连续采集连续采集的流程图如图3-9所示,首先创建虚拟通道,设置缓存大小,设置定时,(必要时可以设置触发) ,开始任务,开始读取。由于我们是连续采集信号,于是我们需要连续地读取采集到的信号。因此我们将daqmx读取vi放置在循环当中, 一旦有错误发生或者用户在前面板上手动停止采集时程序会跳出while循环。之后使用daqmx 停止任务来释放相应的资源并进行简单错误处理13。在连续采集当中,我们会使用一个环形缓冲区, 这个缓冲区的大小由daqmx 定时vi 中的samples per channel 每通道采样来确定。如果该输入端未进行连接或者设置的数值过小,那么ni daqmx 驱动会根据当前的采样率来分配相应大小的缓冲区,其具体的映射关系可以参考daqmx 帮助。同时,在while 循环中daqmx 读取的输入参数 samples to read(每通道采样数)表示了,每次循环,我们从缓冲中读取多少个点数的数据。为了防止缓冲区溢出,我们必须保证读取的速率足够快。一般我们建议samples to read 的值为pc 缓冲大小的1/4。 从缓存中返回数据设定定时和缓存开始数据采集完成?停止数据采集显示错误noyes图3-9模拟信号的连续采集流程图3.6 模拟输出 对于ao,我们需要知道输出波形的频率,输出波心的频率取决于两个因素,更新率以及缓冲中波形的周期数。我们可以用以下等式来计算我们输出信号的频率: 信号频率= 周期数 更新率 缓冲中的点数 。举例来说,我们有一个1000点的缓冲放置了一个周期的波形,如果要以1khz的更新率来产生信号的话,那么1个周期乘以每秒一千个点更新率除以总共一千个点等于1hz。 如果我们使用2倍的更新率。那么,一个周期乘以每秒2000个点除以总共1000个点,得到2hz的输出。如果我们在缓冲中放入两个周期的波形,那么两个周期乘以 1000个点每秒的更新率除以总共1000个点,得到输出频率为2hz。也就是说我们可以通过增加更新率或者缓冲中的周期数来提高输出信号的频率14。图3-10使用采样时钟定时的连续数据输出4 虚拟仪器软件硬件的设计4.1 虚拟仪器硬件平台4.1.1 pc机它是硬件平台的核心。虚拟仪器使用的个人计算机中,微处理器和总线成为最重要的因素。 其中,微处理器的发展是最迅速的,它使虚拟仪器的能力得到极大地提高。80年代末制造的虚拟仪器频率分析仪完成一个1024点的快速傅立叶变换需要1秒钟的时间;今天的系统可以在1毫秒内完成同样的运算,速度提高了一千倍。这意味着,如果以前人们是用虚拟仪器来做快速傅立叶变换观察信号,那么今天可以利用它进行高速的实时运算,并将之应用于过程控制和其它控制系统中。总线技术的发展也为提高虚拟仪器的处理能力提供了必要的支持。pci总线性能比isa总线提高了近十倍,使得微处理器能够更快地访问数据。使用isa总线时,插在电脑中的数据采集板的采集速度最高为2mbps;使用pci总线时,最高采集速度可提高到132mbps。由于总线速度的大大提高,现在可以同时使用数块数据采集板,甚至图象数据采集也可以和数据采集结合在一起15。4.1.2 i/o接口设备主要完成被测信号的采集、放大、模/数转换。可根据不同情况采用不同的i/o接口硬件设备,如数据采集卡(daq)、gpib总线仪器、vxi总线仪器模块、串口仪器等,虚拟仪器构成方式有五种类型,如图4-1框图所示。labview提供了各种图形化驱动程序,使用者不必熟悉pci计算机总线、gpib总线、vxi总线、串口总线,利用labview提供的图形化驱动程序就可以驱动上述各种总线的i/o接口设备,实现对被测信号的输入、数据采集、放大与模/数转换,进而供计算机进一步分析处理。虽然这五种系统有很大的差别,但是无论那种vi系统,都是通过应用软件将仪器硬件与通用计算机相结合。虚拟仪器的构成方式主要有5种类型,如图4-1所示。pc-daqgpib仪器串口仪器vxi模块pxi模块被测信号计算机图4-1虚拟仪器的构成方式无论上述哪种vi系统,都通过应用软件将仪器硬件与计算机相结合。考虑到pcdaq插卡式虚拟仪器在五种虚拟仪器系统中,是虚拟仪器最基本最廉价的构成形式。在经费不足或时间不充裕的情况下经常被采用。所以本设计它的硬件平台主要有pc计算机和数据采集卡(daq卡)组成。本设计采用了usb6211数据采集卡数据采集卡(daq卡)这种采集卡包括以下四个组成部分:(1) 多路开关。将各路信号轮流切换的放大器的输入端,实现多参数多路信号的分时采集。(2) 放大器。将前一级多路开关切换进入待采集信号放大(或衰减)至采样环节的量程范围内。通常实际系统中放大器作成增益可调的放大器,设计者可根据输入信号不同的幅值选择不同的增益倍数。(3) 采样保持器。取出待测信号在某一瞬时的值(即实现信号的时间离散化),并在a/d转换过程中保持信号不变,如果被测信号变化很缓慢,也可以不用采样/保持器。(4) a/d转换器。将输入的模拟量转化为数字量输出,并完成信号幅值的量化。随着电子技术的发展,目前通常将采样/保持器同a/d转换器集成在一块芯片上。以上四个部分都处在计算机的前向通道,是组成数据采集卡的主要环节,与其它有关电路如定时/计数器、总线接口电路等集成在一块印刷电路板上,即构成数据采集卡(daq卡),完成对信号数据的采集、放大及模/数转换任务。pc-daq插卡式虚拟仪器系统充分利用了pc计算机的机箱、总线、电源及软件资源,但是因而也受到pc计算机机箱环境和计算机总线的限制,存在诸多的不足,如电源功率不足、散热条件差等16。4.2 虚拟仪器的软件设计4.2.1 labview应用程序的构成所有的labview应用程序,即虚拟仪器(ni),它包括前面板(front panel)、流程图(block diagram)以及图标/连接器(icon/connector)三部分。(1) 程序前面板前面板是图形用户界面,也就是vi的虚拟仪器面板,这一界面上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制(control)和显示对象(indicator)。图4-2所示是一个随机信号发生和显示的简单vi的前面板,上面有一个显示对象,以曲线的方式显示了所产生的一系列随机数。还有一个控制对象开关,可以启动和停止工作。显然,并非简单地画两个控件就可以运行,在前面板后还有一个与之配套的流程图。控制对象(输入)显示对象(输出)图4-2随机信号发生器的前面板(2) 流程图流程图也称为后面板,提供vi的图形化源程序。在流程图对vi编程,以控制和操纵定义在前面板上的输入和输出功能。流程图中包括前面板上的控件和连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等。图4-3是与图4-2对应的流程图。我们可以看到流程图中包括了前面板上的开关和随机数显示器的连线端子,还有一个随机数发生器的函数及程序的循环结构。随机数发生器通过连线将产生的随机信号送到显示控件,为了使它持续工作下去,设置了一个while loop循环,由开关控制这一循环的结束。函数:随机数发生器结构:循环与前面板控件对应的连线端子与前面板控件对应的连线端子图4-3信号发生器的程序图(3) 图标/连接器图标/连接器是子vi被其它vi调用的接口。图标是子vi在其他程序框图中被调用的节点表现形式;而连接器则表示节点数据的输入/输出口,就象函数的参数。用户必须指定连接器端口与前面板的控制和显示一一对应。连接器一般情况下隐含不显示,除非用户选择打开观察它。4.2.2 labview的操作模板在labview的用户界面上,应特别注意它提供的操作模板,包括工具(tools)模板、控制(controls)模板和函数(functions)模板。这些模板集中反映了该软件的功能与特征。(1) 工具模板(tools palette)该模板提供了各种用于创建、修改和调试vi程序的工具,如图4-4所示。如果该模板没有出现,则可以在windows菜单下选择show tools palette命令以显示。图4-4 labview的工具模板当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。当从windows菜单下选择了show help window功能后,把工具模板内选定的任一种工具光标放在流程图程序的子程序(sub vi)或图标上,就会显示相应的帮助信息。 (2) 控制模板(controls palette)该模板用来给前面板设置各种所需的输出显示对象和输入控制对象。每个标代表一类子模板。如果控制模板不显示,可以用windows菜单的show controls palette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。控制模板如下图4-5所示:图4-5 labview的控制模板(3) 功能模板(functions palette)该模板是创建流程图程序的工具,模板上的每一个顶层图标都表示一个子模板。若功能模板不出现,则可以用windows菜单下的show functions palette功能打开它,也可以在流程图程序窗口的空白处点击鼠标右键以弹出功能模板,功能模板如图4-6所示。图4-6 labview的功能模板4.3 仿真信号的生成4.3.1 正弦信号的生成(1) 正弦信号的程序设计: 在前面板中创建控件对象(数值输入控件、波形图),然后在输入控件上设置偏移量、频率、幅值、初始相位,然后通过选择前面板中的“窗口”下拉菜单中的“显示程序框图”或点击框图窗口中的任何位置,切换到程序框图,然后在前面板中创建控件对象(数值输入控件、波形图)后,再在程序框图函数控件中找出波形生成控件的正弦信号,然后鼠标点右击正弦信号控件创建输入控件,最后连线如下图所示为正弦信号程序设计图4-7 正弦信号的程序设计(2) 正弦信号的显示:在前面板中的输入控件中设置频率、幅值等数值点击程序框图中的快速运行按钮,则显示出的正弦波型如下所示:图4-8 正弦波信号的显示4.3.2 方波信号的生成(1) 方波信号的程序设计: 在前面板中创建控件对象(数值输入控件、波形图),然后在输入控件上设置偏移量、频率、幅值、初始相位、占空比,然后通过选择前面板中的“窗口”下拉菜单中的“显示程序框图”或点击框图窗口重的任何位置,切换到程序框图,然后在前面板中创建控件对象(数值输入控件、波形图)后,再在程序框图函数控件中找出波形生成控件的方波信号,然后鼠标点右击正弦信号控件创建输入控件,最后连线如下图所示为方波信号程序设计图4-9方波信号的程序设计(2) 方波信号的显示:在前面板中的输入控件中设置频率、幅值、占空比等数值点击程序框图中的快速运行按钮,则显示出的方波型如下所示:图4-10方波信号的显示4.3.3 三角波信号的生成(1) 三角波波信号的程序设计: 在前面板中创建控件对象(数值输入控件、波形图),然后在输入控件上设置偏移量、频率、幅值、初始相位,然后通过选择前面板中的“窗口”下拉菜单中的“显示程序框图”或点击框图窗口重的任何位置,切换到程序框图,然后在前面板中创建控件对象(数值输入控件、波形图)后,再在程序框图函数控件中找出波形生成控件的三角波信号,然后鼠标点右击三角波信号控件创建输入控件,最后连线如下图所示为三角波信号程序设计图4-11 三角波波信号的程序设计(2) 三角波信号的显示:在前面板中的输入控件中设置频率、幅值、等数值点击程序框图中的快速运行按钮,则显示出的三角波型如下所示:图4-12 三角波的波形显示4.3.4 锯齿波信号的生成(1) 锯齿波波信号的程序设计: 在前面板中创建控件对象(数值输入控件、波形图),然后在输入控件上设置偏移量、频率、幅值、初始相位,然后通过选择前面板中的“窗口”下拉菜单中的“显示程序框图”或点击框图窗口重的任何位置,切换到程序框图,然后在前面板中创建控件对象(数值输入控件、波形图)后,再在程序框图函数控件中找出波形生成控件的锯齿波信号,然后鼠标点右击锯齿波信号控件创建输入控件,最后连线如下图所示为锯齿波信号程序设计图4-13 锯齿波的程序设计(2) 锯齿波信号的显示:在前面板中的输入控件中设置频率、幅值、等数值点击程序框图中的快速运行按钮,则显示出的锯齿波型如下所示:图4-14锯齿波的波形生成5 系统的仿真波形生成5.1 仿真实现的流程图开始创建任务并设置通道生成初始信号写入输出缓存开始模拟输出继续生成信号模板写入输出缓存停止信号参数信号参数循环图5-1仿真信号实现的流程图5.2 仿真波形模块的设计及生成5.2.1 数字波形产生模块的基本概述 波形产生模块是虚拟函数信号发生器软件的核心。利用该模块可实现正弦波、方波、锯齿波、三角波等波形。正弦波的产生原理是通过调用sinfx1函数来实现。在本次设计,设计每一正弦波周期由1000点组成,利用

温馨提示

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

评论

0/150

提交评论