技术领域
[0001] 本发明专利涉及数据接口技术领域,具体涉及一种VGA显示接口设计。
相关背景技术
[0002] VGA(Video Graphics Array)是IBM在1987年随PS/2机一起推出的一种视频传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。目前VGA技术的应用还主要基于VGA显示卡的计算机、笔记本等设备,而在一些既要求显示彩色高分辨率图像又没有必要使用计算机的设备上,VGA技术的应用却很少见到。
[0003] 利用现场可编程逻辑器件产生VGA时序信号和彩条图像信号,并将其作为信号源,应用于电视机或计算机等彩色显示器的电路开发,方便彩色显示器驱动控制电路的调试。计算机显示器的显示有许多标准,常见的有VGA,SVGA等。在这里尝试用FPGA实现VGA图像显示控制器,这一过程通过编程实现,之后通过软件的测试和仿真,当软件验证无误后完成硬件的下载验证,最终在CRT显示器上实现输出,基本原理就是利用FPGA的可编程原理和VGA的时序控制原理,这在产品开发设计中有许多实际应用。
[0004] 本发明对VGA显示的实现方法进行了研究。基于这种设计方法的嵌入式VGA显示系统,可以在不使用VGA显示卡和计算机的情况下,实现VGA图像的显示和控制。系统具有成本低、结构简单、应用灵活的优点,可广泛应用于超市、车站、飞机场等公共场所的广告宣传和提示信息显示,也可应用于工厂车间生产过程中的操作信息显示,还能以多媒体形式应用于日常生活。
[0005] 发明专利内容本发明专利涉及数据接口技术领域,具体涉及一种VGA显示接口设计。本发明所设计的VGA控制器就是通过利用超大规模可编程逻辑器件FPGA和Aletera公司开发的EDA设计软件Quartus II 8.0,并采用自顶向下的VHDL设计方法,将该控制器分成用VHDL语言进行描述的五个子模块来实现。在Quartus II 8.0 软件平台,完成了对该控制器的设计输入、综合、仿真和下载。在实验开发板上,也警醒了硬件调试。调试结果表明,设计的VGA控制器能够正确地输出RGB颜色信号和时序控制信号,可以显示符合VGA工业标准的测试彩条信号,内置ROM信息,实时RAM,还能够分屏显示三路RGB图像信息,并在这几种模式之间灵活切换和痛断。他工作稳定,达到了设计要求。
[0006] 本发明利用了不同于以往传统的电子设计方法,具有修改灵活,搞高移植性,维护简单,可靠性好等优点。大大地缩短了设计周期,降低了生产成本。
具体实施方式
[0008] 为了使本发明专利的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明专利进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明专利,并不用于限定本发明专利。
[0009] 本发明专利涉及数据接口技术领域,具体涉及一种VGA显示接口设计。本发明所设计的VGA控制器就是通过利用超大规模可编程逻辑器件FPGA和Aletera公司开发的EDA设计软件Quartus II 8.0,并采用自顶向下的VHDL设计方法,将该控制器分成用VHDL语言进行描述的五个子模块来实现。在Quartus II 8.0 软件平台,完成了对该控制器的设计输入、综合、仿真和下载。在实验开发板上,也警醒了硬件调试。调试结果表明,设计的VGA控制器能够正确地输出RGB颜色信号和时序控制信号,可以显示符合VGA工业标准的测试彩条信号,内置ROM信息,实时RAM,还能够分屏显示三路RGB图像信息,并在这几种模式之间灵活切换和痛断。他工作稳定,达到了设计要求。
[0010] (1)总体设计框架图进一步的,本发明以FPGA芯片作为中央控制器控制整个系统的处理,根据自顶向下的设计流程,按照层次化、结构化的设计方法可以将该系统划分为以下几个模块:顶层模块、分频模块、VGA控制模块。其总体设计框架图如图1所示。本发明的工作原理为系统加电FPGA芯片读入配置信息,配置完成后,FPGA进入工作状态,将要显示的信息初始化到单口RAM中,由系统时钟产生时序,程序根据时序信息控制VGA接口输出行、场同步及颜色信息到显示器上。
[0011] (2)主模块设计进一步的,系统主要有分频模块以及VGA彩条信号产生模块构成。VGA工业标准所要求的频率为25.175Hz,而FPGA芯片输出的频率为50MHz,因而必须对FPGA输出频率进行分频,采用二分频即可,利用锁相环的分频功能得到。VGA时序信号产生包括行点计数器x_cnt(计数个数用nx表示)、场点计数器y_cnt(计数个数用ny表示)、行同步信号hsync、场同步信号vsync、有效显示区Visible area等。其中行点计数器是800进制计数器,场点计数器是525进制计数器。根据VGA时序的工业标准行、场同步信号有4种状态:同步脉冲信号(Sync),显示后沿信号(Back Porch),可视显示区(Visible area),显示前沿(FrontPorch)。这4种状态具有很清晰的时序规律,可以用有限状态机来实现这4种状态的转换,用h_state来表示行同步状态机的4种状态: h_sync, h_back,h_visible,h_fron;t v_state来表示场同步状态机的4种状态: v_sync,v_back,v_visible,v_front。行、场计数器的值决定了状态机在何时进行状态翻转。竖彩条发生模块根据行点数器hcnt的计数值来产生彩条,它对行点数计数器的数值进行判断,每80条竖线生成一种竖彩条,共8种竖彩条红、绿、黄、蓝、粉、青、灰和黑。
[0012] (3)设计实现进一步的,本发明的FPGA芯片用的是ALTERA公司的EP1C12Q240C8,它由若干个逻辑单元和中央布线池加I/O端口构成。本发明采用VHDL语言设计文件,首先定义两个计数器hcnt和vcant,按照实验原理中的HS和VS的实现方法,产生得到HS和VS两个时序序号。其次根据hcnt和vcnt计数值的范围来确定显示区域,并同时送入显示颜色即可。然后,编译工程,修改语法错误。本发明使用VHDL 硬件语言的完整代码:
Library IEEE;
USE IEEE.std_LOGIC_1164.ALL;
USE IEEE.std_LOGIC_ARITH.ALL;
USE IEEE.std_LOGIC_UNSIGNED.ALL;
ENTITY vga_caitiao is
Port(clk:in std_logic;
Key0:in std_logic_vector(1 dounto 0);
Vga_r:out std_logic;
Vga_g:out std_logic;
Vga_b:out std_logic;
Vga_hs:out std_logic;
Vga_vs:out std_logic);
End vga_caitiao;
Architecture one of vga_caitiao is
Signal hcnt:integer rang 0 to 799;
Signal vcnt:integer rang 0 to 524;
Signal clk25M:std_logic;
Signal hs:std_logic;
Signal vs:std_logic;
Signal grbx,grby,grb:std_logic_vector(3 dounto 1);
Begin
Process(clk)
Begin
If clk25M’event and clk25M=’1’ then
If hcnt=799 then hcnt<=0;
Else hcnt<=hcnt+1;
End if;
End if;
End process;
Process(hs)
Begin
If hs’event and hs=’1’ then
If vcnt=524 then vcnt<=0;
Else vcnt<=vcnt+1;
End if;
End if;
End process;
Process(hcnt)
Begin
If vcnt<95 then hs<=’0’;
Else hs<=’1’;
End if;
End process;
Process(vcnt)
Begin
If vcnt<2 then vs<=’0’;
Else vs<=’1’;
End if;
End process;
Process(hcnt)
Begin
If hcnt<96+40+8-1 then grby<=”000”;
Elseif hcnt<96+40+8+80-1 then grby<=”111”;
Elseif hcnt<96+40+8+160-1 then grby<=”110”;
Elseif hcnt<96+40+8+240-1 then grby<=”101”;
Elseif hcnt<96+40+8+320-1 then grby<=”010”;
Elseif hcnt<96+40+8+400-1 then grby<=”011”;
Elseif hcnt<96+40+8+480-1 then grby<=”100”;
Elseif hcnt<96+40+8+560-1 then grby<=”001”;
Elseif hcnt<96+40+8+640-1 then grby<=”000”;
Else grby<=”000”;
End if;
End process;
Process(vcnt)
Begin
If vcnt<2+25+8-1 then grbx<=”000”;
Elseif vcnt<2+25+8+60-1 then grbx<=”111”;
Elseif vcnt<2+25+8+120-1 then grbx<=”110”;
Elseif vcnt<2+25+8+180-1 then grbx<=”101”;
Elseif vcnt<2+25+8+240-1 then grbx<=”010”;
Elseif vcnt<2+25+8+300-1 then grbx<=”011”;
Elseif vcnt<2+25+8+360-1 then grbx<=”100”;
Elseif vcnt<2+25+8+420-1 then grbx<=”001”;
Elseif vcnt<2+25+8+480-1 then grbx<=”000”;
Else grbx<=”000”;
End if;
End process;
Process(key0,grbx,grby)
Begin
If key0=”01” then grb<=grbx;
Elseif key0=”10” then grb<=grby;
Else grb<=grby xor grbx;
End if;
End process;
vga_r<=grb(3)and hs and vs;
vga_g<=grb(2)and hs and vs;
vga_b<=grb(1)and hs and vs;
Vga_hs<=hs;and hs and vs;
End;
以上所述仅为本发明专利的较佳实施例而已,并不用以限制本发明专利,凡在本发明专利的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明专利的保护范围之内。