版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE1基于LabVIEW的数字示波器设计院系:机电与自动化学院专业班:电气0905班姓名:学号:20091131193指导教师:2013年6月基于LabVIEW的数字示波器设计DigitalOscilloscopeDesignBasedonLabVIEWPAGE20摘要数字示波器在电路实验和设备检测中具有十分广泛的用途。传统的数字示波器其功能完全靠硬件实现,不但其购置、维护费用高,而且灵活性低,受限于仪器厂商提供的特定功能。与传统仪器相比,虚拟仪器的突出优势在于能够与计算机技术结合,将计算机资源、仪器硬件、数字信号处理技术与不同功能的软件模块结合,组成不同的仪器功能。用户可根据测试的需要,自己设计所需要的仪器系统,即利用数据采集卡及计算机外围硬件进行信号的采集与检测,然后用计算机所编的软件来实现对信号的处理、计算和分析以及对测试结果进行显示。虚拟示波器的出现改变了原有示波器的整体设计思路,用软件代替了硬件。将传统仪器由硬件实现的数据分析与显示功能,改由功能强大的计算机及其显示器来完成。本设计选用国内外较为先进的虚拟仪器软件开发平台LabVIEW,实现了双通道数字示波器的数据采集、数据分析和波形显示等功能。该虚拟数字示波器具体实现的功能包括信号发生,触发模式、耦合方式、显示通道的选择,时间、幅值分度的调节以及波形的移动。关键词:数字示波器虚拟仪器LabVIEW数据采集数据分析波形显示AbstractDigitaloscilloscopeshavebeenwidelyusedincircuitexperimentsandequipmentexaminationsinnowadays.Thefunctionsoftraditionaldigitaloscilloscopesarecompletelyachievedbyhardware,whichmakethemnotonlywithhighcostandmaintenance,butalsowithlowflexibility,limitedbyfunctionsthatequipmentmanufacturersprovided.Comparedwithtraditionalinstrument,virtualinstrumentsshowitsmainadvantagesinabilitytocombinewithcomputertechnology,whichmeansitcombinescomputerresources,instrumenthardware,digitalsignalprocessingtechnologywithdifferentfunctionsoftwaremoduletofulfillvariousinstrumentfunctions.Userscandesigntheirinstrumentsystemsaccordingtotheirneeds,whichisusingdataacquisitioncard,computerperipheralhardwaretoachievesignalacquisitionanddetection,thenusingcomputersoftwaretoimplementthesignalprocessing,calculateandanalysisanddisplaytheresultofthetests.Theemergenceofthevirtualoscilloscopechangedtheoveralldesigntrainofthetraditionalone,withsoftwareinsteadofhardware.Traditionalinstrumentsusinghardwaretoimplementdataanalysisanddisplayhavebeenreplacedbypowerfulcomputersandmonitors.InthisdesignadomesticandforeignadvancedvirtualinstrumentsoftwaredevelopmentplatformLabVIEWhasbeenused,andithelpustoimplementatwo-channeldigitaloscilloscopedatacollection,dataanalysisandwaveformdisplay,etc.Specifically,thefunctionsofdigitaloscilloscopeincludesignalgenerating,trigger,couplingmodeandchannelselection,adjustmentoftimeandamplitudedegreesandwaveformdisplaymovement.Keywords:digitaloscilloscopevirtualinstrumentLabVIEWdatacollectiondataanalysiswaveformdisplay目录TOC\o"1-3"\h\u摘要 IAbstract II绪论 11LabVIEW概述 31.1LabVIEW集成开发环境 31.1.1LabVIEW编程的特点 31.1.2LabVIEW程序的基本构成 31.2虚拟仪器 41.2.1虚拟仪器的构成 51.2.2虚拟仪器的特点 52虚拟数字示波器的设计方案 62.1设计目标 62.2功能模块的分类 63虚拟数字示波器设计的具体实现 83.1虚拟数字示波器前面板设计 83.1.1示波器波形图控件的设计 83.1.2示波器其他面板控件的设计 93.2虚拟数字示波器总程序框图的设计 123.3虚拟数字示波器各功能模块的设计 133.3.1信号波形产生模块 133.3.2耦合方式选择模块 153.3.3通道选择模块 173.3.4分度调节模块 193.3.5触发器模块 213.3.6输出波形的移动显示模块 253.3.7程序控制模块 29结论 31致谢 32参考文献 33附录1前面板中波形图控件的创建与设置过程(图) 34附录2前面板中其他面板控件的创建过程(图) 36绪论虚拟仪器技术是一种将计算机科学技术与现代仪器技术相结合的创新技术,其被应用的领域极其广阔,包括电子,通信,机械,科研,教育和军事等各个领域。介于传统仪器开发维护费用高,技术更新周期,系统升级慢,价格昂贵且功能单一只能由仪器厂商来定义仪器功能,用户购买后不能更具需求做相应的改变等缺陷,传统仪器已经无法完全适应当今现代化测试系统趋于网络化和智能化的发展要求。虚拟仪器技术由此而产生,并成为仪器测控领域的一个里程碑,是一次质的飞跃。虚拟仪器技术的研发对于我国具有重大而广泛的意义[1]。在实现工业自动化方面:由于我国工业起步较晚,相比于发达国家而言还比较落后。工业自动化的实现程度与快速发展的市场经济的需求还存在一定的矛盾。其中一个很关键的制约因素便是企业缺乏集开发与应用自动化控制于一身的专业技术人才,如一线的工程师熟悉生产工艺流程与测试设备的使用,但是由于传统仪器的设计开发较困难,他们很难对仪器进行再次开发。而负责开发仪器的工程技术人员可能由于缺乏生产实地考察与使用经验而使仪器设计与生产实际使用脱节,提高了维护成本[2]。而虚拟仪器采用的是十分形象的图形化编程语言,简单易懂,便于企业工程师开发适用于自身的测试仪器,降低了工业自动化改造的成本,提高了资源配置率和生产的经济效益。在仪器产业发展方面:仪器生产制造产业是体现一个国家科研水平和工业生产发展水平的重要方面。国家的科研技术开发能力,工业现代化,国家防御科技技术水平都与该国家是否具备制造腕足需求的各种先进高性能的仪器息息相关。目前我国的仪器制造还难以满足工业与国防的需要,像数字万用表,函数发生器等基础测量仪器,国产产品与进口产品在性能方面还存在一定能够差距而像数字示波器,频谱分析仪等中高端的仪器还主要依赖进口。采用虚拟仪器技术,将难以短时间提高的硬件工艺和加工水平该有软件来代替,生产适合各个领域的各种测量仪器,可以大大缩减我们与发达国家在此领域的差距[3]。在实验教学应用方面:高等院校为了适应工科类学生日常学习实验的需求,培养学生的动手能力,通常需要购置很大一批用于基础课程教学的电子测试仪器,如示波器、信号发生器、万用表等,增加了教学成本,维护困难。而达到相同的教学目的也可以采用成本较低、灵活性高虚拟仪器[4]。由此,学生在计算机上即可完成仪器测试的操作并学习和理解仪器原理,让构建虚拟电子实验室这一具有广泛前景的事业成为可能。本课题采用LabVIEW(实验室虚拟仪器工程平台)和其图形化的编程语言实现了虚拟数字示波器的设计。文中阐述了仿真模型建立与调试过程,分功能模块仿真建模,用LabVIEW建立仿真模型,并进行调试、演示、保存过程及结论,能够实现比较简单的双通道示波器数据采集、数据分析和结构显示等功能。具体功能包括:模拟信号波形的产生以及对信号的采集;触发器的设计,包括对触发器极性的选择(正/负极性触发),触发源的选择(CH2触发/外触发),以及触发电位的可设置性以及触发电位的显示;耦合方式的选择,包括直流耦合、交流耦合和接地耦合。时间(水平)分度和幅值(垂直)分度的可调节;输出波形的显示,包括各通道波形的同时显示或独立显示和叠加显示,以及波形的水平垂直移动。本课题中所设计的虚拟数字示波器基本能够实现传统的双通道数字示波器的功能。虚拟数字示波器是用软件代替了硬件,将传统仪器由硬件实现的数据分析与显示功能,改由功能强大的计算机及其显示器来完成,使信号的采集、处理及频谱分析和波形分析更具经济性和灵活性[5]。1LabVIEW概述1.1LabVIEW集成开发环境LabVIEW是LaboratoryVisualInstrumentEngineeringWorkbench即实验室虚拟仪器工作平台的缩写,是美国NI(NationalInstrument)公司推出的一种基于G(Graphic)的图形化编程语言。由于LabVIEW满足许多硬件协议包括GPIB、RS485、RS232、VXI等,还能很方便的与数据采集卡通信,同时其内置了便于应用TCP\IP、ActiveX等软件标的库函数,使其避免了在传统程序开发环境下的的复杂性也保证了其在编写程序上具有很强的灵活性。LabVIEW适用于仪器控制,数据采集,仿真,以及数据显示等各种功能,目前,它已被视为一个标准的仪器控制与数据采集与检测的软件并广泛的被学术界领域,工业领域和研究领域所接受[6]。1.1.1LabVIEW编程的特点LabVIEW可以方便工程技术人员快速而灵活的搭建功能强大的虚拟测试系统,能有效的避免繁琐的编程细节而将更多的时间与精力放到系统的分析与设计上是基于LabVIEW以下两个主要特点:(1)图形化的编程语言,以程序框图代替传统的程序代码,与传统的文本编辑语言如VisualBasic,C语言等相比,编程过程变为用形象生动的图形符号表达程序的过程,而不是一行行文本程序代码,更符合编程人员的思维过程,带给编程用户一不一样的体验与乐趣。(2)采用数据流驱动。宏观上讲,在LabVIEW中程序执行的机制已经不再是传统上的冯•诺依曼式计算机体系结构的顺序执行的方式了,而改为并行执行机制。程序中的数据传输是以带有图形控制数据流结构的模式体现的,具体而言就是程序中的节点只有在获得它所需的全部输入数据才开始向后执行产生输出。通过该种方式,编程人员可以通过节点之间的联系来控制程序执行从而更简洁有效的对程序进行开发应用,从而实现多线程即多个通道同步执行[7]。1.1.2LabVIEW程序的基本构成LabVIEW程序是由一个或多个后缀名为vi的文件组成,VI是VirtualInstrument虚拟仪器的简称。前面板(FrontPanel)、框图(BlockDiagram)以及图标和连线版(IconandConnector)组成了VI[8]。前面板是直接面向操作用户的界面,外观和功能都类似于传统的仪器操作面板。输入的数据是由输入控件(control)如开关、按钮、旋钮等传输给框图,而计算仿真的结果则是由前面板上的显示控件(indicator)以图形,数字,表格等形式得以显示。框图是程序的逻辑控制部分,是程序的核心部分,其程序代码由图形化的方式表示。框图对前面板接收的数据与控制指令以数据流的方式进行运算,最后得出结果,反映到前面板上。框图中包括了函数,子VI,和各种结构连线,能很好的满足用户编写程序的需求。图标和连线板是用来定义VI的图标以及它的输入输出。图标和连线版可以让用户更加灵活的使用子VI,使整体程序更具有层次感[9]。1.2虚拟仪器虚拟仪器VI(VirtualInstrument)是以通用计算机为核心,根据用户的需求自行设计定义仪器,用软件设计实现控制面板和测试功能的一种计算机仪器系统。虚拟仪器摒弃了传统电子仪器以硬件为主体核心的模式,改由以计算机为核心的软件控制模式。用户可以通过控制计算机的鼠标键盘等输入设备,在计算机上完成传统仪器能够完成的被测数据的采集与控制、数据的分析、判断、数据存储以及在计算机显示屏上显示结果。可见虚拟仪器是一种将现有的计算机、软件技术和高性能模块化硬件相结合而建立的灵活易变、功能强大的的仪器。虚拟仪器系统中的硬件只是输入输出信号的前期处理,软件才是整个仪器系统的核心与关键所在[10]。虚拟仪器中的虚拟有两层含义:(1)虚拟的控制面板:传统仪器是控制通过仪器面板上的一些开关、旋钮、按键来达到测试操作需求的。这些开关,按钮,按键都是真实存在的物体,操作者用手直接对它们进行操作。而虚拟仪器的开关按键都是计算机中虚拟出来的,操作者要通过计算机才能对他们进行操作。(2)虚拟的测试测量与分析:虚拟仪器的功能实现是由软件中的程序框图来实现,过程并不是像传统仪器一样由电子电路等硬件测试测量而得到,而是由计算机进行数据的采集、处理与分析。故虚拟仪器的核心在于软件[11]。1.2.1虚拟仪器的构成从功能上划分,虚拟仪器可以分为数据采集、数据分析和数据显示三大模块,其中数据采集模块主要负责所需测量信号经前期处理后的采集;数据分析模块则是对所采集的数据根据需求进行各种变换分析出理;而分析处理后的结果就有数据显示模块在计算机上进行表达显示。从实现方法上划分,虚拟仪器有硬件平台和应用软件两大部分构成,其中虚拟仪器的硬件是用来获取被测对象的测试信号的,一般有计算机和I/O接口设备构成;而虚拟仪器的软件部分是由接口软件、仪器驱动软件和应用程序构成[12]。1.2.2虚拟仪器的特点虚拟仪器利用模块化的高性能硬件和高灵活性的软件相结合的办法,能够成功完成各种测量测试与自动化的应用。硬件的模块化能提供方便的系统集成,软件的灵活高效确保了用户创建自定义的多样化界面,软硬件相互结合能满足对同步和定时应用的需求[13]。与传统仪器相比,虚拟仪器具有以下的特点:(1)图形化的软件面板:虚拟仪器利用强大的计算机图形环境,采用图形化编程语言和平台在计算机屏幕上建立了类似于传统仪器外观的按钮、开关等控制部件,对软面板上的图标进行操作。(2)虚拟的硬件实现形式:虚拟仪器去除了繁琐而高成本的硬件电子电路,以基本的硬件支持通过软件来完成传统常规仪器硬件实现的数据采集、分析处理以及测试结果显示[14]。2虚拟数字示波器的设计方案2.1设计目标本课题是以LabVIEW为软件开发平台设计虚拟数字示波器,实现双通道示波器数据采集、数据分析和显示等功能。具体内容有:模拟信号波形的产生以及对信号的采集;触发器的设计,包括对触发器极性的选择(正/负极性触发),触发源的选择(CH2触发/外触发),以及触发电位的可设置性以及触发电位的显示;耦合方式的选择,包括直流耦合、交流耦合和接地耦合。时间(水平)分度和幅值(垂直)分度的可调节;输出波形的显示,包括各通道波形的同时显示或独立显示和叠加显示,以及波形的水平垂直移动。2.2功能模块的分类本课题将虚拟数字示波器按功能划分为以下六个功能模块:信号波形产生模块、耦合方式选择模块、通道选择模块、触发器功能模块、波形显示功能模块、程序控制功能模块,如图2-1所示。虚拟数字示波器信号波形产生模块虚拟数字示波器信号波形产生模块耦合方式选择模块耦合方式选择模块通道选择模块分度调节模块分度调节模块触发器功能模块波形显示模块波形显示模块波形移动模块程序控制功能模块波形移动模块程序控制功能模块图2-1虚拟数字示波器的功能模块分类信号波形产生模块:由于没有输入硬件设备,在该课题中我们采用此模块产生不同的信号波形(包括波形种类、幅值、频率和直流偏置量的不同)以模拟输入信号。耦合方式选择模块:该模块用于实现示波器三种耦合方式的选择,包括直流耦合,交流耦合和接地耦合。通道选择模块:该模块是用于实现四种通道选择的功能,即根据用户的选择控制调节输出波形是来自哪一路信号。选择的通道分为四档,分别为通道1、通道2、双踪(通道1和通道2同时显示)和叠加(通道1和通道2波形相加为一个波形)。触发器功能模块:触发器模块的功能包括触发源的选择、触发极性的选择和触发电位的选择,是示波器主要的功能之一。触发源包括内触发(CH2触发)和外触发(EXT触发)。内触发是使用被测信号作为触发信号,信号由自身信号触发以显示稳定的波形。外触发使用外加信号对被测信号进行触发,外加信号由外输入端输入。外触发信号应与被测信号周期存在倍数关系,所以何时开始扫描与被测信号无关。若选择触发源为内触发,可以通过调节触发极性(正触发、负触发)表明触发沿为有何种性质信号,也可以通过触发电位旋钮来调节内触发的触发电位。若选择触发源为外触发,则触发极性和触发电位不可调。波形显示模块包括分度调节模块和波形移动模块。分度调节包括时间(水平)分度调节和幅值(垂直)分度调节。时间(水平)分度调节模块:时间(水平)分度调节模块是用于调节示波器显示窗口水平方向的分度大小,即示波器波形显示窗口每个格子所代表的时间基数,进而控制在显示窗口中显示的完整波形数目。幅值(垂直)分度调节模块:幅值(垂直)分度调节模块是用于调节示波器显示窗口垂直方向的分度大小,及波形显示窗口中每个格子所代表的幅值数,根据输入波形的大小,调节示波器垂直方向的分度从而能够显示完整的波形。输出波形的移动显示包括波形的水平移动和竖直移动显示,让CH1和CH2的波形能够分别进行上下左右的移动,以方便用户观察和记录波形。程序控制功能模块:程序控制功能模块用于对数字示波器的主体部分进行控制,可以启动和终止所有运行过程。3虚拟数字示波器设计的具体实现3.1虚拟数字示波器前面板设计在对虚拟数字示波器的设计的过程中,首先进行示波器的前面板的设计。虚拟数字示波器的前面板包括两个部分。第一个部分为数字示波器波形图控件的创建与设计,第二个部分为数字示波器其他面板控件的创建与设计。本课题设计的虚拟数字示波器的前面板设计如图3-1所示。图3-1虚拟数字示波器的前面板设计3.1.1示波器波形图控件的设计数字示波器的波形图控件是用于示波器的波形图显示。在前面板中波形图控件的创建与设计过程如下:(1)利用快捷键“ctrl+n”创建一个新的VI,将该VI命名为DigitalOscilloscope.vi。(2)在前面板中选择波形图控件,具体的选择顺序为“controls”(控制)→“modern”(现代)→“Graph”(图形)→“WaveformGraph”(波形图)。(3)在波形图控件上单击右键,选择“properties”(属性),属性选项卡包括“Appearance”(外观选项卡),“DisplayFormat”(格式精度选项卡),“Plots”(曲线选项卡),“Scales(标尺选项卡)。(4)在外观选项卡中将“Lable”的“visible”取消,使虚拟面板与实物示波器更加相似。将“plotsshown”(显示曲线数)设为3,因为除了两路信号波形的输出外还要求显示触发电平。(5)在格式精度选项卡中X,Y轴的“type”(数据类型)均设置为“floating”(浮点型)并将“Digital”(有效数字)设为1位以满足示波器时间轴与水平轴显示的精度。(6)在曲线选项卡中设置两条曲线,并将“plot0”、“plot1”、“plot2”三条曲线的颜色分别设置为白、绿、黄以示区别。(7)在标尺选项卡中,X轴属性中勾选“showscale”(显示标尺)取消勾选“Autoscale”(自动调整标尺);“MajorGrid”(主栅格)选择为绿色;“MinorGrid”(辅网格)选择为“T”型样式;数值范围设置在0-2.00之间,表示显示时间从0到2ms;“offset”(偏移)设为0,“multiplier”(缩放系数)设置为0.005,缩放系数的设置与时间分度调节有关,后文将做解释;在Y轴属性选项卡中将数值范围设置为-8-8,表示幅值从-8V-8V,缩放系数设置为1,其余设置与X轴相同。3.1.2示波器其他面板控件的设计数字示波器的其他面板控件分为七个块:触发器面板(TRIGGER),垂直面板(VERTICAL),水平面板(HORIZONAL),信号发生面板(CH1/CH2)、通道选择面板(CHANNEL),耦合方式面板(COUPLING)、程序控制面板(CONTROL)。在前面板中其他控件的创建与设计过程如下:(1)创建装饰用凸件:在前面板中单击右键,选择“Controls”→“Modern”→“Decorations”→“RaisedBox”,然后对其进行复制,形成七个装饰用凸件,将每个凸件调整到适宜的大小并且进行布局,在工具栏中选择“A”符号的工具(EditText),在每个凸件上加入文字标签,形成了虚拟数字示波器的前面板简单布局。(2)触发器前面板控件的创建与设置:触发器面板上包括两个垂直滑动杆开关用于控制触发源(Source)和触发沿的极性(Slope),以及一个控制触发电平的旋钮(Level)。垂直滑动杆开关的创建顺序为“Controls”→“Modern”→“Boolean”→“VerticalSlide”。在触发源的属性中将“Label”改为“Source”,勾选“Visible”和“showthetext”,“ON”颜色为白色,显示“CH2”、“OFF”颜色为黑色,显示“EXT”;以同样顺序创建触发极性垂直滑动杆开关,在触发源的属性中将“Label”改为“Slope”,勾选“Visible”和“showthetext”,“ON”颜色为白色,显示“POS”、“OFF”颜色为黑色,显示“NEG”。旋钮的创建顺序为“Controls”→“Classic”→“Numeric”→“Knob”,在“Appearance”属性中将“Label”改为“Level”,勾选“Visible”;在“DateType”中选择“SGL”(单精度);在“DateEntry”和“DateScale”中将最小最大值分别设为-10和10以满足对输入波形触发电位范围足够大,并选择一种“ScaleType”(标尺样式);在“TextLabels”中选择“sequentialvalues”(有序值),单击”Insert”(添加),在左边依次添加“-”、“0”、“+”。(3)垂直面板上包括三个旋钮分别控制通道1与通道2波形各的上下移动以及示波器显示的幅值分度;其中通道1通道2的上下移动的旋钮position1/position2,除了名称以外完全相同,创建过程不再赘述,在“DateEntry”和“DateScale”中将最小最大值分别设为-4和4,使波形可以在绝对值为4V的范围内上下移动,在“TextLabels”采用默认设置;而幅值分度设置旋钮也根据同样的创建方式,在创建的旋钮上方用工具栏中的“A”添加文本标签“Volts/Div”修改属性:在“DateType”中选择“U32”(32位无符号),在在“DateEntry”和“DateScale”中将最小最大值分别设为0和3,在“TextLabels”中选择“sequentialvalues”,单击”Insert”,依次添加“0.5v/div”、“1v/div”、“2v/div”、“4v/div”,在程序运行中调节旋钮便可进行四种不同幅值的显示方法,以满足我们在信号发生模块中产生的峰峰值从5V-20V的波形显示。(4)水平面板上也包括三个旋钮分别控制通道1与通道2波形各的左右移动以及示波器显示的时间分度;这三个旋钮的创建与设置均与垂直面板上的三个旋钮对应。其中通道1通道2的左右移动的旋钮position1/position2,在“DateEntry”和“DateScale”中将最小最大值分别设为0和100,表示左右可以移动100个采样点的范围(总共采样点为1000个);在时间分度旋钮“TimeBase”中“DateEntry”和“DateScale”中将最小最大值分别设为0和2,在“TextLabels”中依次添加“0.1ms/div”、“0.2ms/div”、“0.5ms/div”,在程序运行中调节旋钮便可进行三种不同时间基准的显示方法,以满足我们在信号发生模块中产生的频率从500HZ-2KHZ的波形显示。(5)信号发生面板上有八个旋钮,分别控制通道1和通道2产生的波形的波形种类、峰峰值、频率和直流偏置电压,具体的创建与设置过程如下:在上凸件面板上适当位置添加文字标签“CH1”、“CH2”、“WaveType”、“Vp-p”、“Frequency”、“DCBiasVoltage”。将时间分度旋钮复制四份,将第一个旋钮更名为“Type1”属性“TextLabels”中依次添加改为“square”、“sine”、“triangle”,将第二个旋钮更名为“Vp-p1”,“TextLabels”中改为“5V”、“10V”、“20V”,将第三个旋钮更名为“frequency1”,“TextLabels”中改为“500HZ”、“1KHZ”、“2KHZ”,将第四个旋钮更名为“DCbias1”,“TextLabels”中改为“0V”、“2V”、“5V”;其余四个旋钮只需一次复制这四个旋钮并将label名中的1改为2即可;所有旋钮的全部取消勾选标签可见。(6)通道选择面板上有一个垂直滑动杆,该滑动杆有四个档位分别表示叠加、通道1,通道2和双踪,其创建和设置的过程如下:单击右键选择“Controls”→“Classic”→“Numeric”→“VerticalSlide”。在外观选项卡中将“Lable”改为“CHANNEL”并勾选“visible”,在“DateType”中选择“U32”,在在“DateEntry”和“DateScale”中将最小最大值分别设为0和3,在“TextLabels”中选择“sequentialvalues”,单击”Insert”,依次添加“双踪”、“CH1”、“CH2”、“叠加”。(7)耦合方式面板上有四个布尔开关量,其中两个分别用于控制通道1和通道2直流/交流耦合方式选择,另外两个分别用于控制通道1和通道2接地耦合方式选择。下面以通道1为例说明控件的创建与设置过程:单击右键选择“Controls”→“Classic”→“Boolean”→“SquareBottom”,在在“Appearance”属性中将“Label”改为“CH1”,勾选“Visible”和“showbooleantext”,“ON”显示“DC”、“Offtext”显示“AC”,即按下按键表示直流耦合,松开按键则为交流耦合;复制该控件“Label”改为“GND1”,“Ontext”显示“GND”、“OFF”显示“OFF”,表示按下按键为接地耦合。通道2的耦合方式控件也可以用同样的方式创建和设置。(8)程序控制面板上有一个垂直滑动开关杆,两个档位分别控制示波器的开(ON)与关(OFF),其创建与设置过程如下:单击右键选择“Controls”→“Classic”→“Boolean”→“VerticalSwitch”,在在“Appearance”属性中将“Label”改为“Control”,勾选“Visible”和“showbooleantext”,“Ontext”显示“ON”、“Offtext”显示“OFF”[15]。3.2虚拟数字示波器总程序框图的设计虚拟数字示波器的程序框图可以根据功能模块的划分方式分别进行模块化的设计。虚拟数字示波器总程序框图的设计如图3-2所示。所有的程序都在一个while循环结构中,同时加入了时间延时,每次循环延时50ms。图3-2虚拟数字示波器总程序框图的设计3.3虚拟数字示波器各功能模块的设计3.3.1信号波形产生模块信号波形产生模块用于产生模拟输入用的信号波形,在两个通道中能够分别产生三种波形(方波、正弦波、三角波),三种幅值(Vp-p为5V、10V、20V),三种频率(500HZ、1KHZ、2KHZ)和三种直流偏置电压(0V、5V、10V)的任意组合波形。信号波形产生模块设计具体过程如下:(1)利用快捷键“ctrl+n”创建一个新的VI,将该VI命名为signalgeneration.vi。(2)在其前面板中添加八个分别控制两个通道波形种类、峰峰值、频率和直流偏置电压旋钮输入控件和两路波形数出数组“waveform1out”和“waveform2out”,并在右上角编辑该子VI的图标和输入输出的端口连线,如图3-3所示。图3-3signalgeneration.vi的前面板和连线板(3)该模块的程序框图如图3-4所示。由于通道1和2的波形生成相同,现在就CH1的波行产生的程序框图的设计进行说明。在该子模块的程序框图中要用到五种波形(正弦波、方波、三角波、白噪声波、斜波),它们的选择是通过在框图面板单击右键,选择Functions→SignalProcessing→SignalGeneration→SineWave/SquareWave/TriangleWave/UniformWhiteNoise/RampPattern,还要用到三种算数运算器(加法器、乘法器、除法器),它们的选择是通过在框图面板单击右键,选择Functions→Mathematics→Numeric→Add/Multiple/Divide,以及多个选择分支获取顺序为Functions→ExecutionControl→CaseStructure,通过右键‘Addcaseafter’来加入分支数。图3-4signalgeneration.vi程序框图上文提到的四个旋钮控件“Type1”、“Vp-p1”、“frequency1”、“DCbias1”分别控制一个条件分支。“Type1”控制波形的种类,当case值分别为0,1,2时,对应的波形分别为方波、正弦波、三角波,同时我们将采样点数2000送入波形的采样点端口;“Vp-p1”控制波形的幅值,当case值分别为0,1,2时分别代表峰峰值为5V、10V、20V,故通过该分支向波形中幅值接口送入的常数应分别为2.5、5、10;“frequency1”控制波形的频率,由于向波形输入的频率值的单位是周期/采样点,同时我们在波形图窗口中将缩放因子数设为0.005(5/1000),与我们对时间分度的设置联系起来便可理解为将1000个采样点的值对应到0-5ms的时间范围内,故2000个采样点应该对应的是0-10ms。500HZ,1KHZ、2KHZ在10ms内的周期数应分别设为5、10、20,再将上面三个值分别除以2000便可送入波形的频率端口;“DCbias1”控制波形的直流偏置电压,当case值分别为0,1,2时,对应的偏置电压分别为0v、2v、5v,该偏置的实现是由之前设置的交流信号波形与一个斜波信号相加得到的,将该斜波信号的起始值和终止值均设为同一数字(0、2、5)便可得到一个与该值相同的直流电压波形;最后再加入白噪声,是波形更加符合实际,将白噪声的采样数也设为2000,保证白噪声与生成的信号的可以顺利叠加,并将其幅值设为0.05。3.3.2耦合方式选择模块耦合方式选择模块用于实现示波器三种耦合方式的选择,包括直流耦合(DC):直接把信号输入到下一级电路,包括信号的直流信号和交流信号;交流耦合(AC):只把信号的交流成分输入到下一级电路,滤去直流成分;接地耦合(GND),就是把信号直接接地滤掉。耦合方式选择模块设计具体过程如下:(1)利用快捷键“ctrl+n”创建一个新的VI,将该VI命名为coupling.vi。(2)在其前面板中添加两个按钮输入控件,一个控制接地耦合的开关,一个控制直流交流耦合方式的选择以及一个输入波形数组和一个输出波形数组,并在右上角编辑该子VI的图标和输入输出的端口连线,如图3-5所示。(3)设计耦合方式模块的程序框图。该模块中用到了直流仿真信号(相当于接地信号),其获取方式为在框图面板单击右键,Functions→Inputs→SignalManipulation→SimulateSignal,将signaltype改成DC,再把采样频率改成2000/s;该模块中好用到了数组中区最大最小值的函数,其获取方式为Functions→Programming→Array→Arraymax&min;以及一些数值运算器。图3-5coupling.vi的前面板和连线板该程序框图的设计运用了两个条件分支语句的嵌套:首先判断接地耦合按键选择,若接地耦合按键按下为真,直接将接地信号输出,如图3-6a)所示;若接低耦合按下为假即接地耦合键未被按下,则接着判断是直流耦合还是交流耦合,若CH键被按下为真,则为直流耦合,直接将信号输出,如图3-6b)所示;若CH键未被按下,则为交流耦合,此时要去除波形信号中的直流成分,去除的方法为:找出信号数组中的最大最小值,将它们相减后除以2变得到直流电压的幅值,将输入信号减去该直流电压在输出便可去除去其直流成分,如图3-6c)所示。a)接地耦合的程序框图b)直流耦合的程序框图c)交流耦合的程序框图图3-6coupling.vi的程序框图设计3.3.3通道选择模块该模块是用于实现四种通道选择的功能,分别为通叠加(通道1和通道2波形相加为一个波形)、通道1、通道2、双踪(通道1和通道2同时显示),根据用户的选择控制调节输出波形是来自哪一路信号。(1)利用快捷键“ctrl+n”创建一个新的VI,将该VI命名为channelchoose.vi。(2)在前面板上创建出入输出的控件。输入控件包括触发源“Source”、触发沿极性“Slope”开关、触发水平“Level”数值旋钮、通道选择“CHANNEL”以及与波形显示相关的两个水平移动旋钮“HpositionA”和“HpositionB”;输出控件包括两路波形输出数组“waveform1out”和“waveform2out”,并在右上角编辑该子VI的图标和输入输出的端口连线,如图3-7所示。。图3-7channelchoose.vi的前面板和连线板(3)通道选择模块的程序框图。该模块中要用到触发器子VI,其获取的方法为单击鼠标右键“SelectaVI”,然后选择设计好的“trigger.vi”(该模块的设计在下文中在具体阐述)。通道选择模块是作用是选择送入触发器的波形的通道的,在该模块中应用了一个case条件分支语句。“CHANNEL”的值由前面板的设置可知,可以取0、1、2、3分别表示叠加、通道一、通道2和双踪。当其值取0或是3(Default)时分别将两路输入送入触发器进行触发,如图3-8a)所示;当其值取1时,则将通道1的波形送入触发器进行触发,如图3-8b)所示;当其值取2时,则将通道1的波形送入触发器进行触发,如图3-8c)所示.a)叠加和双踪的程序框图b)通道1的程序框图c)通道2的程序框图图3-8通道选择模块的程序框图3.3.4分度调节模块分度调节模块是为了更好的在窗口中显示波形,即可有选择性的观察波形的细节。分度调节模块又可分为幅值(垂直)分度调节模块和时间(水平)分度调节模块。具体的程序框图设计如下(1)幅值(垂直)分度调节模块可调节的档位设定为0.5v/div,1v/div,2v/div、4v/div四个档位,当调整到0.5v/div的档位时,垂直测量的分度值为0.5v,最大最小可见幅值为-2.0v,到2.0v。同样在1v/div档位上分度值为1v/div,可见幅值为-4.0v到4.0v,2v/div档位上分度值为2v,可见幅值为-8v到8v,4v/div档位上分度值则为4v,可见幅值为-16v到16v。对显示波形的调节实质上是对LABVIEW中该程序采用的波形图控件参数的调节。在该控件中需要调节的类名为YScale.Range,该类名依次包含以下5个参数:最小值,最大值,增量、较小增量,起始值。在前面板中放置旋转按钮控件,当旋转按钮旋转到特定的值时,YScale.Range类中各元素将被赋上相应的值,从而调节波形图控件的纵向显示属性。该部分模块的创建具体如下所示:①创建属性节点在前面板中,波形图控件上右键→创建(Create)→属性节点(PropertyNode)→Y标尺(YScale)→范围(Range)→全部元素(AllElements),创建该属性节点,将该节点放置于一个合适的位置。②创建并捆绑簇在程序框图面板中单击右键,Functions”→“Programming”→“Cluster,class,&variant”→“Bundle”,下拉簇使其正好可以捆绑五个元素。③给属性节点赋值由前面板的设计可知,控制幅值分度的旋钮“Vscale”在文本标签(TextLabels)一栏中0.5V/DIV,1V/DIV,2V/DIV,4V/DIV对应的值为0、1、2、3。在此创建一个条件分支语句以分别表示四种不同的分度。当旋钮打到0.5v/div的时候,最小值-2,最大值2,增量0.5,较小增量0.5,起始值-2依次经过捆绑的簇传入给类YScale.Range;当旋钮打到1v/div的时候则依次传入-4、4、1、1、-4;当旋钮打到2v/div的时候依次传入-8、8、2、2、-8;当旋钮打到4v/div的时候依次传入-16、16、4、4、-16。幅值分度调节模块的程序框图如图3-9所示。a)0.5v/divb)1v/divc)2v/divd)4v/div图3-9幅值分度调节模块的程序框图(2)时间(水平)分度调节模块时间(水平)分度调节模块完成的功能是使波形能够在时间坐标上均匀的展开,与垂直分度调节模块相同,该水平分度的调节实质上是对波形图控件的参数的调节,该参数的类名为XScale.Range,创建方法大体相同,在属性节点的创建中,选择X标尺,该类名依次也包含以下相同的5个参数:最小值,最大值,增量、较小增量,起始值,与幅值分度旋钮控件不同的是水平分度旋钮“Tscale”为在文本标签选项卡的文本标签(TextLabels)对应着1ms/div,2ms/div,5ms/div,以满足波形发生模块产生的500-2KHZ的波形显示。时间分度模块的程序框图如图3-10所示。a)1ms/divb)2ms/divc)5ms/div图3-10时间分度调节模块的程序框图3.3.5触发器模块触发器功能模块:触发器模块的功能包括触发源的选择、触发极性的选择和触发电位的选择。(1)触发源选择模块触发源的选择包括内触发(CH2触发)和外触发(EXT触发)。若选择触发源为内触发,可以通过调节触发极性(正触发、负触发)表明触发沿为有何种性质信号,也可以通过触发电位旋钮来调节内触发的触发电位。若选择触发源为外触发,则触发极性和触发电位不可调。触发源选择模块的程序框图一个由Source选择的条件分支语句:当Sourse为真,即为内触发时,将“Slope”和“Level”的“Disabled”属性节点赋值为“Enable”,使触发极性和触发电位可调,如图3-11a)所示;当Sourse为假,即为内触发时,将“Slope”和“Level”的“Disabled”属性节点赋值为“Disable”,使触发极性和触发电位不可调,如图3-11b)所示.a)内触发(CH2触发)b)外触发图3-11触发源选择模块的程序框图(2)触发电位控制子模块该模块的作用在于根据示波器前面板的Level旋钮调节内触发时的触发电平,以及触发极性将输入信号的值与其比较大小后找出开始触发的那一点在输入数组中的索引号(Index),模块的设计过程如下:第一步,新建子VI,创建过程与上文相同,并命名为Slope.vi。第二步,在前面板中添加,“Level”触发电平、“Slope”触发极性、输入波形数组“Array”(获取路径为右键,Controls→Modern→Array,Clusters&Matrix→Array)和数组索引值“Index”(获取路径为右键Controls→Modern→Numeric→NumericIndicator)。在右上角编辑该子VI的图标和输入输出的端口连线,Slope.vi前面板如图3-12所示。图3-12Slope.vi的前面板设计第三步,设计该模块的程序框图。该模块的设计中我们用到了两个case-switch条件分支结构和一个whileloop结构,它们的获取方式为:右键→Functions→ExecutionControl→CaseStructure/WhileLoop,在whileloop边框上,单击右键create→shiftregister创建移位寄存器,并将该循环设置为iftruestop;还用到了对数组进行操作的两种函数一个用来取数组索引对应的值另一个用来给出数组含有元素的个数,它们的获取方式分别为:右键→Functions→Programming→Arrays→IndexArray/ArraySize;以及与、或布尔逻辑操作符:右键→Functions→Programming→Boolean→And/Or;最后还有一些比较运算符:右键→Functions→Programming→Comparison→Equal(等于)/Greater?(大于)/Less?、(小于)/InrangeandCoerce(在范围内并强制转化)。改模块的程序框图如图3-13所示。该程序的运行逻辑为:首先,根据信号输入数组产生数组索引(IndexArray)从0开始的数组元素,将数组元素前一次while循环获取的元素值放入移位寄存器中,每次while循环将当前数组元素Vn和前一次循环的元素值Vn-1作为上下限值送入在范围内并强制转化函数对Level值进行判断,若在此范围内则强制转化为1,不在此范围内则强制转化为0;接着将强制转化值作为第一层条件分支语句的判断值,若为1(真),则进入下一层条件分支对于触发极性slope的判断,若为0,则直接将常数0输出使循环继续;下一层条件分支则是判断触发极性的选择,若为正极性触发(True)则当前值Vn大于Vn-1时输出为1,小于则为0;若为负极性触发(False)则当前值Vn小于Vn-1时输出为1,大于则为0;当最后一层条件分支语句输出为1,且数组中具有的元素个数小于while循环的次数i时,则停止循环,将i的值作为Index输出。图3-13Slope.vi的程序框图设计(3)触发器子模块该模块是将输入的波形,根据触发源、触发极性、触发电平的不同进行处理后输出,以保证示波器能够的到稳定的输出,该模块的设计过程如下:第一步,创建新的VI,并保存为trigger.vi.第二步,在前面板中添加。在前面板上创建出入输出的控件。输入控件包括:发源“Source”、触发沿极性“Slope”开关、触发水平“Level”数值旋钮、通道选择“CHANNEL”以及与波形显示相关的两个水平移动旋钮“HpositionA”和“HpositionB”“waveform1in”和“waveform2in”;输出控件包括两路波形输出数组“waveform1out”和“waveform2out”,并在右上角编辑该子VI的图标和输入输出的端口连线,如图3-14所示。第三步,设计触发器子模块的程序框图。程序框图中要用到取数组子集的函数,它的获取方式为:右键→Functions→Programming→Arrays→ArraySubset。还要用到水平移动子模块Horizonposition.vi,该模块的设计将在后文具体阐述,以及Slope.vi。图3-14trigger.vi的前面板设计触发器子模块的主体是一个基于触发源的条件分支语句,当Source值为1(CH2触发),将输入的波形数组送入触发电位控制子模块,找出触发的的索引值Index,再将索引值通入水平移动子模块,采取相应的加减操作后将Index’送给数组子集函数,由此可以将两路输入信号数组从Index’开始的长度为1000的一段信号分别输出,如图3-15(a)所示;当Source值为0(外触发),则直接将两路输入信号输出,如图3-15(b)所示。a)内触发(CH2触发)b)外触发图3-15trigger.vi的程序框图设计3.3.6输出波形的移动显示模块在实际中,为了便于观察和记录数字示波器所测的波形的各项指标如幅值和周期,或是要将两路波形进行比较,往往需要将所测的波形进行水平和竖直方向上的移动,本节所涉及的模块便是为了保证通道1和通道2分别在水平和竖直方向上的可移动性。水平移动模块的设计第一步,创建新的VI,并保存为Horizonposition.vi第二步,在前面板中添加。在前面板上创建出入输出的控件。输入控件包括:通道选择“CHANNEL”、触发索引值“triggerindex”以及与波形显示相关的两个水平移动旋钮“HpositionA”和“HpositionB”,输出为两个数值显示器Index1和Index2,在右上角编辑该子VI的图标和输入输出的端口连线,如图3-16所示。第三步,设计水平移动的程序框图。该模块是基于“CHANNEL”的条件分支语句。“CHANNEL”为0、1、2、3分别表示双踪、通道一、通道2和叠加模式。当其值取0或是3(Default)时,将HpositionA和HpositionB的值分别与Slope.vi得到的triggerindex相加,再将结果送给Index1和Index2,改变信号数组子集的起始位置,从而达到将波形左右移动的效果,如图3-17(a)所示;当其值取1时,将HpositionA的值与triggerindex相加,再将结果送给Index1和Index2,如图3-17(b)所示;当其值取2时,将HpositionB的值与triggerindex相加,再将结果送给Index1和Index2,如图3-17(c)所示图3-16Horizonposition.vi的前面板设计a)双踪或叠加模式b)通道1模式c)通道2模式图3-17Horizonposition.vi的程序框图设计竖直移动模块经触发器后的两路波形要由两个控制旋钮“Vposition1”和“Vposition2”来控制其竖直方向上的位移。为了更加清楚的表明移动的量,我们还加入第三路波形用于表明触发电位的值,此信号由起始值和终止值均为Level值的斜波信号代替。竖直移动模块的程序框图直接在DigitalOscilloscope.vi上定义。该模块是基于“CHANNEL”的条件分支语句。当其值为0时(双踪)将触发器输出的两路波形分别与Vposition1、Vposition2的值相加作为波形输出,同时将显示触发电位波形则加上Vposition2的值再输出。此时Vposition1旋钮可以控制CH1波形的的竖直移动,Vposition2则可以控制CH2波形和触发电位波形的竖直移动,其程序框图如图3-18a)所示。当其值为1时(CH1),将Vposition1与三路波形相加然后再分别输出。此时Vposition1旋钮控制CH1波形和触发电位波形的竖直移动,其程序框图如图3-18b)所示。当其值为2时(CH2),将Vposition2与三路波形相加然后再分别输出。此时Vposition2旋钮控制CH2波形和触发电位波形的竖直移动,其程序框图如图3-18c)所示。当其值为3时(叠加),将触发其输出的通道1和通道2的波形相加再与Vposition1的值相加,同时触发电位波形也与Vposition1的值相加。此时Vposition1旋钮可以同时控制叠加后的波形和触发电位波形的竖直移动,其程序框图如图3-18d)所示。a)双踪模式b)通道1模式c)通道2模式d)叠加模式图3-18竖直移动模块的程序框图设计3.3.7程序控制模块程序控制模块作为该课题设计的虚拟数字示波器的主体部分,起着控制整个示波器的启动与终止的作用。该模块的程序框图的主要是由一个以”control”为控制量的switch-case条件分支语句实现的。当“control”为真,即与其对应虚拟数字示波器前面板上的垂直滑动杆显示为“ON”时的程序框图如图3-19所示。将触发源Source的属性节点“Disable”设置为“Enabled”表明该情况时使能触发源Source。同时,“control”为真,通过选择函数将三路信号波形送至示波器显示。图3-19“control”为真时程序控制模块的程序框图当“control”为假,即与其对应虚拟数字示波器前面板上的垂直滑动杆显示为“OFF”时的程序框图如图3-20所示。将触发源Source、触发电平Level、触发极性Slope的属性节点“Disable”均设置为“Disabled”表明该情况时失能触发源Source、触发电平Level、触发极性Slope。同时,“control”为假,通过选择函数将空信号(数组0)送至示波器,此时屏幕上便不会出现波形。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中秋节习俗探究
- 专业国际贸易居间协议范本(2024版)
- 2025年度数据中心场地租赁及设施升级维护合同4篇
- 2025年度插班生入校社会实践协议范本4篇
- 2025年度建筑安全施工安全监督检验合同范本3篇
- 专项协议:2024版研究报告服务条款版A版
- 2025年度产业园租赁及产业技术创新合同4篇
- 二零二四年事业单位工程技术岗位劳动合同(含技术培训)3篇
- 2025年叉车租赁服务与技术支持合同4篇
- 2024油漆涂料仓库租赁与管理合同
- 2024版智慧电力解决方案(智能电网解决方案)
- 公司SWOT分析表模板
- 小学预防流行性感冒应急预案
- 肺癌术后出血的观察及护理
- 生物医药大数据分析平台建设-第1篇
- 基于Android的天气预报系统的设计与实现
- 冲锋舟驾驶培训课件
- 美术家协会会员申请表
- 聚合收款服务流程
- 中石化浙江石油分公司中石化温州灵昆油库及配套工程项目环境影响报告书
- 搞笑朗诵我爱上班台词
评论
0/150
提交评论