HDMI 2.1 FRL链路训练与测试验证 - 第2节

第二章:FRL 物理层基础——4 Lane、12Gbps 与符号编码

好,咱们正式进入 HDMI 2.1 的核心地带。FRL 物理层,说白了就是那四对差分线里到底在跑什么东西。

很多工程师一开始会被 FRL 的 spec 吓到,觉得参数太复杂。我当年刚接触时也是一头雾水。但你把它拆开看,就四个关键点:Lane 数量、Symbol Rate、编码方式、以及它们怎么配合工作。掌握了这些,物理层你就通了八成。

下面这张图是我个人梳理的 FRL 物理层骨骼,你先有个整体印象,我们再逐个掰开揉碎。

FRL 物理层核心架构 发送端 (TX) 16b/18b 编码 4 条物理 Lane Lane 0 / Lane 1 / Lane 2 / Lane 3 每 Lane 符号率:12 Gsym/s 数据率:12 Gbps 有效负载:10/9 * 12 = 13.33 Gbps 单 Lane 总带宽:12 Gbps 接收端 (RX) 时钟恢复 + 解码 核心概念:每条 Lane 独立传输,纠错与数据交织在各 Lane 间完成 FRL 物理层关键参数 • Lane 数量:4(固定) • 符号率:12 Gsym/s(每 Lane) • 编码方式:16b/18b • 总原始带宽:48 Gbps • 有效负载带宽:约 42.67 Gbps • 时钟:嵌入数据中(无独立时钟线)

2.1 4 个 Lane —— 并行传输的真相

FRL 用 4 条 Lane 并行传输。但注意,这里的“并行”可不是 4 根线同时传一个字节的并行总线。

每条 Lane 都是一个完整的串行链路。 它们物理上独立,电气特性独立,跑的数据流也独立。但在逻辑层,4 条 Lane 的数据会被条带化,也就是交织在一起传输。

核心理解: 4 Lane 不是为了并行提速,而是为了纠错和链路灵活性。如果某条 Lane 信号质量差,系统可以重传或换到其他 Lane。这在 HDMI 2.1 的链路训练中是个大杀器。

我以前在调试一个 8K 原型机时,就遇到过某条 Lane 的布线等长没做好,导致那个 Lane 在 12G 下的眼图完全闭合。还好 FRL 允许其它 3 条 Lane 继续工作,画面只是降级到 6K,没完全黑屏。要放在 TMDS 时代,早歇菜了。

Lane 编号与分配

Lane 0 到 Lane 3,物理上用差分对实现。在 PCB 上,它们就是 4 对差分线。规范要求这 4 对线电气特性一致,但允许的 skew(偏斜)容差比 TMDS 宽松很多。

  • Lane 0:默认的初始 Lane,链路训练的第一帧数据就在这上面跑
  • Lane 1~3:附属 Lane,在训练成功后,数据流量均匀分布到 4 条 Lane
  • 特殊 Lane 配置:当链路质量不佳时,可以降级为 2 Lane 或 1 Lane 模式(实际应用较少)

2.2 Symbol Rate = 12 Gbps/Lane —— FRL 的标志性节奏

这个值你闭着眼睛都得记住:12 Giga-symbols per second,即每 Lane 每秒跑 120 亿个符号。

但这里有个坑——12 Gbps 是原始信号速率,不是有效数据速率。因为 16b/18b 编码有 2 个比特的冗余,所以:

原始符号率:12 Gsyn/s
每符号比特:18 bit(含 2 个校验位)
有效数据率:12 × (16/18) = 10.667 Gbps/Lane
4 Lane 总有效数据率:10.667 × 4 = 42.667 Gbps

所以你猜测 48 Gbps 全都能用?错了。那 12.5% 的开销拿来干嘛了?

  • 直流平衡:防止信号长时间保持同一电平,导致 AC 耦合电容充放电出问题
  • 时钟嵌入:让接收端能从数据边沿提取时钟,不需要独立的时钟通道
  • 错误检测:部分校验位支持简单的误码率检测

个人经验: 我建议你在做信号完整性仿真时,千万别只看 12 Gbps 的频谱。要看有效数据率的基频和 12 Gbps 的谐波叠加。很多工程师只跑 12G 的 IBIS 模型,结果 SI 仿真完全不准,因为 16b/18b 编码会引入低频分量,这在实际信号中是看不到的。

2.3 符号编码 —— 16b/18b 的玄机

TMDS 时代用 8b/10b 编码,FRL 换成了 16b/18b。为什么要改?说白了就两个字:效率。

8b/10b 的开销是 25%,而 16b/18b 只有 12.5%。省下来的带宽不是一点点。在 12 Gbps 下,16b/18b 比 8b/10b 多出来约 1.33 Gbps 的有效数据率。这在 8K 60Hz 的视频流下刚好够用。

16b/18b 编码规则简述

我不打算把整个 300 页的编码表给你抄一遍。你只需要知道它的工作原理:

  1. 将 16 比特的数据分成两组:8 比特的高字节和 8 比特的低字节
  2. 每个 8 比特块独立使用一个编码表,映射为 9 比特的码字
  3. 两个 9 比特码字拼接成 18 比特的符号
  4. 符号中会额外插入一个“控制位”用来标识当前是数据符号还是控制符号

为什么是 9 比特而不是 10 比特? 因为 9 比特刚好够编码 512 种模式,而 8 比特数据需要 256 种模式。剩下的 256 种模式用于控制字符和特殊序列。这样实现简单,解码速度快。

编码方式 输入比特 输出比特 编码效率 直流平衡
TMDS (8b/10b) 8 10 80% 优
FRL (16b/18b) 16 18 88.9% 良

避坑指南: 我曾见过一个团队在 FPGA 上实现 16b/18b 解码,他们把编码表直接照搬了过来,结果发现解码后的数据全是乱序。为什么?因为编码时数据是 MSB 优先,但 FRL 链路在 PC 上用的是 LSB 优。这个陷阱在你做眼图测试和比特错误定位时特别容易踩到。切记:编码和解码的顺序要一致,否则 BER 测试永远是失败。

2.4 物理层信号特性实战要点

理论说完了,咱们落到实物上。如果你正在设计 HDMI 2.1 的 TX 或 RX,下面这几个测试点你必须盯死。

眼图测试

12 Gbps 下的眼图至少要达到 0.5 UI 的眼宽 和 200 mV 的眼高(参考电平)。我自己的经验是,在 PCB 背板走线超过 15 cm 时,眼图高度很容易掉到 150 mV 以下。这时你就得考虑加红/蓝眼重定时了。

抖动分离

随机抖动(RJ)和确定性抖动(DJ)要分开测。FRL 对总抖动的容忍度比 TMDS 严苛得多。典型门限是 0.25 UI 的总抖动(12G 下约 21 ps)。你如果做信号完整性仿真,一定要在 Tj 上留够裕量。

预加重与去加重

FRL 的 TX 端必须支持预加重,这是链路训练的硬性要求。我调试时发现,很多便宜的 HDMI 线缆在 12G 下会完全崩溃,开满预加重也只能勉强跑通。所以,线缆认证是物理层验收的最重要环节,没有之一。

小结

FRL 物理层就这么三个核心点:4 条 Lane、12 Gbps 符号率、16b/18b 编码。搞懂了这些,你已经能理解链路训练时为什么需要做 Lane 对齐、符号锁定、以及为什么编码效率那么重要。

下节课咱们会把这些概念串起来,看看真正的 FRL 链路训练流程长什么样。到时候你会发现,物理层的这些东西一个都跑不掉——训练过程就是不断确认 Lane 状态、调整均衡参数、最终达到稳定的符号锁定。

记得保存好这节课的笔记,尤其是那个 16b/18b 编码效率的计算公式,很多大厂的面试官就喜欢问这个。