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颜色数据。

相关推荐
最好有梦想~8 小时前
分享一个FPGA寄存器接口自动化工具
fpga开发
hahaha60169 小时前
FPGA(或者数字电路)中组合逻辑和时序逻辑是怎么划分的
fpga开发
FPGA小迷弟21 小时前
京微齐力系列FPGA---- Debugware IP核使用教程!!!
物联网·fpga开发·硬件架构·verilog·fpga
乌恩大侠2 天前
USRP X440 和USRP X410 直接RF采样架构的优势
5g·fpga开发·架构·usrp·usrp x440·usrp x410
嵌入式-老费2 天前
再谈fpga开发(怎么写verilog)
fpga开发
数字芯片实验室2 天前
继FPGA之后,英特尔拆了又拆
fpga开发
Runner.DUT2 天前
基于FPGA和DDS原理的任意波形发生器(含仿真)
fpga开发
雾削木3 天前
TI 2025全国电赛猜题
fpga开发
范纹杉想快点毕业3 天前
Zynq SOC FPGA嵌入式裸机设计和开发教程自学笔记:硬件编程原理、基于SDK库函数编程、软件固化
网络·笔记·stm32·单片机·嵌入式硬件·tcp/ip·fpga开发
爱看科技3 天前
量子计算新势力,微美全息FPGA方案解锁大幅优化与性能提升密码
fpga开发·量子计算