基于FPGA的数字示波器 .doc
《基于FPGA的数字示波器 .doc》由会员分享,可在线阅读,更多相关《基于FPGA的数字示波器 .doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、论文题目:基于FPGA的数字示波器1.摘要32.原理33.系统方案对比及分析43.1.以FPGA来实现整个系统43.2.采用DSP与FPGA来实现整个系统43.3.采用FPGA与单片机来实现整个系统44.系统设计方案45.系统框图56.系统技术指标57.AD模块简介58.频率测量模块及方案比较68.1.测周期法68.2.测频率法68.3.方法选择及使用68.4.Verilog设计结构89.数据处理模块810.FIFO存储模块810.1.FIFO_1910.2.FIFO_2911.Nios II软核模块912.VGA显示1013.系统软件构架设计1213. Nios II软件实现1214.1.D
2、MA传输1214.2.1.PIO中断1414.系统的测试和分析1415.总结2216.参考文献221.摘要随着信息技术的发展,对信号的测量技术要求越来越高,示波器的使用越来越广泛。数字示波器是模拟示波器技术、数字化测量技术、计算机技术的综合产物,他主要以微处理器、数字存储器、A/D转换器和D/A转换器为核心,输入信号首先经A/D转换器转换成数字信号,然后存储在RAM中,需要时再将RAM中的内容读出,经D/A转换器恢复为模拟信号显示在示波器上,或者通过接口与计算机相连对存储的信号作进一步处理,这样可大大改进显示特性,增强功能,便于控制和智能化。这种数字示波器中看到的波形是由采集到的数据经过重构后
3、得到的波形,而不是加到输入端上信号的波形。设计提出一个经过优化的数据采集方法,辅以FPGA为主控制器和必备的外围电路完成了基于FPGA的数字存储示波器的设计。系统最大限度地利用了FPGA的高速数字信号处理能力以及众多硬核和软核内嵌的特性,降低了成本和开发难度,且性能优良。2.原理数字示波器具有存储数据的能力,数字存储就是在示波器中以数字编码的形式来贮存信号。当信号进入数字存储示波器,或称 DSO 以后,在信号到达CRT 的偏转电路之前,示波器将按一定的时间间隔对信号电压进行采样。然后用一个模/数变换器(ADC)对这些采样值进行变换从而生成代表每一个采样电压的二进制字。这个过程称为数字化。获得的
4、二进制数值贮存在存储器中,对输入信号进行采样的速率称为采样速率。采样速率由采样时钟控制。对于一般使用情况来说,采样速率的范围从每秒 20 兆次(20MS/s)到 200MS/s。存储器中贮存的数据用来在示波器的屏幕上重建信号波形。所以,在DSO中的输入信号接头和示波器 CRT 之间的电路不只是仅有模拟电路。输入信号的波形在 CRT 上获得显示之前先要存贮到存储器中,我们在示波器屏幕上看到的波形总是由所采集到数据重建的波形,而不是输入连接端上所加信号的直接波形显示。示波器原理框图如下:3.系统方案对比及分析3.1.以FPGA来实现整个系统以可编程器件FPGA为主控来实现整个系统,设计时电路相对简
5、洁,因为FPGA的可编程性适用于模块化设计,内部集成大量电路模块,如A/D转换器,锁相环,甚至有些FPGA内部嵌入ARM相关处理器,DSP模块,电源模块,所以FPGA可以实现DSP相关算法,可以做大量运算,并且它的处理速度由于其并行性,在协调多个模块的工作时候非常方便,控制能力强。在整个数值示波器的设置中,通过采样数据然后存储,再做相应的数据处理,执行相关任务,完全可以实现示波器的基本功能,设计可行性非常高。辅助一些外围电路模块,基本能实现设计期望达到的功能和参数。3.2.采用DSP与FPGA来实现整个系统采用DSP和FPGA开发起来比较灵活,升级也容易,通用性强,在以FPGA为主控的同时辅以
6、DSP作为信号处理,提高系统的效率。但是DSP在与外围电路接口的时候,比如说LCD显示和键盘进行通信时候,因为DSP速度非常快,而LCD显示器和键盘电路比较慢,会造成资源浪费。3.3.采用FPGA与单片机来实现整个系统采用FPGA与单片机来实现,主要是利用单片机进行一些外部接口的监控,对键盘电路和显示电路实时更新,减轻FPGA主控的任务。且单片机控制比较简单,现在大多单片机内设比较丰富,能很好地胜任工作。但是这里使用单片机进行控制,增加了一些额外开销,且单片机任务比较简单,而且不多,本身FPGA集成一些内核可以进行比普通单片机更快的处理,再另外使用单片机有点多余。综上,直接采用FPGA为主控芯
7、片,资源足够丰富,就能很好地满足设计需求,不需要再多的控制器,因此直接选用方案一。4.系统设计方案当信号进入数字存储示波器时,首先对信号进行前置处理,然后将按一定的时间间隔对信号电压进行采样,之后对这些采样值进行数字化,即通过AD转换器变换得到代表每一个实际电压的二进制数字,进一步把这些数字贮存在存储器中,最终根据数字大小按一定比例把每一个采样点重现在显示器上,这样就能看到清晰的波形。整个系统由高速采样电路、FIFO存储器、 时钟分时电路、控制器FPGA和显示电路构成。数字示波器系统框图如图所示,其中FPGA构成控制器,信号从探头输入,一路送入高速AD转换器对信号进行采样,采样所得的数据通过处
8、理后存入FIFO存储器中,FIFO模块有两个,前者FIFO1通过开关来控制数据采样频率,后者FIFO2通过脉冲来控制其工作状态;当FIFO2存满后通知Nios II软核处理器 , Nios II从FIFO存储器中通过DMA形式接受数据进行处理,然后将波形和频率等数据通过VGA显示在显示器上。时钟电路为高速AD转换器和FIFO存储器提供不同的频率信号,作为不同水平扫描时的采样时钟频率。输入信号第二路送入FPGA板的一个串口,通过频率计算模块计算该信号的频率。FPGA以被测信号的频率数据作为频率、水平扫描、灵敏度和峰峰值计算、显示的依据。5.系统框图整个系统框图大概如上图所示,通过FPGA硬件设计
9、和软件设计相结合,以NIOS为主控,配合上外部硬件设计,实现功能。首先数据经过AD转换后变成14位数据,直接进入数据处理模块,数据会进行相应的伸缩变化,并且转换为16位数据。处理后的数据进入FIFO,这块FIFO用来做一级缓冲,一直在采样,采样满会直接溢出,就是说FIFO一直都会存在数据,接着数据会传到第二块FIFO,这块FIFO有一个触发电路控制,控制进行数据采样。这里的FIFO是nios的外设,已经挂载到总线,传入的数据会在DMA通道的作用下直接传输到内部的ram,再由nios控制显示输出。其中频率测量模块或者峰值模块均有NIOS内核监控,并实时显示。6.系统技术指标a) 带宽:4MHz(
10、根据五倍准则,示波器的误差不会超过2)b) 测量频率范围:04MHzc) 电压检测:0-2Vp-pd) 水平灵敏度:e) 垂直灵敏度:0.05 v/div 、0.15v/div 、1v/divf) AD采样率:65MHzg) 存储深度:512h) 通道:双通道7.AD模块简介 高速A/D采集经过模拟信号调理电路后的信号,采样值送入FPGA内缓存,经过相应数据处理后,ARM把数据取走。设计采用terasic公司的信号转换子板(THDB_ADA)Terasic-高速数字模拟转换子板。该AD板块用于样本模拟信号,根据子接口的不同,可以分为GPIO 0 header和GPIO 1 header两种。A
11、D9248是一款双核、3V、14位、20/40/65MSPS模数转换器(ADC),集成了两个高性能采样保持放大器和一个基准电压源。AD9248采用多级差分流水线架构,内置输出纠错逻辑,在最高65MSPS数据速率时可提供14位精度,并保证在整个工作温度范围内无失码。AD9248的模拟电压的输入范围为1Vp-p 至2Vp-p,其带宽可以达到500MHz 3dB。8.频率测量模块及方案比较频率测量是能够测量和显示信号频率的电路。所谓频率,就是周期性信号在单位时间内变化的次数。常用的直接测频法有两种,一种是测周期法,一种是测频率法。8.1.测周期法测周期法如下图所示,需要有基准系统时钟频率Fs,在待测
12、信号一个周期Tx内,记录基准系统时钟频率的周期数Ns,则被测频率可表示为:Fx=Fs/Ns8.2.测频率法测频率法就是在一定时间间隔Tw(该时间定义为闸门时间)内,测得这个周期性信号的重复变换次数为Nx,则其频率可表示为:Fx=Nx/Tw8.3.方法选择及使用这两种方法的计数值会产生正负一个字的误差,并且被测精度与计数器中记录的数值Ns或Nx有关,为保证测试精度,一般对于低频信号采用测周期法,对于高频信号采用测频率法。模拟信号分成两路,其中一路未经直接处理直接输入FPGA开发板中的IO引脚,系统为测量频率提供了一专用的模块。该模块采用直接测频法对信号的周期进行检测,在精确规定计数允许周期T内使
13、能计数器,对被测信号的周期(脉冲)数进行计数,计数允许周期T的长度决定了被测信号频率的范围。较长的计数允许周期T对低频信号而言有利于改善测量精度,但对于高频信号来说,则会产生溢出;较短的计数允许周期T对低频信号的测量,虽然精度降低,但能测量的最大频率较高,且不会产生溢出。波形图理论计算:1.被测频率:2.测量误差:考虑最大误差为1,则由于阈值闸门时间为1s,为使测量误差尽量小,设计时选Fc=1MHz。8.4.Verilog设计结构SyncRst_nSys_ClkGateFxCounterRst_nSys_ClkSync_GateFxFcNx31:0Nc31:0Data_DoneFx_Data1
14、6.0ComputeRst_nSys_ClkEnNx31:0Nc31:0CLOCKRst_nSys_ClkGateFc频率测量模块9.数据处理模块该模块将AD转换出来的14位数据处理成16位的数据以匹配FIFO的数据位,否则FIFO队列的数据输出将会不完整,导致最后波形还原的失真。因为对于16位宽的FIFO队列,输入数据位为十四位,当栈满输出时,第一个16位输出数据将是第一个14位输入数据与第二个输入数据中的高两位。为了我们采取的处理是对数据进行伸缩变换,输出十六位的数值。通过两个拨马开关,可以控制四种不同的压缩比例的转换。10.FIFO存储模块FIFO存储器是系统的缓冲环节,是系统的关键部分
15、,如果没有FIFO存储器,整个系统就不可能正常工作。FIFO是First -In/First-Out的缩写,是先入先出的意思。FIFO存储器分为写入专用区和读取专用区。读操作与写操作可以异步进行,写入区上写入的数据按照写入的顺序从读取端的区中读出,类似于吸收写入端与读出端速度差的一种缓冲器。本系统使用了两个深度位512的16位FIFO存储器:10.1.FIFO_1FIFO1与数据处理模块连接,主要功能用于存储通过处理后的16位AD数据,起到一级缓冲作用。AD的数据通过处理后形成连续不断的数据流,FIFO存储器对连续的数据流进行缓存,防止在进机和存储操作时丢失数据;同时,因为AD芯片产生的数据频
16、率达到了65MHz,需要将处理的数据的频率降低,才能用于后续的处理。该模块通过3位拨马开关来控制数据流的频率,可以使用9种频率来采集数据。FIFO一直不断地读入数据,根据下一级的请求信号输出数据,满则溢出。10.2.FIFO_2FIFO2接于FIFO1之后,用来进一步加强数据采集的控制,用于数据交换,作为二级缓冲连接NIOS与外设,通过FIFO2可以灵活地选择数据流的流动速度。允许系统进行DMA操作,提高数据的传输速度。这是至关重要的一点,如果不采用DMA操作,数据传输将达不到传输要求,而且大大增加CPU的负担,无法同时完成数据的存储工作。FIFO2通过DMA的方式将数据传输给显示控制处理器,
17、同时可以释放CPU,使CPU能够腾出空闲处理其他数据。11.Nios II软核模块Nios II软核处理器,Nios II系列软核处理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIPS。Nios 处理器核 Nios 处理器系列由三个不同的内核组成,可以灵活地控制成本和性能,从而拥有广泛的应用空间。JTAG调试模块 JTAG调试模块提供了通过远端PC主机实现Nios 处理器的在芯片控制、调试和通讯功能,这是Nios 处理器的一个极具竞争力的特性。用户指令 开发人员可以在Nios CPU 核内增加硬件,用以执行复杂运算任务,为时序要求紧张的软件提供加速算法。Avalon交换式
18、总线 Avalon交换式总线在处理器、外围设备和接口电路之间实现网络连接,并提供高带宽数据路径、多路和实时处理能力。Avalon交换式总线可以通过调用SOPC Builder设计软件自动生成。通过这些总线,系统可以通过Nios 的Avalon总线来进行控制系统的运行。启动方案的软件设计目标是当系统复位后,在外部处理器向Nios 程序存储器和数据存储器传输数据的过程中,Nios 处理器运行要受到外部处理器的控制。当一切就绪后,外部处理器发出一条释放Nios 处理器的命令,接下来Nios 处理器就可以正常运行了。软件部分主要就是存放在启动延迟模块中ROM的代码,此代码主要是检测启动延迟模块中控制寄
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于FPGA的数字示波器 基于 FPGA 数字 示波器
限制150内