版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VGA显示的多通道数字示波器目录0摘要 , 第 02页1 方案论证与设计 - 第03 页 1.1 控制部分选择 . 第03 页 1.2 VGA显示 .第03页2理论分析与计算 第04页2.1实时采样与等效采样的选择 . 第04页 2.2 采样速率分析 -第04页 2.3 显示分辩率分析 -第04页 三 电路设计: - -第05页3.1信号调理电路 -. -第05页 3.2 AD电路 第05页 3.3 触发电路设计 -第05页 四 FPGA内部逻辑实现:第06页4.1 触发电路部分 -第06页4.2分辨率调节部分-第06页4.3 RAM存储部分 第06页4.4 flash存储部分 -第06页4.
2、5 数字信号发生部分第06页4.6 VGA显示部分 -第07页4.7嵌入的软核处理器MicroBlaze模块 第07页五 软件设计: -第08页六 测试方案与测试结果: -第08页七 总结: -第09页 八 参考文献: -第09页 附录; - -第10页VGA显示的多通道数字示波器摘要: 本设计是基于sopc技术的VGA显示数字存储示波器。采用在FPGA内嵌入32位软核处理器MicroBlaze的 SOPC技术为核心来构建系统,充分利用FPGA中的可编程逻缉器件资源构成各部分数字电路,处理器与eda技术相互补充,形成了整个基于VGA显示的数字示波器的核心,完成高速数据采样控制、数据处理及波形显
3、示等系统功能。设计分为模拟信号预处理电路、AD采样电路、触发电路、RAM存储、Flash存储、可调数字信号产生、MicroBlaze控制模块、VGA显示输出与人机交互接口控制。设计中采用实时采样,AD采样后的数据经过触发电路,满足触发条件后送到RAM中,然后显示在显示器上,并能够相应按键存储命令,实现波形数据的非易失性存储。设计中发挥可编程逻辑器件和处理器各自优势,符合现代设计理念,满足设计要求。关键词: SOPC Microblaze 数字存储 实时采样 VGA1 方案论证与设计:1.1 控制部分选择 方案一: 选择加入一个单片机做为处理器,这种方案当然可以发挥处理器自身的优势,实现灵活控制
4、,但是普通的单片机无法实现高速的数据处理,且本身的资源有限,满足同时处理大量的数据要求,若选用高档的单片机则过于昂贵,且性能提升不明显,性价比太低。 方案二:使用嵌入的软核处理器MicroBlaze与FPGA内部逻辑电路结合的工作方式,物尽其用,一方面发挥处理器控制灵活的优势,一方面充分发挥硬件地电路的执行的高速,二者结合,优势互补。电路中的大部分逻辑控制功能都由单片FPGA完成,多个功能模块如采样频率控制模块、数据存储模块都集中在单个芯片上,大大简化了外围硬件电路设计,增加了系统的稳定性和可靠性。据此,我们选择了方案二。模拟信号运算放大调节AD采样RAMVGA显示控制数字信号产生AMD FL
5、ASH键盘输入FPGAMicroBlaze 控制采样控制VGA显示时间控制触发电路存储 回放 1.2 VGA显示方案一:将所有的要显示点的数据送到RAM中,当VGA进行扫描时通过查询RAM中的颜色数值显示到屏幕上,从而得出要显示的图形和文字,这种方案相当于做了一个显示图形,只要将每屏显示点的计数的查询就可得到颜色数据数据,这个方案的显示简单,缺点是储存640*480*9=2764800空间过大,而且在储存器之前要进行大量的数据计算。方案二:显示坐标比较法,将要显示点的坐标与图形数据进行数学比较,得到是否要显示,可以多个比较得到多个要显示的数据,从而得到显示数据,系统具有成本低、结构简单、应用灵
6、活的优点此部分查找需要在显示器上显示的几部分数据:底色,汉字,示波器的显示框,波形数据,将此部分的数据综合,这几部分各自有不合的优先级,当多部分重叠时,根据优先级显示出来。此部分按固定频率刷新显示屏,显示系统,可以在不使用VGA显示卡和计算机的情况下,实现VGA图像的显示和控制。所以我们选择了方案二。2 理论分析与计算:2.1 实时采样与等效采样的选择 通常采样是按固定顺序进行,并且采样顺序与示波器屏幕上显示的顺序相同 ,这就是实时采样,实时采样技术的好处就是可以捕获单个信号。题目给出AD的采样速率为10M,当档位在1us/div,显示器上选择分辨率为40点/div,此时显示器上每四个相邻扫描
7、点为相同的幅值,但被检测信号的频率范围是在01MHz,即在最高频率1MHZ时,实时采样可以在每周期采10个点以保证取到一个完整的信号波形。等效时间采样又称重复采样,在满足以下两个条件时:1.波形必需重复;2 必需稳定触发,示波器可以从多个波形周期获得波形不同点的采样,然后在屏幕上完整恢复波形,它包含顺序采样和随机重复采样两种技术,其好处 是可用很慢的模数转换器。,且题目要求能检测单次按键的波形,等效采样不能完成非周期波形的采样,故选用实时采样方式。2.2 采样速率分析显示波形的水平轴的调节通过采样点的时间间隔的变化来调整,题目要求有1us/div,1ms/div,1s/div三个档位,并且水平
8、显示分辨率 为20点/div,因此对应的采样速率是25ns/点、25us /点、25ms/点,当显示波形的水平分辨率为1us/div时,能分辨的信号最高频率为1MHZ ,由奈圭斯特定理要求采样速率至少为2MHZ才能使信号不失真;分辨率为1ms/div时,可以分辨的信号最高频率为1KHZ,采样速率至少应为2KHZ,同理分辨率为1s/div时,采样速率至少为2HZ。本设计中保持AD的采样速率为10M,完全可以满足实际需求。2.3 显示分辩率分析显示波形的垂直分辨率:显示RAM中的数据为12位,其中模拟信号经AD后的值为10位,两路数字信号的值各占1位,要求中有垂直分辨率为 10mv/div,100
9、mv/div,1v/div,垂直刻度为8 div。 A/D转换器的输入信号电压幅度为05v,当示波器满刻度显示时,被测信号的幅度将分别为:VI11V/div8div=8V,VI2=0.1V/div8div=0.8v,VI3=0.01v/div8div=0.08V。A/D转换器的满刻度输入值为VMAX=5V8v,根据题目要求通过外部输入来信号来改变分辨率以适应不同精度。将AD采样的值和数字信号的值据当前档位进行计数存储,即1us/div时每10个点保存一个,1ms/div时每10000个点保存一个,1s/div时每采样10000000个点保存一个。 3 硬件电路设计:在Xilinx的EXC1控制
10、板的基础上,为实现系统功能,所设计的外围硬件电路主要包括:电源电路、信号调理电路、A/D转换电路、触发电路、测试用按键抖动电路及键盘接口电路。下面只叙述其主要功能实现部分。3.1信号调理电路 由于模拟信号输入为2.5V,而所用A/D有效输入为2Vp-p,因此需要输入信号进行比例缩小,因此需要设计一个比例运算电路。本设计采用了高速放大器AD826来实现这一功能。AD826可以作为出色的ADC/DAC缓冲器或有源滤波器用于数据采集系统中,0.01%建立时间为70 ns,最大输入失调电压低至2mV。利用AD826来搭建一个反向比例运算电较路,其运算公式为:根据设计要求,取R=1K ,R12.5R=2
11、.5K, RpR1Rf0-71K。为了保证信号显示与输入信号同相,再采用AD826搭建反相器,将输出信号接入到后面的AD876中进行采样转换。信号调理电路见附录1.1。3.2 A/D转换电路 AD876是一款CMOS、160 mW、10位、20 MSPS模数转换器(ADC),内置一个片内输入采样保持放大器。它采用多级流水线架构,内置输出纠错逻辑,可提供精确的性能,并保证在整个工作温度范围内无失码。参考输入的驱动和检测连接将外部压降降至最低。可以将AD876置于待机工作模式,此时功耗降至50 mW以下。模拟输入端接受2Vp-p值范围内胡信号,数字I/O接口支持+5 V或+3.3 V逻辑。可以将数
12、字输出引脚置于高阻态;输出格式为标准二进制编码。A/D转换电路图见附录1、2,1、3。 3.3 触发电路设计 数字存储示波器中触发电路的作用是:在满足触发条件时开始对采集的数据按规定的起点地址进行存储和显示。触发电路如图所示。电阻R2、R3用于调节或选择触发电平,分别为和20KW,后者为可调电位器,可以在05V范围内任意选择触发电平。 触发电路图见附录1、6。 4 FPGA内部逻辑实现: FPGA内部逻辑图见附录:1.8。 4.1 触发电路部分当启动AD采样后,把从AD进来的数据与触发字进行比较,一旦满足设定条件时,会产生触发信号,此信号送到RAM控制器端。由外部触发电路发出触发信号与内部的两
13、路数字信号进行触发源选择后,RAM控制器得到触发后将采样数据写入到RAM中。当RAM在进行写数据过程中触发信号是被抑制的;当RAM达到预触发深度时,释放触发信号,等待下一次触发源的到来。4.2分辨率调节部分原理同2.2,此部分输入10MHz的AD采样的数值和FPGA内部产生的数字信号,电路内部有三个不同进制的计数器,一个为10进制,工作时每十个点输出一个用来达到1us/div的精度要求.,还有一个10000进制,一个10000000进制的计数器,三个计数器的使能端由当前档位控制,当计数器发生进位时输出当前的采样值和数字信号的值。当用户调节水平分辨时,使能不同的计数器,实现调节。 垂直分辨力上各
14、个采样点的幅度对应在显示屏的纵坐标,当调节示波器的垂直分辨率时,根据现在的档位将波形压缩或伸展,即将点的坐标做相应的变化。4.3 RAM存储使用一个双口RAM,写和读分开,波形数据满足触发条件时送进RAM,存储了1024个点,其中前560组送住VGA显示。4.4 FLASH存储部分题目要求掉电不丢失,因此我们使用开发板上的一块AMD的型号为AM29LV160DB的FLASH存储器,当按下存储健后,FLASH把RAM中的数据写到FLASH中,根据资料中的读写时序图,使用状态机实现这个过程,当按下回显的按键时将FLASH中的数据读回图像显示RAM,再显示出来。4.5 数字信号发生部分 利用DDS的
15、原理,在FPGA内部生成一个信号发生器。主要包括频率控制寄存器、高速相位累加器和比较器三个部分。频率控制寄存器可以串行或并行的方式装载并寄存用户输入的频率控制码;而相位累加器根据频率控制码在每个时钟周期内进行相位累加,得到一个相位值;比较器则对该相位值计算数字化正弦波幅度输出。下图为可调数字信号产生的流程图:步长控制字累加器比较器相位控制字比较器时钟A信号B信号相位累加4.6 VGA显示部分 将要显示点的坐标与图形数据进行数学比较,得到是否要显示,可以多个比较得到多个要显示的数据,从而得到显示数据,系统具有成本低、结构简单、应用灵活的优点此部分查找需要在显示器上显示的几部分数据:底色,汉字,示
16、波器的显示框,波形数据,将此部分的数据综合,这几部分各自有不合的优先级,当多部分重叠时,根据优先级显示出来。4.7嵌入的软核处理器MicroBlaze模块MicroBlaze是XILINX的一款32位软核处理器,采用哈佛体系结构,基于软核的SOPC系统中,本地存储器、处理器总线、内部外设、外设控制器和存储器控制器必须使用FPGA的通用逻辑实现。由于持续的要求嵌入式系统具有更多的功能、更好的性能和灵活性,因此传统上的设计方法已经不适应这种要求在SOPC阶段,设计已经从以硬件描述语言HDL为中心的硬件设计,转换到了以C语言进行功能描述为中心。形成了以C语言描述SOPC的功能,而用HDL语言描述硬件
17、的具体实现方法。这也是和传统的FPGA设计和嵌入式系统设计最大的区别,即软件和硬件的真正的协同设计。 作为新的嵌入式系统的设计平台,使用SOPC进行嵌入式系统设计具有以下几个方面的优点:1、定制 2、延缓过时3、降低元件成本4、硬件加速Xilinx公司的XPS工具包用于开发基于FPGA平台的嵌入式系统,从图可以看出该工具支持传统的硬件和嵌入式软件的设计流程。软件和硬件融合5 软件设计:使用XILINX的开发套件EDK,我们在设计中把处理器当做一个模块,嵌入到FPGA中,发挥处理器控制灵活的优势,处理数据。用来取入用户的按键,根据不同的按键作出响应。然后输出会和FPGA内部逻辑相连,达到控制电路
18、功能的作用。 软件设计:见附录2:6 测试方案与测试结果:6.1 测试方案,a 使用信号发生器产生一组幅度为1.v、频率为100K的正弦波,调节数字信号发生部分,产生两路频率也为100K的方波,把输入到我们的示波器中记录数据,然后调节示波器的档位 1v/div,1us/div,观察并记录10个点数据b 使用信号发生器产生一组幅度为400m.v、频率为250HZ的锯齿波,调节数字信号发生部分,产生两路频率也为250HZ的方波,把输入到我们的示波器中记录数据,然后调节示波器的档位 100mv/div,1ms/div,观察并记录个点数据。(我们扩展了示波器的读书功能,在显示屏上有一条垂直显示的标尺,
19、标尺与输入波形的交点坐标会显示出来,通过调节这个标尺,我们得到下面的数据)ab1038620.581230.96-41540.95-2850.6239560.24-107-0.66-3908-0.92269-0.9740510-0.541811-0.06-394注:a 组数据单位是1v/div,b 组单位是100mv/divc 设置为存储显示模式,接入自制的按键电路,记录按键抖动波形。 示波器接在1v/div,1ms/div,记录波形数据。6.2 测试结果经观察按键在按下和即将松手的时刻约有20ms左右的抖动波形,中间时刻基本稳定,与理论值基本相符,说明我们的示波器工作正常。7 总结: 本设计
20、使用了核心器件为XILINX FPGA的EXCD-1 开发板,实现了一款基于VGA显示的数字存储示波器。通过测试,系统完成了基本要求,也完成了大部分发挥部分的要求。在我们的努力之下,一点点地攻克难关,一点点的改进,最终成功地完成设计。在这次比赛中,首先要感谢我们的指导老师,感谢他对我们的帮助和指导,感谢我们的队员,有了他们的努力和付出,我们的设计才能顺利进行。在设计的过程中,对自身是一个很大的提升,更加体会到团队协作的重要性。再次表达我们诚挚的谢意!向为了这次比赛而努力的人们!8 参考文献:1 XILINX 公司 MicroBlaze Processor Reference Guide2 XI
21、LINX 公司 DS312 Spartan 3E FPGA Complete Data Sheet3 夏宇闻 verilog 数字系统设计教程 北京 北京航空航天大学 出版社,20034 孙航 XIlinx可编程逻辑器件的高级应用与设计技巧,北京,电子工业出版社,2004附录1、主要路原理图1、信号调理原理图2、A/D模块AD876参考电压电路原理图3、A/D模块总体电路图4、电源模块电路原理图5、键盘电路6、触发电路原理图7、自制按键抖动电路 8.FPGA内部逻辑实现图 附录2、主要程序1、# Created by Base System Builder Wizard for Xilinx
22、EDK 10.1.03 Build EDK_K_SP3.6# Sun Sep 19 22:50:27 2010# Target Board: Hep Hep EXCD 2-500 Board Rev C# Family: spartan3e# Device: XC3S500E# Package: PQ208# Speed Grade: -4# Processor: microblaze_0# System clock frequency: 50.00 MHz# On Chip Memory : 8 KB# Total Off Chip Memory : 1 MB# - RAM = 1 MB#
23、#2、户的按键做出响应程序部分/*/ Located in: microblaze_0/include/xparameters.h#include xgpio_l.h#include xparameters.h#include xgpio.h#include xbasic_types.hXGpio key,output;volatile u32 out_put;/xx xx x x xx xx xxxx xx xx xx 共 18位 /波形左移 波形右移标尺左移/右移 暂停/继续 开显示/显示 时间尺度 幅值单位 数字信号频率调节 存储回放 多道显示选择 volatile u8 h_scale
24、,v_scale,trig,disp,channel,mov; volatile u8 freq,vga_on_off,pause_run,,cursor_left.cursor_right;/ 函数名 : delayus delayms/ 功能描述 : 延时2us 1ms/ 参数 : Xuint16 delay/ 返回值 : void /static void delayus(Xuint16 delay) volatile Xuint16 i, j; for (i = 0; i delay; i+)for (j = 0; j 10; j+); static void delayms(Xuin
25、t16 delay) volatile Xuint16 i,j; for(i=0;idelay;i+) for(j=0;j3785;j+); /*Function: key_scan()3、scription: 扫描键盘并返回键值Calls: nonoCalled By: mainTable Accessed: Table Updated: /Input: /。Output: Return: 按键值Others: */Xuint8 key_scan() Xuint8 value; Xuint8 temp,sccode,recode; pio_SetDataDirection(&key,1,0x
26、00);/设置为输出 /P1=0xf0; XGpio_DiscreteWrite(&key,1,0xf0);/输出0xf0 delayus(1); XGpio_SetDataDirection(&key,1,0xf0);/设置为输入 if(XGpio_DiscreteRead(&key,1)&0xf0)!=0xf0) /若读回值不是0xf0 delayms(5); if(XGpio_DiscreteRead(&key,1)&0xf0)!=0xf0) /P1=0xf0;XGpio_SetDataDirection(&key,1,0x00);/设置为输出 XGpio_DiscreteWrite(&
27、key,1,0xf0);/输出0xf0/temp=P1; XGpio_SetDataDirection(&key,1,0xf0);/设置为输入 temp=XGpio_DiscreteRead(&key,1); /读回值sccode=temp&0xf0;/取高四位 /P1=0x0f; XGpio_SetDataDirection(&key,1,0x00);/设置为输出 XGpio_DiscreteWrite(&key,1,0x0f);/输出0x0f/temp=P1;XGpio_SetDataDirection(&key,1,0x0f);/设置为输入 temp=XGpio_DiscreteRead
28、(&key,1); /读回值recode=temp&0x0f;/取低四位 temp=sccode|recode;/xil_printf( temp :%x rn,temp); switch(temp) case 0xEE:value=0;break; case 0xDE:value=1;break; case 0xBE:value=2;break; case 0x7E:value=3;break; case 0xED:value=4;break; case 0xDD:value=5;break; case 0xBD:value=6;break; case 0x7D:value=7;break;
29、 case 0xEB:value=8;break; case 0xDB:value=9;break; case 0xBB:value=10;break; case 0x7B:value=11;break; case 0xE7:value=12;break; case 0xD7:value=13;break; case 0xB7:value=14;break; case 0x77:value=15;break; default: value=16;break; else value=16; else value=16; return (value); int main (void) u16 re
30、sult; XGpio_Initialize(&key,XPAR_KEYBOARD_DEVICE_ID); /初始化键盘接口 XGpio_Initialize(&output,XPAR_OUTPUT_DEVICE_ID);/初始化输出接口/* XGpio_SetDataDirection(&output,1,0x0); while(1) if(result=key_scan()!=16) xil_printf(press button %d rn,result); switch(result) case 0:/ VGA显示的开关 if(vga_on_off) vga_on_off=0; els
31、e vga_on_off=1; out_put=out_put&ox3bfff(vga_on_off14); while(key_scan()=result); break; case 1:/调节水平显示的时间单位 +h_scale; if(h_scale=3) h_scale=0; out_put=out_put&0x3cfff|(h_scale12); while(key_scan()=result); xil_printf(h_scale %d rn,h_scale); break; case 2:/调节垂直显示幅度单位 +v_scale; if(v_scale=3) v_scale=0
32、; out_put=out_put&0x3f3ff|(v_scale10); xil_printf(v_scale %d rn,v_scale); while(key_scan()=result); break;case 3: /增加数字信号的频率 +freq; if(freq=11) freq=0; out_put=out_put &0x3fc3f|(freq6);s xil_printf(freq up %d rn,freq); while(key_scan()=result); break; case 4: /减小数字信号的频率 if(freq=0) freq=11;-freq; out_put=out_put &0x3fc3f|(freq6); xil_printf(freq down %d rn,freq); while(key_scan()=result); break; case 5: /存储波形 trig=1;out_put=out_put&0x3ffdf|(trig5);xil_printf(storagern);while(key_scan()=result); break; case 6: /回放波形 disp=1;out_put=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年社会工作者职业资格考试(初级)押题试卷及答案(七)
- 2026 一年级上册音乐《唱音阶小练习》课件
- 2026年幼儿园午睡乖宝宝
- 2026年认识夏天幼儿园
- 2026年航空地勤人员旅客引导技巧培训计划
- 2026年医德医风考试题库
- 幼儿园食品安全知识情景模拟培训
- 幼儿园食品安全领导小组及工作职责
- 2026年5月24日软考嵌入式系统设计师考试真题回忆版
- 隧道通风施工工艺流程
- 2025年浙江省温州市平阳县部分事业单位统一招聘工作人员笔试历年典型考题及考点剖析附带答案详解
- 造价咨询考核奖惩制度
- 肯德基2025品牌年终报告
- 【《基于Java web宿舍管理系统设计与实现》14000字(论文)】
- 万达广场运营管理制度
- 老年共病个体化诊疗的指南更新策略
- (2025)中国甲状腺疾病诊疗指南
- 2025年储能电站运维员实操技能真题及答案
- JJG3662004接地电阻表高清晰版
- 2025-2026学年广东省广州八十六中七年级(上)期中英语试卷
- 2025江苏南京市交通集团相关财务岗位公开招聘57人笔试历年常考点试题专练附带答案详解试卷2套
评论
0/150
提交评论