基于虚拟仪器技术的数字电路实验系统的设计与实现张兢李成勇李雪梅徐伟(重庆理工大学电子信息与自动化学院重庆400054)摘要:为了适应现代实验教学的需要,提高实验的开放性和灵活性。运用基于LabVIEW的虚拟仪器技术,构建数字电路实验系统,充分体现了虚拟仪器在实验操作中的优势。通过分析虚拟仪器技术在数字电路实验中的实际运行效果,表明了该实验系统设计过程简单、方便,而且具有性能稳定、实验误差小、使用方便灵活以及节约成本等特点,在实验教学中可以得到广泛的应用。利用该系统不仅拓展了实验范围和空间,而且能够充分发挥学生的主动性和创造性。关键词:虚拟仪器技术;LabVIEW;数字电路;实验系统中图分类号:TN文献标识码ADesignandimplementationofdigitalcircuitexperimentsystembasedonthevirtualinstrumenttechnologyZHANGJing,LICheng-yong,LIXue-mei,XUWei(ChongqingUniversityofTechnology,Collegeofelectronicinformationandautomation,Chongqing400050,China)【Abstract】:Inordertomeettheneedofmodernexperimentalteaching,improveexperimentofopennessandflexibility.Constructingdigitalcircuitexperimentsystem,fullyembodiesthevirtualinstrumentsinexperimentaloperationoftheadvantagebasedonthevirtualinstrumenttechnology,LabVIEW.Throughtheanalysisofdigitalcircuitexperimentinactualeffectofvirtualinstrumenttechnology,showsthedigitalexperimentsystemmoresimpleandconvenient,andsomecharacteristicsofrelativestabilityandperformanceandexperimentssmallerrorsanduseconvenientandsavecostsetc,socanbewidelyusedinexperimentteaching.Notonlyexpandedexperimentscopeandspace,butalsocanexertstudents'initiativeandcreativity.【Keyword】:Virtualinstrumenttechnology;LabVIEW;digitalcircuit;experimentsystem0引言随着科学技术的进步,社会对高校学生提出了越来越高的要求,不仅要求学生具有扎实的理论知识,而且要具有较强的实际动手能力。可是随着近几年来高校招生规模的不断扩大,在校学生人数也成倍增加。传统的实验仪器由于实验场地、实验设备、实验经费投入相对不足等因素已经不能满足需要,学生的实际实验训练因此也得不到满足,尤其是理工科学生,没有实验训练,抽象的理论知识很难理解。虚拟仪器技术为解决这一矛盾提供了可能,虚拟仪器把计算机技术、电子技术、传感器技术、信号处理技术、软件技术相结合,除继承传统仪器的常用功能外,还增加了许多传统仪器所不能及的先进功能。虚拟仪器的最大特点是灵活性,能充分利用计算机丰富的软硬件资源,用户在使用过程中可以根据需要添加或删除仪器功能,以满足不同的实验需求环境。它把计算机强大的计算处理能力和仪器硬件的测量、控制能力集合在一起,大大缩小了仪器硬件的成本和体积,并且突破了传统仪器在数据处理、显示、传送等方面的限制,使使用者可以方便的对其进行维护、扩展、升级等,这些特点是传统仪器所不能比拟的。数字电子技术已经广泛地应用于电视、雷达、通信、电子计算机、自动控制、航天等各个领域。例如,在通信系统中,应用数字电子技术的数字通信系统,不仅比模拟通信系统抗干扰能力强、保密性好,而且还能应用电子计算机进行信息处理和控制。数字电路作为电子信息类各专业的主要技术基础课程之一,其重要性不言而喻。其实践环节尤为重要,数字电路实验学时多、数量大,电路的类型和器件选择变化都很大,用LabVIEW构建的数字电路虚拟实验平台完全可以满足这一要求。据此,本文以LabVIEW为开发平台,构造了一个实时性强、交互性强、使用方便灵活以及节约成本的数字电路虚拟实验系统。1数字电路实验系统的结构设计1.1LabVIEW的使用LabVIEW作为目前国际上唯一的编译型图形化语言,把复杂、繁琐、费时的语言编程简化成用菜单或图标提示的方法选择功能(图形),使用线条把各种功能连接起来的简单图形编程方式。LabVIEW中编写的框图程序,很接近程序流程图。与C和BASIC一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储等等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。LabVIEW中的程序查错不需要先编译,若存在语法错误,LabVIEW会马上告诉用户。只要用鼠标点两三下,就可以很快地查到错误的类型、原因以及错误的准确位置,这个特点在程序较大的情况下特别方便。LabVIEW是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在LabVIEW中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。LabVIEW的图形化代码在某种程度上类似于流程图,因此又被称作程序框图代码。其主要特点有以下几点:(1)尽可能采用了通用的硬件,各种仪器的差异主要是软件;(2)可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器;(3)使用者可以根据自己的需要定义和制造各种仪器。(4)同传统的编程语言相比,采用LabVIEW图形编程方式可以节省大约80﹪的程序开发时间,并且其运行速度几乎不受影响。1.2数字电路课程实验分析数字电路中的物理量的变化在时间和数量上都是离散的。也就是说,它们的变化在时间上是不连续的,总是发生在一系列离散的瞬间,这一类物理量也叫数字量。用数字量表示的信号就是数字信号,在数字电路课程所有的实验中都使用数字信号来实现其功能,这些信号通常是0、1表示的二进制序列。而LabVIEW中的布尔量正好符合这些特点,只需把二进制序列用布尔量的真假来表示即可,这为设计实验系统提供了方便。数字电路的实验可以分为两类:一类是基本逻辑电路实验,也是常用的数字电路实验,其中包括组合逻辑电路如编码器、译码器、选择器等,时序电路实验如触发器、寄存器、计数器等,这些是掌握数字电路的基础。另一类是综合设计实验如数字频率计、数字时钟、波形发生器等,本文在设计的过程中主要选择了六种比较常用的综合电路,以数字时钟电路为例进行分析。这些实验由基本实验电路组合而成,原理相同,设计方法不尽相同。其它的综合实验都可以用LabVIEW实现,主要是掌握基本原理和方法,本系统主要用于初学数字电路者掌握基本逻辑电路。1.3实验系统总体结构设计对数字电路的所有实验进行分类后,就可以用LabVIEW设计整个实验总面板,整个面板的功能要求实现这些数字电路实验,根据LabVIEW的特点,分前后两个面板,前面板相当于实物仪器中的外部控制面板,后面板是实现前面板功能的程序图,相当于实物仪器中的内部电路。如图1是数字电路实验系统总面板,图中的按钮都是布尔量控制,点下去实现其相应的功能,和实物仪器按键功能一样,图2是数字电路实验系统的总程序图,整个程序框图中主要调用了事件结构(EventStructure)、While循环结构、条件结构(CaseStructure)等典型函数模块完成了16个事件的响应和实现等功能。然后根据各个实验原理用LabVIEW分别进行模块编程,进行子程序调用,即可完成整个实验系统。整个系统都是界面化的,使用者只需点击相应的功能项就可以实现其功能,这样设计的总面板功能齐全,操作简单,使学生容易理解各个电路的功能,进行实践训练和自主学习,有利于学生的能力培养。图1数字电路实验系统总面板图2数字电路实验系统总程序图2系统模块结构设计本系统由基础实验模块和综合实验模块组成,下面就两个模块的功能和设计过程进行阐述。2.1基础实验模块以译码器实验为例进行模块功能分析,译码器的逻辑功能是将每个输入的二进制代码译成对应的输出高、低电平信号。3-8译码器电路是最常用的一种小规模集成电路,它有3个二进制输入端A、B、C和8个译码输出端y0—y7。对输入A、B、C的值进行译码,就可以确定输出端y0—y7的哪一个输出端变为有效(低电平),从而达到译码的目的。译码器前面板如图3,面板中只用到15个布尔量作为按钮进行控制,面板非常简单,程序面板如图4,只调用了事件结构、While循环结构、条件结构函数模块就可以完成译码功能。译码器电路设计的时候用LabVIEW中的布尔量代替数字电路实验中的1,0来表示高低电平,使用简单,效果相同。本系统中‘G’是选通端(低电平),通过操作本实验过程,可以让学生直观的看到译码器电路的工作性质,写出译码器电路的真值表,达到学习和实验的目的。图3译码器电路前面板图4译码器电路程序面板在此程序的基础上,可以进一步创新,只要进行小范围改动,就可以实现BCD-七段显示译码器的功能,增加一个输入端D,减少一个输出端,对应七段显示译码器的输出,编程思想和方法与3-8译码器一样,程序不变,只是把相应的布尔量进行真假确定,也就是真值表的确定。七段显示译码器前面板如图5所示,在3-8译码器面板的基础上,增加用布尔量组成具有七段数码管显示功能的LED,和平常使用的实物LED作用一样,布尔量用0、1控制真假,真(1)则亮,假(0)则不亮来进行译码。七段显示译码器程序面板如图6所示,在3-8译码器程序面板的基础上增加显示9-15的选择结构,原理一样。图5七段显示译码器前面板图6七段显示译码器程序面板2.2综合实验模块以数字时钟实验为例进行模块功能分析,根据LabVIEW中布尔量真假变换,用布尔量组成具有七段数码管显示功能的LED。一般的数字时钟具有时、分、秒计数显示功能,小时为24进制,分钟和秒为60进制显示,设置复位功能,本系统的复位时间是【12:00:00】。设计原理与EDA设计数字时钟原理一样,都是数字信号0,1控制完成秒分时的计数任务,到相应的进制进位即可,EDA是用VHDL语言编写,分时分秒各个模块,比较复杂,而LabVIEW用图标搭建,模块单一,功能一样,更有利于学生掌握数字时钟的基础设计思路。如图7是数字时钟显示面板,一个LED显示器用一个簇控件,一个簇用7个布尔量构建,和七段显示译码器原理一样,真假控制,6个LED分别显示时分秒。图8是时钟程序面板,整个程序面板只用到LabVIEW中事件结构、for循环结构和case选择结构,根据计数器设计原理,秒分到9必须向前进一位,同时要归零。LabVIEEW中有时钟延迟,这为设计提供了方便,用时钟控制计数器,只要搞清楚数字时钟的时间间隔,设计比较简单,实现的功能与其它语言设计的功能一样,而且是界面化的,使用者可以很清楚的看到结果,从而使抽象的问题简单化。图7数字时钟显示面板图8数字时钟程序面板3结论(1)本文是基于LabVIEW技术开发的数字电路实验系统的