VGA 接口相必是一个大家非常熟悉的接口,我们快接近 00 年代的人,小时候使用的电脑就使用这种接口的显示屏
当然就算到了今日, VGA 接口依然还在大量使用,因为这个接口成本比较低,想省钱甚至可以直接使用电阻网络的方式转换 VGA 信号;相比而言, HDMI 就显得比较昂贵了。
简单的介绍VGA的时序
一行或一列的数据包含了显示前沿(back porch)、有效数据(active viedo)、显示后沿(front porch),它们在同步(sync)信号的控制下,进行 VGA 图像的传输
上图就是 VGA 信号的时序图
VGA 图像数据既然是在两个同步信号的脉冲间进行传输,那么这帧数据的起始位置就是确定的,那么显示前、后沿的存在有什么意义?
当我看到 VGA 的时序图后就有这样的疑问,然后就去网上搜索,不过没有见到太详细的描述;不过见到有人建议去看看显像管原理,在我了解显像管原理后,感觉有些明白了,下面进行相关介绍
显示前后沿作用
先说说显像管(CRT)显示器的工作原理
CRT显示器是靠电子束激发屏幕内表面的荧光粉来显示图像的,由于荧光粉被点亮后很快会熄灭,所以电子枪必须循环地不断激发这些点
屏幕上的图像是通过扫描的方式进行显示的,CRT 显示器的扫描方式有很多种,如直线式扫描,圆形扫描,螺旋扫描等等。VGA 的图像扫描的方式和 CRT 的逐行扫描的方式类似,不过 CRT 的扫描线并不是完全水平的,而是稍微倾斜的。如下图:
由于显像管是模拟器件,它扫描屏幕使用的是电子束,它扫描完一行后需要回到这一行的起点的位置(绿色轨迹),所以为了避免被这些多余的轨迹干扰,就使用显示前后沿进行消影处理
现在的屏幕很多是液晶屏幕,不再需要使用电子束进行扫描成像,我感觉其实前后沿合并在一起都是可以的,不过可能是为了兼容以前的设备,所以才这样设计时序(个人认为而已…)
VGA时钟计算
VGA 的时钟与分辨率和帧率有关
VGA 刷新一帧的时间不单单与有效像素有关,还要算上消影、同步的时间,相关的时间设置可以查表,这里列出其中一部分
Horizontal timing
| Pixels | Front porch | Sync pulse | Back porch | Whole line |
|---|---|---|---|---|
| [email protected] | 16 | 96 | 48 | 800 |
| [email protected] | 16 | 64 | 120 | 840 |
| [email protected] | 40 | 128 | 88 | 1056 |
Vertical timing
| Pixels | Front porch | Sync pulse | Back porch | Whole line |
|---|---|---|---|---|
| [email protected] | 10 | 2 | 33 | 525 |
| [email protected] | 1 | 3 | 16 | 500 |
| [email protected] | 1 | 4 | 23 | 638 |
假如选择 640*[email protected] 的话,时钟频率就是
80052560Hz = 25.2MHz