关于VGA的再认识
- 无论是场同步信号还是行同步信号都是有同步头和有效的视频信号组成的,这里一定要注意的是有效视频信号,就以800*600分辨率(60Hz)为例,在他的一个行信号里面,除了同步头,一定还要有800个有效的RGB数据信号。
- VGA 接口本身是没有时钟信号的,我们所使用的时钟信号只是处理器内部运算的一个时序依据,简单说,就是和VGA显示器的刷新频率有关。这也是为什么一定要用时钟信号的原因。
- 一个像素点包括R、G、B三个总线信号,而且他们只在单个时钟周期内有效,如下图:

行信号:其实就是由同步头和RGB信号组成,每个行信号点亮显示器一行,具体如下图:

(注:图中信号没有按照信号实际比例来画)
a) 行信号的消隐信号:在这里不需要发送任何RGB信号,但是时钟信号不能停止,例如对于800*600(60Hz)同步头前沿要发送40个时钟周期,同步脉冲发送128个时钟周期,同步头后沿发送88个时钟周期
b) 有效的RGB信号:也就是我要在显示器上显示出来的信号,对于800*600(60Hz),要发送800个时钟周期信号,并且每个时钟周期伴随着一个RGB数据,当然,完成了之后,就点亮了我们显示器的一行,如果我们想点亮整个屏幕肿么办?发送600个这个样的行信号就好啦
c) 从这个波形图里面可以看到,一个有效的行信号,注意哦,我们所说的是有效的行信号,而不是RGB信号,是有:40+128+88+800 = 1056 个时钟周期组成,从中也看到,我们VGA其实是没有时钟信号的,他只是用来做数据处理的时序依据。
- 场信号:所谓场信号,其实就是由行信号同步头和有效的行信号组成的,具体看下图:

(注:图中信号没有按照信号实际比例来画)
a) 场信号的消隐信号:这个区间里面的信号是不会被显示的,所以呢,我们就算是发送RGB信号也是没有用的,但是必须要发送行同步信号,对于800*600(60Hz),在同步头前沿发送1个行同步信号,同步脉冲区间里面要发送4个行同步信号,同步头后沿发送23个行同步信号
b) 有效的行信号:也就是我们要显示在显示器上的行信号,这里呢,要发送600个有效的行信号,也就是带有RGB数据的行信号,完成一个场信号之后,我们就发送完了一帧数据,也就是点亮了整个屏幕,从上面波形图,可以看出一个完整的场信号=1+4+23+600=628
c) 好吧,我们来计算一下这个60Hz的刷新频率是怎么算的呢,先看一下一帧数据所需要的时间:(1/40MHz)*1056*628 = 16.5792ms。那么刷新频率就出来了=1/16.5792 ≈60Hz
ChaoyaWang
2014.10.29