勇敢的芯伴你玩转Altera FPGA连载68:VGA驱动ColorBar显示
0赞勇敢的芯伴你玩转Altera FPGA连载68:VGA驱动ColorBar显示
特权同学,版权所有
配套例程和更多资料下载链接:
http://pan.baidu.com/s/1i5LMUUD
VGA(Video Graphics Array)即视频图形阵列,是IBM在1987年随PS/2(PS/2 原是“Personal System 2”的意思,“个人系统2”,是IBM公司在1987年推出的一种个人电脑。PS/2电脑上使用的键盘鼠标接口就是现在的PS/2接口。因为标准不开放,PS/2电脑在市场中失败了。只有PS/2接口一直沿用到今天)一起推出的使用模拟信号的一种视频传输标准,在当时具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。这个标准对于现今的个人电脑市场已经十分过时。即使如此,VGA仍然是最多制造商所共同支持的一个标准,个人电脑在加载自己的独特驱动程序之前,都必须支持VGA的标准。例如,微软Windows系列产品的开机画面仍然使用VGA显示模式,这也说明其在显示标准中的重要性和兼容性。
VGA最早指的是显示器640X480这种显示模式。(而今天的VGA其实已经不仅仅局限于640X480这种分辨率了,通常情况下,各种各样适用于VGA接口传输的分辨率都可以统称为VGA。当然了,严格来讲,每个分辨率都会有自己的叫法,如800X600就称作SVGA。)VGA接口如图8.55所示。
图8.55 VGA接口示意图
驱动VGA显示的接口,主要有以下3种信号:行同步信号HSYNC,场同步信号VSYNC和3条色彩电压传输信号(R、G、B分别对应)。色彩信号的电压为0~0.7V,其同步是靠前面两个信号来协助的。至于HSYNC和VSYNC和色彩信号之间以什么样的关系进行传输,这都是相对固定的,虽然VGA收发双方没有时钟信号做同步,但我们通常会约定发送方有一个基本的时钟,VSYNC、HSYNC和色彩信号都会按照这个时钟的节拍来确定状态。
VGA的接口时序如图8.56所示,场同步信号VSYNC在每帧(即送一次全屏的图像)开始的时候产生一个固定宽度的高脉冲,行同步信号HSYNC在每行开始的时候产生一个固定宽度的高脉冲,色彩数据在某些固定的行和列交汇处有效。
图8.56 VGA时序波形1
如前所述,我们通常以一个基准时钟驱动VGA信号的产生,用这个基准时钟为时间单位来产生的时序如图8.57所示。
图8.57 VGA时序波形2
对于一个刷新频率为60Hz,分辨率为640X480的标准VGA显示驱动,若它的基准驱动时钟为25MHz,它的脉冲计数如表8.5所示。注意列的单位为“行”,而行的单位为“基准时钟周期数”,即25MHz时钟脉冲数。
表8.5 VGA驱动时序参数
行/列 | 同步脉冲 | 后沿脉冲 | 显示脉冲 | 前沿脉冲 | 帧长 |
列 | 2 | 33 | 480 | 10 | 525 |
行 | 96 | 48 | 640 | 16 | 800 |
对于一个刷新频率为72Hz,分辨率为800X600的SVGA显示驱动,若它的基准驱动时钟为50MHz,它的计数脉冲参数如表8.6所示。注意列的单位为“行”,而行的单位为“基准时钟周期数”,即50MHz时钟脉冲数。
表8.6 SVGA驱动时序参数表
行/列 | 同步脉冲 | 后沿脉冲 | 显示脉冲 | 前沿脉冲 | 帧长 |
列 | 6 | 23 | 600 | 37 | 666 |
行 | 120 | 64 | 800 | 56 | 1040 |
对于一个刷新频率为60Hz,分辨率为1024X768的显示驱动,若它的基准驱动时钟为65MHz,它的计数脉冲参数如表8.7所示。注意列的单位为“行”,而行的单位为“基准时钟周期数”,即65MHz时钟脉冲数。
表8.7 SVGA驱动时序参数表
行/列 | 同步脉冲 | 后沿脉冲 | 显示脉冲 | 前沿脉冲 | 帧长 |
列 | 6 | 29 | 768 | 3 | 806 |
行 | 136 | 160 | 1024 | 24 | 1344 |
对于一个刷新频率为60Hz,分辨率为1280X960的显示驱动,若它的基准驱动时钟为108MHz,它的计数脉冲参数如表8.8所示。注意列的单位为“行”,而行的单位为“基准时钟周期数”,即108MHz时钟脉冲数。
表8.8 SVGA驱动时序参数表
行/列 | 同步脉冲 | 后沿脉冲 | 显示脉冲 | 前沿脉冲 | 帧长 |
列 | 3 | 36 | 960 | 1 | 1000 |
行 | 112 | 312 | 1280 | 96 | 1800 |
对于一个刷新频率为60Hz,分辨率为1280X1024的显示驱动,若它的基准驱动时钟为108MHz,它的计数脉冲参数如表8.9所示。注意列的单位为“行”,而行的单位为“基准时钟周期数”,即108MHz时钟脉冲数。
表8.9 SVGA驱动时序参数表
行/列 | 同步脉冲 | 后沿脉冲 | 显示脉冲 | 前沿脉冲 | 帧长 |
列 | 3 | 38 | 1024 | 1 | 1066 |
行 | 112 | 248 | 1280 | 48 | 1688 |
对于一个刷新频率为60Hz,分辨率为1920X1080的显示驱动,若它的基准驱动时钟为130MHz,它的计数脉冲参数如表8.10所示。注意列的单位为“行”,而行的单位为“基准时钟周期数”,即130MHz时钟脉冲数。
表8.10 SVGA驱动时序参数表
行/列 | 同步脉冲 | 后沿脉冲 | 显示脉冲 | 前沿脉冲 | 帧长 |
列 | 4 | 18 | 1080 | 3 | 1105 |
行 | 12 | 40 | 1920 | 28 | 2000 |
如图8.58所示,本实例需要用户自己准备好一台VGA显示器和相应的VGA线,VGA线用于连接SF-CY4开发板的J1插座和显示器。FPGA内部产生ColorBar以及VGA时序用于驱动显示器显示。
图8.58 VGA实例功能框图
VGA的驱动大体如图8.59所示。
图8.59 VGA驱动功能框图
本实例模块划分如图8.60所示。
图8.60 VGA实例模块层次