版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于LabVIEW和FPGA的虚拟示波器设计报告目 录绪论11 FPGA、LabVIEW及示波器概述21.1 FPGA概述21.1.1 FPGA简介21.1.3 基本特点21.1.4 开发环境Quartus II简介31.2 LabVIEW概述31.2.1 LabVIEW的概念31.2.2 虚拟仪器(VI)的概念41.2.3 虚拟仪器的应用前景52 虚拟示波器系统总体介绍62.1 系统总体方框图62.2 系统总体介绍63 系统硬件电路73.1 电源电路73.2 串口电平转换电路73.3 基准电压产生电路83.4 阻抗匹配电路93.5 AD采集电路94 系统软件设计114.1 总体程序设计流程框
2、图114.2 FPGA软件设计124.2.1 软件语言选择124.2.1.1 VHDL语言124.2.1.2 VerilogHDL语言124.2.3 VeriLogHDL仿真134.3 LabVIEW软件设计164.3.1 软件的选取164.3.2 设计方法174.3.3 部分模块程序184.3.3.1 串口通信模块184.3.3.2 显示模块18结论20参考文献21附录A:VerilogHDL源程序22附录B:LabVIEW源程序33致 谢错误!未定义书签。插图索引图1 系统总体方框图6图2 LM2576电源原理图7图3 串口电平转换电路原理图8图4 MC1403电路原理图8图5 LF356
3、电路原理图9图6 AD9223管脚图10图7 AD转换器原理图10图8 程序流程图11图9 FPGA系统RTL视图14图10 系统复位14图11 上位机启动信号15图12 AD采样与上传15图13 上位机停止信号16图14 串口模块程序图18图15 虚拟示波器前面板19 33绪论虚拟仪器(VI,Virtual Instrument)技术作为一个特殊的测试技术和发展方向,为各种复杂的测试系统提供了很好的解决方案,LabVIEW已经成为自动测试领域应用应用最为广泛的软件开发平台。虚拟仪器就是通过应用软件将通用计算机与各种功能的硬件设备结合,用户可通过丰富和易操作的图形界面来操作计算机,对被测试设备
4、进行各种物理量的采集、分析、判断、显示、和存储等。虚拟仪器系统一般分为数据采集、数据处理与分析、结果显示三大功能模块。示波器作为一种时间域电子测量仪器,其应用领域十分广泛,无论是电子电路及电子信息系统的研发、实验。培训,还是生产制造。故障诊断、试验检测等场所,到处都能见到示波器的身影。随着信息和通信技术的持续创新与发展各类行业标准的不断引入,通信设备,计算机及消费电子等终端产品在研发、设计与生产等方面的技术和环境要求也越来越高,从而对示波器的应用也提出更高要求。目前普通的示波器在市场上的价格是相当昂贵的。但示波器又是各个学校、公司的必备仪器。各单位不得不花一大笔钱来购买设备。现阶段关于基于La
5、bVIEW做示波器的设计还是有很多的,但是大多数都是采用板卡进行数据的采集和传输,这些硬件设备虽然通信简单,传输速率很高,但是有的太贵(例如数据采集卡),还有的采集速度不够(例如声卡),都存在一些瓶颈,本设计采用串口进行数据通信,达到低速要求以后,可以用FPGA的内部资源设计一个USB接口,提高传输数据的速度再加上采用高速AD9223进行数据采集,就可以解决以上问题,再加上FIFO模块,就可以设计一测量范围宽、价格低、波形可存储回放的虚拟示波器。1 FPGA、LabVIEW及示波器概述1.1 FPGA概述1.1.1 FPGA简介FPGA(FieldProgrammable Gate Array
6、),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。1.1.2 FPGA工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,G
7、AL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了即可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程.1.1.3 基本特点1)采用FPGA设计ASIC电路(专用集成电路),用户不
8、需要投片生产,就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 3)FPGA内部有丰富的触发器和I/O引脚。 4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工
9、作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。1.1.4 开发环境Quartus II简介Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDLHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器
10、,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以
11、方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus
12、II 友好的图形界面及简便的使用方法。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。1.2 LabVIEW概述1.2.1 LabVIEW的概念LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。与 C 和 BASIC 一样,LabVIEW 也是通用的编程系统,有一个完成任何编程任务的庞大
13、函数库。LabVIEW 的函数库包括数据采集、GPIB、串口控制、数据分析、数据 显示及数据存储,等等。LabVIEW 也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调。LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是LabVIEW的程序模块。
14、LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在LabVIEW中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LabVIEW的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。1.2.2 虚拟仪器(VI)的概念虚拟仪器(virtual instrument)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也
15、越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。上面的框图反映了常见的虚拟仪器方案。 虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器1的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国 NI 公司的 LabVIEW。 虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在 Microsof t公司的 Windows 诞生之前,NI
16、公司已经在Macintosh计算机上推出了LabVIEW2.0 以前的版本。对虚拟仪器和 LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。目前LabVIEW 的最新版本为 LabVIEW2009,LabVIEW 2009 为多线程功能添加了更多特性,这种特性在 1998 年的版本 5 中被初次引入。使用 LabVIEW 软件,用户可以借助于它提供的软件环境,该环境由于其数据流编程特性、LabVIEW Real-Time 工具对嵌入式平台开发的多核支持,以及自上而下的为多核而设计的软件层次,是进行并行编程的首选。 普通的 PC 有一些不可避免的弱点。用它构建的虚拟仪器或计算
17、机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定了VXI 标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的 VXI 机箱,再与计算机相连,就组成了一个测试系统。VXI 仪器价格昂贵,目前又推出了一种较为便宜的 PXI 标准仪器。1.2.3 虚拟仪器的应用前景虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是IEEE488 或 GPIB协议。未来的仪器也应当是网络化的。LabVIEW(Laboratory Virtua
18、l instrument Engineering Workbench)是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW 2集成了与满足 GPIB、VXI、RS-232 和 RS-485 协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。 利用 LabVIEW2,可产生独立运行的可执行文件,它是一个真正的32位/64位编译器。像许多重要的软件一样,Lab
19、VIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件!现在的图形化主要是上层的系统,国内现在已经开发出图形化的单片机编程系统(支持32位的嵌入式系统,并且可以扩展的),不断完善中(大家可以搜索 CPUVIEW 会有更详细信息)。 2 虚拟示波器系统总体介绍2.1 系统总体方框图图1 系统总体方框图2.2 系统总体介绍由系统总体方框图中可以看出,整个系统的构成:实时模拟信号输入到阻抗匹配电路,经过运放进行阻抗匹配变换。经过阻抗匹配变换的信号差分输入到高速
20、AD转换电路,AD在采样时钟的作用下,根据基准电压产生电路所得到的基准电压对模拟信号进行量化、采样、计算得到与之对应的数字信号。FPGA定时对AD转换的数据进行读取,读取的数据经过内部设计的存储电路和UART通信电路进行处理。FPGA同时与PC机进行串口通讯,将处理后的数据发送到PC机。PC机将得到的数据通过设计在LabVIEW环境中设计的上位机软件显示出来显示出来。一台完整的虚拟示波器就完成了。3 系统硬件电路3.1 电源电路稳定合适的电源是一个系统稳定工作的前提,在本系统设计中,我选择了LM2576系列的稳压器,它是单片集成电路,能够提供降压开关稳压器的各种功能,能驱动3A的负载,有优异的
21、的线性和负载调整能力,该系列稳压器内部含有频率补偿器和一个固定频率振荡器,将外部元件的数目减到最少,使用简单,其效率比流行的三段线性稳压器要高得多,一般情况下不需要外加散热片。本设计通过变压器将220交流电变压到15V,通过整流滤波电路分别输入到选固定电压3.3V,5V和可调整输出三种型号的LM2576集成电路,得到3.3V,5V和可调输出,为整个系统提供适当的电源。图2 LM2576电源原理图3.2 串口电平转换电路FPGA在于PC机通信时,由于电平不兼容,所以需要进行电平转换。本设计中选择较为常用的MAX232电平转换芯片,电路简单,实用性很强,能够保证通讯的正常稳定工作。MAX232是一
22、种双组驱动器/接收器,片内含有一个电容性电压发生器以便在单5V电源供电时提供EIA/TIA-232-E电平。每个接收器将EIA/TIA-232-E电平输入转换为5V TTL/CMOS电平。这些接收器具有1.3V的典型门限值及0.5V的典型迟滞,而且可以接收±30V的输入。每个驱动器将TTL/CMOS输入电平转换为EIA/TIA-232-E电平。所有的驱动器、接收器及电压发生器都可以在德州仪器公司的LinASICTM元件库中得到标准单元。图3 串口电平转换电路原理图3.3 基准电压产生电路参考电压也是AD转换器工作的一项重要参数。本设计选用MC1403这一款高精度参考电压芯片,其输入电
23、压为4.5V40V,输出电压为2.475V2.525V,静态电流低至1.2mA,输出电流为10mA,为AD转换电路提供一个稳定的参考电压。图4 MC1403电路原理图3.4 阻抗匹配电路阻抗匹配是信号传输过程中负载阻抗和信源内阻抗之间的特定配合关系。输出阻抗和所连接的负载阻抗之间所应满足的这种特定关系,以免接上负载后对器材本身的工作状态产生明显的影响。本设计中选用LF356这款高阻抗差分输入的运放芯片,速度高达20MHZ,50V/s,满足了本设计的100K输入信号的要求。存在的一个缺点就是:LF356不是轨对轨输出,所以本设计的信号输入范围是-3V+3V。 图5 LF356电路原理图3.5 A
24、D采集电路数字示波器中最重要的电路是AD转换电路,它的作用是将被测信号采样并转换成数字信号。它就是数字示波器的核心,因为它直接决定着数字示波器所能测量的最高频率。根据乃奎斯特定理,AD采样频率至少要是被测信号最高频率的2倍才能复原出被测信号。而在数字示波器中采样频率要是被测信号10倍,否则根本观察不到信号的波形。本设计中采用12位高速AD转换器AD9223,其最高采样频率为3MHZ,考虑到整个系统中通信问题,为了充分发挥出AD转换器的优势,所以采用这种频率不是很高但是精度相对较高的AD转换器。根据以上原理,模拟信号的输入应该为300K以下,考虑到3MHZ是AD9223的极限频率,为了获得系统的
25、稳定,限制输入信号在100K左右。也就是说前级的运放(LF356)也应该达到这一速度。以下介绍一下AD9223。图6 AD9223管脚图管脚1位采样时钟输入,管脚213是AD转换输出管脚,OTR用来设置输出管脚最高位是否是符号位,SENSE管脚为低电平选择内部2.5V电压,如果是高电平选择外部输入参考电压,VREF是参考电压输入管脚,VINB和VINA是差分输入的两个管脚。原理图根据AD9223官方资料设计,在数字信号输出端加上一个小的电阻,有利于减小毛刺现象和提高信号的稳定性。图7 AD转换器原理图4 系统软件设计4.1 总体程序设计流程框图整体程序由下位机程序和上位机程序组成。下位机程序是
26、基于FPGA的的硬件描述语言VerilogHDL语言。下位机的主要功能是控制AD转换器采集模拟信号,再将得到的数据信号存储,并通过串口发送给上位机。上位机接收到采集的信号,经过一系列的软件处理,最终在PC端还原出原始的模拟信号。整个系统的工作均由上位机软件控制。 图8 程序流程图4.2 FPGA软件设计4.2.1 软件语言选择4.2.1.1 VHDL语言VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,诞生于 1982 年。1987 年底,VHDL被 IEEE 和美国国防部确认为标准硬件描述
27、语言。 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL优势:(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统
28、设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。 (2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。 (3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。 (4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。 (5)VHDL对设计的描述具有相对独立性,设计者可
29、以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。4.2.1.2 VerilogHDL语言Verilog HDL是一种硬件描述语言(hardware description language),为了制作数字电路而用来描述ASICs和FPGA的设计之用。VerilogHDL的设计者想要以 C 编程语言为基础设计一种语言,可以使工程师比较容易学习。Verilog HDL是目前应用最为广泛的硬件描述语言Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行苏子系统的逻辑综合,仿真验证和时序分析等。Verilog HDL适合算法级,寄存器级,逻辑级,开关级、系统级和
30、版图级等各个层次的设计和描述。VerilogHDL硬件描述语言的优势: (1)基本逻辑门,开关级基本结构模型,被内置在语言中。 (2)用户定义原语( U D P)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。 (3)提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。 (4)可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式使用过程化结构建模;数据流方式使用连续赋值语句方式建模;结构化方式使用门和模块实例语句描述建模。(5)VerilogHDL中有两类数据类型:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型
31、表示抽象的数据存储元件。(6)能够描述层次设计,可使用模块实例结构描述任何层次。(7)VerilogHDL进行设计最大的优点是其工艺无关性这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路 综上所述:VHDL硬件描述语言和VerilogHDL硬件描述语言。VHDL功能强大,推广时间长;VerilogHDL语言是在C语言的基础之上发展起来的,简单易学。一般认为VerilogHDL在系统级抽象比VHDL略差,而在门级开关电路描述方面比VHDL强的多。本系统选用VerilogHDL语言。4.2.2 设计方法(1)
32、 FPGA设计流程:设计定义、HDL硬件描述语言的功能实现、逻辑综合、布局布线、时序分析、在系统测试。(2)在本设计中采用自顶向下的设计方法,从系统出发将系统分为三个基本的单元:AD采集单元、FIFO存储单元、串口通信单元。(3)再将基本单元继续向下划分(例如:串口通信又可分为RX、TX、SPEED),将各个基本单元分别编译仿真后进行整个系统的综合编译。(4)将各个功能单元通过顶层文件连接,整合整个系统进行仿真、调试、硬件测试,完成整个系统的。(5)VerilogHDL源程序见附录A。4.2.3 VeriLogHDL仿真(1)下位机RTL如下:由RTL视图可以看出系统的组成部分:RX单元、SP
33、EEDSELECT单元、AD采样单元、TX单元等组成,由于时间的关系和个人原因,没能完成FIFO存储单元的设计,十分遗憾。图9 FPGA系统RTL视图(2)系统仿真图10 系统复位如图10所示,当rst_n为低电平的时候,系统进入复位状态,除时钟信号外,其余的信号全部复位。图11 上位机启动信号如图11所示,rs232_rx是接收到的串口信号,其值是rs_temp_data为5,on_off为开关信号。系统开机以后,on_off为低电平,系统处于待机状态,当接受到启动信号以后, on_off变高电平,系统开始正常工作。图12 AD采样与上传如图12所示,FPGA在系统时钟clk_out的作用下
34、读取AD采样的数据,同时在cbs串口发送速率时钟的作用下将读取的数据发送给上位机,此时AD转换的数据是12,而rs232_tx发送的数据恰好是12。图13 上位机停止信号如图13所示,系统正常工作时,采集的数据在cbs信号的作用下发送给上位机,当接收到一个0xFF信号时,on_off信号变为低电平,cbs变为低电平,系统重新进入待机模式。4.3 LabVIEW软件设计4.3.1 软件的选取对于虚拟仪器应用软件的编写,大致可分为两种方式:1、通用编程软件进行编写。主要有Microsoft公司的Visual Basic与Visual C+,Borland公司的DelphiSybase公司的Powe
35、r Builder。2、用专业图形化编程软件进行开发。如HP公司的VEE、NI公司的LabVIEW和Lab windows/CVI等。两种应用软件方案的比较:(1) 通用的编程软件都是文本编程语言,它们的使用领域和方法虽然各不相同,但都有一个共同特点:都是使用字母构成单词,用单词表示数据存储的地址或对数据的某种操作;再由单词构成语句,用语句表示完整的对某个数据的赋值、计算等操作。这几种计算机语言都借鉴了人类的自然语言,尽管它们比自然语言要简略、死板、严格,但是它们的词法、语法等概念和自然语言是相同的。(2) G语言是图形化编程语言(Graphical Programming Language)
36、的缩写。LabVIEW虽然不是唯一的图形化编程语言,却是当今最完善、影响力最大的一种图形化编程语言。因此,LabVIEW已经成为了图形化编程语言的代名词10。LabVIEW是实验室虚拟仪器集成环境(Laboratory Virtual Instrument Engineering Workbench)的简称,是美国国家仪器公司(NI)的创新软件产品,也是目前应用最广泛、发展最快、功能最强的图形化软件开发环境。LabVIEW的前面板可以包含旋钮、刻度盘、开关、图表和其他界面工具,允许用户通过键盘或鼠标获取数据并显示结果。LabVIEW具有模块化的特性,有利于程序的可重用性。LabVIEW将软件的
37、界面设计与功能设计独立开来,修改人机界面无需对整个程序进行调整,LabVIEW是利用数据流框图接收指令,使程序简单明了,充分发挥了图形化编程环境的优点。这就大大简短了虚拟仪器的开发周期,消除了虚拟仪器编程的复杂过程。LabVIEW虽然是为计算机测控领域开发的,但它的函数包含了一般高级计算机语言中的绝大多数程序控制功能。LabVIEW作为开发坏境所具有的优点总结如下所述:a图形化编程,降低了对使用者编程经验的要求,易于工程师使用;b采用面向对象的方法和概念,有利于软件的开发和再利用;c对象、框图及其构成的虚拟仪器在Windows,Window NT,UNIX等多平台之间和各种PC机及工作站问兼容
38、,便于软件移植;d支持550多种标准总线设备及数据采集卡,如串行接口、GPIB等;e具有丰富的库函数和例子,对于大多数应用程序,用户可以从例子中取得程序框架,便于提高开发速度;f具有比较完备的代码接口,可调用Windows中的动态链接库(DLL)中的函数以及C语言程序,以弥补自身的某些不足;g直接支持动态数据交换(DDE)、对象联接与嵌入(OLE)、结构化查询语言(SQL),便于与其它Windows应用程序和数据库应用程序接口;h支持TCP,UDP等网络协议,网络功能强大,可遥控分布在其他微机上的虚拟仪器设备;i为加强LabVIEW的功能,适应各种工业应用的需要,NI公司又开发了一系列与Lab
39、VIEW配合使用的软件包,如自动测试工具、可连结25种数据库的SQL工具、SPC分析函数工具、信号处理套件、PID控制工具、图形控制工具等。比较两种方案,本设计采用LabVIEW设计程序。4.3.2 设计方法设计虚拟示波器的过程共分四步:(1)设计虚拟示波器的前面板。虚拟示波器的交互式用户接口被称为前而板,它是模仿实际仪器的面板。前面板包含旋钮、按钮,图形和其他控制与显示对象,通过鼠标和键盘为控制对象输入数据,在计算机屏幕上观看结果。(2)编写虚拟示波器流程图。流程图是一个编程问题的图形化解决方案(也是虚拟仪器的源代码)。虚拟示波器从流程图中接受命令。(3)确定虚拟示波器的图标和连接(表示某一
40、虚拟子仪器)的参数列表,图标和连接允许将此仪器作为最高级的程序,也可以作为其他程序或子程序中的程序(子仪器)。(4) 整个系统的软件编写完成之后,除了优化之外我们还要将它生成一个通用行的应用程序。生成可安装应用程序后,整个系统软件就可以脱离LabVIEW环境,独立的运行。4.3.3 部分模块程序4.3.3.1 串口通信模块设计串口通信时,必须要安装NI-VISA驱动。安装完成后,在LabVIEW开发环境里面能够自动搜索到串口端口,操作简单。软件提供了串口配置、串口读取、串口写入、串口关闭等多个子VI,我们只需要调用这些子VI,大大缩短了开发时间。本设计的串口通信模块设计如图所示:配置好端口后,
41、读取缓冲区中的数据,等待下一次读取数据。图14 串口模块程序图4.3.3.2 显示模块LabVIEW提供了一系列的图形显示VI,这里我选择波形图VI来作为虚拟示波器的显示窗口,通过创建属性节点的方法将波形图的X轴和Y轴连接到时基和幅度调节旋钮;用基本显示框显示出测量波形的的各个参数。模拟出了一个和实际示波器一样通过旋钮来调节波形的显示面板:图15 虚拟示波器前面板同时在选项卡里面增加上位机控制下位机的一系列命令输入框,实现上位机对整个系统的控制,完成这款自行设计采集器的虚拟示波器的设计。结论目前主流的虚拟仪器的采集卡都是各大公司设计的专业采集卡,虽说性能很好,但是价格昂贵,很难满足现在测量仪器
42、在各个领域的大量使用。本设计旨在自行设计采集卡,并且能够满足在大众场合中广泛使用的一款虚拟示波器。已完成工作:(1)单通道,实时显示;(2)采样率:100Hz1kHz;(3)垂直灵敏度:5mv/div3v/div。按照前文叙述的方案制作的这款示波器,可以满足预想的设计指标,这款示波器硬件设计较为简单,可扩展性强。由于受时间限制及环境等因素的影响,本系统设计未能全部完成是一件很遗憾的事,其中利用FPGA内部资源可以设计一个FIFO存储器,将波形存储于内部,就可以实现波形的存储与回放,也可以利用FPGA强大的功能设计USB通信模块替代现有的UART通信模块,提高数据传输速率,增大示波器的频率测量范
43、围测量,将整个系统设计成为一个USB可拔插,即插即用的新型示波器。另外在LabVIEW软件设计中也可增加函数信号发生器等虚拟仪器。从而在不改变硬件环境的条件下设计出一款多功能示波器。希望今后有机会继续研究并成功调试好整个系统。参考文献1 1LabVIEW程序设计与应用【M】北京:电子工业出版社,2005.12 杨素行主编 模拟电子技术基础简明教程(第三版)【M】.北京:高等教育出版社2005.10 3 LabVIEW 8.5常用功能与编程实例精讲【M】 北京:电子工业出版社,2007.104 EDA实用教程【M】 北京:科学出版社,2009.55 全国大学生电子设计竞赛组委会编 全国大学生电子
44、设计竞赛获奖作品选编【M】 北京: 北京理工大学出版社, 2008.12 61-686 阎石主编 数字电子技术基础【M】 北京:高等教育出版社,2006.57 Protel 99SE 原理图与PCB设计教程【M】 机械工业出版社,2009.18 朱建平,吕春峰 基于LabVIEW的单片机串口通信的实现【J】.机械工程与自动化,2008(8)9 宁歆 基于LabVIEW的数字虚拟示波器的设计【C】 第一军医大学,2006(4)10 蔡波 信号发生器与虚拟示波器的实现【C】.中山大学,2007(6)11 姚锡陵一种基于虚拟仪器概念的数字示波器的实现方法【J】南京邮电学院学报19973 12 韦巍,
45、韦仲基于LabVIEW的虚拟示波器设计及应用【J】计算机技术与应用进展2009:1040-104413 邓焱,王磊等LabVIEW7.1测试技术与仪器应用【M】北京:机械工业出版社,2004714 杨振江智能仪器与数据采集系统中的新器件及应用【M】西安电子科技大学出版社,2001515 深入浅出玩转FPGA【M】北京:北京航空航天大学出版社,2010.516 VerilogHDL HDL程序设计与实践【M】北京:人民邮电出版社,2009.217 J. Saliga, L.Michaeli Software for metrological characterization of PC soun
46、d cards, Computer Standards& Interfaces.【M】2003(25): 45-55.18 M.H. Lev in. Use of a sound card in teaching audio frequency and analog modem communications, ACM SIGCSE Bulletin. 【M】 1999 (3): 79-83.19 National Instruments CorporationUsing External Code in LabVIEW【M】July 2000 Edition20 Norma Dorst
47、Using LabVIEW to Create Nultithreaded VIs for Maximum Performance and Reliability【M】Application Note 114附录A:VerilogHDL源程序my_uart_top.v/module my_uart_top(clk,rst_n,rs232_rx);module my_uart_top(clk,rst_n,ad_data,rs232_rx,rs232_tx,clk_out);input clk; / 50MHz主时钟input rst_n; /低电平复位信号input rs232_rx; / RS
48、232接收数据信号input 7:0ad_data;/AD采样数据输入output rs232_tx; / RS232发送数据信号output clk_out; / 输出采样时钟wire bps_start_rx; /接收到数据后,波特率时钟启动信号置位wire clk_bps_rx; / clk_bps的高电平为接收或者发送数据位的中间采样点 wire on_off;/系统工作开关wire bps_start_tx; /wire clk_bps_tx; / clk_bps的高电平为接收或者发送数据位的中间采样点 wire7:0 rx_data; /接收数据寄存器,保存直至下一个数据来到wir
49、e7:0 ad_data;/wire rx_int; /接收数据中断信号,接收到数据期间始终为高电平wire 7:0ad_data_handle;/处理过后的AD采样数据/-/assign ad_data = 8'h23;speed_select speed_select_rx (.clk(clk), /波特率选择模块,接收 .rst_n(rst_n), .bps_start(bps_start_rx), .clk_bps(clk_bps_rx) );my_uart_rx my_uart_rx( .clk(clk), /发送数据模块 .rst_n(rst_n), .clk_bps(cl
50、k_bps_rx), .rs232_rx(rs232_rx), .bps_start(bps_start_rx), .on_off(on_off) );my_uart_tx my_uart_tx( .clk(clk), /发送数据模块 .rst_n(rst_n), .clk_bps(clk_bps_tx), .ad_data(ad_data_handle), .rs232_tx(rs232_tx), .bps_start(bps_start_tx), .on_off(on_off) );speed_select speed_select_tx (.clk(clk), /波特率选择模块,发送 .
51、rst_n(rst_n), .bps_start(bps_start_tx), .clk_bps(clk_bps_tx) );ad9223 ad_sample (.clk(clk),/AD采样模块 .rst_n(rst_n), .ad_data(ad_data), .on_off(on_off), .ad_data_out(ad_data_handle), .clk_out(clk_out) );Endmodulespeed_select.vmodule speed_select(clk,rst_n,bps_start,clk_bps); input clk; / 50MHz主时钟input
52、rst_n; /低电平复位信号input bps_start; /接收到数据后,波特率时钟启动信号置位 output clk_bps; / clk_bps的高电平为接收或者发送数据位的中间采样点 parameter bps9600 = 5207,/波特率为9600bps 注释:bps=clk/波特率 bps19200 = 2603,/波特率为19200bps bps38400 = 1301,/波特率为38400bps bps57600 = 867, /波特率为57600bps bps115200 = 433; /波特率为115200bpsparameter bps9600_2 = 2603, bps19200_2 = 1301, bps38400_2 = 650, bps57600_2 = 433, bps115200_2 = 216; reg12
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公共游览场所服务员安全技能能力考核试卷含答案
- 光学计量员基础操作测试考核试卷含答案
- 重介质分选工风险评估竞赛考核试卷含答案
- 葡萄酒酿造工班组评比强化考核试卷含答案
- 片剂工岗中技能评优考核试卷含答案
- 墨锭制作工基础理论考核试卷含答案
- 飞机桨叶型面仿形工岗前竞争考核试卷含答案
- 城镇污水处理工复测测试考核试卷含答案
- 新能源汽车维修工岗位晋升测试考核试卷含答案
- 虎牙直播试题及答案
- 2027年物理高考一轮复习规划与策略
- 医院感染法规培训
- 高中英语3500词(带音标2026新高考版)
- 2025浙江杭州上城区文商旅投资控股集团有限公司社会招聘1人笔试参考题库附带答案详解
- 站点巴士运营管理制度
- 2025~2026学年江西省南昌中学高一上学期期中考试数学试卷
- 车库抵账协议书
- 中文修订版儿童社会能力和行为评定量表(SCBE-30)
- 重汽汽车底盘课件
- 船舶价格评估指南解读
- 贵州省福泉市2025年上半年公开招聘城市协管员试题含答案分析
评论
0/150
提交评论