基于FPGA的HDMI视频接口设计

news2024/10/11 0:24:55

HDMI介绍

        HDMI(High-DefinitionMultimedia Interface)又被称为高清晰度多媒体接口,是首个支持在单线缆上传输,不经过压缩的全数字高清晰度、多声道音频和智能格式与控制命令数据的数字接口。HDMI接口由Silicon Image美国晶像公司倡导,联合索尼、日立、松下、飞利浦、汤姆逊、东芝等八家著名的消费类电子制造商联合成立的工作组共同开发的。

HDMI传输原理

         HDMI采用TMDS (TimeMinimized Differential Signal)最小化传输差分信号传输技术 , TMDS是一种微分信号机制,采用的是差分传动方式 ,是一种利用2个引脚间电压差来传送信号的技术。每一个标准的HDMI连接,都包含了3个用于传输数据的TMDS传输通道,还有1个独立的TMDS时钟通道,以保证传输时所需的统一时序。在一个时钟周期内,每个TMDS通道都能传送10bit的数据流。而这10bit数据,可以由若干种不同的编码格式构成。

TMDS的原理

每一个 TMDS 链路都包括 3 个传输 RGB 信号的数据通道和 1 个传输时钟信号的通道。每一个数据通道都通过编码算法,将 8 位的视、音频数据转换成最小化传输、直流平衡的 10 位数据。这使得数据的传输和恢复更加可靠。小化传输差分信号是通过异或及异或非等逻辑算法将原始 8 位信号数据转换成 10 位,前 8 为数据由原始信号经运算后获得,第 9 位指示运算的方式,第 10 位用来对应直流平衡。

一般来说,HDMI 传输的编码格式中要包含视频数据、控制数据和数据包(数据包中包含音频数据和附加信息数据,例如纠错码等)。TMDS 每个通道在传输时要包含一个 2bit 的控制数据、8bit 的视频数据或者 4bit 的数据包即可。在 HDMI 信息传输过程中,可以分为三个阶段:视频数据传输周期、控制数据传输周期和数据岛传输周期,分别对应上述的三种数据类型如下图所示。

HDMI的特点 

1、更好的抗干扰性能,能实现最长20米的无增益传输。

2、针对大尺寸数字平板电视分辨率进行优化,兼容性好。

3、支持EDID(注1)和DDC2B(注2)标准,设备之间可以智能选择最佳匹配的连接方式。

4、拥有强大的版权保护机制(HDCP),有效防止盗版现象。

5、支持24bit色深处理,(RGB、YCbCr4-4-4、YCbCr4-2-2)。

6、接口体积小,各种设备都能轻松安装。

7、一根线缆实现数字音频、视频信号同步传输,有效降低使用成本和繁杂程度。

8、完全兼容DVI接口标准,用户不用担心新旧系统不匹配。

9、支持热插拔技术。

HDMI的接口类型 

 常见的HDMI类型有A、B、C三种类型。其中A型是标准的19针HDMI接口,普及率最高;B型接口尺寸稍大,但是有29个引脚,可以提供双TMDS传输通道。而C型接口和A型接口性能一致,但是体积较小,更加适合紧凑型便携设备使用。接口A、接口B、接口C,如下图所示。

 HDMI的数据发送系统程序设计

 该系统设计主要由上图几部分组成,分别是时钟模块、HDMI控制模块、图像数据模块,DVI数据输出编码模块。

 时钟模块设计

  该模块的作用就是产生图像的像素时钟pixel_clk和串化时钟serial_clk,这里调用Xilinx官方的IP实现功能。

 HDMI_control模块设计

 根据HDMI支持的VGA图像分辨率,输出对应的视频帧行信号。

一行数据包括:Hor Sync(行同步)、Hor Back Porch(行消隐)、Hor Active Video(行规频有效)和 Hor Front Porch(行前肩),VGA的行信号时序图如下图所示。

一场数据包括:Ver Sync(场同步)、Ver Back Porch(场消隐)、Ver Active Video(场规频有效)和 Ver Front Porch(场前肩),VGA的场信号时序图如下图所示。 

 VGA 时序主要分为行时序场时序,行时序是以像素为单位,场时序是以行为单位。VGA 行时序对行同步时间、消隐时间、行规频有效时间行前肩时间有特定要求,列时序也是如此,如果其中一部分时序出现问题就会造成显示出现问题列举部分常用 VGA 分辨率时序参数如下表所示

  • 1. HDMI支持的分辨率参数

显示模式

时钟

行时序参数(单位:pixel)

场时序参数(单位:行)

a

b

c

d

e

f

g

h

i

k

640*480@60HZ

25.175

96

48

640

16

800

2

33

480

10

525

800*600@60HZ

40

128

88

800

40

1056

4

23

600

1

623

1024*768*60HZ

65

136

160

1024

24

1344

6

29

768

3

806

1280*720*60HZ

74.25

40

220

1280

110

1650

5

20

720

5

750

1280*1024*60HZ

108

112

248

1280

48

1688

3

38

1024

1

1066

1920*1080*60HZ

148.5

44

148

1920

88

2200

5

36

1080

4

1125

1920*1080*30HZ

74.25

44

148

1920

88

2200

5

36

1080

4

1125

  • 1. HDMI_control程序接口

名称

方向

位宽

说明

clk

I

1

工作时钟

rst

I

1

复位信号(active high)

vs

O

1

输出的场信号 (active high or low 可以设置)

hs

O

1

输出的行信号 (active high or low 可以设置)

de

O

1

输出的有效数据信号(active high)

该模块程序根据根据VGA的帧行信号的参数来设计,这里选用1920*1080*60HZ作为例子进行讲解,该模块的程序代码如下所示。

如上图所示,VS信号(场信号)正常,这里设置VS信号是低电平有效,按照设置的1920*1080@60HZ的帧信号参数输出 

如上图所示,HS信号(场信号)正常,这里设置HS信号是低电平有效,按照设置的1920*1080@60HZ的帧信号参数输出;

如上图所示,de信号(场信号)正常,这里设置de信号是高电平有效,按照设置的1920*1080@60HZ的帧信号参数输出。

基于FPGA的HDMI的方块移动演示-CSDN直播

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32F407 FSMC并口读取AD7606

先贴一下最终效果图.这个是AD7606并口读取数据一个周期后的数据结果. 原始波形用示波器看是很平滑的. AD7606不知为何就会出现干扰, 我猜测可能是数字信号干扰导致的. 因为干扰的波形很有规律. 这种现象基本上可以排除是程序问题. 应该是干扰或者数字信号干扰,或者是数字和模拟…

截稿倒计时 CCF-B COCOON’24论文延期至4月8日提交

会议之眼 快讯 第30届COCOON 2024 (International Computing and Combinatorics Conference)即国际计算与组合学会议将于 2024 年 8月23日-25日在中国上海举行!COCOON是一个专注于计算机科学理论领域的国际性学术会议!COCOON会议自1995年起举办&#xf…

BugKu:Simple SSTI

1.进入此题 2.查看源代码 可以知道要传入一个名为flag的参数,又说我们经常设置一个secret_key 3.flask模版注入 /?flag{{config.SECRET_KEY}} 4.学有所思 4.1 什么是flask? flask是用python编写的一个轻量web开发框架 4.2 SSTI成因(SST…

Java实现两数相除

题意 给你两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和取余运算。 整数除法应该向零截断,也就是截去(truncate)其小数部分。例如,8.345 将被截断为 8 ,-2.7335…

【yolov5小技巧(1)】---可视化并统计目标检测中的TP、FP、FN

文章目录 🚀🚀🚀前言一、1️⃣相关名词解释二、2️⃣论文中案例三、3️⃣新建相关文件夹四、4️⃣detect.py推理五、5️⃣开始可视化六、6️⃣可视化结果分析 👀🎉📜系列文章目录 嘻嘻 暂时还没有~~~~ &a…

OpenCV4.9开发之Window开发环境搭建

1.打开OpenCV所在github地址 2.点击opencv仓库,进入仓库详情,点击右下方的OpenCV 4.9.0进入下载页面 3.点击opencv-4.9.0-windows.exe下载 开始下载中... 下载完成 下载完成后,双击运行解压,默认解压路径,修改为c:/

UE4_材质节点

UE4_材质节点 2017-12-07 13:56 跑九宫格 跑UV 评论(0)

spring总结-基于XML管理bean超详细

spring ioc总结-基于XML管理bean 前言实验一 [重要]创建bean1、目标和思路①目标②思路 2、创建Maven Module3、创建组件类4、创建spring配置文件7、无参构造器8、用IOC容器创建对象和自己建区别 实验二 [重要]获取bean1、方式一:根据id获取2、方式二:根…

LabVIEW专栏五、网口

该节目标编写一个网口调试VI。 上一章是串口,这章介绍网口的写法。 一、网口硬件 1.1、上位机网口 1.2、网口线 由线缆和水晶头组成,现在一般用5类和超5类的网线 1.3、接线方式 忽略,这里加上这点为了提醒一个硬件和上位机连接&#xf…

保健品wordpress外贸模板

保健品wordpress外贸模板 健康保养保健品wordpress外贸模板,做大健康行业的企业官方网站模板。 https://www.jianzhanpress.com/?p3514

Vue.js---------Vue基础

能够说出Vue的概念和作用能够使用vue/cli脚手架工程化开发能够熟练Vue指令 一.vue基本概念 1.学习vue Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 渐进…

高分卫星助力台湾省花莲县地震应急救援

4月3日7时58分,在台湾省花莲县海域(北纬23.81度,东经121.74度)发生7.3级地震,震源深度12公里。接中国地震局地震预测研究所应急需求,国家航天局对地观测与数据中心(以下简称“中心”&#xff09…

[技巧] 逆序对问题 的 分治解法

分治核心思想: 分解(Divide):将原问题分解成一系列子问题。这些子问题应该是原问题的较小版本。解决(Conquer):递归地解决这些子问题。如果子问题的规模足够小,则直接求解。合并&am…

java自动化-03-04java基础之数据类型举例

1、需要特殊注意的数据类型举例 1)定义float类型,赋值时需要再小数后面带f float num11.2f; System.out.println(num1);2)定义double类型,赋值时直接输入小数就可以 3)另外需要注意,float类型的精度问题…

QT 实现无边框可伸缩变换有阴影的QDialog弹窗

实现无标题栏窗口的拖拽移动、调节窗口大小以及边框阴影效果。初始化时进行位或操作,将这些标志合并为一个值,并将其设置为窗口的标志。这些标志分别表示这是一个对话框、无边框窗口、有标题栏、有最小化按钮和最大化按钮。 setWindowFlags(Qt::Dialog |…

数据结构——图的概念,图的存储结构,图的遍历(dfs,bfs)

目录 1.图的定义和术语 2.案例引入 1.六度空间理论 3.图的类型定义 4.图的存储结构 1.邻接矩阵 1.无向图的邻接矩阵表示法 2.有向图的邻接矩阵表示法 3.网(有权图)的邻接矩阵表示法 代码示例: 2.采用邻接矩阵表示法创建无向图…

【Qt 学习笔记】认识QtSDK中的重要工具

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 认识QtSDK中的重要工具 文章编号:Qt 学习笔记 / 03 文章目…

单例模式以及线程安全问题

单例模式的概念 单例模式是指的是整个系统生命周期内,保证一个类只能产生一个实例对象 保证类的唯一性 。 通过一些编码上的技巧,使编译器可以自动发现咱们的代码中是否有多个实例,并且在尝试创建多个实例的时候,直接编译出错。 …

哈佛大学商业评论 -- 第二篇:增强现实是如何工作的?

AR将全面融入公司发展战略! AR将成为人类和机器之间的新接口! AR将成为人类的关键技术之一! 请将此文转发给您的老板! --- 本文作者:Michael E.Porter和James E.Heppelmann 虽然物理世界是三维的,但大…

SpringCloud - 如何本地调试不会注册到线上环境(Nacos)?

问题描述 有时候我们需要本地调试注册到 Nacos 上,但是会影响线上服务的 Feign 请求打到本地导致不通影响了线上业务。 原因分析 一般最传统的解决方案就是修改本地 bootstrap.yml 的 spring.cloud.nacos.discovery.namespace spring:application:name: app-serv…