【FPGA】通俗理解从VGA显示到HDMI显示

注:大部分参考内容来自“征途Pro《FPGA Verilog开发实战指南——基于Altera EP4CE10》2021.7.10(上)” 

贴个下载地址:

野火FPGA-Altera-EP4CE10征途开发板_核心板 — 野火产品资料下载中心 文档

hdmi显示器驱动设计与验证 — [野火]FPGA Verilog开发实战指南——基于Altera EP4CE10 征途Pro开发板 文档

VGA正文开始

要通俗的理解VGA显示驱动,就要知道实物长什么样子,如下图所示,VGA接口总共有15个,但是需要我们关心的只有以下五个,分别是:

1:红基色,模拟信号,三原色中的R

2:绿基色,模拟信号,三原色中的G

3:蓝基色,模拟信号,三原色中的B

13:行同步,负责显示过程中“行”的扫描

14:场同步,负责显示过程中“场(列)”的扫描

VGA的显色原理图如下

假设我们需要显色的图像是640x480的,这一幅画面上,横着的点有640个,竖着的点有480个。我们通过行同步信号和场同步信号来确定每个点的位置,然后给每个点一个数据(8位:RGB232、16位:RGB565、24位:RGB888等),即可显示出一副画面。

所以说,要想使VGA显示一副画面,就需要我们利用FPGA向行同步和场同步输出显示点的位置,然后利用FPGA向红基色接口、绿基色接口和蓝基色接口赋值即可。

所以编写VGA的驱动模块就变得十分的简单了,只需要利用我们的FPGA,向VGA外设输出行同步信号、场同步信号和数据即可。

在绑定管脚时,行同步和场同步各一根线绑定,RGB数据,各按照自己的位宽绑定即可(例如我这里是绑定16根线)

HDMI正文开始

上面讲了关于VGA的驱动,我们可以看出VGA 显示具有成本低、结构简单、应用灵活等优点,但缺点是 VGA 使用的模拟信号(R、G、B)极易受到外界干扰源的影响,产生信号畸变,而且 VGA 接口体积较大, 不利于便携设备的使用。

这个时候,HDMI接口便应运而生了。(讲解HDMI A Type)

HDMI接口的实物如下图所示,共有19个接口,但在显示图像时,我们只需要用到10个接口,分别是:

7、9:数据0+、数据0-(差分信号,抗干扰)

4、6:数据1+、数据1-

1、3:数据2+、数据2-

10、12:时钟+、时钟-

15、16:SCL、SDA -> 发送端与接收端通过I2C协议,得知彼此的发送与接收能力。

所以说,如果要用FPGA驱动HDMI显示,则FPGA应该向对HDMI的十个接口进行赋值,分别是数据0+、数据0-、数据1+、数据1-、数据2+、数据2-、时钟+、时钟-,这十个接口全部为1Bit数据,同时这十个接口也是FPGA需要往HMDI上面绑定的十个管脚,模块框图如下:

VGA转HDMI 

VGA输出的RGB数据,我们可以通过特定的模块转为数据0+、数据0-、数据1+、数据1-、数据2+、数据2-。时钟我们也可以通过一个模块把输入的时钟转为差分时钟。

假设RGB一共24位(R分量占8位,G分量占8位,B分量占8位),此时我们就可以分别把R、G、B转为串行差分信号进行输出

R-------->数据0+、数据0-;

G-------->数据1+、数据1-;

B-------->数据2+、数据3-;

在转换的过程中我们需要注意并行转串行、单端转差分、以及编码(8位转9位),HDMI协议所要求。

所以顶层模块变成如下框图所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/100721.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8S的CKA考试环境和题目

CKA考试这几年来虽然版本在升级,但题目一直没有大的变化,通过K8S考试的方法就是在模拟环境上反复练习,通过练习熟悉考试环境和考试过程中可能遇到的坑。这里姚远老师详细向大家介绍一下考试的环境和题目,需要详细资料的同学请在文…

单片机-蜂鸣器

简介 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电 蜂鸣器主要分为 压电式蜂鸣器 和 电磁式蜂鸣器 两 种类型。 压电式蜂鸣器 主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后&…

HarmonyOS实现静态与动态数据可视化图表

一. 样例介绍 本篇Codelab基于switch组件和chart组件,实现线形图、占比图、柱状图,并通过switch切换chart组件数据的动静态显示。要求实现以下功能: 实现静态数据可视化图表。打开开关,实现静态图切换为动态可视化图表 相关概念 s…

基于SpringBoot的医院挂号系统

基于SpringBootVue的医院挂号、预约、问诊管理系统,前后端分离 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/Ecilpse、Navicat、Maven 角色:管理员、用户、医生 管…

ADS仿真设计低噪放大器

ATF54143的zap文件下载: https://download.csdn.net/download/weixin_38345163/85093785 ADS仿真LNA例程: https://download.csdn.net/download/weixin_38345163/88306351

Python 内置函数详解 (1) 数学运算

近期在外旅游,本篇是出发前定时发布的,不完整,旅游回来后再补充。 Python 内置函数 Python3.11共有75个内置函数,其来历和分类请参考:Python 新版本有75个内置函数,你不会不知道吧_Hann Yang的博客-CSDN博客 函数列表 abs aiter all …

CSS中border-radius的来美化table的实战方案

border-radius是一种CSS属性,用于设置元素的边框的圆角程度。其具体的用法如下: 设置一个值:可以为元素设置一个单一的圆角半径,这个半径将应用于元素的四个角。例如: div {border-radius: 10px; }设置四个值&#x…

Hive_Hive统计指令analyze table和 describe table

之前在公司内部经常会看到表的元信息的一些统计信息,当时非常好奇是如何做实现的。 现在发现这些信息主要是基于 analyze table 去做统计的,分享给大家 实现的效果某一个表中每个列的空值数量,重复值数量等,平均长度 具体的指令…

通俗易懂讲解大模型:Tokenizer

Tokenizer Tokenizer 是 NLP pipeline 的核心组件之一。Tokenizer 的目标是:将文本转换为模型可以处理的数据。模型只能处理数字,因此 Tokenizer 需要将文本输入转换为数字输入。 通常而言有三种类型的 Tokenizer :Word-based Tokenizer、Cha…

SpringMVC_SSM整合

一、回顾SpringMVC访问接口流程 1.容器加载分析 容器分析 手动注册WebApplicationContext public class ServletConfig extends AbstractDispatcherServletInitializer {Overrideprotected WebApplicationContext createServletApplicationContext() {//获取SpringMVC容器An…

9.3.3网络原理(网络层IP)

一.报文: 1.4位版本号:IPv4和IPv6(其它可能是实验室版本). 2.4位首部长度:和TCP一样,可变长,带选项,单位是4字节. 3.8位服务类型 4.16位总长度:IP报头 IP载荷 传输层是不知道载荷长度的,需要网络层来计算. IP报文 - IP报头 IP载荷 TCP报文 TCP载荷 IP载荷(TCP报文) …

AlmaLinux 经济收益增加,红帽 RHEL 源码限制不成威胁

导读红帽在两个月前发布公告表示,将限制对 Red Hat Enterprise Linux (RHEL) 源代码的访问,未来 CentOS Stream 将成为公共 RHEL 相关源代码发布的唯一仓库。对于这一决策,AlmaLinux OS Foundation 主席 Benny Vasquez 则向 SiliconANGLE 表示…