C甲VGA显示的多通道数字示波器.docx

上传人:b****5 文档编号:8009089 上传时间:2023-01-27 格式:DOCX 页数:27 大小:344.29KB
下载 相关 举报
C甲VGA显示的多通道数字示波器.docx_第1页
第1页 / 共27页
C甲VGA显示的多通道数字示波器.docx_第2页
第2页 / 共27页
C甲VGA显示的多通道数字示波器.docx_第3页
第3页 / 共27页
C甲VGA显示的多通道数字示波器.docx_第4页
第4页 / 共27页
C甲VGA显示的多通道数字示波器.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

C甲VGA显示的多通道数字示波器.docx

《C甲VGA显示的多通道数字示波器.docx》由会员分享,可在线阅读,更多相关《C甲VGA显示的多通道数字示波器.docx(27页珍藏版)》请在冰豆网上搜索。

C甲VGA显示的多通道数字示波器.docx

C甲VGA显示的多通道数字示波器

 

VGA显示的多通道数字示波器

摘要:

本系统以Xilinx公司50万门FPGA芯片XC3S500E为控制核心,设计出一台多通道VGA显示的数字示波器。

系统主要由EXCD-1开发板,模拟通道与AD采样部分,VGA显示,PS2键盘和外部非易失性存储器等组成。

实现了模拟信号任意电平触发,数字信号上升沿下降沿触发和存储回放功能,并按要求进行了垂直灵敏度和扫描速度的挡位设置。

整个系统结构清晰,经测试,完成了题目所要求的各项基本指标,并达到了全部的发挥部分要求。

关键词:

多通道,FPGA,数字示波器,10位AD,VGA显示

Abstract:

Thissystemtakesthe500,000doorFPGAchipXC3S500EfromtheXilinxcompanyascontrolcoretomakeamulti-channelVGAdisplayofdigitaloscilloscope.ItconsistsoftheEXCD-1developmentboard,analogchannelsandADsampling,VGAdisplay,PS2keyboardandexternalnonvolatilestorageetc.WecanuseanalogsignalofanylevelandthedigitalsignalrisingedgeorfallingedgetotriggerandhaveachievedstorageplaybackaccordingtotherequestoftheverticalsensitivityandscanspeedgearsetTheentiresystemstructureisclearandthedesignaccomplishesnotonlythebasicdemand,butalsotheextendeddemandofthedesign.

Keywords:

Multi-channel,FPGA,Digitaloscilloscopes,10AD,VGAdisplay

 

1系统方案

1.1设计思路

本系统以Xilinx公司的FPGA芯片XC3S500E为控制核心,FGPA内建双缓冲机制的VGA显示模块,实现中文信息显示和绘制波形的颜色控制。

使用Verilog描述硬件控制A/D转换器,存储采样数据并进行数据处理,简化了硬件电路,提高稳定性。

输入模拟信号系统通过4级级联放大器,达到了所要求的带宽和精度。

使用硬件比较器达到单次触发,和存储显示功能和正负延时功能。

选用存储容量为8K的EEPROM芯片24C64作为手动存储的存储介质,实现掉电不丢失。

另外通过软件实现了自动选择扫描速率和垂直量程的功能。

图1系统框图

1.2方案论证与比较选择

数字存储示波器系统由信号调理电路、触发电路、A/D采样、数字通道、数字信号产生电路、控制处理系统、键盘控制模块、VGA显示模块等组成。

方案一:

由Verilog硬件描述语言完成全部逻辑控制功能,组成可编程片上系统。

此方案优点是处理速度快,不占用多余的片上资源。

但是系统功能复杂,且控制、运算量大,开发起来比较困难。

方案二:

采用EXCD-1开发板为控制核心,由Verilog硬件描述语言实现采样频率控制模块、数据存储控制模块和VGA显示,键盘人机交互模块。

嵌入MicroBlaze软核作为主控制模块,用来处理实时性要求低和复杂的运算,并完成彩色通道显示,中文界面显示等。

整个控制系统都集中在单个芯片上,大大简化了外围硬件电路设计,增加了系统的稳定性和可靠性。

FPGA的高速性能比其他控制芯片更适合于高速数据采集和处理,而且使用FPGA内部存储模块完成输入信号的量化存储,在存储速度上有着外接RAM无法比拟的优势。

方案选择:

综上所述比较可知,方案二既可满足题设基本要求又能充分发挥扩展部分,电路简单,易于控制,所以选择方案二。

1.3系统总体方案分析

系统总体上利用Xilinx系统开发环境ISE,内建AD采样控制,键盘控制,VGA控制等多个模块,并利用XPS将MicroBlaze微处理器嵌入到FPGA中,实现了可编程片上系统。

MicroBlaze通过LBM总线访问片上存储模块BlockRAM;通过OPB总线上挂接外设接口连接并进行驱动。

VGA显示部分采用双缓冲机制工作,在FPGA内建GRAM,按照一定时序将将RAM内缓存数据映射到VGA显示器上。

通过这种机制,我们可以灵活地

另外大跨度增益自动调节是程控增益放大电路设计的一个难点,本系统通过4级级联放大器,并合理地由软件控制继电器实现增益的步进,达到了要求的带宽。

2理论分析和计算

2.1垂直灵敏度分析

设计要求垂直灵敏度分为10mv/div,100mv/div,1v/div三档,我们的垂直刻度为8div。

A/D转换器的输入信号电压幅度为0~2V,当示波器满刻度显示时,被测信号的幅度将分别为:

VI1=1V/div×8div=8V,VI2=0.1V/div×8div=0.8,VI3=10mv/div×8div=80mV。

A/D转换器的满刻度输入值为VMAX=4V,程控放大器电路的增益AN=VMAX/VIN,其中N=1、2、3,对应于3挡不同垂直灵敏度的增益分别为:

A1=2/8=0.25;A2=2/0.8=2.5;A3=2/0.08=25。

我们进一步提高了参数,增加了250倍档,1mv刻度。

2.2扫描速率分析

A/D的转换速率取决于被测信号的频率范围,或DSO对扫描速度的要求,设计要求扫描速度含1ms/div、1μs/div、1s/div三挡,我们通过FPGA内建分频电路实现了最高采样率16MSa/s,每10倍频步进,共六档,增加了该示波器的实用性。

水平显示分辨率为64点/div,以保证显示波形清晰稳定。

3电路设计

3.1FPGA部分硬件设计

顶层模块包括例化的8个子模块(RTL级结构图见附录1)。

1.AD采样时钟产生模块Modulead_clk_gen。

2.AD与fifo控制模块Modulefifo_control(核心控制模块,作用为AD与fifo读写控制和Uart发送控制)。

3.VGA显示模块vga_drv与GRAM模块。

4.键盘输入模块。

5.锁相环倍频模块。

6.缓存采样数据的双口RAM模块。

下面对关键的部分进行说明:

3.1.1VGA显示部分

该模块使用双缓冲机制,软核MicroBlaze通过读写显存来控制VGA显示。

考虑VGA显示部分要求至少有三种颜色,我们使用2bit数据表示一个点,可以完成4色显示,可以对不同通道使用不同颜色加以区分。

网格与水平标度轴由硬件实现,CPU通过接口方便地进行访问,充分利用了SOPC的优势。

GRAM位宽32bit,大大提高了FPGA刷屏的速度。

vga_drv与GRAM对内嵌的MCU设计成为BlackBox,MCU只需向相应地址发送合适数据即可显示想要的波形。

经实践证明该方案可稳定地显示多种颜色和中文信息。

3.1.2AD时钟产生模块与采样控制模块

这是整个设计的核心模块,ad_clk_gen译码指令产生ad采样时钟信号,这个信号决定了示波器的水平分辨率。

最大16M,最小32HZ,可以观测出带宽2M以下的信号。

该部分也负责存储和显示存储正负延时功能。

存储空间支持4屏数据,达到发挥部分要求。

另外可以通过PS2键盘设置显示存储延时功能,负640至正320点连续可调。

可观测到前后共1280点数据,最大存储时间20s。

3.1.3数字信号的产生模块

在FPGA内建比较器,使用一个表示信号平均值的数据与AD采样得来的数据进行比较得到同频同相的A路信号,再经由A信号触发计数器,经过合理设置计数脉冲,得到有45°延时,占空比25%的B路信号。

表示信号平均值的数据由MicroBlaze测量信号提供。

3.1.4键盘模块

键盘采用PS2键盘,,用FPGA作PS2键盘的控制器,在FPGA中嵌入相应的功能模块,充分利用了FPGA的内部资源,增加了系统的可靠性和灵活性。

键盘功能表如附录2所示。

3.2模拟通道与AD采样电路设计

图2信号调理部分电路图

此部分由于贴片元件多,抗干扰等要求苛刻,因而自己绘制了PCB。

模拟部分由AD采样部分,程控放大部分,电源部分等构成。

程控放大器的作用是对输入信号进行衰减或放大调整,使输出信号电压在AD转换器输入电压要求范围内。

信号从探头输入,进入程控放大(衰减)电路进行放大(衰减),再对被放大(衰减)的信号进行电平抬高后送入高速AD转换器对信号进行采样,采样所得的数据存入FPGA内建的存储器中。

时钟引出插针。

由FPGA为高速AD转换器提供从32Hz-16MHz的6种不同的频率信号作为不同水平扫速时的采样时钟频率。

从程控放大器输出的信号送入AD转换器。

在本电路中选用的是精密运算放大器OPA4727和高速AD8012,合理的搭配两种运放来设计电路,互补优劣,使系统既达到了高精度和高带宽,又大大节约了设计成本。

我们选用10bit,65MSa/s,的ADC10065.达到了采样率和精度的要求。

AD采样电路原理图见附录3。

3.3存储介质

存储显示使用FPGA内建的BlockRAM,手动存储使用存储容量为8K的EEPROM芯片24C64作为非易失性存储介质,实现手动存储的波形掉电不丢失。

3.4电源电路

为避免相互干扰,所以将数字部分的供电与模拟部分分别用独立的稳压电路,并用滤波器隔离。

4软件部分设计

4.1软件组成

本系统的软件部分包括AD采集控制,水平分辨率控制,垂直分辨率设置,多个颜色的波形画线函数,测量功能,自动功能,存储与回放,存储显示状态控制,通道选择控制,用户界面实现等。

由于系统充分利用了SOPC的优势,将大部分工作交由硬件完成,从而大大简化了系统的软件设计。

4.2软件流程图

图3系统程序流程图

5系统测试与结果分析

5.1测试仪器

DS1102E数字示波器1台,EE1641D函数信号发生器1台,数字万用表1

5.2测试方法

用标准数字示波器和本设计示波器并联测量同一信号的幅度和周期,测量所得数据分别记为Vi/Vo,T1/T2。

5.3测试数据

表1.垂直灵敏度测试

档位

输入Vi/V

输出Vo/V

误差=|Vo-Vi|/Vi×100%

1V/div

2.50V

2.47V

1.25%

1.00V

0.97V

3.0%

100mv/div

300mV

297mV

1.0%

100mV

98mV

2.0%

10mv/div

30.0mV

31.0mV

3.3%

10.0mV

10.3mV

3.0%

表2扫描速率测试

档位

输入f1

输出f2

误差=|f1-f2|/f1×100%

1s/div

5.00Hz

5.09Hz

4.5%

15.00Hz

15.33Hz

1.2%

1ms/div

220Hz

218Hz

1.0%

660Hz

663Hz

0.45%

1us/div

220KHz

224KHz

1.8%

660KHz

643KHz

2.6%

表3数字通道测试

档位

输入f1

输出f2

误差=|f1-f2|/f1×100%

1s/div

5.00Hz

5.04Hz

0.8%

15.00Hz

15.30Hz

2.0%

1ms/div

220Hz

216Hz

1.8%

660Hz

665Hz

0.75%

1us/div

220KHz

217KHz

1.3%

660KHz

664KHz

0.6%

由表中数据知,测量结果都在测量误差允许范围内,满足题目要求的误差≤5%。

 

5.4实际效果

图4实际显示效果图

5.5结果分析

本设计完成了题目所要求的各项基本指标,并达到了全部的发挥部分要求。

实现了实时显示和存储多通道显示,自行产生两路数字信号,且A路数字信号与输入模拟信号同频同相,中文提示时间、幅度刻度和通道颜色,图像左右平移,存储显示的正负延时。

很好地完成了设计任务。

 

6结束语

本设计以EXCD-1开发板为控制核心,实现了多通道VGA显示的数字存储示波器。

通过测试,系统不但完成了基本要求,也完成了发挥部分的要求。

在设计制作过程中遇到了不少难题,但经过几天的不懈努力,经过一次次的测试和改,最终圆满完成了设计任务。

 

[参考文献]

[1]李辉.基于FPGA的数字系统设计.[M]西安电子科技大学出版社

[2]黄智伟.全国大学生电子设计竞赛技能训练.[M]北京航空航天大学出版社

[3]何宾.xilinx可编程逻辑器件技术详解.[M]清华大学出版社

 

附录1:

RTL级结构图

附录2:

键盘功能表

功能

按键

触发电平调节

[T]/[G]

切换通道

[1]/[2]

波形上下平移

[方向上]/[方向下]

波形左右平移

[方向左]/[方向右]

测量

[M]

垂直分辨率

[I]/[K]

水平分辨率

[J]/[L]

AUTO

[Q]

RUN/STOP

[R]

上升/下降沿触发切换

[P]

触发源选择

[O]

存储显示

[H]

设置正负延时

[C]

回放

[B]

存储

[V]

附录3:

AD采样电路

附录4:

Verilog顶层设计文件

`timescale1ns/1ps

modulevga_top_moudule(

clk,

//VGA的IO

h_sync,v_sync,red,green,blue,

//MicroBlaze核用IO

fpga_0_Micron_RAM_Mem_A_pin,fpga_0_Micron_RAM_Mem_CEN_pin,,fpga_0_Micron_RAM_Mem_OEN_pin,

fpga_0_Micron_RAM_Mem_WEN_pin,fpga_0_Micron_RAM_Mem_BEN_pin,fpga_0_Micron_RAM_Mem_DQ_pin,

fpga_0_rst_1_sys_rst_pin,

//外设

fpga_0_LEDs_8Bit_GPIO_IO_O_pin,

fpga_0_Push_Buttons_4Bit_GPIO_IO_I_pin,

fpga_0_Switches_8Bit_GPIO_IO_I_pin,

fpga_0_RS232_PORT_RX_pin,

fpga_0_RS232_PORT_TX_pin,

//键盘

ps2k_clk,ps2k_data,

//AD

max1242_sclk,max1241_cs,max1241_data,sam_clk,ad_data

);

inputclk;//50MHz

//VGA

outputh_sync,v_sync;

output[2:

0]red;

output[2:

0]green;

output[2:

0]blue;

//AD

outputmax1242_sclk,max1241_cs;

inputmax1241_data;

//键盘

inputps2k_clk;

inputps2k_data;

//IP外设

output[7:

0]fpga_0_LEDs_8Bit_GPIO_IO_O_pin;

input[7:

0]fpga_0_Switches_8Bit_GPIO_IO_I_pin;

input[3:

0]fpga_0_Push_Buttons_4Bit_GPIO_IO_I_pin;

inputfpga_0_RS232_PORT_RX_pin;

outputfpga_0_RS232_PORT_TX_pin;

//CPU的RAM引脚

output[31:

13]fpga_0_Micron_RAM_Mem_A_pin;

outputfpga_0_Micron_RAM_Mem_CEN_pin;

outputfpga_0_Micron_RAM_Mem_OEN_pin;

outputfpga_0_Micron_RAM_Mem_WEN_pin;

output[1:

0]fpga_0_Micron_RAM_Mem_BEN_pin;

inout[15:

0]fpga_0_Micron_RAM_Mem_DQ_pin;

inputfpga_0_rst_1_sys_rst_pin;

//模块之间的互联信号

wireclkb;

wire[11:

0]addrb;

wire[31:

0]doutb;

wire[12:

0]addra;

wire[31:

0]dina;

wiremainclk;

wireclk100M;

wirewea=1;

wirekeyclr=1;

wire[31:

0]xps_gpio_2_GPIO_IO_I_pin;

wire[31:

0]xps_gpio_3_GPIO_IO_I_pin;

wirerst_n=fpga_0_rst_1_sys_rst_pin;

wire[7:

0]ps2_byte;

wireps2_state;

wire[31:

0]gpio4;

wire[29:

0]iobuf;

wire[23:

0]b_doutb;

wire[8:

0]markline;

//连续性赋值

assignclka=clk100M;

assignxps_gpio_2_GPIO_IO_I_pin[8]=ps2_state;

assignxps_gpio_2_GPIO_IO_I_pin[7:

0]=ps2_byte[7:

0];

assignxps_gpio_2_GPIO_IO_I_pin[31:

9]=0;

assigniobuf=gpio4[31:

26];//6位

assignmarkline=gpio4[10:

2];

//assignxps_gpio_3_GPIO_IO_I_pin[16]=max1241_data;//接到了gpio3上

assignmax1241_cs=gpio4[1];

assignmax1242_sclk=gpio4[0];

wiresam_start,sam_done;

wire[10:

0]ad_addra;

wire[11:

0]ad_doutb;//MCU,in

wire[10:

0]ad_addrb;//MCUuse,o

wire[2:

0]clkdivid;//MCU,o

assignad_addrb[10:

0]=gpio4[21:

11];

assignsam_start=gpio4[22];

assignclkdivid[2:

0]=gpio4[25:

23];

assignxps_gpio_3_GPIO_IO_I_pin[11:

0]=ad_doutb[7:

0];

assignxps_gpio_3_GPIO_IO_I_pin[22:

12]=ad_addra[10:

0];

 

////////////////////////////////////////////////////例化各个模块

vgavgadrv(

.mainclk(mainclk),

.h_sync(h_sync),

.v_sync(v_sync),

.red(red),

.green(green),

.blue(blue),

.clkb(clkb),

.addrb(addrb),

.doutb(doutb),

.b_doutb(b_doutb),

.markline(markline),

.addrb_b(addrb_b),

.clk(b_wave_clk)

);

b_GRam_waveb_GRam_wave(

.clka(clka),

.wea(wea),

.addra(b_addra),

.dina(b_dina),

.clkb(b_wave_clk),

.addrb(addrb_b),

.doutb(b_doutb));

GRamGRam(

.clka(clka),

.wea(wea),

.addra(r_addra),

.dina(r_dina),

.clkb(clkb),

.addrb(addrb),

.doutb(doutb)

);

MicroBlazeMicroBlaze(

.fpga_0_LEDs_8Bit_GPIO_IO_O_pin(fpga_0_LEDs_8Bit_GPIO_IO_O_pin),

.fpga_0_Push_Buttons_4Bit_GPIO_IO_I_pin(fpga_0_Push_Buttons_4Bit_GPIO_IO_I_pin),

.fpga_0_Switches_8Bit_GPIO_IO_I_pin(fpga_0_Switches_8Bit_GPIO_IO_I_pin),

.fpga_0_RS232_PORT_RX_pin(fpga_0_RS232_PORT_RX_pin),

.fpga_0_RS232_PORT_TX_pin(fpga_0_RS232_PORT_TX_pin),

.fpga_0_Micron_RAM_Mem_A_pin(fpga_0_Micron_RAM_Mem_A_pin),

.fpga_0_Micron_RAM_Mem_CEN_pin(fpga_0_Micron_RAM_Mem_CEN_pin),

.fpga_0_Micron_RAM_Mem_OEN_pin(fpga_0_Micron_RAM_Mem_OEN_pin),

.fpga_0_Micron_RAM_Mem_WEN_pin(fpga_0_Micron_RAM_Mem_WEN_pin),

.fpga_0_Micron_RAM_Mem_BEN_pin(fpga_0_Micron_RAM_Mem_BEN_pin),

.fpga_0_Micron_RAM_Mem_DQ_pin(fpga_0_Micron_RAM_Mem_DQ_pin),

.fpga_0_clk_1_sys_clk_pin(clk100M),

.fpga_0_rst_1_sys_rst_pin(fpga_0_rst_1_sys_rst_pin),

.xps_gpio_0_GPIO_IO_O_pin(dina),

.xps_gpio_1_GPIO_IO_O_pin(addra),

.xps_gpio_2_GPIO_IO_I_pin(xps_gpio_2_GPIO_IO_I_pin),

.xps_gpio_3_GPIO_IO_I_pin(xps_gpio_3_GPIO_IO_I_pin),

.xps_gpio_4_GPIO_IO_

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1