基于labview的数字示波器设计本科学位论文.docx
《基于labview的数字示波器设计本科学位论文.docx》由会员分享,可在线阅读,更多相关《基于labview的数字示波器设计本科学位论文.docx(45页珍藏版)》请在冰豆网上搜索。
基于labview的数字示波器设计本科学位论文
基于LabVIEW的数字示波器设计
院系:
机电与自动化学院
专业班:
电气0905班
姓名:
学号:
20091131193
指导教师:
2013年6月
基于LabVIEW的数字示波器设计
DigitalOscilloscopeDesign
BasedonLabVIEW
摘要
数字示波器在电路实验和设备检测中具有十分广泛的用途。
传统的数字示波器其功能完全靠硬件实现,不但其购置、维护费用高,而且灵活性低,受限于仪器厂商提供的特定功能。
与传统仪器相比,虚拟仪器的突出优势在于能够与计算机技术结合,将计算机资源、仪器硬件、数字信号处理技术与不同功能的软件模块结合,组成不同的仪器功能。
用户可根据测试的需要,自己设计所需要的仪器系统,即利用数据采集卡及计算机外围硬件进行信号的采集与检测,然后用计算机所编的软件来实现对信号的处理、计算和分析以及对测试结果进行显示。
虚拟示波器的出现改变了原有示波器的整体设计思路,用软件代替了硬件。
将传统仪器由硬件实现的数据分析与显示功能,改由功能强大的计算机及其显示器来完成。
本设计选用国内外较为先进的虚拟仪器软件开发平台LabVIEW,实现了双通道数字示波器的数据采集、数据分析和波形显示等功能。
该虚拟数字示波器具体实现的功能包括信号发生,触发模式、耦合方式、显示通道的选择,时间、幅值分度的调节以及波形的移动。
关键词:
数字示波器虚拟仪器LabVIEW数据采集数据分析波形显示
Abstract
Digitaloscilloscopeshavebeenwidelyusedincircuitexperimentsandequipmentexaminationsinnowadays.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:
digitaloscilloscopevirtualinstrumentLabVIEWdatacollection
dataanalysiswaveformdisplay
绪论
虚拟仪器技术是一种将计算机科学技术与现代仪器技术相结合的创新技术,其被应用的领域极其广阔,包括电子,通信,机械,科研,教育和军事等各个领域。
介于传统仪器开发维护费用高,技术更新周期,系统升级慢,价格昂贵且功能单一只能由仪器厂商来定义仪器功能,用户购买后不能更具需求做相应的改变等缺陷,传统仪器已经无法完全适应当今现代化测试系统趋于网络化和智能化的发展要求。
虚拟仪器技术由此而产生,并成为仪器测控领域的一个里程碑,是一次质的飞跃。
虚拟仪器技术的研发对于我国具有重大而广泛的意义[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”