VGA (Video Graphics Array)是IBM在1987年随PS/2机一起推出的一种视频传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。目前VGA技术的应用还主要基于VGA显示卡的计算机、笔记本等设备,而在一些既要求显示彩色高分辨率图像又没有必要使用计算机的设备上,VGA技术的应用却很少见到。本文对嵌入式VGA显示的实现方法进行了研究。基于这种设计方法的嵌入式VGA显示系统,可以在不使用VGA显示卡和计算机的情况下,实现VGA图像的显示和控制。系统具有成本低、结构简单、应用灵活的优点,可广泛应用于超市、车站、飞机场等公共场所的广告宣传和提示信息显示,也可应用于工厂车间生产过程中的操作信息显示,还能以多媒体形式应用于口常生活。
VGA 的扫描方式是逐行扫描,即,先从显示器的左上角开始,一个点一个点开始绘制,绘制完一行,跳回头部 ,进行第二行的绘制,如此反复;
VGA 的参数包含分辨率和刷新率两个;
分辨率,常用的有 640X480 的,800X600 的,1024X768 的,1280X960 的,也有 1920X1080 的(1080p)等等;
刷新频率指的是一秒钟,刷新一帧满屏图像数据的次数,人眼能够接受并且看不出来刷屏的频率为 60Hz
VGA 的时序主要由三种信号控制:
行同步信号:HSYNC
场同步信号:VSYNC
色彩信号:R/G/B (三通道)
VESA 中定义行时序和场时序都需要同步脉冲(Sync a)、显示后沿(Back porch b)、显示时序段(Display)和显示前沿(Front porch d)四部分构成;每次的刷屏都需要满足这些时序要求,每一行刷屏之前,需要先进行行同步信号,每一屏刷屏之前,需要先满足场同步信号;所以刷屏时序和有效的区域为:
在典型的不同刷新率和分辨率的情况下,不一样的本地时钟,对每个时间段的计数个数为:
1、640X480@60Hz 的情况下:
行/列 | 同步脉冲 | 后延脉冲 | 显示脉冲 | 前沿脉冲 | 帧长 |
---|---|---|---|---|---|
行 | 96 | 48 | 640 | 16 | 800 |
列 | 2 | 33 | 480 | 10 | 525 |
在这种情况下,525x800x60Hz = 25.2MHz,本地时钟按照 25MHz 进行计数即可;
2、800X600@60Hz 的情况下:
行/列 | 同步脉冲 | 后延脉冲 | 显示脉冲 | 前沿脉冲 | 帧长 |
---|---|---|---|---|---|
行 | 128 | 88 | 800 | 40 | 1056 |
列 | 4 | 23 | 600 | 1 | 628 |
在这种情况下,628x1056x60Hz = 39.79MHz,本地时钟按照 40MHz 进行计数即可;
3、1024X768@60Hz 的情况下:
行/列 | 同步脉冲 | 后延脉冲 | 显示脉冲 | 前沿脉冲 | 帧长 |
---|---|---|---|---|---|
行 | 136 | 160 | 1024 | 24 | 1344 |
列 | 6 | 29 | 768 | 3 | 806 |
在这种情况下,1344x806x60Hz = 64.995MHz,本地时钟按照 65MHz 进行计数即可;
其他的就不一一列举了;
参考: