虚拟示波器设计报告.docx
- 文档编号:12212174
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:53
- 大小:521.56KB
虚拟示波器设计报告.docx
《虚拟示波器设计报告.docx》由会员分享,可在线阅读,更多相关《虚拟示波器设计报告.docx(53页珍藏版)》请在冰豆网上搜索。
虚拟示波器设计报告
基于LabVIEW和FPGA的虚拟示波器
设计报告
插图索引
绪论
虚拟仪器(VI,VirtualInstrument)技术作为一个特殊的测试技术和发展方向,为各种复杂的测试系统提供了很好的解决方案,LabVIEW已经成为自动测试领域应用应用最为广泛的软件开发平台。
虚拟仪器就是通过应用软件将通用计算机与各种功能的硬件设备结合,用户可通过丰富和易操作的图形界面来操作计算机,对被测试设备进行各种物理量的采集、分析、判断、显示、和存储等。
虚拟仪器系统一般分为数据采集、数据处理与分析、结果显示三大功能模块。
示波器作为一种时间域电子测量仪器,其应用领域十分广泛,无论是电子电路及电子信息系统的研发、实验。
培训,还是生产制造。
故障诊断、试验检测等场所,到处都能见到示波器的身影。
随着信息和通信技术的持续创新与发展各类行业标准的不断引入,通信设备,计算机及消费电子等终端产品在研发、设计与生产等方面的技术和环境要求也越来越高,从而对示波器的应用也提出更高要求。
目前普通的示波器在市场上的价格是相当昂贵的。
但示波器又是各个学校、公司的必备仪器。
各单位不得不花一大笔钱来购买设备。
现阶段关于基于LabVIEW做示波器的设计还是有很多的,但是大多数都是采用板卡进行数据的采集和传输,这些硬件设备虽然通信简单,传输速率很高,但是有的太贵(例如数据采集卡),还有的采集速度不够(例如声卡),都存在一些瓶颈,本设计采用串口进行数据通信,达到低速要求以后,可以用FPGA的内部资源设计一个USB接口,提高传输数据的速度再加上采用高速AD9223进行数据采集,就可以解决以上问题,再加上FIFO模块,就可以设计一测量范围宽、价格低、波形可存储回放的虚拟示波器。
FPGA、LabVIEW及示波器概述
FPGA概述
FPGA简介
FPGA(Field—ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA工作原理
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
现场可编程门阵列(FPGA)是可编程器件。
与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了即可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程.
基本特点
1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
3)FPGA内部有丰富的触发器和I/O引脚。
4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5)FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
开发环境QuartusII简介
QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDLHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。
目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。
Altera在QuartusII中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。
AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
LabVIEW概述
LabVIEW的概念
LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:
其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
与C和BASIC一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。
LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。
LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调。
LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench)是一种用图标代替文本行创建应用程序的图形化编程语言。
传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。
VI指虚拟仪器,是LabVIEW的程序模块。
LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。
用户界面在LabVIEW中被称为前面板。
使用图标和连线,可以通过编程对前面板上的对象进行控制。
这就是图形化源代码,又称G代码。
LabVIEW的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。
虚拟仪器(VI)的概念
虚拟仪器(virtualinstrument)是基于计算机的仪器。
计算机和仪器的密切结合是目前仪器发展的一个重要方向。
粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。
随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。
另一种方式是将仪器装入计算机。
以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
虚拟仪器主要是指这种方式。
上面的框图反映了常见的虚拟仪器方案。
虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。
虚拟仪器[1]的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。
目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。
虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。
PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。
对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。
目前LabVIEW的最新版本为LabVIEW2009,LabVIEW2009为多线程功能添加了更多特性,这种特性在1998年的版本5中被初次引入。
使用LabVIEW软件,用户可以借助于它提供的软件环境,该环境由于其数据流编程特性、LabVIEWReal-Time工具对嵌入式平台开发的多核支持,以及自上而下的为多核而设计的软件层次,是进行并行编程的首选。
普通的PC有一些不可避免的弱点。
用它构建的虚拟仪器或计算机测试系统性能不可能太高。
目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。
每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。
这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。
VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。
虚拟仪器的应用前景
虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。
目前使用较多的是IEEE488或GPIB协议。
未来的仪器也应当是网络化的。
LabVIEW(LaboratoryVirtualinstrumentEngineeringWorkbench)是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。
LabVIEW[2]集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。
它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。
这是一个功能强大且灵活的软件。
利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。
利用LabVIEW[2],可产生独立运行的可执行文件,它是一个真正的32位/64位编译器。
像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。
它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件!
现在的图形化主要是上层的系统,国内现在已经开发出图形化的单片机编程系统(支持32位的嵌入式系统,并且可以扩展的),不断完善中(大家可以搜索CPUVIEW会有更详细信息)。
虚拟示波器系统总体介绍
系统总体方框图
系统总体方框图
系统总体介绍
由系统总体方框图中可以看出,整个系统的构成:
实时模拟信号输入到阻抗匹配电路,经过运放进行阻抗匹配变换。
经过阻抗匹配变换的信号差分输入到高速AD转换电路,AD在采样时钟的作用下,根据基准电压产生电路所得到的基准电压对模拟信号进行量化、采样、计算得到与之对应的数字信号。
FPGA定时对AD转换的数据进行读取,读取的数据经过内部设计的存储电路和UART通信电路进行处理。
FPGA同时与PC机进行串口通讯,将处理后的数据发送到PC机。
PC机将得到的数据通过设计在LabVIEW环境中设计的上位机软件显示出来显示出来。
一台完整的虚拟示波器就完成了。
系统硬件电路
电源电路
稳定合适的电源是一个系统稳定工作的前提,在本系统设计中,我选择了LM2576系列的稳压器,它是单片集成电路,能够提供降压开关稳压器的各种功能,能驱动3A的负载,有优异的的线性和负载调整能力,该系列稳压器内部含有频率补偿器和一个固定频率振荡器,将外部元件的数目减到最少,使用简单,其效率比流行的三段线性稳压器要高得多,一般情况下不需要外加散热片。
本设计通过变压器将220交流电变压到15V,通过整流滤波电路分别输入到选固定电压3.3V,5V和可调整输出三种型号的LM2576集成电路,得到3.3V,5V和可调输出,为整个系统提供适当的电源。
LM2576电源原理图
串口电平转换电路
FPGA在于PC机通信时,由于电平不兼容,所以需要进行电平转换。
本设计中选择较为常用的MAX232电平转换芯片,电路简单,实用性很强,能够保证通讯的正常稳定工作。
MAX232是一种双组驱动器/接收器,片内含有一个电容性电压发生器以便在单5V电源供电时提供EIA/TIA-232-E电平。
每个接收器将EIA/TIA-232-E电平输入转换为5VTTL/CMOS电平。
这些接收器具有1.3V的典型门限值及0.5V的典型迟滞,而且可以接收±30V的输入。
每个驱动器将TTL/CMOS输入电平转换为EIA/TIA-232-E电平。
所有的驱动器、接收器及电压发生器都可以在德州仪器公司的LinASICTM元件库中得到标准单元。
串口电平转换电路原理图
基准电压产生电路
参考电压也是AD转换器工作的一项重要参数。
本设计选用MC1403这一款高精度参考电压芯片,其输入电压为4.5V~40V,输出电压为2.475V~2.525V,静态电流低至1.2mA,输出电流为10mA,为AD转换电路提供一个稳定的参考电压。
MC1403电路原理图
阻抗匹配电路
阻抗匹配是信号传输过程中负载阻抗和信源内阻抗之间的特定配合关系。
输出阻抗和所连接的负载阻抗之间所应满足的这种特定关系,以免接上负载后对器材本身的工作状态产生明显的影响。
本设计中选用LF356这款高阻抗差分输入的运放芯片,速度高达20MHZ,50V/μs,满足了本设计的100K输入信号的要求。
存在的一个缺点就是:
LF356不是轨对轨输出,所以本设计的信号输入范围是-3V~+3V。
LF356电路原理图
AD采集电路
数字示波器中最重要的电路是AD转换电路,它的作用是将被测信号采样并转换成数字信号。
它就是数字示波器的核心,因为它直接决定着数字示波器所能测量的最高频率。
根据乃奎斯特定理,AD采样频率至少要是被测信号最高频率的2倍才能复原出被测信号。
而在数字示波器中采样频率要是被测信号10倍,否则根本观察不到信号的波形。
本设计中采用12位高速AD转换器AD9223,其最高采样频率为3MHZ,考虑到整个系统中通信问题,为了充分发挥出AD转换器的优势,所以采用这种频率不是很高但是精度相对较高的AD转换器。
根据以上原理,模拟信号的输入应该为300K以下,考虑到3MHZ是AD9223的极限频率,为了获得系统的稳定,限制输入信号在100K左右。
也就是说前级的运放(LF356)也应该达到这一速度。
以下介绍一下AD9223。
AD9223管脚图
管脚1位采样时钟输入,管脚2~13是AD转换输出管脚,OTR用来设置输出管脚最高位是否是符号位,SENSE管脚为低电平选择内部2.5V电压,如果是高电平选择外部输入参考电压,VREF是参考电压输入管脚,VINB和VINA是差分输入的两个管脚。
原理图根据AD9223官方资料设计,在数字信号输出端加上一个小的电阻,有利于减小毛刺现象和提高信号的稳定性。
AD转换器原理图
系统软件设计
总体程序设计流程框图
整体程序由下位机程序和上位机程序组成。
下位机程序是基于FPGA的的硬件描述语言——VerilogHDL语言。
下位机的主要功能是控制AD转换器采集模拟信号,再将得到的数据信号存储,并通过串口发送给上位机。
上位机接收到采集的信号,经过一系列的软件处理,最终在PC端还原出原始的模拟信号。
整个系统的工作均由上位机软件控制。
程序流程图
FPGA软件设计
软件语言选择
VHDL语言
VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL优势:
(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。
强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。
符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。
(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。
(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。
VerilogHDL语言
VerilogHDL是一种硬件描述语言(hardwaredescriptionlanguage),为了制作数字电路而用来描述ASICs和FPGA的设计之用。
VerilogHDL的设计者想要以C编程语言为基础设计一种语言,可以使工程师比较容易学习。
VerilogHDL是目前应用最为广泛的硬件描述语言.VerilogHDL可以用来进行各种层次的逻辑设计,也可以进行苏子系统的逻辑综合,仿真验证和时序分析等。
VerilogHDL适合算法级,寄存器级,逻辑级,开关级、系统级和版图级等各个层次的设计和描述。
VerilogHDL硬件描述语言的优势:
(1)基本逻辑门,开关级基本结构模型,被内置在语言中。
(2)用户定义原语(UDP)创建的灵活性。
用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。
(3)提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。
(4)可采用三种不同方式或混合方式对设计建模。
这些方式包括:
行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。
(5)VerilogHDL中有两类数据类型:
线网数据类型和寄存器数据类型。
线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。
(6)能够描述层次设计,可使用模块实例结构描述任何层次。
(7)VerilogHDL进行设计最大的优点是其工艺无关性.这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路
综上所述:
VHDL硬件描述语言和VerilogHDL硬件描述语言。
VHDL功能强大,推广时间长;VerilogHDL语言是在C语言的基础之上发展起来的,简单易学。
一般认为VerilogHDL在系统级抽象比VHDL略差,而在门级开关电路描述方面比VHDL强的多。
本系统选用VerilogHDL语言。
设计方法
(1)FPGA设计流程:
设计定义、HDL硬件描述语言的功能实现、逻辑综合、布局布线、时序分析、在系统测试。
(2)在本设计中采用自顶向下的设计方法,从系统出发将系统分为三个基本的单元:
AD采集单元、FIFO存储单元、串口通信单元。
(3)再将基本单元继续向下划分(例如:
串口通信又可分为RX、TX、SPEED),将各个基本单元分别编译仿真后进行整个系统的综合编译。
(4)将各个功能单元通过顶层文件连接,整合整个系统进行仿真、调试、硬件测试,完成整个系统的。
(5)VerilogHDL源程序见附录A。
VeriLogHDL仿真
(1)下位机RTL如下:
由RTL视图可以看出系统的组成部分:
RX单元、SPEEDSELECT单元、AD采样单元、TX单元等组成,由于时间的关系和个人原因,没能完成FIFO存储单元的设计,十分遗憾。
FPGA系统RTL视图
(2)系统仿真
系统复位
如图10所示,当rst_n为低电平的时候,系统进入复位状态,除时钟信号外,其余的信号全部复位。
上位机启动信号
如图11所示,rs232_rx是接收到的串口信号,其值是rs_temp_data为5,on_off为开关信号。
系统开机以后,on_off为低电平,系统处于待机状态,当接受到启动信号以后,on_off变高电平,系统开始正常工作。
AD采样与上传
如图12所示,FPGA在系统时钟clk_out的作用下读取AD采样的数据,同时在cbs串口发送速率时钟的作用下将读取的数据发送给上位机,此时AD转换的数据是12,而rs232_tx发送的数据恰好是12。
上位机停止信号
如图13所示,系统正常工作时,采集的数据在cbs信号的作用下发送给上位机,当接收到一个0xFF信号时,on_off信号变为低电平,cbs变为低电平,系统重新进入待机模式。
LabVIEW软件设计
软件的选取
对于虚拟仪器应用软件的编写,大致可分为两种方式:
1、通用编程软件进行编写。
主要有Microsoft公司的VisualBasic与VisualC++,Borland公司的Delphi.Sybase公司的PowerBuilder。
2、用专业图形化编程软件进行开发。
如HP公司的VEE、NI公司的LabVIEW和Labwi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟 示波器 设计 报告