不枉初心,砥砺前行

皮皮祥的博客

欢迎留言,评论

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

HDMI协议

HDMI协议

概述

HDMI是音视频传输协议,主要用于DVD, 机顶盒等音视频source到TV,显示器等sink设备的传输。传输基于的是TMDS协议。

物理结构

在这里插入图片描述

上图是HDMI block结构图,可以看出HDMI用于source和sink之间的连接,HDMI cable由3组差分信号传输TMDS数据,1组差分信号传输clock。此外,HDMI还有一个DDC的通道连接到sink的EDID。CEC和HEAC都是HDMI的可选协议。

在这里插入图片描述
1-9是TMDS data传输用到的引脚,共有三组;
10-12是TMDS clock传输用到的引脚,共有一组,TMDS clock就是pixel clock;
13是CEC引脚,一种消费电子兼容的传输协议;
14是保留引脚;
15,16是DDC的引脚,DDC是基于I2C协议传输,故引脚为SCL和SDA;
17是接地;
18是+5V power;
19是HPD引脚,用于建立连接。

传输

HDMI传输由三组TMDS通道和一组TMDS clock通道组成,TMDS clock的运行频率是video信号的pixel频率,在每个cycle,每个TMDS data通道发送10bit数据。
在这里插入图片描述

HDMI传输如下四种类型数据:

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

8bit的数据在source经过TMDS encoder后得到10bit数据串行输出;在sink端先进行复原成10bit的数据,再通过TMDS decoder得到8bit的源数据。

Control Period(控制数据)

Channel1[1:0]与Channel2[1:0]分别为CTL0~3
CTL0~3=1000代表接下来的是video data period
CTL0~3=1010代表接下来的是data island period

Channel0[1:0]为HSYNC, VSYNC此时也有可能发生变化

Video Data Period(视频数据)

格式为格式为RGB时,以2个字符长度的leading gurad band开始
guard band如下:

ch0: q_out[9:0] = 0b1011001100
ch1: q_out[9:0] = 0b0100110011
ch2: q_out[9:0] = 0b1011001100

接下来是RGB数据:
Channel0[7:0]用于传输B
Channel1[7:0]用于传输G
Channel2[7:0]用于传输R

Data Island Period(数据包)

data island period传输audio数据和辅助数据,辅助数据包括Infoframe和其他用于音视频信息描述的数据。

以2个字符长度的leading guard band开始,并以2个字符宽度的trailing guard band 结束。
guard band如下:

ch0: q_out[9:0] = n.a
ch1: q_out[9:0] = 0b0100110011
ch2: q_out[9:0] = 0b0100110011

Channel0[1:0]为HSYNC, VSYNC
Channel0[3:2]用于传输Data Island Header(包头)
Channel1[0:3]与Channel2[0:3]用于传输Data Island Content(包内数据)

三种数据传输注意事项

  • Video Data Period与Data Island Period中间必须有Control Period
  • data island period和control period都是在消隐区进行(Hblank与Vblank)

实体模型

EDID & DDC

sink设备在ROM中存放EDID信息,source在收到HPD后会通过DDC通道读取EDID得到显示设备的属性。

HPD

source会监测HPD pin的状态,当source和sink连接后,如果HPD为高电平,说明sink设备正常可以工作,source可通过DDC读取EDID,如果为低电平,说明sink已断开。
sink可通过拉低HPD超过100ms来向source表明EDID发生了变化,此时source会重新读取EDID。

posted on   皮皮祥  阅读(645)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2021-11-11 异步复位同步释放原理
2021-11-11 FPGA之去抖
2021-11-11 FPGA之复位
点击右上角即可分享
微信分享提示