FPGA——VGA协议

devtools/2024/12/21 22:25:45/

VGA协议

  • 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协议电压标准

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

RGB颜色
0.714V0V0V红色
0V0.714V0V绿色
0V0V0.714V蓝色
0V0V0.357V深蓝色
0V0V0V黑色

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

有两个方案:

  • 一种是采用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’b000
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颜色数据。
在这里插入图片描述


http://www.ppmy.cn/devtools/109241.html

相关文章

Spring Boot 注解探秘:HTTP 请求的魅力之旅

在SpringBoot应用开发中,处理Http请求是一项基础且重要的任务。Spring Boot通过提供一系列丰富的注解极大地简化了这一过程,使得定义请求处理器和路由变得更加直观与便捷。这些注解不仅帮助开发者清晰地定义不同类型的HTTP请求如何被处理,同时…

通义千问大模型Java调用,百炼

文章目录 一、大模型服务平台[百炼](https://help.aliyun.com/zh/model-studio/getting-started)二、Java sdk调用与eventStream三、百炼平台其它 一、大模型服务平台百炼 百炼是阿里新出的一个大模型服务平台,聚合了多个千问大模型及其它一些大模型的调用&#xf…

C语言手撕归并——递归与非递归实现(附动画及源码)

🤖💻👨‍💻👩‍💻🌟🚀 🤖🌟 欢迎降临张有志的未来科技实验室🤖🌟 专栏:数据结构 👨‍💻&#x1f…

SprinBoot+Vue公交智能化系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质…

vue3项目npm i安装依赖一直转圈或安装失败解决方法~

1、有时npm i安装依赖时会一直转圈或安装失败,此时可以参考如下步骤: 方法一:清除npm本地缓存,有时缓存也会造成npm安装缓慢。 npm cache clean --force npm i方法二:切换至国内镜像源。 npm config set registry h…

Java-树

一,树 1.1 概念 树是一种 非线性 的数据结构,它是由 n ( n>0 )个有限结点组成一个具有层次关系的集合。 把它叫做树是因为它看 起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的 。 它具有以下的特点…

ASP.NET Core 中间件

一、什么是中间件? 中间件 是一种装配到 ASP.NET Core 应用程序请求处理管道中的软件组件,用于处理 HTTP 请求和响应。 每个中间件组件可以: 选择是否将请求传递到下一个中间件:通过调用 next() 或者不调用 next() 来决定是否将…

IP学习——oneday

1.什么是网络?为什么需要网络? 空间,时间;传统的邮件传输要考虑到距离,网络解决了空间距离(太远)、解决了时间问题(旧音乐等) 云:面向客户的虚拟化服务 运营商公司主营…