2. HDMI FRL基础

HDMI 2.1 引入的 FRL(Fixed Rate Link,固定速率链路)是理解高速 HDMI 信号完整性的起点。它与传统 TMDS(Transition Minimized Differential Signaling)并非简单的“速率升级”,而是从时钟架构、编码方式、链路建立流程到协议分层的一次系统性重构。只有先厘清 FRL 与 TMDS 的本质差异,才能正确解读后续的抖动、均衡、误码与一致性测试。

一、FRL 与 TMDS 的核心差异

TMDS 采用“源端同步时钟 + 每通道串行数据”的架构,三条数据通道加一条独立时钟通道,接收端用时钟通道恢复采样相位。其速率受限于时钟通道与数据通道的偏斜控制,最高只能到 HDMI 2.0 的 6 Gbps/通道(18 Gbps 总带宽)。FRL 则彻底取消了独立时钟通道,改为嵌入式时钟(Embedded Clock),由接收端从数据流中通过 CDR(Clock Data Recovery)恢复时钟,并把通道数扩展为 3 或 4 条,单通道速率提升到 6/8/10/12 Gbps。

更关键的是编码差异:TMDS 使用 8b/10b 编码,每 10 bit 中携带 8 bit 有效数据,开销 25%;FRL 使用 16b/18b 编码,每 18 bit 中携带 16 bit 有效数据,开销仅约 11.1%。这意味着在相同物理速率下,FRL 的有效吞吐更高,同时其直流平衡与跳变密度特性也完全不同,直接影响均衡器设计与抖动预算。

TMDS 与 FRL 链路架构对比 TMDS(HDMI 2.0 及以前) Source Sink Data CH0/1/2 Clock CH(独立时钟) 编码:8b/10b(开销 25%) 通道:3 Data + 1 Clock 最高 6 Gbps/通道,18 Gbps 总带宽 时钟由独立通道传输 偏斜控制依赖通道间匹配 无链路训练,固定速率 接收端直接采样 FRL(HDMI 2.1) Source Sink Lane 0/1/2/3(嵌入式时钟) CDR 从数据恢复时钟 编码:16b/18b(开销 11.1%) 通道:3 或 4 Lane,无独立时钟 6/8/10/12 Gbps/通道,最高 48 Gbps 嵌入式时钟 + CDR 恢复 链路训练动态协商速率 支持 FEC 与重传 自适应均衡与训练序列

二、通道编码:16b/18b 带来的变化

FRL 的 16b/18b 编码把 16 bit 有效载荷映射为 18 bit 传输符号,其中 2 bit 用于同步头(Sync Header),用于标识数据是控制字符还是数据字符。相比 8b/10b,16b/18b 的编码开销更低,但代价是游程长度(Run Length)更长、低频成分更丰富,对接收端 CDR 和均衡器提出更高要求。同时,FRL 在链路层引入 FEC(前向纠错)与重传机制,使误码率在物理层不完美时仍能维持链路可用。

关键参数:FRL 的 16b/18b 编码中,每 18 bit 符号包含 16 bit 数据 + 2 bit 同步头。同步头用于区分“数据帧”与“控制帧”,是链路训练和状态机切换的基础。

三、速率等级与通道配置

FRL 定义了 6 个速率等级(Rate 1~6),通过 3 Lane 或 4 Lane 组合实现不同总带宽。链路训练时,源端与接收端会逐级尝试,直到找到双方都支持且误码率满足要求的最高等级。

速率等级 每 Lane 速率 3 Lane 总带宽 4 Lane 总带宽 典型应用
FRL Rate 13 Gbps9 Gbps12 Gbps4K30 基础
FRL Rate 26 Gbps18 Gbps24 Gbps4K60 8bit
FRL Rate 38 Gbps24 Gbps32 Gbps4K60 10bit
FRL Rate 410 Gbps30 Gbps40 Gbps4K120 8bit
FRL Rate 512 Gbps36 Gbps48 Gbps4K120 10bit / 8K60
FRL Rate 612 Gbps—48 Gbps8K60 10bit 以上

四、链路训练与 FRL 协议栈

FRL 链路建立不是“上电即通”,而是经过一套链路训练(Link Training)流程:源端发送训练序列(Training Pattern),接收端根据误码情况反馈调整均衡参数和速率等级,双方通过 SCDC(Status and Data Channel)寄存器交换能力与状态。训练成功后,链路进入正常数据传输,并持续监控误码,必要时触发重训练或降速。

FRL 协议栈自下而上可分为:物理层(PHY,负责 SerDes、CDR、均衡)、链路层(Link Layer,负责 16b/18b 编解码、FEC、重传、通道对齐)、协议层(Protocol Layer,负责数据包封装与 SCDC 交互)。理解这一分层,有助于在调试时快速定位问题:是物理层眼图闭合,还是链路层 FEC 纠错超限,抑或协议层训练状态机卡死。

调试提示:当 FRL 链路无法达到预期速率时,优先检查 SCDC 寄存器中的 FRL_Rate 与 FRL_Training_Status,再结合示波器观察训练序列的眼图与抖动。很多“链路不稳”问题实际是训练阶段均衡收敛不足,而非物理连接故障。

五、常见误区与复盘

  • 误区一:FRL 只是 TMDS 的提速版。实际上 FRL 取消了独立时钟通道,改用嵌入式时钟与 CDR,编码、训练、纠错机制全部不同,不能沿用 TMDS 的调试经验。
  • 误区二:速率等级越高越好。高等级对线材、连接器、PCB 损耗更敏感,若信道裕量不足,强行跑高等级反而导致重传频繁、有效吞吐下降。
  • 误区三:忽略 SCDC 交互。FRL 的能力协商依赖 SCDC,若寄存器读写异常,链路可能停留在低速率或反复重训练。
  • 复盘要点:建立“物理层眼图 → 链路层 FEC 计数 → 协议层训练日志”的三级排查路径,先确认物理层裕量,再分析链路层纠错,最后检查协议层状态机。
# 典型 FRL 链路训练状态检查(伪代码)
read SCDC.FRL_Rate          # 当前协商速率等级
read SCDC.FRL_Training_Status  # 0=未训练, 1=训练中, 2=成功, 3=失败
read SCDC.FEC_Error_Count   # FEC 纠错计数,持续增长说明物理层裕量不足
read SCDC.Link_Retrain_Count # 重训练次数,频繁重训练需检查信道或均衡设置

掌握 FRL 与 TMDS 的差异、16b/18b 编码特性、速率等级组合以及链路训练与协议栈分层,是后续进行抖动分解、误码率测试和一致性验证的基础。只有把链路建立过程与各层职责看清楚,才能在信号完整性测试中准确判断问题归属。