FPGA——VGA协议

VGA协议

VGA简介

VGA,英文全称"Video Graphics Array",译为视频图形阵列,是一种使用模拟信号进行视频传输的标准协议,由 IBM 公司于 1987 年推出,因其分辨率高、显示速度快、颜色丰富等优点,广泛应用于彩色显示器领域。由于 VGA 接口体积较大,与追求小巧便携的笔记本电脑背道而驰,在笔记本电脑领域,VGA 接口已被逐渐淘汰,但对于体积较大的台式机,这种情况并未发生,虽然 VGA 标准在当前个人电脑市场中已经过时,但因其在显示标准中的重要性和良好的兼容性,VGA 仍然是最多制造商所共同支持的一个标准,个人电脑在加载自己独特驱动程序之前,都必须支持 VGA 的标准。

接口及引脚定义

引脚 定义 引脚 定义
1 红基色(RED) 9 保留(各厂家使用)
2 绿基色(GREEN) 10 数字地(GND)
3 蓝基色(BLUE) 11 地址码0(ID BIT0)
4 地址码 2(ID BIT2) 12 地址码 1(ID BIT1)
5 保留(各厂家使用) 13 行同步(HSYNC)
6 红色地(RGND) 14 场同步(VSYNC)
7 绿色地(GGND) 15 地址码3(ID BIT3)
8 蓝色地(BGND)

显示原理

VGA 显示器显示图像,是采用扫描的方式,将构成图像的像素点,在行同步信号和场同步信号的同步下,按照从上到下、由左到右的顺序扫描到显示屏上。

在VGA标准刚兴起的时候,彩色显示器通常基于CRT技术实现,其中色彩由RGB三基色组成。显示过程采用逐行扫描的方式,即阴极射线枪发出的电子束打击涂有荧光粉的荧光屏,产生RGB三基色,这些颜色合成一个彩色像素。扫描从屏幕的左上方开始,从左到右、从上到下进行。每扫完一行后,电子束回到下一行的左边起始位置继续扫描。

在扫描过程中,为了防止电子束在回到左上方的过程中破坏已有图像,需要进行行消隐和场消隐。行消隐是在每行结束时通过行同步信号进行同步,而场消隐则是在扫描完所有行后,通过场同步信号进行同步,并使扫描回到屏幕的左上方。

随着显示技术的发展,虽然出现了液晶显示器等新技术,但为了兼容传统的显示接口,液晶显示器通过内部电路实现了对VGA接口的完全兼容。这意味着,只要显示器带有标准的VGA接口,就可以直接使用标准的VGA时序来驱动显示器,而无需关心其内部的成像原理。

显示电路原理

VGA协议电压标准

由于是模拟信号,三色模拟信号分别对应颜色及电压值为:

R G B 颜色
0.714V 0V 0V 红色
0V 0.714V 0V 绿色
0V 0V 0.714V 蓝色
0V 0V 0.357V 深蓝色
0V 0V 0V 黑色

数字信号转化标准模拟信号方案

有两个方案:

  • 一种是采用AD高速数模转化芯片------ADV7123芯片
  • 另一种是采用低成本权电阻网络

采用AD芯片的会有官方文档讲解外围电路,本文在此处讲解权电阻网络。

为了让权重分配符合二进制数值权值,讲电阻设计为2的倍数。根据电流比例计算,由于 D 0 D_0 D0输出电压为VCC, D 1 D_1 D1输出电压也为VCC,因此根据电阻大小比值 I 1 = 2 I 0 I_1=2I_0 I1=2I0,则数值全值表如下:

{D1,D0} I I I
2'b00 0
2'b01 I I I
2'b10 2 I 2I 2I
2'b11 3 I 3I 3I

由表可知,该设计完美符合对模拟数值的二进制编码设计。于是,完整RGB565接口(除此之外,还有24位颜色RGB888,8位颜色显示RGB332,区别是颜色显示数量的不同)一共需要16根信号线,565也分别对应Red信号线5根,Green信号线6根,Blue信号线5根,其信号图如下。

由于VGA内部接口含有75欧姆的电阻,用于检测红绿蓝三种颜色对应的电压。如下图。

由此可以计算,对应所需的权电阻网络基础数值。先计算权值网络的等效电阻 R x R_x Rx
1 R x = 1 R + 1 2 R + 1 4 R + 1 8 R + 1 16 R \frac{1}{R_x}=\frac{1}{R}+\frac{1}{2R}+\frac{1}{4R}+\frac{1}{8R}+\frac{1}{16R} Rx1=R1+2R1+4R1+8R1+16R1

再计算最大电压 V r = 0.714 V V_r=0.714V Vr=0.714V。
V r = 75 V c c R x + 75 V_r=\frac{75V_{cc}}{R_x+75} Vr=Rx+7575Vcc

计算得:
R = 500 Ω R=500\varOmega R=500Ω

计算得R后,根据R数值可以计算出其他对应的电阻。由于,电阻阻值可能选择相近的数值,因此,Vr、Vg、Vb可能最大值并不相同,因此,也会影响显示器的RGB显示范围。如使用AD芯片可以使得RGB动态显示范围更为精准。

到此,模拟部分电路讲解完毕。

数字信号时序标准

为了适应匹配不同厂家的 VGA 显示器,VGA 视频传输接口有自己的一套 VGA 时序标准,只有遵循 VGA 的时序标准,才能正确的进行图像信息的显示。由显示原理,我们可以知道,显示时序应该会分为行扫描和列扫描。在术语里,列扫描叫做场扫描。

行扫描周期包含:同步、后沿、左边框、有效图像、右边框、前沿。基本单位是一个时钟周期。

场扫描周期同样包含:同步、后沿、上边框、有效图像、底边框、前沿。基本单位是一个行的时钟周期。

实际参数表如下:

由相关数据,行扫描周期x场扫描周期x刷新率=时钟频率,因此,640x280

@60hz的时钟计算为:800x525x60=25.2MHz。在此处,由于25.2Mhz或者25.175不便于生成,因此通常使用25Mhz的时钟频率,则对应的显示帧率59.5hz。

模块设计

clk_gen:时钟生成模块,为了讲FPGA内部时钟进行分频或者倍频处理得到模块所需的时钟信号。(可以由PLL锁相环生成)

vga_pic模块:用于生成图像数据,得到对应点的坐标来产生对应位置的图像数据。

vga_ctrl模块:VGA驱动模块,用于生成VGA驱动信号及rgb颜色数据。

相关推荐
stm 学习ing4 小时前
FPGA 第十讲 避免latch的产生
c语言·开发语言·单片机·嵌入式硬件·fpga开发·fpga
北城笑笑14 小时前
FPGA 14 ,硬件开发板分类详解,FPGA开发板与普通开发板烧录的区别
fpga开发·fpga
2202_7544215414 小时前
一个计算频率的模块
驱动开发·fpga开发
小灰灰的FPGA15 小时前
低速接口项目之串口Uart开发(七)——如何在FPGA项目中实现自适应波特率串口功能
fpga开发
fei_sun1 天前
【Verilog】第一章作业
fpga开发·verilog
深圳市雷龙发展有限公司longsto1 天前
基于FPGA(现场可编程门阵列)的SD NAND图片显示系统是一个复杂的项目,它涉及硬件设计、FPGA编程、SD卡接口、NAND闪存控制以及图像显示等多个方面
fpga开发
9527华安2 天前
FPGA实现PCIE3.0视频采集转10G万兆UDP网络输出,基于XDMA+GTH架构,提供工程源码和技术支持
网络·fpga开发·udp·音视频·xdma·pcie3.0·万兆网
able陈2 天前
为什么verilog中递归函数需要定义为automatic?
fpga开发
fei_sun2 天前
【Verilog】第二章作业
fpga开发·verilog
碎碎思2 天前
如何使用 Vivado 从源码构建 Infinite-ISP FPGA 项目
fpga开发·接口隔离原则