VGA彩条信号显示控制电路.doc

上传人:zf 文档编号:30858435 上传时间:2024-04-09 格式:DOC 页数:17 大小:160.50KB
下载 相关 举报
VGA彩条信号显示控制电路.doc_第1页
第1页 / 共17页
VGA彩条信号显示控制电路.doc_第2页
第2页 / 共17页
VGA彩条信号显示控制电路.doc_第3页
第3页 / 共17页
VGA彩条信号显示控制电路.doc_第4页
第4页 / 共17页
VGA彩条信号显示控制电路.doc_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

VGA彩条信号显示控制电路.doc

《VGA彩条信号显示控制电路.doc》由会员分享,可在线阅读,更多相关《VGA彩条信号显示控制电路.doc(17页珍藏版)》请在冰豆网上搜索。

VGA彩条信号显示控制电路.doc

哈尔滨理工大学VGA彩条信号显示控制电路

摘要

本设计是用FPGA来实现VGA图像控制器,控制显示器显示彩条信号,用VHDL语言,在QuartusII上实现软件仿真。

本文首先介绍了VGA显示的基本原理,然后提出了一种VGA图像控制器的设计方案,并用VHDL硬件描述语言和原理图输入的方法完成了该方案的设计,通过显示横彩条、竖彩条、棋盘格,验证了VGA_SYNC同步信号功能模块时序的正确性,软件实验环境为QuartusII6.0开发软件。

本系统尝试用FPGA实现VGA图像显示控制器,这一过程通过编程实现,之后通过软件的测试和仿真,当软件验证无误后完成硬件的下载验证,最终在显示器上实现输出,基本原理就是利用FPGA的可编程原理和VGA的时序控制原理,这在产品开发设计中有许多实际应用。

例如显示器,电视等的维修,可以期望采用FPGA设计的VGA接口可以将要显示的数据直接送到显示器,就可以可靠的找到故障的大致原因等。

从而省掉每次都要接信号源的麻烦,同时也节约了成本。

节省了计算机的处理过程,加快了数据的处理速度,节约了硬件成本。

同时亦可将其作为信号源,应用于电视机或计算机等彩色显示器的电路开发,方便彩色显示器驱动控制电路的调试。

 [关键词]:

VGA;FPGA;图像控制器

Abstract

ThisdesignistheuseofFPGAtorealizeVGAimagecontroller,controlsthedisplaytodisplaythecolorsignal,usingVHDLlanguage,ontheQuartusIIsoftwaresimulation.ThispaperfirstlyintroducesthebasicprincipleofVGAdisplay,andthenputforwardakindofVGAimagecontrollerdesign,anduseVHDLhardwaredescriptionlanguageandschematicinputmethodtocompletethedesign,throughtodisplaythecrosscolor,verticalstriped,checkerboard,verificationoftheVGA_SYNCfunctionmodulesynchronizationsignaltimingiscorrect,softwaretestenvironmentforQuartusII6softwaredevelopment.

ThesystemattemptstousetheFPGAachieveVGAimagedisplaycontroller,thisprocessisrealizedbyprogramming,followedbythesoftwaretestingandsimulation,whenthesoftwarevalidationcorrectlycompletesthehardwaredownloadverification,culminatinginthedisplaytoachieveoutput,basicprincipleistheuseofFPGAcanweaveChengYuanliandVGAtocontrolthetimingofthisprinciple,inproductinthedesignofmanypracticalapplications.Suchdisplays,televisionrepair,canexpecttouseFPGAtodesignVGAinterfacecandisplaydatadirectlytothedisplay,canreliablyfindfaultcausesetc..Inordertosaveeverytimethesignalsourceoftrouble,butalsosavethecost.Savealotofcomputerprocess,acceleratethespeedofdealingwithdata,savethecostofhardware.Atthesametimeasthesignalsource,isappliedtothetelevisionorcomputercolordisplaycircuit,convenientcolordisplaydrivecontrolcircuitdebugging.

[Keywords]:

VGA;FPGA;imagecontroller

哈尔滨理工大学VGA彩条信号显示控制电路

目录

1绪论 -2-

2设计要求及方案论证 -3-

2.1设计要求 -3-

2.2设计方案 -3-

3系统设计 -4-

3.1设计原理 -4-

3.2程序设计 -5-

3.2.1时钟部分 -5-

3.2.2色彩显示部分 -5-

3.2.3程序流程图 -5-

4系统仿真 -5-

5实验小结 -9-

参考文献 -11-

程序清单 -11-

1绪论

现如今,随着液晶显示器的出现,越来越多的数字产品开始使用液晶作为显示终端。

但基于VGA标准的显示器仍是目前普及率最高的显示器。

若驱动此类显示器,需要很高的扫面频率,以及极短的处理时间,正是由于这些特点,所以可以用FPGA来实现对VGA显示器的驱动。

在许多图像处理系统中,需要将经过处理的图像显示出来,如果采用传统的办法将图像数据传回电脑并通过显示器显示出来,那么在传输的过程中就需要嵌入式系统的CPU不断的对所传输的图像数据信号进行控制,这样就造成了CPU资源的浪费,同样系统还需要依赖电脑,降低了系统的灵活性。

如果采用FPGA对显示器的VGA接口进行设计,数据流只需要在整个系统的内部流动,而不需要依靠计算机,实现了系统的最小化,大大减少了电路板的尺寸,增强了系统的可靠性和设计的灵活性[1]。

VGA(视频图形阵列)作为一种标准的显示接口,因为其输出信息量大,输出形式多样等特点已经成为现在大多数设计的常用输出设备。

与此同时,各种大规模集成电路的出现也为大量数字化信息的处理提供了有效的手段。

其中,FPGA(现场可编程逻辑阵列)即是其中比较有代表性的一种。

FPGA(现场可编程门阵列)是可编程逻辑器件,它是在PAL,GAL等逻辑器件的基础上发展起来的,同以往的PAL,GAL等相比,FPGA的规模比较大,它可以替代几十甚至几千块通用IC芯片。

它以操作灵活、开发迅速、投资风险低、可多次编程擦写和系统可编程等特点而成为一种可优化硬件电路设计且具竞争力的产品。

本设计依据Altera公司CycloneII系列的FPGA进行设计,最终实现横彩条、竖彩条、棋盘格、字符、汉字及单色图像的显示。

设计的硬件部分采用DE2开发板――内含AlteraCycloneII系列的EP2C35F672C6FPGA芯片,并集成了许多外设,其中包含VGA显示接口。

软件部分用VHDL语言进行编程,并在Altera公司的EDA软件工具QuartusⅡ进行程序编译、调试、波形仿真和下载。

2设计要求及设计方案

2.1设计要求

学会使用软件进行设计与仿真,通过对电路的设计,编程和仿真,学习的兴趣。

具体要求如下:

常用彩色显示器一般是偶RGB三基色组成,VGA显示器其引出线共含5个信号:

R、G、B三基色信号

HS行同步信号

VS场同步信号

按照其扫描时序进行控制,显示彩条信号。

2.2设计方案

控制按键

电源

CPLD

接口电路

VGA

显示器

时钟电路

CPLD是整个系统的核心,通过对其编程可输出RGB三基色信号和HS、VS行场扫描同步信号。

当CPLD接受单片机输出的控制信号后,内部的数据选择器模块根据控制信号选通相应的图像生成模块,输出图像信号,与行场扫描时序信号一起通过15针D型接口电路送入VGA显示器,在VGA显示器上便可以看到对应的彩色图像。

CPLD所需的工作时钟由外部高精度有源晶振提供,系统原理框图如图2.1。

图2.1系统原理框图

3系统设计

3.1设计原理

工业标准的VGA显示模式为:

640×468×16色×60Hz。

常见的彩色显示器,一般由CRT(阴极射线管)构成,彩色是由R、G、B(红、绿、蓝)三基色组成,CRT用逐行扫描或隔行扫描的方式实现图像显示,由VGA控制模块产生的水平同步信号和垂直同步信号控制阴极射线枪产生的电子束,打在涂有荧光粉的荧光屏上,产生R、G、B三基色,合成一个彩色像素。

扫描从屏幕的左上方开始,由左至右,由上到下,逐行进行扫描,每扫完一行,电子束回到屏幕下一行的起始位置,在回扫期间,CRT对电子束进行消隐,每行结束是用行同步信号HS进行行同步;扫描完所有行,再由场同步信号VS进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描。

行同步信号HS和场同步信号VS是两个重要的信号。

显示过程中,HS和VS的极性可正可负,显示器内可自动转换为正极性逻辑。

VGA行同步信号HS和场同步信号VS的时序图如图2所示,T1为行同步消隐(约为6μs);T2为行显示时间(约为26μs);T3为场同步消隐(两个行周期);T4为场显示时间(480个行周期)。

显示器每扫描完一行,再扫描一下行时会花一定时间来准备,因此要满足时序要求,见图3.1。

从0计数到639

图3.1VGA行扫描时序图

同样每扫描完一帧,再扫描下一帧行时也会花一定时间来准备,因此也要满足其时序要求,见图3.2。

从0计数到479

图3.2VGA场扫描时序图

对于VGA显示器的上述五个信号的时序驱动要严格遵循“VGA工业标准”,即640×480×60HZ模式,否则无法显示正确地图象。

VGA工业标准要求的频率:

时钟频率:

25.175MHz(像素输出的频率)

行频:

31469Hz

场频:

59.94Hz(每秒图像刷新频率)

3.2程序设计

3.2.1时钟部分

试验箱上时钟脉冲是20MHz,因此在实验时需要对其进行分频,才能实现功能,若需要1Hz的时钟,则需要对脉冲进行10000000次分频。

本设计由锁相环产生25MHz时钟。

如图3.3

图3.3

3.2.2色彩显示部分

图象信号显示的颜色种类与表示R、G、B三基色的二进制数位数有关,表3.1列出了8种颜色的编码方式。

表3.1

本设计共可产生3种显示模式,6种显示变化,如表3.2所示。

1

横彩条

1:

白黄青绿红蓝黑

2:

黑蓝红绿青黄百

2

竖彩条

1:

白黄青绿红蓝黑

2:

黑蓝红绿青黄百

3

棋盘格

1:

棋盘格显示模式一

2:

棋盘格显示模式二

表3.2

3.2.3程序流程图

在程序中定义两个计数器,分别进行行计数和场计数。

在规定的行周期和场周期下进行计数;当计数器值达到行同步信号和场同步信号规定值时就进行行/场同步信号的输出,并控制其他信号的输出。

如图3.4所示。

图3.4

4系统仿真

通过QuartusII软件,我们进行了仿真,其仿真波形如下图:

根据锁相环由20MHz时钟倍频得到25MHz时钟:

由25MHz时钟驱动,color显示控制模块波形仿真如下:

由于仿真条件的限制,ka、kb即拨码开关拨动的频率比实际高的,无法完全模拟实际。

但是,从上图的波形中,我们仍能看出显示模式之间的转换。

同时经过细致的观察,hs的周期大约为32us即满足行频。

5实验小结

通过本次设计,我知道光靠在课堂上所学的知识,我们无法真正的将所学的各个科目的知识融会贯通,学以致用,思想也越来越迟缓,没有创新的思维和活跃的思想。

对我们学生来说,理论与实际同样重要,这是我们以后在工作中证明自己能力的一个重要标准。

通过了这次设计,我能更好的理解书本知识,相信也能够更好的运用他它。

在以后的学习和工作中,我们还会遇到许多类似的设计,但有了这次的经验,我相信我们都会尽自己的力做得更好!

我们在对EDA这门技术上有了更深刻的认识,也从实践的例子中去感受到了EDA设计给我们设计带来的改变与进步。

我们不仅掌握QuartusII软件的使用,与此同时,我们还对电子设计的思路有了更多的认识。

通过对EDA设计中的TOP-DOWN设计方式的运用,体会到了对于一个大型系统的设计方案选取应从顶向下的设计思路,这与传统的至底向上的设计方式有很大改进,且设计效率得到大大提高。

在设计中,我深刻感受到了老师对学生的那种诲人不倦的精神,老师不断耐心地给我们指导使我们少走弯路,顺利完成设计任务。

本次课程设计中我收获很多,在老师们的辛勤指导下,我们小组同学积极讨论和思考,完成本此课程设计,此次设计,使我们受益匪浅。

在此我要感谢信息学院提供这次课程设计的机会。

通过本次设计使我们自身的动手能力得到了很大的提高,使我们走出了实践的盲区,为以后的毕业设计及工作后的动手打下了坚实的基础。

参考文献:

[1]王行.EDA技术入门与提高.西安:

西安电子科技大学出版社,2005.5.

[2]谭会生,张昌凡.EDA技术及应用.西安:

西安电子科技大学,2006.12.

[3]郭勇.EDA技术基础与应用.北京:

机械工业出版社,2011.3.

[4]潘松,黄继业.EDA技术实用教程.北京:

科学出版社,2010.6.

[5]汉泽西.EDA技术及其应用.北京:

北京航空航天大学出版社,2004.5.

程序清单

color.vhd

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityVGAis

port(clk,ka,kb:

instd_logic;

hs,vs,r,g,b:

outstd_logic);

endVGA;

architecturebehavofVGAis

signalhs1,vs1,cclk,reset,ra,rb,ka_d,kb_d:

std_logic;

signalmmd:

std_logic_vector(1downto0);

signalcc:

std_logic_vector(9downto0);

signalll:

std_logic_vector(9downto0);

signalgrbx:

std_logic_vector(3downto1);

signalgrby:

std_logic_vector(3downto1);

signalgrbp:

std_logic_vector(3downto1);

signalgrb:

std_logic_vector(3downto1);

begin

grb

(2)<=(grbp

(2)xorkaxorkb)andhs1andvs1;

grb(3)<=(grbp(3)xorkaxorkb)andhs1andvs1;

grb

(1)<=(grbp

(1)xorkaxorkb)andhs1andvs1;

process(ka,kb)

begin

ifka='0'then

ifkb='0'thenmmd<="00";

elsemmd<="01";

endif;

elsifkb='0'thenmmd<="10";

elsemmd<="11";

endif;

endprocess;

process(mmd)

begin

ifmmd="00"thengrbp<=grbx;

elsifmmd="01"thengrbp<=grby;

elsifmmd="10"thengrbp<=(grbxxorgrby);

elsegrbp<="000";

endif;

endprocess;

process(clk)

begin

ifclk'eventandclk='1'thenka_d<=ka;

endif;

ifka_d=kathenra<='0';

elsera<='1';

endif;

endprocess;

process(clk)

begin

ifclk'eventandclk='1'thenkb_d<=kb;

endif;

ifkb_d=kbthenrb<='0';

elserb<='1';

endif;

endprocess;

process(ra,rb)

begin

ifrb='0'then

ifra='0'thenreset<='0';

elsereset<='1';

endif;

elsereset<='1';

endif;

endprocess;

process(clk,reset)

begin

ifreset='0'then

ifclk'eventandclk='1'then

ifcc=799thencc<="0000000000";

elsecc<=cc+1;

endif;

endif;

elsecc<="0000000000";

endif;

endprocess;

cclk<=cc(9);

process(cclk,reset)

begin

ifreset='0'then

ifcclk'eventandcclk='0'then

ifll=524thenll<="0000000000";

elsell<=ll+1;

endif;

endif;

elsell<="0000000000";

endif;

endprocess;

process(cc,ll)

begin

ifcc<96thenhs1<='0';

elsehs1<='1';

endif;

ifll<2thenvs1<='0';

elsevs1<='1';

endif;

endprocess;

process(cc,ll)

begin

ifcc<143thengrbx<="000";

elsifcc<223thengrbx<="111";

elsifcc<303thengrbx<="110";

elsifcc<383thengrbx<="101";

elsifcc<463thengrbx<="100";

elsifcc<543thengrbx<="011";

elsifcc<623thengrbx<="010";

elsifcc<703thengrbx<="001";

elsegrbx<="000";

endif;

ifll<34thengrby<="000";

elsifll<94thengrby<="111";

elsifll<154thengrby<="110";

elsifll<214thengrby<="101";

elsifll<274thengrby<="100";

elsifll<334thengrby<="011";

elsifll<394thengrby<="010";

elsifll<454thengrby<="001";

elsegrby<="000";

endif;

endprocess;

hs<=hs1;vs<=vs1;r<=grb

(2);g<=grb(3);b<=grb

(1);

endbehav;

原理图如下:

本科生课程设计成绩评定表

姓名

性别

专业、班级

课程设计题目:

课程设计答辩或质疑记录:

成绩评定依据:

最终评定成绩(以优、良、中、及格、不及格评定)

指导教师签字:

年月日

-15-

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

当前位置:首页 > 小学教育 > 小学作文

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

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