HDMI 2.1 FRL链路训练与测试验证 - 第2节
第二章:FRL 物理层基础——4 Lane、12Gbps 与符号编码
好,咱们正式进入 HDMI 2.1 的核心地带。FRL 物理层,说白了就是那四对差分线里到底在跑什么东西。
很多工程师一开始会被 FRL 的 spec 吓到,觉得参数太复杂。我当年刚接触时也是一头雾水。但你把它拆开看,就四个关键点:Lane 数量、Symbol Rate、编码方式、以及它们怎么配合工作。掌握了这些,物理层你就通了八成。
下面这张图是我个人梳理的 FRL 物理层骨骼,你先有个整体印象,我们再逐个掰开揉碎。
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 页的编码表给你抄一遍。你只需要知道它的工作原理:
- 将 16 比特的数据分成两组:8 比特的高字节和 8 比特的低字节
- 每个 8 比特块独立使用一个编码表,映射为 9 比特的码字
- 两个 9 比特码字拼接成 18 比特的符号
- 符号中会额外插入一个“控制位”用来标识当前是数据符号还是控制符号
为什么是 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 编码效率的计算公式,很多大厂的面试官就喜欢问这个。