【摘 要】本系统是以EXCD-1可编程片上系统开发板为基
础,采用FPGA为系统控制核心设计的VGA显示的数字示波器。利用VHDL语言编程,辅以边缘触发电路和A/D转换电路,实现了任意波形的单次触发、连续触发和存储回放功能,并按要求进行了垂直灵敏度和扫描速度的档位设置。采集外部输入信号时,信号经A/D转换后的数字信息送入FPGA内部的SRAM进行高速缓存,并将结果送给VGA示波器进行显示,完成了对中、低频信号的实时采样和数据存储回放。经测试,系统整体指标良好,垂直灵敏度和扫描速度等各项指标均达到设计要求。
【关键字】 FPGA ADS931E 触发电路 VGA显示
Abstract: The sysytem which adopts the VGA display, takes the EXCD-1 programmable piece on the system development board as the base and uses FPGA as the control system nucleus is a digital oscillograph adopting the VGA display. Use the VHDL language programming, auxiliarying by edge trigger circuit and A/D Converting circuit, to realize single triggering of random profile, continuous triggering and the memory playbacking function. In addition to, it has carried on position establishment of the vertical sensitivity and the scanning velocity according to the request. When gathering the external signal, it carries on the high speed buffer through transforming after A/D sending in FPGA the external input signal the interior pair of mouth RAM, and gives the result through the VHDL programming to the VGA oscilloscope to carry on the demonstration.Therefore, it has completed to the middle and low-frequency signal real-time sampling and data storage playbacking. After the test, the overall target of the system is good. Each target, such as the vertical sensitivity and the scanning velocity, achieves the design requirements. Key words: FPGA A/D conversion Trigger circuit VGA display
0
- !
目录
1. 1 控制器部分 .................................................................................................................................. 4 1. 2 A/D模数转换模块 ........................................................................................................................ 4 1. 3 VGA显示器 .................................................................................................................................... 5
2. 理论分析与计算 ........................... 5
2. 1 采样方式 ...................................................................................................................................... 5 2. 2 垂直灵敏度分析........................................................................................................................... 5 2. 3 扫描速率分析............................................................................................................................... 5
3. 电路与程序设计 ........................... 6
3. 1 系统总体框图............................................................................................................................... 6 3. 2 硬件设计 ...................................................................................................................................... 6
3. 2. 1 触发电路 ........................................................................................................................ 6 3. 2. 2 A/D转换电路 ................................................................................................................ 7
3. 3 软件设计 ...................................................................................................................................... 7
3. 3. 1 系统软件流程设计 ........................................................................................................ 7 3. 3. 2 触发器设计 .................................................................................................................... 7 3. 3. 3 VGA显示部分设计 .......................................................................................................... 8 3. 3. 4 键盘设计 ........................................................................................................................ 8
4. 测试方案与测试结果 ....................... 8
4. 1 测试仪器与设备........................................................................................................................... 8 4. 2 测试结果 ...................................................................................................................................... 8
4. 2. 1 触发功能测试 ................................................................................................................ 8 4. 2. 2 垂直灵敏度及扫描速度的测试 .................................................................................... 9
表2 垂直灵敏度测试数据表 ....................................................................................................... 9
表3 扫描速度测试数据表 ........................................................................................................... 9 档位 .................................................................................................................................................. 9
1us/div .............................................................................................................................................. 9 1ms/div ............................................................................................................................................. 9 100ms/div ......................................................................................................................................... 9
1
- !
周期 .................................................................................................................................................. 9
20us .................................................................................................................................................. 9 10us .................................................................................................................................................. 9 2us .................................................................................................................................................... 9 2ms ................................................................................................................................................... 9 5ms ................................................................................................................................................... 9 10ms ................................................................................................................................................. 9 100ms ............................................................................................................................................... 9 25ms ................................................................................................................................................. 9 12.5ms .............................................................................................................................................. 9
幅度 .................................................................................................................................................. 9
3v ...................................................................................................................................................... 9 18.7us ............................................................................................................................................... 9 9.5us ................................................................................................................................................. 9 2.10us ............................................................................................................................................... 9 1.9ms ................................................................................................................................................ 9 4.7ms ................................................................................................................................................ 9 9.6ms ................................................................................................................................................ 9 96ms ................................................................................................................................................. 9 24ms ................................................................................................................................................. 9 12.2ms .............................................................................................................................................. 9 0.3v ................................................................................................................................................... 9 18.8us ............................................................................................................................................... 9 9.6us ................................................................................................................................................. 9 2.09us ............................................................................................................................................... 9 1.8ms ................................................................................................................................................ 9 4.8ms ................................................................................................................................................ 9 9.7ms ................................................................................................................................................ 9 97ms ................................................................................................................................................. 9 22ms ................................................................................................................................................. 9 12.1ms .............................................................................................................................................. 9 5mv ................................................................................................................................................... 9 18.5us ............................................................................................................................................... 9 9.7us ................................................................................................................................................. 9 2.10us ............................................................................................................................................... 9 1.9ms ................................................................................................................................................ 9 4.6ms ................................................................................................................................................ 9 9.5ms ................................................................................................................................................ 9 96ms ................................................................................................................................................. 9 24ms ................................................................................................................................................. 9 12.2ms .............................................................................................................................................. 9
误差 .................................................................................................................................................. 9
6.7% ................................................................................................................................................. 9 4% .................................................................................................................................................... 9
2
- !
4.8% ................................................................................................................................................. 9 6.7% ................................................................................................................................................. 9 6% .................................................................................................................................................... 9 4% .................................................................................................................................................... 9 3.3% ................................................................................................................................................. 9 4% .................................................................................................................................................... 9 2.7% ................................................................................................................................................. 9
4. 2. 3 存储/调用测试 .............................................................................................................. 9
5. 总 结 ................................... 9 参考文献 ................................... 10
3
- !
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. 2 A/D模数转换模块
根据题目要求,A/D转换精度为8bits,所以对A/D的选择有以下两个方案。 方案一:ADC0809是8位逐次逼近型A/D转换器。ADC0809对输入模拟量要求:信号单极性,电压范围是0~5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
方案二:ADS931E是一个高度级联采样、转换频率为33MHz的8位数模转换器。ADS931E内部含有时钟电路,其工作时钟可由外部产生,也可以由主控芯片给出,方便灵活。ADS931E采用了电压跟随,保证了信号不会有很大衰减,输入模拟量的电压范围为2.7~5.25V,对于小信号,带有可调节的直流偏。
由于ADC0809对输入信号的要求较高,并且其内部没有时钟电路,如果要保证得到标准的波形信号,则必须要搭建必要的外围电路,增加了难度。而ADS931E内部的芯片可以直接解决问题,方便灵活。
综上所述,方案二更适合本设计的采用。
4
- !
1. 3 VGA显示器
方案一: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。
5
- !
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 触发电路
6
- !
3. 2. 2 A/D转换电路
设计中采用Texas Instruments公司的ADS931,它是一款8位的,具有最高33M采样频率的高性能AD转换芯片。ADS931E为SSOP-28封装的模/数转换器;内部采用闪烁式AD及多级流水线式结构,因而不失码,使用方便、准确度高;在+3.3v电压下,它的功耗仅有69mW。ADS931E采用了电压跟随,保证信号不会有很大衰减,完全满足设计要求。ADS931E的内部结构图见附录2。
3. 3 软件设计
3. 3. 1 系统软件流程设计
如下图4所示,在信号示波器上调出要输入的波形,当信号输入时,系统对输入信号的频率进行测量进行实时采样,并利用键盘设置输入来选择液晶显示器的显示功能和实现对扫描速度的选择。
启 动信号发生器设置输入波形N数据处理功能键按下?Y启动波形显示功能键按下?NY设置速度扫描实时采样存储调出显示正常显示量化存储停止
图4 系统软件总体流程图
3. 3. 2 触发器设计
连续触发时,按照要求一旦产生触发,就采集、存储一个界面的数据。在未存满一个之前即使再次满足触发条件也不会产生触发作用【2】;但是在存满一个界面后,如果再次产生触发则开始一个新的页面的采集、存储过程,并以新的数据取代已经存储的数据,依此规律随着触发信号的出现不断重复上述过程。
7
- !
3. 3. 3 VGA显示部分设计
本设计采用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)上升沿、下降沿测试:任意调节触发电平的高低,输出波形的起始点相应处于上升沿或下降沿。
8
- !
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 110mv 460mv 770mv 误差 10% 6% 3.75% 10% 6% 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 18.5us 9.7us 2.10us 1.9ms 4.6ms 9.5ms 96ms 24ms 12.2ms 5mv 误差 6.7% 4% 4.8% 6.7% 6% 4% 3.3% 4% 2.7% 由表2、表3中数据知,测量结果都在测量误差允许范围内,满足题目要求的误差≤10%,很好地完成了设计任务
4. 2. 3 存储/调用测试
通过键盘上相应功能键的输入,可得连续触发模式下,按“存储”键,存储当前波形,波形稳定;去掉输入信号,按“调用”键,显示存储的波形。
5. 总 结
设计采用FPGA最小系统为控制核心,实现了一款具有特色的VGA显示数字示波器。通过测试,系统不但完成了基本要求,也完成了发挥部分的要求。经过几天的努力实践,不断的测试,不断的改进电路和程序,我们最终完成了设计任务。用EXCD-1可编程片上系统开发板实现了该系统不可比拟的优越性,集中体现在能耗低、实现功能齐全、外围电路简单、时间计算精确以及可维护性强。
在设计过程中,我们不仅仅使自身水平得到了检验,更重要的是学到很多课本上没有的知识,使自己得到了进一步的提高。同时也特别感谢各位老师和同学的帮助和支持,使我们这次设计能够顺利完成。
9
- !
参考文献
[1] 潘松,黄继业.《EDA技术实用教程》.科学出版社,2002年第一版 [2] 邢建平,曾繁泰著.《VHDL程序设计教程》,清华大学出版社,2005.11 [3] 全国大学生电子设计竞赛组委会,《全国大学生电子设计竞赛获奖作品汇编》,北京:北京理工大学出版社,2004.8
附录
附录1、PS/2键盘接口原理图
附录2、ADS931E的内部结构图
10
- !
附录3、VGA控制电路时序产生原理框图
附录4、FPGA最小系统框图
附录5、ADS931的应用电路
11
- !
附录6 顶层源程序
library IEEE;
use IEEE.STD_LOGIC_11.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM;
--use UNISIM.VComponents.all;
entity top_vga is
port(clk : in std_logic; --50mhz -- reset : in std_logic; hsy : out std_logic; vsy : out std_logic; r,g,b : out std_logic;
ads931 : in std_logic_vector(7 downto 0); ad_clk_out : out STD_LOGIC;
ads931_out : out std_logic_vector(7 downto 0); oe : out STD_LOGIC); end top_vga;
architecture Behavioral of top_vga is
signal xaddr,yaddr : std_logic_vector(9 downto 0); signal clk25 : std_logic;
signal rom_addr :std_logic_vector(3 downto 0); signal rom_data : std_logic_vector(15 downto 0);
12
- !
signal r1,g1,b1,r2,g2,b2,r3,g3,b3,r4,g4,b4: std_logic; signal we : std_logic;
--signal ram_addr :std_logic_vector(9 downto 0); signal ram_data : std_logic_vector(7 downto 0); signal addr_ram : std_logic_vector(9 downto 0);
signal q1,q2,q3,q4,q5,q6 : std_logic_vector(3 downto 0); signal reset: std_logic:='1';
component pin--定制的ROM port (
addr: IN std_logic_VECTOR(3 downto 0); clk: IN std_logic;
dout: OUT std_logic_VECTOR(15 downto 0)); end component;
component textvga --用于显示汉字
port(datain: in std_logic_vector(15 downto 0); clk25: in std_logic;--25mhz
hcnt : in std_logic_vector(9 downto 0); vcnt : in std_logic_vector(9 downto 0); rom_addr: out std_logic_vector(3 downto 0); r,g,b : out std_logic); end component;
component cont2
port(clk: in std_logic;--50mhz reset : in std_logic;
clk25mhz: out std_logic ); end component;
component vga
Port( clock:in std_logic;--25mhz reset:in std_logic; hsyncb:out std_logic; vsyncb:out std_logic;
Xaddr:out std_logic_vector(9 downto 0);
Yaddr:out std_logic_vector(9 downto 0)); end component;
component xyrgb port(
hcnt,vcnt: in std_logic_vector(9 downto 0); r,g,b: out std_logic);
13
- !
end component;
component wave_ram port (
addr: IN std_logic_VECTOR(9 downto 0); clk: IN std_logic;
din: IN std_logic_VECTOR(7 downto 0); dout: OUT std_logic_VECTOR(7 downto 0); we: IN std_logic); end component; component wavevga
port(datain: in std_logic_vector(7 downto 0); clk25: in std_logic;--25mhz
hcnt : in std_logic_vector(9 downto 0); vcnt : in std_logic_vector(9 downto 0); ram_addr: in std_logic_vector(9 downto 0); r,g,b : out std_logic ); end component;
component ads931e
port(clk : in STD_LOGIC;
ad_clk_out : out STD_LOGIC; oe : out STD_LOGIC;
addr_ram: out std_logic_vector(9 downto 0)); end component;
component num_vga
Port ( q1 : in STD_LOGIC_VECTOR (3 downto 0); q2 : in STD_LOGIC_VECTOR (3 downto 0); q3 : in STD_LOGIC_VECTOR (3 downto 0); q4 : in STD_LOGIC_VECTOR (3 downto 0); q5 : in STD_LOGIC_VECTOR (3 downto 0); q6 : in STD_LOGIC_VECTOR (3 downto 0); hcnt : in STD_LOGIC_VECTOR (9 downto 0); vcnt : in STD_LOGIC_VECTOR (9 downto 0); clk25 : in STD_LOGIC; r : out STD_LOGIC; g : out STD_LOGIC; b : out STD_LOGIC); end component;
component top_jipin port(
14
- !
clk : in std_logic;--50mhz
ads_931 : in STD_LOGIC_VECTOR (7 downto 0);
q1,q2,q3,q4,q5,q6 : out std_logic_vector(3 downto 0); ram_en : out std_logic); end component;
begin
reset<='1';
ads931_out<=ads931;
r<=r1 or r2 or r3 or r4; g<=g1 or g2 or g3 or g4; b<=b1 or b2 or b3 or b4; --we<='1';
u1:cont2 port map (clk=>clk, reset=>reset,clk25mhz=>clk25); u2:vga port map
(clock=>clk25,reset=>reset,hsyncb=>hsy,vsyncb=>vsy,xaddr=>xaddr,yaddr=>yaddr);
u3:xyrgb port map (hcnt=>xaddr,vcnt=>yaddr,r=>r1,g=>g1,b=>b1); u4:pin port map (addr=>rom_addr,clk=>clk25,dout=>rom_data); u5:textvga port map
(datain=>rom_data,clk25=>clk25,hcnt=>xaddr,vcnt=>yaddr,rom_addr=>rom_addr,r=>r2,g=>g2,b=>b2);
u6: wave_ram port map (addr => addr_ram,clk => clk25,din => ads931,dout => ram_data,we => we); u7:wavevga port map
(datain=>ram_data,clk25=>clk25,hcnt=>xaddr,vcnt=>yaddr,ram_addr=>addr_ram,r=>r3,g=>g3,b=>b3); u8:ads931e port map
(clk=>clk,ad_clk_out=>ad_clk_out,oe=>oe,addr_ram=>addr_ram); u9:num_vga Port map( q1=>q1, q2=>q2, q3=>q3, q4=>q4, q5=>q5, q6=>q6,hcnt=>xaddr,
vcnt=>yaddr, clk25=>clk25,r=>r4, g=>g4, b=>b4);
u10:top_jipin port map(
clk=>clk, ads_931=>ads931, q1=>q1, q2=>q2, q3=>q3, q4=>q4, q5=>q5, q6=>q6, ram_en=>we);
end Behavioral;
15
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务