FPGA 入门 —— VGA

FPGA 入门 —— VGA

VGA 协议简介

简介

VGA 的全称是 Video Graphics Array,即视频图形阵列,是一个使用模拟信号进行视频传输的标准。早期的 CRT 显示器由于设计制造上的原因,只能接收模拟信号输入,因此计算机内部的显卡负责进行数模转换,而 VGA 接口就是显卡上输出模拟信号的接口。如今液晶显示器虽然可以直接接收数字信号,但是为了兼容显卡上的VGA接口,也大都支持 VGA 标准

VGA 原理

在 VGA 标准兴起的时候,常见的彩色显示器一般由 CRT(阴极射线管)构成,色彩是由 RGB 三基色组成。显示是用逐行扫描的方式解决。阴极射线枪发出的电子束打在涂有荧光粉的荧光屏上,产生 RGB 三基色,合成一个彩色像素,扫描从屏幕的左上方开始,从左到右,从上到下进行扫描,每扫完一行,电子束都回到屏幕的下一行左边的起始位置

在这期间,CRT 对电子束进行消隐。每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方。同时进行场消隐,预备下一场的扫描

在通常使用的连接方法里面,15 个管脚里面的5个是最重要的,他们包括 3 个基本红,绿,蓝三条基本色彩线和水平与垂直两条控制线

VGA 接口标准

VGA工业标准所要求的频率:

  • 时钟频率: 25.175MHz(像素输出的频率)

  • 行频: 31469Hz

  • 场频: 59.94Hz

显示器技术规格提供的行频一般在30kHz~45kHz(保守数据),场频一般在 50Hz~75Hz (保守数据),针对以上保守数据,以 30kHz 的行频进行扫描时所需时钟频率为:30kHz×800 (行周期) = 24MHz ,则场频为:30kHz÷525 (场周期) = 57.14Hz

VGA 视频传输

在 VGA 视频传输标准中,视频图像被分解为红、绿、蓝三原色信号,经过数模转换之后,在行同步(HSYNC)和场同步(VSYNC)信号的同步下分别在三个独立通道传输。VGA在传输过程中的同步时序分为行时序和场时序

行同步时序:

场同步时序:

从上面两幅图中我们可以看到VGA传输过程中的行同步时序和场同步时序非常类似,一行或一场(又称一帧)数据都分为四个部分:低电平同步脉冲、显示后沿、有效数据段以及显示前沿。

行同步信号HSYNC在一个行扫描周期中完成一行图像的显示,其中在a段维持一段时间的低电平用于数据同步,其余时间拉高;在有效数据期间(c段),红绿蓝三原色数据通道上输出一行图像信号其余时间数据无效。

与之类似,场同步信号在在一个场扫描周期中完成一帧图像的显示,不同的是行扫描周期的基本单位是像素点时钟,即完成一个像素点显示所需要的时间;而场扫描周期的基本单位是完成一行图像显示所需要的时间。

早期的VGA特指分辨率为640X480的显示模式,后来根据分辨率的不同,VGA又分为VGA(640x480)、SVGA(800x600)、XGA(1024x768)、SXGA(1280x1024)等。不同分辨率的VGA显示时序是类似的,仅存在参数上的差异,如图:

需要注意的是,即便分辨率相同,刷新速率(每秒钟图像更新次数)不一样时,对应的VGA像素时钟及时序参数也存在差异。例如,显示模式“640480@75”刷新速率为75hz,与相同分辨率下刷新速率为60hz的“640480@60”模式相比,像素时钟更快,其他时序参数也不尽相同

VGA 成像时序详解

下图为 VGA 成像的综合时序:

下图中,黑底的 JAMES 人物图像就是我们希望显示的图像内容。我们的目的就是要让该图像恰好完全显示在显示器上。而 CRT 显示器是基于电子枪的,通过电子轰击荧光粉来产生明暗不同的亮度,从而实现图像线索。所以这一幅图像,可以理解为横向的很多行图像向下依次平铺构成的,而每一行图像,又可以理解为由多个像素点从左向右依次平铺构成的。电子枪每次只能点亮一个点上的荧光粉,所以需要像我们人眼看文章一样,从左向右一个字一个字的看,看完一行内容后,再把视线回到左侧,另起一行开始看,这也就是 CRT 的成像方式

行扫描:

虽然扫描的时候是按照一行一行的方式进行的,但不是扫描完一行有效数据段之后就立马返回,而是会继续向右扫描一段区域,这个区域称为右边界区域( horizontal right border ),该区域己经不在有效的显示范围内,如果从物理结构的角度来说,这一段对应的荧光屏玻璃上就不再有荧光粉了,但是电子枪还在继续向右走,大家可以形象理解为显示器右边的黑边。同样的,显示器左边也有这样一段黑边,在开始显示有效数据之前,电子枪扫描到的这段区城同样也是没有荧光粉的,不会显示图像,这个区城称为左边界区域( horizontal left border )

当电子枪扫描一行图像到达荧光屏的最右端后,其并不会自动回到最左边准备下一行,而是需要有一个通知信号,通知其回去,这个通知信号就是行同步信号脉冲( horizontal sync pulse )。行同步信号是一个脉冲,当该脉冲出现后,电子枪的指向会在一定时间内从最右侧回到显示屏的最左侧。而这个回去的过程需要耗费一定的时间,这个时间就称为 (horizontal back porch) 。这也是这个名词中 back 的意义所在,即出现行同步信号后,电子尬从显示屏最石侧回到最左侧的时间。当电子枪扫描过了右侧没有荧光粉的区城后还没有收到回到最左侧的命令(行同步信号脉冲)之前,电子枪需要关闭以实现消隐,这个消隐的时间段就称为 (horizontal front porch),直观一点理解就是完成了一行图像的扫描,但还没收到回到最左侧命令之前的一段时间

场扫描:

场扫描与行扫描原理类似

VGA 成像设计

设计VGA成像需要找到几个关键时间节点:

行扫描时间节点:(以640*480为例)

  1. 行脉冲的开始位置HS_Begin(HS_YC下降沿) =0

  2. 行脉冲的结束位置HS_End (HS_YC上升沿)=96(Pclk)

  3. 行数据开始输出位置Hdata_Begin=96+40+8

  4. 行数据停止输出位置Hdata_End=96+40+8+640

  5. 行同步信号的结束位置Hsync_end=96+40+8+640+8+8 = 800

场扫描时间节点:

  1. 场脉冲的开始位置VS_Begin(VS_YC下降沿)=0

  2. 场脉冲的结束位置VS_End (VS_YC上升沿)=2(Line)

  3. 场数据开始输出位置Vdata_Begin=2+25+8

  4. 场数据停止输出位置Vdata_End=2+25+8+480

  5. 场同步信号的结束位置Vsync_end=2+25+8+480+8+2 = 525

相关参数如下表表所示:

猜你喜欢

转载自blog.csdn.net/m0_59161987/article/details/130377678