1、HDMI 协议概述:标准发展、版本演进、基本架构与协议分层
说实话,HDMI 这个接口我们天天都在用,但真要把它讲清楚,还得从根上捋一捋。我刚开始做视频接口测试时,总觉得 HDMI 就是一根线连两个设备,没什么复杂的。后来被坑过几次才发现——这里面的门道比我预想的多得多。
1.1 标准发展历程
HDMI 标准最早是 2002 年底发布的 1.0 版本。当时是为了替代模拟 VGA 和分量视频,同时解决 DVI 不能传音频的问题。我记得那时候我还在做 CRT 显示器测试,第一次看到 HDMI 样机时,觉得这玩意儿太方便了——一根线就把视频、音频和控制全搞定了。
之后版本迭代基本上是跟着消费者需求走:带宽不够就加频宽,功能不够就加 feature。我列个表,你一看就明白。
| 版本 | 发布时间 | 最大带宽 | 核心升级 |
|---|---|---|---|
| HDMI 1.0 | 2002.12 | 4.95 Gbps | 首次发布,支持 1080p/60Hz |
| HDMI 1.3 | 2006.06 | 10.2 Gbps | 增加深色、xvYCC,单链路带宽翻倍 |
| HDMI 1.4 | 2009.06 | 10.2 Gbps | 新增以太网通道、ARC、3D、4K@30Hz |
| HDMI 2.0 | 2013.09 | 18.0 Gbps | 4K@60Hz、21:9、动态同步 |
| HDMI 2.1 | 2017.11 | 48.0 Gbps | 8K@60Hz、4K@120Hz、动态 HDR、eARC、VRR |
为什么每代都卡得那么紧?说白了就是消费电子对分辨率的要求一直在涨。从 1080p 到 4K 再到 8K,带宽需求几乎是每四年翻一倍。
1.2 基本架构
HDMI 系统就三个角色:源端(Source)、中继端(Repeater)和宿端(Sink)。源端比如机顶盒、电脑显卡;宿端比如电视、显示器;中继端比如功放、切换器。
我个人习惯把架构画成下面这张图。你看一眼就懂整个数据流怎么走的。
注意:实际系统中源端和宿端之间可能插了好几个中继设备,但数据链路上始终只有一条 TMDS 通道。中继设备会重新定时,不会无限制级联。
图上很清楚:源端把音视频数据编码成 TMDS 字符,通过三对差分线 + 一对时钟线传给宿端。与此同时,DDC 通道(I²C 总线)用来读 EDID,告诉源端这台显示器支持什么分辨率、颜色深度、音频格式。CEC 和 HEAC 则是附加的控制和以太网通道。
避坑指南:我曾经在一款 4K 电视上发现 EDID 里写的是 4K@60Hz RGB 10bit,但实际源端只能输出 YCbCr 4:2:0 才能满足带宽。后来查规格书才意识到——EDID 只是“建议”,源端必须根据系统带宽重新计算颜色采样。如果你只信 EDID 而不做链路训练,画面就会出雪花或者闪屏。
1.3 协议分层细节
HDMI 的协议分层不像网络模型那么严格,但我们可以从测试角度把它拆成四层:
- 物理层:决定信号的电压摆幅、预加重、去加重、差分阻抗(100Ω ±10%)。测试时要看眼图和抖动。
- 数据链路层:把视频像素和音频样本映射成 10-bit TMDS 字符。这里涉及到编码方式(T.M.D.S. 不同于 8b/10b)。
- 传输层:负责数据包的组包、成帧。比如 InfoFrame、Audio Sample、Data Island。
- 应用层:真正的内容——AVI InfoFrame 告诉你这是什么视频格式、色彩空间;Audio Sample 包含 PCM 或压缩流。
你可能会问:为什么要有这么多层?其实每一层对应一份独立的测试项。物理层测试归信号完整性,数据链路层测试归编码器一致性,应用层测试靠协议分析仪抓包。各层之间耦合不大,但任一层的异常都会导致整个链路罢工。
注意:很多人误以为 HDMI 2.1 就是单纯提高了 TMDS 时钟频率。其实 2.1 用了全新的 FRL(Fixed Rate Link)模式,不再是传统的 TMDS 编码,而是采用 16b/18b 编码+四个通道。如果你还用 2.0 的测试方法去测 2.1 的源端,数据肯定对不上。
1.4 版本演进背后的逻辑
我整理了一个对比表,方便你理解每个版本为什么要升级。
| 挑战 | 对应版本 | 解决方案 |
|---|---|---|
| 1080p 要求 4.95 Gbps | HDMI 1.0 | 3 路 TMDS 通道 × 1.65 Gbps |
| 深色(10/12/16 bit) | HDMI 1.3 | 单通道带宽提升至 3.4 Gbps |
| 4K@30Hz 需要更多带宽 | HDMI 1.4 | 仍用 10.2 Gbps,靠颜色压缩 |
| 4K@60Hz 4:4:4 需要 18 Gbps | HDMI 2.0 | 通道时钟翻倍,引入 3.4 Gbps × 3 |
| 8K@60Hz / 4K@120Hz | HDMI 2.1 | FRL 模式,48 Gbps,16b/18b 编码 |
你看,每一次升级都是被“更高的分辨率/帧率/色深”强推的。但升级不全是优点——HDMI 2.1 的 FRL 模式兼容性就没那么好,早期源端和显示端经常因为 FRL 链路训练失败而回退到 TMDS 模式。我记得在实验室里测试一台 2.1 的功放时,它总是在 FRL 和 TMDS 之间来回切换,最后发现是电缆质量不达标导致的。
关键点:做一致性测试时,不仅要测信号质量,还要测链路切换行为。比如从 TMDS 切换到 FRL 时,系统能否在 100ms 内完成重新训练?老设备可能会直接黑屏。
嗯,好了,这一章我们先把 HDMI 的整体轮廓看清楚。后面的章节会逐一深入每一层的测试方法,包括物理层的眼图模板、协议层的 InfoFrame 解析、以及 EDID/HDCP 的测试陷阱。这些东西我踩过的坑可不少,到时候跟你慢慢聊。