HDMI学习笔记

news/2025/1/13 10:53:40/

文章目录

  • 一、HDMI 基本介绍
  • 二、TMDS基本介绍
  • 三、传输流程
  • 四、传输周期
  • 五、Data Island Packet结构
  • 六、Audio Clock
  • 七、HotPlug
  • 八、HDMI Sink
  • 九、HDMI版权内容保护之HDCP
  • 十、模块编码

一、HDMI 基本介绍

对于初学者先了解VGA,再来看HDMI会更容易理解,有关VGA原理在我的博客中有详细说明。FPGA-VGA显示
HDMI,高清晰度多媒体接口(High Definition Multimedia Interface)是标准的数字化视频/音频接口技术,可用于机顶盒、DVD播放机、个人电脑与电视机。HDMI可以同时传送音频和影音信号,能高品质地传输未经压缩的高清视频和多声道音频数据,最高数据传输速度为 50Gbps 左右。
  HDMI 向下兼容 DVI,但是 DVI(数字视频接口)只能用来传输视频,而不能同时传输音频,这是两者最主要的差别。此外,DVI 接口的尺寸明显大于 HDMI 接口,如下图所示
  在这里插入图片描述
在这里插入图片描述

VGA、DVI、HDMI相互转换的说明:

1、VGA和DVI互转:模拟信号和数字信号的转换,视频信号损失,造成失真。最好不要这样转换。

2、DVI和HDMI互转:都是数字信号,转换不会发生失真。可以转换。但是从HDMI转换成DVI时会自动舍去音频信号。

HDMI引脚:
HDMI有A,B,C,D,E五种引脚类型,目前市面中比较常见的就是Type A
在这里插入图片描述

  • 1-9 都是TMDS数据传输实际上用到的引脚,分为0,1,2三组
  • 10-12 为TMDS时钟信号,如当前Video Timing为480p@60Hz(Htotal:800,Vtotal:525),则TMDS clock = 800x525x60 = 25.2MHz。TMDS clock就像是对像素的打包,一个clock分别在三个Channel传输一个像素的R、G、B(8bit)信号。
  • 13 为CEC(consumer electronic control)类似一种扩展的HDMI功能,供厂家自己定制HDMI消息,(比如说你有一台sony的DVD与TV,两者用HDMI线接上,如果你用TV的遥控器可以控制DVD,另DVD执行某种功能,那么该功能的命令信号就是通过TV与DVD间的CEC引脚传输的)
  • 14 为保留引脚,未使用(或者也可以为CEC提供多一个引脚)
  • 15-16 为I2C引脚,用于DDC(Display Data Channel,主要用于EDID与HDCP的传输)传输。在HDMI的流程中,DDC通信几乎是最先做的(前有Hotplug),因为HDMI的主从两个设备需要通过DDC来获得他们对方设备的EDID,从而得到各种信息,并且通过比较timming以确定以后送出来的timming为最合适的
  • 17 为接地引脚
  • 18 为5v的AC引脚
  • 19 为Hotplug(热拔插)引脚(用于监测HDMI设备有没有存在,如果存在(Hotplug为high)那么可以通过DDC去读EDID),HDMI有规定在HDMI 5vAC断电时source device可以读reciever device的EDID,也就是需要Hotplug为High。其中有两种Hotplug相关的情况会导致HDMI被识别为DVI:
    1. Hotplug为High,不过EDID并没有准备好,那么信号源设备会由于无法读到EDID而认为接收设备为DVI,这样会导致HDMI有图像无声的问题。
    2. Hotplug为Low,也会导致信号源无法读到EDID而认为接收设备为DVI,从而导致HDMI有图无声
    3. 在TV这种有多个HDMI通道的情况下,有时会在多个HDMI通道进行切换,切换后HDMI通道应当先初始化,即先把Hotplug拉低,通知HDMI source device之前所用的EDID已经改变,需要重新读取,那么source device在Hotplug被拉高的时候会去读取新的EDID,但是拉低这个过程至少需要100ms,否则source device有可能不会去读取新的EDID,从而输出DVI信号

下图为 HDMI 链路的框架图:
在这里插入图片描述

二、TMDS基本介绍

过渡调制差分信号,也被称为最小化传输差分信号,是指通过异或及异或非等逻辑算法将原始信号数据转换成 10 位,前 8 位数据由原始信号经运算后获得,第9位指示运算的方式,第 10 位用来对应直流平衡(DC-balanced,就是指在编码过程中保证信道中直流偏移为零,电平转化实现不同逻辑接口间的匹配),转换后的数据以差分传动方式传送。

TMDS 的链路要有两部分:source 和 sink 端,source 端为传输数据的起始端,sink 端为传输数据的目的端。同时链路由四条通道组成,分别为蓝色通道、、绿色通道、红色通道和时钟通道。
在这里插入图片描述

蓝色通道

蓝色通道包含8位的蓝色数据通道,两位的行同步和场同步信号,以及四位的音频信号。

绿色通道

绿色通道包含8位的绿色数据通道,两位的控制信号,以及四位的音频信号。

红色通道

红色通道包含8位的红色数据通道,两位的控制信号,以及四位的音频信号。

时钟通道

为了使source端和sink端的数据保持在同一个pixel clock下,便于数据的稳定发送和接收。

在 source 端:每个通道的中还包含 Encoder 和 Serializer 模块,即编码模块和并转串模块,对应到 sink 端为解码模块和串转并模块。

在编码阶段:编码器将视频源中的像素数据、HDMI的音频/附件数据,以及行、场同步信号分别编码成10位的字符流。

在并串转换阶段将上述的10位字符流转换成串行数据流,并将其从三个差分输出通道发送出去。这个10:1的并转串过程所产生的串行速率是实际像素时钟速率的10倍。但是在并转串中采用的为DDR即双沿采样,因此时钟频率可以减小为原来的一半,也就是像素时钟的 5 倍。

三、传输流程

HDMI TMDS传输的数据类型有三种(加上Hsync与Vsync就算4种):

  • Preamble(控制信息),主要用于控制接下来传输的数据是Data Island或者Video Data
  • Data Island(数据包),各种类型的包信息,包括音频数据包,图像信息包等
  • Video Data (视频信息),视频像素数据,HDMI可以传输RGB与YUV两种格式的像素数据
  • Hsync与Vsync

如果是8bit的数据进入TMDS编码器,得到抗干扰性强的10bit TMDS信号,然后再进行串行化输出;在接收端收到串行的HDMI信号后,进行信号复原,得到10bit的TMDS信号,最后用TMDS解码器解码得到原来的8bit数据。

总体传输流程如下:
在这里插入图片描述

传输对象bit说明
Video Data24bitChannel0[7:0]传输B,Channel1[7:0]传输G,Channel2[7:0]传输R
Data Island10bitChannel0[3:2]用于传输Data Island Header(包头),Channel1[3:0]与Channel2[3:0]用于传输Data Island Content(包内数据)
Preamble4bitChannel1[1:0]与Channel2[1:0]分别为CTL0,CTL1,CTL2,CTL3,用于判断接下来输入的是Video Data或者Data Island
Hsync与VSync2bitChannel0[0]为Hsync,Channel0[1]为Vsync
CTL0CTL1CTL2CTL3Data Period Yype
1000Video Data Period
1010Data Island Period

四、传输周期

HDMI的TMDS数据传输可以分为三个传输周期:
在这里插入图片描述

  1. Control Period期间会传输Hsync,Vsync,并且在该时期的最后阶段会传输Preamble
  2. Data Island Period期间会传输Data Island(数据包),也会有Hsync与Vsync
  3. Video Data Period期间会传输Video Data(视频像素数据)

一帧总体周期:
在这里插入图片描述
三个传输周期的过渡如下:
在这里插入图片描述

左边中间右边
Control PeriodData Island PeriodData Island Period
传输有Hsync,Vsync与Preamble传输有Hsync,Vsync,以及两个Packet Header与Packet(每32个clock 一个packet);另外Data Island的两端会用Guard Band保护并隔开Data Island的数据,因为这个阶段传输的数据大多是非常重要的,比如其中就有图像分辨率,决定后面的Video Data数据的显示方式传输有Hsync,Vsync,以及两个Packet Header与Packet(每32个clock 一个packet);另外Data Island的两端会用Guard Band保护并隔开Data Island的数据,因为这个阶段传输的数据大多是非常重要的,比如其中就有图像分辨率,决定后面的Video Data数据的显示方式

五、Data Island Packet结构

在这里插入图片描述
所有Data Island Packet都以32个时钟脉冲为一个周期,也就是说每32 clk传输一个包。
说明:

bolck传输通道说明
包头(Packet HeaderBCH block 4Channel0[2]前三个byte为包头,最后一byte为校验码
包体(Packet BodyBCH block 0,1,2,3Channel1,Channel2共8根线传输,共有28byte包体与4byte的校验码

Parity Bits校验码是用于检验HDMI Cable传输过程中是否发生了错误,如果该Packet在HDMI接收端校验错误,如果只有一个bit的错误,那么可以修正,超过1bit的错误会被判别为无效Packet(由于HDMI是一直在发送数据因此无法重发错误Packet)
所以在接收端,在解完包之后,需要取出各个BCH block的Parity bit,进行Calibration(校验)

六、Audio Clock

七、HotPlug

八、HDMI Sink

九、HDMI版权内容保护之HDCP

十、模块编码

每一个数据通道都通过编码算法,将 8 位的视、音频数据转换成最小化传输、直流平衡的 10 位数据。这使得数据的传输和恢复更加可靠。最小化传输差分信号是通过异或及异或非等逻辑算法将原始 8位信号数据转换成 10 位,前 8 为数据由原始信号经运算后获得,第 9 位指示运算的方式,第 10位用来对应直流平衡。这种算法可以减小传输信号过程的上冲和下冲,什么是上冲和下冲呢,顾名思义上冲就是由0转变为1,下冲就是由1转变为0,如果频繁的上下冲就会导致信号传输不稳定,而DC平衡使信号对传输线的电磁干扰减少,DC平衡指的是在码流中0和1的个数相当。总结来说,信号频繁的0、1变化和0和1数量不均衡都会影响信号的质量,编码的目的就在于此。

在这里插入图片描述
参考 HDMI介绍与流程


http://www.ppmy.cn/news/880468.html

相关文章

HDMI 数据包简析

HDMI数据传输 HDMI 系统架构由信源端和接收端组成。某个设备可能有一个或多个HDMI 输入,一个或多个HDMI 输出。这些设备上,每个HDMI 输入都应该遵循HDMI 接收端规则,每个HDMI输出都应该遵循HDMI 信源端规则。 HDMI 线缆和连接器提供四个差分…

HDMI 1.4 协议

目录 1、简介 1.1、物理接插件 1.1.1、Type A Connector 1.1.2、Type B Connector 1.1.3、Type C Connector 1.1.4、Type D Connector 1.2、管脚信号定义 2、基本结构 3、链路层分析 3.1、链路层结构 3.2、几个传输阶段定义 3.3、传输内容 3.3.1、Control Period …

HDMI的简单介绍

最近使用IMX6做HDMI的输出显示,记录一下关于HDMI的理解: 高清晰度多媒体接口(High Definition Multimedia Interface,HDMI)是一种数字化视频/音频接口技术,是适合影像传输的专用型数字化接口,其…

HDMI基本原理

如同最顶级的发动机是F1赛车驰骋赛场的保障一样,HDMI标准之所以拥有强大的数据传输能力,和它的传输原理是分不开的,下面我们就看看HDMI标准的传输原理是什么。 HDMI标准继续沿用了和DVI相同的,由Silicon Image公司发明的TMDS(…

OpenAI Gym中FrozenLake环境(场景)源码分析(1)

针对于OpenAI Gym中FrozenLake(冻湖)环境(场景)的示例代码网上有很多,如下代码就是其中比较经典的: import numpy as np import gym import random import time from IPython.display import clear_output…

Java正则校验:密码必须由字母和数字组成,且大于等于8个字符。

需求 对登录密码进行校验,需要密码必须由字母和数字组成(同时包括数字和数字),且大于等于8个字符。 原理 使用正则表达式校验字符串。 正则表达式构建思路: 字符为数字或字母;不能全是数字&#xff1b…

HTML5和CSS3新特性

文章目录 1.HTML5新特性1.1 概述1.2 语义化标签1.3 多媒体标签1.3.1 视频标签- video1.3.2 音频标签- audio 1.4 新增的表单元素1.5 新增表单属性 2.CSS3新特性2.1新增选择器2.1.1 属性选择器2.1.2 结构伪类选择器E:first-childE:nth-child(n)E:nth-child 与 E:nth-of-type 的区…

小米手机设置这4个按钮,升级MIUI11后!电量就能多用几小时

小米手机的电池容量一直都不怎么高,还没有使用多久电池就不耐用。之前60%的电都能使用一整天,而升级MIUI11后80%的电只能使用大半天了。其实简单调整这4个按钮,小米手机电量就能多用几个小时,并且还不会影响使用体验哦。 1.关闭不…