FRL 物理层基本原理:TMDS vs FRL 对比归纳总结

搞 HDMI 这么多年,我见过太多 TMDS 时代的老问题。

高频抖动、长线掉时钟、4K 以上分辨率必须靠多根线同时传……

说白了,TMDS 在 6Gbps 以上就有点力不从心了。

FRL 的出现不是偶然的。它把传统 TMDS 的钟和数据分离模式彻底推翻,用了一条完全不同的路——无时钟通道、固定通道数、更灵活的编码率。

我个人习惯是先理解“旧东西的痛点”,再看“新东西怎么治”。

TMDS 的痛点:为什么非换不可

TMDS 最大的问题,就是时钟必须单独占一根线。

你想想看:一个 TMDS 链路里,3 个数据通道 + 1 个时钟通道。每根线最高 6Gbps,但时钟通道本身不传数据,浪费了。

而且时钟通道在高速下噪声耦合明显,我记得在调试 4K60 10bit 时,有一次因为 PCB 上时钟线与数据线不等长,导致接收端时钟恢复失败,整个画面闪成雪花。后来加了一颗重定时芯片才搞定。

⚠ 注意: TMDS 的直流平衡靠 8b/10b 编码,但编码效率只有 80%。这意味着 6Gbps 的线实际有效数据只有 4.8Gbps。对于 HDMI 2.0 的 18Gbps 总带宽,刚好卡在物理极限上。

另一个麻烦是通道数固定为 3。无论你传 1080p 还是 4K120,都得用满 3 个通道。低分辨率下功耗浪费,高分辨率下又不够。

所以到了 HDMI 2.1,需要 48Gbps 带宽,3 根线扛不住。FRL 就来了——最多 4 通道,全传数据,没有独立时钟。

FRL 的核心:无时钟、多通道、动态率

FRL(Fixed Rate Link)这个名字容易误导人。它是固定速率链路,但每个通道的速率不是死的,可以在 3Gbps、6Gbps、8Gbps、10Gbps、12Gbps 之间选。

下面这张表是我自己整理的对比,做项目时常拿出来对照。

对比项TMDS(HDMI 2.0及以前)FRL(HDMI 2.1)
通道结构 3 个数据通道 + 1 个独立时钟通道 3 或 4 个数据通道,无独立时钟
时钟恢复 靠独立时钟线同步 接收端从数据流中提取时钟(CDR)
每通道最高速率 6 Gbps 12 Gbps
总带宽(3通道) 18 Gbps(编码后) 36 Gbps(3×12)或 48 Gbps(4×12)
编码方式 8b/10b(效率80%) 16b/18b(效率88.9%)或 16b/20b(效率80%)
电压摆幅 典型 400~600 mV pp-diff 典型 800~1200 mV pp-diff(可调)
预加重/均衡 固定或简单可调 支持自适应均衡,训练阶段协商

关键点: FRL 的通道数可以动态选择 3 或 4 通道。我遇到过的一个坑:有些老 HDMI 2.1 源端只支持 4 通道,而有的旧款显示设备只能处理 3 通道,导致握手失败。所以设计时一定要把通道降级逻辑做完整。

FRL 训练状态机:从冷启动到稳定链路

FRL 不靠固定时钟,接收端必须通过训练(Link Training)来校准眼图、锁定相位、协商速率和通道数。

标准里把训练分为几个阶段,我习惯用下面的流程图画出来。

FRL 链路训练状态机 初始化 速率协商 (HBR) 通道数协商 (SCR) 均衡训练 (EQ) 链路锁定完成 注意: 每个阶段都可能失败, 触发重训练回退。

💡 个人经验: 训练状态机里最容易被忽略的是均衡(EQ)阶段。很多方案只做了速率和通道数的协商,均衡参数直接从预设表里拿。但线缆差异大——我曾经遇到一根 5 米的 HDMI 2.1 线,接收端在 EQ 阶段始终无法收敛,后来手动调了接收端的 CTLE 增益才过。所以代码里一定要留均衡系数失效回退的路径。

避坑指南:我踩过的几个雷

做 FRL 训练适配时,有几点特别容易翻车。

  • CDR 锁定超时 —— 时钟恢复电路需要一段 preamble。如果源端在切换速率后没有给足够的训练码型,接收端锁不住。我之前的方案里默认超时 2ms,结果某颗芯片需要 5ms,后来改成可配置参数才解决。
  • 通道数不匹配 —— 有些 source 只支持 4 通道,但 sink 只支持 3 通道。标准要求 sink 必须能降级到 3 通道,但实际发现部分 sink 芯片在降级后不会发送 SCSC(Sink Channel Status Change)信息,导致 source 死等。解决办法是加超时重训逻辑。
  • 16b/18b vs 16b/20b 编码混乱 —— 3Gbps 以下强制用 16b/20b,以上可以用 16b/18b。我在一个项目中误把 6Gbps 配成了 16b/20b,导致有效带宽不够,4K120 带宽跑到 10 秒就掉帧。

⛔ 警告: FRL 训练失败时,HDMI 2.1 允许回退到 TMDS 模式。但回退流程非常脆弱——源端必须在发现 FRL 失败后立即切到 TMDS,同时接收端也要保持 TMDS 检测。我见过一些消费电视,切回 TMDS 后颜色空间识别错误,画面偏绿。所以回退时的 HDCP 重协商也要做干净。

总结一句话

FRL 不是 TMDS 的简单升级,而是完全重构的物理层。理解它的训练状态机,比背规格表更有用。