2. FRL(固定速率链路)简介:FRL基本概念、与传统TMDS比较

大家好,我是你们的HDMI调试陪跑人。今天我们来聊聊HDMI 2.1最核心的变动——FRL。说白了,就是一条全新的数据传输公路,把过去用了二十多年的TMDS给替换掉了。为什么换?怎么换?换完我们调试时要注意什么?我踩过的坑,一点点倒给你们听。

2.1 FRL背后的设计哲学

FRL全称是Fixed Rate Link,固定速率链路。你想想看,TMDS时代每个通道速率上限3.4Gbps,三个数据通道加一个时钟通道,撑死了10.2Gbps。到了8K@60、4K@120这些场景,带宽根本不够用。HDMI 2.1直接把物理层重新设计,用了4条lane,每条lane可以独立工作在3、6、8、10、12Gbps这几个固定档位。总带宽最大48Gbps,够你传两个8K信号外加音频。

为什么叫“固定速率”?因为每条lane的比特率在链路建立后就锁死了,不会像有些接口那样自适应变速率。嗯,这个“固定”其实给训练带来了不少方便,但也埋了一些坑。我个人习惯把FRL的训练分成两步:第一步是让每个lane的时钟恢复成功,第二步才是通道间对齐。后面章节会细讲。

核心要点:FRL取消了独立的时钟通道,改为在4个数据lane内嵌入时钟。每个lane使用16b/18b编码(实际是16bit数据加2bit辅助信息),通过信令速率而非时钟频率来同步。

2.2 FRL vs TMDS:核心差异

先看一张对比表,这是我经手项目里反复对照用的。

对比项 TMDS(HDMI 1.4/2.0) FRL(HDMI 2.1)
通道数 3个数据通道 + 1个专用时钟通道 4个数据lane(所有信息混合传输)
编码方式 8b/10b 16b/18b(数据+头/尾位)
最大单通道速率 3.4 Gbps 12 Gbps
总带宽 10.2 Gbps(3×3.4) 48 Gbps(4×12)
时钟恢复 独立时钟线,接收端直接PLL锁定 需要从数据流中恢复时钟,依赖CDR
链路训练 无需训练,热插拔检测即工作 必须经过LT(Link Training),失败则降速或回退TMDS
前向纠错(FEC) 无 可选RS-FEC,用于长线或高干扰场景

从表格里能看出,FRL把时钟嵌进去了,这要求接收端的CDR(时钟数据恢复)做得非常好。我在项目里遇到过一种情况:某款电视的HDMI输入在6Gbps lane下能正常工作,但切到12Gbps后画面就花屏。最后查出来是CDR的环路带宽设得太窄,跟不上抖动。换成宽带宽模式就好了。

避坑指南:我曾经在FRL切换到12Gbps时,忘记检查source和sink的预设均衡能力。结果训练阶段link明明训练成功了,数据却全是错的。后来发现是source的预加重没打开,高频信号衰减太大。记住:成功训练 ≠ 数据正确。一定要在训练后发个同步码(SCRamble) 验证。

2.3 FRL链路结构一图流

下面这张SVG图是我自己画的,把FRL的4个lane、时钟嵌入、编码层次和训练关系理了一遍。你们调试时可以拿它当检查清单。

FRL链路结构 & 训练要点 Source(发送端) Lane 0–3 Lane 0 (12Gbps) Lane 1 (10Gbps) Lane 2 (8Gbps) Lane 3 (6Gbps) CDR + 对齐 (Data Recovery) 成功? 失败降速 训练要点(我建议按这个顺序排查) ① 每条lane单独做CDR锁定——检查眼图是否张开,用示波器测量抖动 ② 跨lane对齐——确认Lane0~3的符号边界一致,skew在±5ns内 ③ 发送Training Pattern并验证接收错误率(BER < 1e-9) ④ 如果BER不通过:检查预加重/均衡,或者降一档速率重试 ⑤ 成功后在InfoFrame中上报FRL能力,sink端确认后进入正常传输

2.4 实战中要注意的细节

好了,理论讲完,我直接说调试时容易翻车的地方。

  • FRL训练失败后回退TMDS:这是规范允许的,但很多电视只支持FRL,不支持旧HDMI 2.0。我之前帮客户调试一个投影仪,source强行切FRL,sink没回应,结果画面黑了30秒才恢复。后来我在source端加了3次重试,每次间隔200ms,搞定。
  • 16b/18b的辅助位使用:FRL的每18bit中有2bit是头部和尾部,用来做帧同步和边带通信。如果你在做协议分析,一定要注意这2bit的值——我曾经发现某sink芯片把这2bit忽略了,导致解帧逻辑全乱。最后改了sink的PHY配置才解决。
  • FEC对长线的影响:RS-FEC可以修复最多60%的符号错误,但也引入了延迟。如果你们的产品是游戏显示器(低延迟需求),我建议慎用FEC。测试下来,不开FEC的延迟大约2个line周期,开了之后翻倍。自己权衡。

个人小技巧:调试FRL时,先用3Gbps低速档把链路建立起来,确认基本通信无误后,再逐档往上提。这叫“爬坡式训练”。我所有项目都这么干,省去很多查线材问题的功夫。

2.5 小结(本章就到这儿)

FRL不是翻版TMDS加个速,它是从物理层到链路层的全面重构。理解四个lane独立工作、时钟内嵌、训练流程这三个核心理念,后面的调试才不会抓瞎。下一章我们会深入训练的具体寄存器操作,准备好逻辑分析仪就行。