FPGA为系统控制核心方案设计书的VGA显示的数字示波器Word文档格式.docx
- 文档编号:22152040
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:16
- 大小:24.99KB
FPGA为系统控制核心方案设计书的VGA显示的数字示波器Word文档格式.docx
《FPGA为系统控制核心方案设计书的VGA显示的数字示波器Word文档格式.docx》由会员分享,可在线阅读,更多相关《FPGA为系统控制核心方案设计书的VGA显示的数字示波器Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
5.总结10
参考文献10
1.方案论证与比较
1.1控制器部分
方案一:
采用80C51单片机为控制核心。
将输入信号通过外接触发电路产生触发信号,通过A/D转换将模拟信号转换成数字信号,再通过单片机将数据锁存至外部RAM,然后由单片机控制将数据送至D/A输出。
方案二:
用FPGA可编程逻辑器件作为控制及数据处理的核心,外接触发电路实现触发功能,利用FPGA的层次化存储器系统结构,使用FPGA内部集成的基本逻辑功能块配置SRAM对采集信号进行存储,完成设计指标。
方案一的结构较为简洁,但在满足题目的实时采样频率的要求下,A/D的最高采样速度达10MHz,由普通单片机直接处理这样速率的数据难以胜任,采用高档单片机甚至采用DSP芯片,将大大增加开发的成本。
而且目前常用的外接RAM芯片时钟周期一般为40MHz~50MHz,FPGA更能满足高速数据存储的要求。
方案二由于FPGA可在线编程,大大加快了开发速度。
电路中的大部分逻辑控制功能都由单片FPGA完成,多个功能模块如采样频率控制模块、数据存储模块都集中在单个芯片上,大大简化了外围硬件电路设计,增加了系统的稳定性和可靠性。
FPGA的高速性能比其他控制芯片更适合于高速数据采集和处理,而且使用FPGA内部存储模块完成输入信号的量化存储,在存储速度上有着外接RAM无法比拟的优势。
综上所述比较可知,方案二既可满足题设基本要求又能充分发挥扩展部分,电路简单,易于控制,所以采用该方案。
1.2A/D模数转换模块
根据题目要求,A/D转换精度为8bits,所以对A/D的选择有以下两个方案。
ADC0809是8位逐次逼近型A/D转换器。
ADC0809对输入模拟量要求:
信号单极性,电压范围是0~5V,若信号太小,必须进行放大;
输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
ADS931E是一个高度级联采样、转换频率为33MHz的8位数模转换器。
ADS931E内部含有时钟电路,其工作时钟可由外部产生,也可以由主控芯片给出,方便灵活。
ADS931E采用了电压跟随,保证了信号不会有很大衰减,输入模拟量的电压范围为2.7~5.25V,对于小信号,带有可调节的直流偏。
由于ADC0809对输入信号的要求较高,并且其内部没有时钟电路,如果要保证得到标准的波形信号,则必须要搭建必要的外围电路,增加了难度。
而ADS931E内部的芯片可以直接解决问题,方便灵活。
综上所述,方案二更适合本设计的采用。
1.3VGA显示器
CRT显示器画面清晰、色彩真实,图像无扭曲、视角更广阔。
由于CRT显示器的基本工作原理是依靠高电压激发的游离电子轰击显示屏而产生各种各样的图像,技术已经十分成熟,没有太多的发展余地。
受限于此,传统CRT显示器在体积、重量、功耗等方面露出自己的劣势【3】。
液晶显示器以其体积小、厚度薄、重量轻、耗能少、无电磁辐射、画面无闪烁、避免几何失真、抗干扰等诸多优点被业界和用户一致看好。
经过比较,本设计采用方案二。
2.理论分析与计算
2.1采样方式
实时采样是利用A/D时钟对信号直接采样,按照采样定理,采样速率必须高于信号中最高频率的两倍【1】。
题目要求输入信号的最大频率为500KHz,而实时采样的频率为5MHz,所以本设计的采样方式选用实时采样即可。
实时采样中采取每周期采20个点的方法,以保证取到一个完整的信号波形。
2.2垂直灵敏度分析
设计要求垂直灵敏度为1V/div、100mV/div两档,垂直刻度为8div。
ADS931E输入信号电压通常指定3V,当示波器满刻度显示时,被测信号的幅度将分别为:
VI1=1V/div×
8div=8V,VI2=100mV/div×
8div=0.8V。
A/D转换器的满刻度输入值为VMAX=4V,放大电路的增益AN=VMAX/VIN,(N=1、2)对应于2挡不同垂直灵敏度的增益分别为:
A1=3V/8V=0.375;
A2=3V/0.8V=3.75。
本系统通过软件编程实现增益,很好的解决了这个问题,具体分析见软件详细设计部分。
2.3扫描速率分析
A/D的转换速率取决于被测信号的频率范围,设计要求扫描速度含1μs/div、1ms/div、100ms/div三挡,并且水平显示分辨率等于20点/div,因此对应的采样速率是0.05μs/点、0.05ms/点、5ms/点,则要求A/D的等效采样的最高转换速率为20MSa/s。
3.电路与程序设计
3.1系统总体框图
整个系统的结构如下图1所示。
FPGA的最小系统板采用的是Xilinx公司的EXCD-1可编程片上系统开发板。
由信号发生器设定输出的波形信号,经由触发电路触发的同时由AD转换电路将波形模拟信号转换为数字信号,该数字信号在FPGA的编程控制下在液晶显示器上显示出相应的波形。
通过键盘电路控制FPGA输出数据的变化。
图1系统总体框图
3.2硬件设计
3.2.1触发电路
采用FPGA内部软件触发方式,通过软件设置触发电平,所设置的施密特触发器参数易于修改,从而抑制比较器产生的毛刺。
当采样值大于触发电平,则产生一次触发。
该方式充分利用了FPGA的资源,减少外围电路,消除硬件毛刺产生的干扰,易于调整触发电压。
触发电路如图2所示。
高速比较器选用响应时间为20ns的高速低功率快速采样保持放大器LM360。
电阻R2、R3用于调节或选择触发电平,分别为3KΩ
和2KΩ,后者为可调电位器,可以在0~2V范围内任意选择触发电平。
图2触发电路
3.2.2A/D转换电路
设计中采用TexasInstruments公司的ADS931,它是一款8位的,具有最高33M采样频率的高性能AD转换芯片。
ADS931E为SSOP-28封装的模/数转换器;
内部采用闪烁式AD及多级流水线式结构,因而不失码,使用方便、准确度高;
在+3.3v电压下,它的功耗仅有69mW。
ADS931E采用了电压跟随,保证信号不会有很大衰减,完全满足设计要求。
ADS931E的内部结构图见附录2。
3.3软件设计
3.3.1系统软件流程设计
如下图4所示,在信号示波器上调出要输入的波形,当信号输入时,系统对输入信号的频率进行测量进行实时采样,并利用键盘设置输入来选择液晶显示器的显示功能和实现对扫描速度的选择。
图4系统软件总体流程图
3.3.2触发器设计
连续触发时,按照要求一旦产生触发,就采集、存储一个界面的数据。
在未存满一个之前即使再次满足触发条件也不会产生触发作用【2】;
但是在存满一个界面后,如果再次产生触发则开始一个新的页面的采集、存储过程,并以新的数据取代已经存储的数据,依此规律随着触发信号的出现不断重复上述过程。
3.3.3VGA显示部分设计
本设计采用FPGA设计VGA接口将要显示的数据直接送到显示器。
VGA控制电路时序产生原理框图见附录3。
在分频模块中对50M系统时钟进行分频产生50M/7Hz的像素时钟。
VGA显示控制模块在像素时钟的驱动下首先产生行频信号,行频信号进行分频产生58Hz场频信号【1】。
由于场频信号与行频信号有严格的时序匹配,本设计利用对行频信号进行计数分频来产生场频信号。
3.3.4键盘设计
PS/2键盘的功能各项功能如下:
调频键:
3个,可按题目要求的三个频率档位调节所显示波形的频率。
调幅键:
2个,可按题目要求的两个幅度档位调节所显示波形的幅度。
存储键:
按动“存储”键,仪器即可存储当前波形到RAM。
调用键:
按下“调用”键,仪器可以调出存储的波形予以显示。
暂停键:
按下“暂停键”,显示器上固定当前显示的波形。
4.测试方案与测试结果
4.1测试仪器与设备
本设计对波形测试所选用的相应仪器与设备的相关信息如表1所示。
表1测试仪器与设备列表
仪器名称
型号
技术指标
用途
示波器
ADS1024C
0Hz~100MHz
检测输出波形
函数信号发生器
TFG2030
0Hz~20MHz
输入信号信号源
4.2测试结果
4.2.1触发功能测试
通过键盘上相应触发功能键的输入,液晶显示屏上波形产生的相应变化如下所述:
(1)触发电平连续可调测试:
调节触发电路电位器,输出波形起始点可以连续变化。
(2)上升沿、下降沿测试:
任意调节触发电平的高低,输出波形的起始点相应处于上升沿或下降沿。
4.2.2垂直灵敏度及扫描速度的测试
本设计的输入信号选取正弦波,对输出波形垂直灵敏度和扫描速度的测试结果分别如表2、表3所示。
表2垂直灵敏度测试数据表
档位
1v/div
100mv/div
幅度
1v
5v
8v
100mv
500mv
800mv
频
率
10hz
1.0v
4.8v
7.6v
90mv
480mv
770mv
1Khz
0.9v
4.9v
7.8v
110mv
470mv
760mv
100Khz
0.8v
4.4v
7.7v
460mv
误差
10%
6%
3.75%
4.2%
表3扫描速度测试数据表
档位
1us/div
1ms/div
100ms/div
周期
20us
10us
2us
2ms
5ms
10ms
100ms
25ms
12.5ms
3v
18.7us
9.5us
2.10us
1.9ms
4.7ms
9.6ms
96ms
24ms
12.2ms
0.3v
18.8us
9.6us
2.09us
1.8ms
4.8ms
9.7ms
97ms
22ms
12.1ms
5mv
18.5us
9.7us
4.6ms
9.5ms
6.7%
4%
4.8%
3.3%
2.7%
由表2、表3中数据知,测量结果都在测量误差允许范围内,满足题目要求的误差≤10%,很好地完成了设计任务
4.2.3存储/调用测试
通过键盘上相应功能键的输入,可得连续触发模式下,按“存储”键,存储当前波形,波形稳定;
去掉输入信号,按“调用”键,显示存储的波形。
5.总结
设计采用FPGA最小系统为控制核心,实现了一款具有特色的VGA显示数字示波器。
通过测试,系统不但完成了基本要求,也完成了发挥部分的要求。
经过几天的努力实践,不断的测试,不断的改进电路和程序,我们最终圆满完成了设计任务。
用EXCD-1可编程片上系统开发板实现了该系统不可比拟的优越性,集中体现在能耗低、实现功能齐全、外围电路简单、时间计算精确以及可维护性强。
在设计过程中,我们不仅仅使自身水平得到了检验,更重要的是学到很多课本上没有的知识,使自己得到了进一步的提高。
同时也特别感谢各位老师和同学的帮助和支持,使我们这次设计能够顺利完成。
参考文献
[1]潘松,黄继业.《EDA技术实用教程》.科学出版社,2002年第一版
[2]邢建平,曾繁泰著.《VHDL程序设计教程》,清华大学出版社,2005.11
[3]全国大学生电子设计竞赛组委会,《全国大学生电子设计竞赛获奖作品汇编》,北京:
北京理工大学出版社,2004.8
附录
附录1、PS/2键盘接口原理图
附录2、ADS931E的内部结构图
附录3、VGA控制电路时序产生原理框图
附录4、FPGA最小系统框图
附录5、ADS931的应用电路
附录6顶层源程序
libraryIEEE。
useIEEE.STD_LOGIC_1164.ALL。
useIEEE.STD_LOGIC_ARITH.ALL。
useIEEE.STD_LOGIC_UNSIGNED.ALL。
----Uncommentthefollowinglibrarydeclarationifinstantiating
----anyXilinxprimitivesinthiscode.
--libraryUNISIM。
--useUNISIM.VComponents.all。
entitytop_vgais
port(clk:
instd_logic。
--50mhz
--reset:
hsy:
outstd_logic。
vsy:
r,g,b:
ads931:
instd_logic_vector(7downto0)。
ad_clk_out:
outSTD_LOGIC。
ads931_out:
outstd_logic_vector(7downto0)。
oe:
outSTD_LOGIC)。
endtop_vga。
architectureBehavioraloftop_vgais
signalxaddr,yaddr:
std_logic_vector(9downto0)。
signalclk25:
std_logic。
signalrom_addr:
std_logic_vector(3downto0)。
signalrom_data:
std_logic_vector(15downto0)。
signalr1,g1,b1,r2,g2,b2,r3,g3,b3,r4,g4,b4:
signalwe:
--signalram_addr:
std_logic_vector(9downto0)。
signalram_data:
std_logic_vector(7downto0)。
signaladdr_ram:
signalq1,q2,q3,q4,q5,q6:
std_logic_vector(3downto0)。
signalreset:
std_logic:
='
1'
。
componentpin--定制的ROM
port(
addr:
INstd_logic_VECTOR(3downto0)。
clk:
INstd_logic。
dout:
OUTstd_logic_VECTOR(15downto0))。
endcomponent。
componenttextvga--用于显示汉字
port(datain:
instd_logic_vector(15downto0)。
clk25:
--25mhz
hcnt:
instd_logic_vector(9downto0)。
vcnt:
rom_addr:
outstd_logic_vector(3downto0)。
outstd_logic)。
componentcont2
port(clk:
--50mhz
reset:
clk25mhz:
outstd_logic)。
componentvga
Port(clock:
instd_logic。
reset:
hsyncb:
outstd_logic。
vsyncb:
Xaddr:
outstd_logic_vector(9downto0)。
Yaddr:
outstd_logic_vector(9downto0))。
componentxyrgb
port(
hcnt,vcnt:
r,g,b:
componentwave_ram
INstd_logic_VECTOR(9downto0)。
din:
INstd_logic_VECTOR(7downto0)。
OUTstd_logic_VECTOR(7downto0)。
we:
INstd_logic)。
componentwavevga
port(datain:
ram_addr:
outstd_logic
)。
componentads931e
inSTD_LOGIC。
ad_clk_out:
oe:
addr_ram:
outstd_logic_vector(9downto0))。
componentnum_vga
Port(q1:
inSTD_LOGIC_VECTOR(3downto0)。
q2:
q3:
q4:
q5:
q6:
hcnt:
inSTD_LOGIC_VECTOR(9downto0)。
vcnt:
clk25:
r:
g:
b:
componenttop_jipin
c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA 系统 控制 核心 方案设计 VGA 显示 数字 示波器
![提示](https://static.bdocx.com/images/bang_tan.gif)