VGA显示的控制器

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

VGA显示的控制器1VGA显示接口原理计算机显示器的显示有许多接口标准,常见的有VGA、SVGA等。VGA接口,也叫D-Sub接口,是15针的梯形插头,分成3排,每排5个,传输模拟信号。VGA接口采用非对称分布的15针连接方式,其工作原理是:将显存内以数字格式存储的图像(帧)信号在RAMDAC里经过模拟调制成模拟高频信号,然后再输出到显示设备成像。VGA支持在640×480的较高分辨率下同时显示16种色彩或256种灰度,同时在320×240分辨率下可以同时显示256种颜色。VGA显示器的显示是采用逐行扫描的方式解决。扫描从屏幕的左上方开始,从左到右,从上到下,逐行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间对电子束进行行消隐,每行结束时,用行同步信号进行行同步,扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,并预备进行下一次的扫描。2VGA显示控制器的设计实现系统硬件框图如图所示通常VGA显示器显示的图像数据量较大,而FPGA内置ROM很难满足这么大的存储量,FPGA需要外接SDRAM来存储这些数据。VGA显示器的输入的是模拟信号,所以由VGA显示控制器产生的RGB信号在进入VGA接口之前要经过一个D/A转换器。2.VGA时序控制信号VGA显示器的时序控制要严格遵循“VGA工业标准”,即640×480×60Hz模式,否则会导致VGA显示器无法正常工作。图2-1所示为行扫描时序,图2-2所示为场扫描时序。(1)行扫描信号时序:图2-1给出了行视频时序示意图。在行扫描时序中,包括以下几个时序参数:HSYNCSignal是用来控制“列填充”,而一个HSYNCSignal可以分为4个段,也就是a(同步段),b(后沿段),c(激活段),d(前沿段)。HSYNCSignal的a是拉低的128个列像素,b是拉高的61个列像素,c是拉高的806个列像素,最后的d是拉高的53个列像素。一列总共有1040个列像素。(2)场扫描信号时序:图2-2给了场视频时序示意图。在场扫描时序中,包括以下几个时序参数:VSYNCSignal是用来控制“行扫描”。而一个VSYNCSignal同样可以分为4个段,也是o(同步段),p(后沿段),q(激活段),r(前沿段)。VSYNCSignal的o是拉低的6个行像素,p是拉高的21个行像素,q是拉高的604个行像素,最后的r是拉高的35个行像素。一行总共有666个行像素。图2-1行扫描时序图2-2场扫描时序3VGA的设计与实现本设计选用了Altera公司的CycloneIIEP2C8Q208C8型的FPGA作为系统的核心芯片。FPGA器件的现场可编程技术和CPLD器件的在系统可编程技术使可编程器件在使用上更为方便,大大缩短了设计周期,减少了设计费用,降低了设计风险。下面将详细介绍VGA控制器的整体架构以及工作机制,并对各个模块的设计思路进行相应的分析,同时给出各个模块的仿真结果。3.1总体设计思想根据VGA时序的控制要求,系统必须包括4个主要部分的设计:(1)数据接口:用来提供显示数据;(2)数据缓存:临时存储显示数据;(3)VGA时序和信号发生器:产生VGA时序,完成数模信号的转换和输出;(4)控制处理器:对整个系统进行控制和数据处理,系统原理框图如图3-1所示。VGA显示控制器的输入是用户控制信息,如显示模式的切换命令、图形移动的控制命令等。控制器根据用户的输入信息,决定工作模式,这里定义为横彩模式、纵彩模式、文字模式。颜色信息的产生、显示器扫描同步信号等由VGA驱动控制器产生,其输出经数模转换传输到CRT显示器。图3-1FPGA实现彩色信号的原理图3.2系统硬件设计电源模块:电源模块的设计是依照系统其它部分的电源要求决定的,因此在系统其它部分芯片的选型上应该考虑电源的要求,芯片的电压要求应该尽量一致,以简化电源的设计。本系统主要需求的电源为5V与3.3V。时钟模块:如果要驱动VGA为800×600×72Hz的显示标准,这个显示标准需要的最小单位(列像素)所占用的时间周期为20ns,换句话说,至少需要50MHz的时钟频率,使用外部晶振20MHz产生系统时钟满足要求。VGA接口模块:通过对硬件进行编程,输出标准的VGA信号(红、绿、蓝三色信号和行、帧同步信号),通过15针VGA接口输出至显示器,可具有显示驱动程序的红、绿、蓝三色信号使用FPGA上12个引脚,各控制输出4位数据。由于输入到VGA显示器的R、G、B信号需要是模拟信号,然而FPGA的输出信号是数字信号,所以需要D/A转换器把它变成模拟信号。本设计中采用电阻网络D/A变换后输出电压值到显示器,支持12位的VGA彩色显示,红色、绿色和蓝色各4位,具有4096种不同的颜色。3.3系统软件结构设计VGA显示控制器实现的主要功能是向显示器发出图形控制信号,产生相应的图形显示,由系统功能可以将系统从逻辑上划分为输入子系统、模式检测子系统和VGA控制子系统。从系统逻辑结构出发,将系统设计为3层,顶层用于描述整个系统的功能和运行,控制子模块的连接和耦合信号;第二层承接顶层,负责实现系统中各个独立而完整的功能部分,包括的功能主要是产生时钟信号,状态机的定义和状态的转移,产生像素位置信号,并根据不同的状态和像素位置产生RGB颜色信号;第三层为第二层的子模块,用于扩展第二层的功能,具体负责用户模式的实现。每个层次可用一个或多个具体模块加以实现。控制器部分是系统的核心部分,负责协调和控制各子模块的工作。控制器设计采用有限状态机的方法,用VerilogHDL语言对VGA显示控制器的三个层次依次进行描述,具体描述出每个模块,生成具体电路视图。VGA接口控制器由3个模块组成,即产生行场同步信号和消隐信号的vga_drive模块、产生内容存储的char_rom模块和文字和图像位置信息的disp_char模块以及顶层模块vga_top模块。模块之间的信号连接如图所示图3-2VGA接口控制器框图3.4功能仿真系统设计完成后,需要对系统主要功能进行仿真验证,进一步分析状态机、电路逻辑和时序配合等是否正确。系统仿真分为两个步骤进行,首先是关键模块的仿真,验证子系统功能的正确性,然后是综合仿真,验证整个系统的功能。在QuartusII中建立工程,编辑波形文件作为仿真激励对所设计的VGA接口控制器进行仿真验证,对关键模块的仿真结果和分析如图3-4所示。在仿真时,为了便于观察结果,将主时钟信号iCLK的周期设置为10ns。从图中可以看到,当HSYNC=1且VSYNC=1是为正向扫描过程。VGA时序生成模块的功能是:产生VGA的行同步、行有效、场同步信号。VGA时序生成模块内部设计了一个11位的行计数器与一个11位的场计数器。行计数器值在0到52之间时行前沿信号为高电平,在53到120之问时行同步信号为低电平,同时场计数值开始计数,当行计数值等于181时,开始显示图像所以o_x_pos横坐标开始计数,当行计数值等于1039时,行计数值清零重新开始计数。场计数器值在0到35之间时场前沿信号为高电平,在36到96之间时场同步信号为低电平,计数值等于665时清零重新计数。行信号与场信号相与生成行有效信号。行计数器对像素时钟上升沿计数,场计数器对行同步佶号上升沿计数。仿真时序满足VGA接口标准时序的要求。4结论由于本系统设计采用了有限状态机和子系统分模块描述的方法,使得控制器具有很好的扩展性。采用FPGA设计的VGA显示控制器,不需要依赖计算机进行相应的控制,因此节省了计算机的处理过程,加快了数据的处理速度,增强了系统的可靠性和设计的灵活性。同时,可移植性好,节约了硬件成本,使系统升级方便,扩展了应用范围。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功