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)来校准眼图、锁定相位、协商速率和通道数。
标准里把训练分为几个阶段,我习惯用下面的流程图画出来。
💡 个人经验: 训练状态机里最容易被忽略的是均衡(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 的简单升级,而是完全重构的物理层。理解它的训练状态机,比背规格表更有用。