1. HDMI协议概述

说实话,HDMI 这个接口我们天天都在用,但真要把它讲清楚,还得从根上捋一捋。我刚开始做视频接口测试时,总觉得 HDMI 就是一根线连两个设备,没什么复杂的。后来被坑过几次才发现——这里面的门道比我预想的多得多。

1.1 标准发展历程

HDMI 标准最早是 2002 年底发布的 1.0 版本。当时是为了替代模拟 VGA 和分量视频,同时解决 DVI 不能传音频的问题。我记得那时候我还在做 CRT 显示器测试,第一次看到 HDMI 样机时,觉得这玩意儿太方便了——一根线就把视频、音频和控制全搞定了。

之后版本迭代基本上是跟着消费者需求走:带宽不够就加频宽,功能不够就加 feature。我列个表,你一看就明白。

版本发布时间最大带宽核心升级
HDMI 1.02002.124.95 Gbps首次发布,支持 1080p/60Hz
HDMI 1.32006.0610.2 Gbps增加深色、xvYCC,单链路带宽翻倍
HDMI 1.42009.0610.2 Gbps新增以太网通道、ARC、3D、4K@30Hz
HDMI 2.02013.0918.0 Gbps4K@60Hz、21:9、动态同步
HDMI 2.12017.1148.0 Gbps8K@60Hz、4K@120Hz、动态 HDR、eARC、VRR

为什么每代都卡得那么紧?说白了就是消费电子对分辨率的要求一直在涨。从 1080p 到 4K 再到 8K,带宽需求几乎是每四年翻一倍。

1.2 基本架构

HDMI 系统就三个角色:源端(Source)、中继端(Repeater)和宿端(Sink)。源端比如机顶盒、电脑显卡;宿端比如电视、显示器;中继端比如功放、切换器。

我个人习惯把架构画成下面这张图。你看一眼就懂整个数据流怎么走的。

注意:实际系统中源端和宿端之间可能插了好几个中继设备,但数据链路上始终只有一条 TMDS 通道。中继设备会重新定时,不会无限制级联。

HDMI 系统架构与协议分层 Source(源端) 应用层 · 传输层 TMDS 编码 · 音频嵌入 TMDS 通道 (3对差分线 + 时钟) 中继器 Sink(宿端) TMDS 解码 · EDID HDCP · 视频/音频输出 DDC (I²C) · EDID 读取 CEC · HEAC · eARC 协议分层模型 物理层(TMDS 电气特性) 数据链路层(TMDS 字符) 传输层(数据包) 应用层(AVI InfoFrame · Audio Sample · ACP · ISRC 等) 控制子层:DDC · CEC · HDCP · HDR 元数据

图上很清楚:源端把音视频数据编码成 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 GbpsHDMI 1.03 路 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 GbpsHDMI 2.0通道时钟翻倍,引入 3.4 Gbps × 3
8K@60Hz / 4K@120HzHDMI 2.1FRL 模式,48 Gbps,16b/18b 编码

你看,每一次升级都是被“更高的分辨率/帧率/色深”强推的。但升级不全是优点——HDMI 2.1 的 FRL 模式兼容性就没那么好,早期源端和显示端经常因为 FRL 链路训练失败而回退到 TMDS 模式。我记得在实验室里测试一台 2.1 的功放时,它总是在 FRL 和 TMDS 之间来回切换,最后发现是电缆质量不达标导致的。

关键点:做一致性测试时,不仅要测信号质量,还要测链路切换行为。比如从 TMDS 切换到 FRL 时,系统能否在 100ms 内完成重新训练?老设备可能会直接黑屏。

嗯,好了,这一章我们先把 HDMI 的整体轮廓看清楚。后面的章节会逐一深入每一层的测试方法,包括物理层的眼图模板、协议层的 InfoFrame 解析、以及 EDID/HDCP 的测试陷阱。这些东西我踩过的坑可不少,到时候跟你慢慢聊。