在博客https://blog.csdn.net/qq_51264805/article/details/122304834?utm_source=app&app_version=4.21.0&code=app_1562916241&uLinkId=usr1mkqgl919blen中我们对VGA进行了简单介绍。
而在博客https://blog.csdn.net/qq_51264805/article/details/122306440中我们针对下面赘述的VGA显示原理,时序标准编写的代码,读者可自行查看
下面就VGA显示原理进行说明:
VGA 显示器显示图像,并不是直接让图像在显示器上显示出来,而是采用扫描的方式,将构成图像的像素点,在行同步信号和场同步信号的同步下,按照从上到下、由左到右的顺序扫描到显示屏上。VGA
显示器扫描方式,具体见图 1
。

图 1 VGA显示器扫描方式
结合 VGA
显示器扫描方式示意图,我们简要说明一下
VGA
显示器的扫描规律。
(1) 在行、场同步信号的同步作用下,扫描坐标定位到左上角第一个像素点坐标;
(2) 自左上角
(
第一行
)
第一个像素点坐标,逐个像素点向右扫描
(
图中第一个水平方向箭头)
;
(3) 扫描到第一行最后一个数据,一行图像扫描完成,进行图像消隐,扫描坐标自第一行行尾转移到第二行行首(
图中第一条虚线
)
;
(4) 重复若干次扫描至最后一行行尾,一帧图像扫描完成,进行图像消隐,扫描坐标跳转回到左上角第一行行首(
图中对角线箭头
)
,开始下一帧图像的扫描。
在扫描的过程中会对每一个像素点进行单独赋值,使每个像素点显示对应色彩信息,
当一帧图像扫描结束后,开始下一帧图像的扫描,循环往复,当扫描速度足够快,加之人
眼的视觉暂留特性,我们会看到一幅完整的图片,而不是一个个闪烁的像素点。这就是
VGA
显示的原理。
VGA时序标准介绍:
为了适应匹配不同厂家的 VGA
显示器,
VGA
视频传输接口有自己的一套
VGA
时序标准,只有遵循 VGA
的时序标准,才能正确的进行图像信息的显示。在这里我们以
VESA VGA 时序标准为例,为大家讲解一下
VGA
时序标准,具体见图 2
。

图 2 VESA VGA时序标准图
由 VESA VGA
时序标准图可知,
VGA
时序由两部分构成,行同步时序与场同步时序,为了方便大家理解,我们将行同步时序与场同步时序分开讲解。
(1) 行同步时序,具体见图 3
。

图 3 行同步时序图
图中 Video
代表传输的图像信息,
HSync
表示行同步信号。
HSync
自上升沿起到下一个上升沿止为一个完整周期,我们称之为行扫描周期。
一个完整的行扫描周期,包含 6
部分:
Sync
(同步)、
Back Porch
(后沿)、
Left Border(左边框)、
“Addressable” Video
(有效图像)、
Right Border
(右边框)、
Front Porch(前沿),这
6
部分的基本单位是
pixel
(像素),即一个像素时钟周期。在一个完整的行扫描周期中,Video
图像信息在
HSync
行同步信号的同步下完成一行图像的扫描显示,Video
图像信息只有在
“Addressable” Video
(有效图像)阶段,图像信息有效,其他阶段图像信息无效。
HSync 行同步信号在
Sync
(同步)阶段,维持高电平,其他阶段均保持低电平,在下一个行扫描周期的 Sync
(同步)阶段,
HSync
行扫描信号会再次拉高,其他阶段拉低,周而复始。
(2) 场同步时序,具体见图 4
。

图 4 场同步时序图
理解了行同步时序,场同步时序就更容易理解了,两者相类似,如图 28-8
所示,图中Video 代表传输的图像信息,
VSync
表示场同步信号,
VSync
自上升沿起到下一个上升沿止为一个完整周期,我们称之为场扫描周期。
一个完整的场扫描周期,也包含 6
部分:
Sync
(同步)、
Back Porch
(后沿)、
Top Border(上边框)、
“Addressable” Video
(有效图像)、
Bottom Border
(底边框)、
Front Porch(前沿),与行同步信号不同的是,这
6
部分的基本单位是
line
(行),即一个完整的行扫描周期。
在一个完整的场扫描周期中,Video
图像信息在
HSync
(行同步信号)和
VSync
(场同步信号)的共同作用下完成一帧图像的显示,Video
图像信息只有在
“Addressable” Video(有效图像)阶段,图像信息有效,其他阶段图像信息无效。VSync 行同步信号在 Sync
(同步)阶段,维持高电平,其他阶段均保持低电平,完成一个场扫描周期后,进入下一帧图像的扫描。
综上所述,将行同步时序图与场同步时序图结合起来就构成了 VGA
时序图,具体见图 5。
图 5 VGA时序图
图中的红色区域表示在一个完整的行扫描周期中,Video
图像信息只在此区域有效,黄色区域表示在一个完整的场扫描周期中,Video
图像信息只在此区域有效,两者相交的橙色区域,就是 VGA
图像的最终显示区域。以上就是对 VGA
时序的讲解,请大家理解掌握。
VGA 显示模式及相关参数
行同步时序可分为 6
个阶段,对于这
6
个阶段的参数是有严格定义的,参数配置不正确,VGA
不能正常显示。
VGA
显示器可支持多种分辨率,不同分辨率对应个阶段的参数是不同的,常用 VGA
分辨率时序参数,具体见图 6
。

图 6 VGA不同分辨率参数
下面我们以经典 VGA
显示模式
640x480@60
为例,为读者讲解一下
VGA
显示的相关参数。
(1) 显示模式:
640x480@60
640x480 是指 VGA
的分辨率,
640
是指有效显示图像每一行有
640
个像素点,
480
是
指每一帧图像有
480
行,
640 * 480 = 307200
≈
300000
,每一帧图片包含约
30
万个像素点,之前某品牌手机广告上所说的 30
万像素指的就是这个;
@60
是指
VGA
显示图像的刷新频率,60
就是指
VGA
显示器每秒刷新图像
60
次,即每秒钟需要显示
60
帧图像。
(2) 时钟
(MHz)
:
25.175MHz
这是 VGA 显示的工作时钟,像素点扫描频率。
(3) 行同步信号时序
(
像素
)
、场同步信号时序
(
行数
)
行同步信号时序分为 6 段,
Sync
(同步)、
Back Porch
(后沿)、
Left Border
(左边
框)、
“Addressable” Video
(有效图像)、
Right Border
(右边框)、
Front Porch
(前沿),这 6
段构成一个行扫描周期,单位为像素时钟周期。
同步阶段,参数为 96,指在行时序的同步阶段,行同步信号需要保持
96
个像素时钟周期的高电平, 其他几个阶段与此相似。
场同步信号时序与其类似,只是单位不再是像素时钟周期,而是一个完整的行扫描周
期,在此不再赘述。
在这里,我们看回图 6,由图可知,即使
VGA
显示分辨率相同,但刷新频率不同的话,相关参数也存在差异,如 640x480@60
、
640x480@75
,这两个显示模式虽然具有相同的分辨率,但是 640x480@75
的刷新频率更快,所以像素时钟更快,时序参数也有区别。
下面我们以显示模式 640x480@60
、
640x480@75
为例,学习一下时钟频率的计算方法。
行扫描周期 *
场扫描周期
*
刷新频率
=
时钟频率
640x480@60:
行扫描周期:800(
像素
)
,场扫描周期:
525(
行扫描周期
)
刷新频率:
60Hz
800 * 525 * 60 = 25,200,000 ≈
25.175MHz
(误差忽略不计)
640x480@75:
行扫描周期:840(
像素
)
场扫描周期:
500(
行扫描周期
)
刷新频率:
75Hz
840 * 500 * 75 = 31,500,000 = 31.5MHz
在计算时钟频率时,大家要谨记一点,要使用行扫描周期和场扫描周期的参数进行计算,不能使用有效图像的参数进行计算,虽然在有效图像外的其他阶段图像信息均无效,但图像无效阶段的扫描也花费了扫描时间。
以上就是对 VGA
显示标准中分辨率相关参数的讲解,在编写
VGA
驱动时,我们要根据 VGA
显示模式的不同调整相关参数,只有这样
VGA
图像才能正常显示。