1.前言1.1课题的研究背景信号源有很多种,包括正弦波信号源、函数发生器、脉冲发生器、扫描发生器、任意波形发生器、合成信号源等。随着电子技术的迅速发展和科研,生产对信号源的广泛需求,信号发生器发展迅速,性能日益提高,功能也越来越丰富。早期的信号发生器主要是由模拟振荡电路构成,这种信号发生器输出的信号稳定度小高,用电位器调节给定的参数误差较大,小能担当复杂系统的调试与测试工作。1980年代出现了单片机,信号发生器逐渐向数字化发展,发展趋势是以单片机、DSP,CPLD,FPGA等可编程器件为平台,结合直接数字合成(DDS)技术,将合成后的信号通过D/A转换为模拟信号,再加上滤波电路而形成的数字信号发生器,它具有高精度、稳定性好、输出灵活的特点。信号发生器是一种最悠久的测量仪器,早在1920年代电子设备刚出现时它就产生了。随着通讯和雷达技术的发展1940年代出现了主要用于测试各种接收机的标准信号发生器,使信号发生器从定性分析的测试仪器发展成定量分析的测量仪器。同时还出现了可用来测量脉冲电路或用作脉冲调制器的脉冲信号发生器。由于早期的信号发生器机械结构比较复杂,功率比较大,电路比较简单,因此发展速度比较慢。直到1964年才出现第一台全晶体管的信号发生器。自1960年代以来信号发生器有了迅速的发展,出现了函数发生器,这个时期的波形发生器多采用模拟电子技术,由分立元件或模拟集成电路构成,其电路结构复杂,且仅能产生正弦波、方波、锯齿波和三角波等几种简单波形,由于模拟电路的漂移较大,使其输出的波形的幅度稳定性差,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形则电路结构非常复杂。自从1970年代微处理器的出现以后,利用微处理器、模数转换器和数模转换器、硬件和软件使信号发生器的功能扩大,产生比较复杂的波形。这时期的信号发生器多以软件为主,实质是采用微处理器对DAC的程序控制,就可以得到各种简单的波形。软件控制波形的一个最大缺点就是输出波形的频率低,这主要是由CPU的上作速度决定的,如果想提高频率可以改进软件程序减少其执行周期时间或提高CPU的时钟周期,但这些办法是有限度的,根本的办法还是要改进硬件电路。随着现代电子、计算机和信号处理等技术的发展,极大促进了数字化技术在电子测量仪器中的应用,使原有的模拟信号处理逐步被数字信号处理所代替,从而扩充了仪器信号的处理能力,提高了信号测量的准确度、精度和变换速度,克服了模拟信号处理的诸多缺点,数字信号发生器随之发展起来。目前信号发生器的基础就是直接数字合成技术,用高速存储器做查询表,通过数字形式存入的波形,由高速数/模转换器产生所需要的波形。2.方案要充分合理而又有效的利用资源,来完成一个功能较为完善的虚拟波形显示器,经过考虑,查阅资料,提出以下方案:本虚拟波形信号发生器的开发,基于LABVIEW这个软件开发平台。根据LABVIEW的特点结合实际波形的需求,确定总体设计思想:实现多功能,将常规波形信号发生器的四种波形信号、多频波信号等功能集成到一起实现输出波形种类的多样化;2创建友好界面,实现输出波形相关参数的调整与同步显小及幅度频谱分析:摄实现输出波形的采样点数据的存储。软件设计是虚拟波形信号发生器设计的核心。根据上述总体设计思想,将该系统软件设计分成属性设置信号产生、波形显示和数据存储四大模块。在虚拟仪器的软件开发平台---LABVIEW上,根据设计要求,在VI程序的控制模板和波形模板上选择相应的控制件和显示件以及所涉及到的波形,利用所选定的目标项分别实现各子模块的功能,最终实现虚拟波形显示器。3.软件设计3.1LabVIEW开发平台LabV1EW(laboratoryvirtualinstrumentengineeringworkbench)是一种图形化的编程语言和开发环境,被公认为是标准的数据采集和仪器控制软件。它为设计者提供了一个便捷、轻松的设计环境,利用它设计者可以象搭积木一样,轻松组建个测量系统或数据采集系统,并任意构造自己的仪器面板,而无需进行任何繁琐的计算机程序代码的编写,从而可以大大简化程序的设计。LabVIEW与VC++,VisualBasic,LabWindows/CVI等编程语言不同,后者采用的是基于文本语言的程序代码,而LabVIEW则是使用图形化程序设计语台-G,用对话框代替了传统的程序代码。LabVIEW所运用的设备图标与科学家、工程师们习惯的大部分图标基本一致,这使得编程过程和思维过程非常相似。用LabVIEW设计的虚拟仪器可以脱离LabVIEW开发环境,最终用户看见的是和实际的硬件仪器相似的操作面板。LabVIEW包含有专门用于设计数据采集程序和仪器控制程序的功能库和开发工具库。LabVIEW的程序设计实质上就是设计个个的“虚拟仪器”,“VIs(VirtualInstruments)。在计算机显示屏幕上利用功能库和开发工具库产生一个前面板(frontpanel),在后台则利用图形化编程语言编制用于控制前面板的程序。程序的前面板具有与传统仪器类似的界面,可接受用户的鼠标指令。一般来说,每一个VI都可以作为其它VI的调用对象,其功能类似于文本语言的子程序。LabVIEW是带有可扩展功能库和子程序库的通用程序设计系统。它提供了用于GPIB设备控制、VXI总线控制、串行口设备控制、以及数据分析、显示和存储的应用程序模块。LabVIEW可调用Windows动态链接库和用户自定义的动态链接库中的函数。LabVIEW的C1N节点使用户可以使用由其它语言,如ANSIC,编译的程序模块,使LabVIEW成为一个开放的开发平台。LabVIEW还直接支持动态数据交换(DDE)、结构化查询语言((SQL)、TCP和UDP网络协议等。此外,LabVIEW还提供了专门用十程序开发的工具箱,使得用户能够设置断点,动态执行程序来观察数据的传输过程,以及进行方便的调试。LabVIEW的运行机制就宏观上讲已经不再是传统上的冯·诺依曼计算机体系结构的执行方式。传统的计算机语言(如C)中的顺序执行结构在LabVIEW中被并行机制所代替:从本质上讲,它是一种带有图形控制流结构的数据流模式,这种方式确保程序中的节点只有在获得它的全部数据后才能执行。也就是说,在这种数据流程序的概念中,程序的执行是数据驱动的,它不受操作系统、计算机等因素的影响LabVIEW程序是数据流驱动的。数据流程序设计规定,一个目标只有当它的所有输入有效时才能执行;而目标的输出,只有当它的功能完全时刁是有效的。这样,LabVIEW中被连接的对话框之间的数据流控制着程序的执行次序,而小象文本程序受到行顺序执行的约束。从而可以通过相互连接功能对话框快速简洁地开发应用程序,甚至还可以有多个数据通道同步运行。LabVIEW的核心是VI}VI有一个人机对话的用户界面一前面板((frontpanel)以及类似于源代码功能的对话框(diagram)。前面板接受来自对话框的指令。在VI的前面板中,控制器(controls)模拟了仪器的输入装置并把数据提供给VI的对话框;而指T器(indicators)则模拟了仪器的输出装置并显T由对话框获得或产生的数据。当把一个控件或指示器放置到前面板上时,LabVIEW在对话框中相应地放置了一个端口(terminals),这个从属于控件或指示器的端口不能随意删除,只有删除它对应的控件或指示器时它才随之一起被删除。用LabVIEW编制对话框程序时,不必受常规程序设计语法细节的限制。首先,从功能菜单中选择需要的功能方框,将之置于面板上适当的位置;然后用导线(初res)连接各功能方框在对话框中的端口,用来在功能方框之间传输数据。这些方框包括了简单的算术功能,高级的采集和分析VI以及用来存储和检索数据的文件输入输出功能和网络功能。用LabV1EW编制出的图形化V1是分层次和模块化的「4]。我们可以将之用于顶层((toplevel)程序,也可用作其它程序或子程序的子程序。一个VI用在其它V工中,称之为subVI}subVI在调用它的程序中同样是以一个图标的形式出现的。LabVIEW依附并发展了模块化程序设计的概念。用户可以把一个应用题目分解为一系列的子任务,每个子任务还可以进一步分解成许多更低一级的子任务,直到把一个复杂的题日分解为许多子任务的组合。首先设计subVI完成每个子仟务,然后将之逐步组合成能够解决最终问题的Vlo归纳起来LabVIEW软件开发平台具有以下优点:①图形化的编程方式,设计者无需写仟何文本格式的代码,是真正的工程师的语台‘。②提供了丰富的数据采集、分析及存储的库函数。③既提供了传统的程序调试手段,如设置断点、单步运行,同时提供有独到的高亮执行工具,使程序动画式运行,利于设计者观察程序运行的细节,使程序的调试和开发更为便捷。④32bit的编译器编译生成32bit的编译程序,保证用户数据采集、测试和测量力案的高速执行。⑤囊括了DAQ,GPIB,PXI,VXI,RS-232/485在内的各种仪器通信总线标准3.2Labview的主要功能和特点;虚拟仪器的概念是美国N1公司(National1nstrument)在20世纪80年代中期提出来的。最有代表性的是其推出的Labview(LaboratoryVirtuallnstrumentEngineeringWorkhench)一实验室虚拟仪器工程平台。它是世界上第一个采用图形化编程技术的而向仪器的32位编译型程序开发系统,它的目标就是简化程序的开发工作,提高编程效率。虚拟仪器与传统仪器相比具有许多优点:对测试量的处理和计算可史复杂日‘处理速度史快,测试结果的表达方式史加丰富多样,可以方便地存储和交换测试数据,价格低,技术史新快。它的最大特点就是把山仪器生产厂家定义仪器功能的方式转变为山用户自己定义仪器功能,满足多种多样的应用需求。山于虚拟仪器的测试功能、而板控件都实现了软件化,任何使用者都可通过修改虚拟仪器的软件来改变它的功能和规模,这充分体现了软件就是仪器的设计思想。Labview使用可视化技术建立人机界而,提供了许多仪器而板中的控制对象,如表头、旋钮、开关及坐标平而图等。用户可以通过使用编辑器将控制对象改变为适合自己工作领域的控制对象。Labview的高级软件库具有强大的数据处理能力,包括信号的产生、数据信号处理、测量、数据滤波、概率统计、线性代数、曲线拟合、数值分析等多种软件分析功能。应用Labview直观的图形化开发环境和功能强大的数据分析库函数,可以非常灵活地为教学中的测量原理设计各种虚拟仪器,进行直观的演示,教学效果明显改善,使理论教学与实践史好的紧密结合,教学史生动、史形象、史直观,达到事半功倍的效果。Labview支持多种操作系统平台,在任何一个平台上开发的Labview应用程序可直接移植到其它平台上。3.3控制软件的功能1.对每路信号的波形进行选择,并输入波形特征(包括幅值、频率、相位以及谐波次数、频率、幅值);2.根据相应的波形以及所输入的特征,生成原始的波形数据;3.将原始的波形数据用波形显示出来,供用户进行参考;图1:软件的模块图按照软件的功能,可将程序划分成几大模块:1.波形选择和特征输入模块;2,波形数据产生模块;3.数据处理模块;4.显示模块;3.4程序设计作为实例,木文中的多路信号发生器产生4种常用的波形:正弦波(带任意次谐波)、方波、三角波、锯齿波,下面将分别阐述波形数据产生模块的设计方法:(1)前面版的设计属性设置模块}要是为信号产生模块服务的。根据设计要求在控制模板上选择相应的控件放在前面板上,按规定设置性能指标,完成属性设置。属性设置前面板如图2所小。其}要属性设置有:信弓-类烈切换、信号的输出频率、幅度、偏移量、初相角、占空比等参量的控制。这些属性通过仪器前面板实现参数选定。(2)根据传统信号发生器而板控键的功能,利用Labview中的控制模板,分别在设计而板上放入模拟实际信号发生器控键的数据输入控键、显示器、数据输出控件、开关、选择器.显示器用于显示输出的信号波形,数据输入