1. FRL 基础概念:固定速率链接的来龙去脉
各位做高速接口的朋友应该都有体会——每次协议升级,物理层总会带来一些新名词。HDMI 2.1 引入的 FRL(Fixed Rate Link) 就是其中之一。我在去年调试一块 8K 电视的 SoC 时,就因为这个概念没吃透,走了不少弯路。今天咱们先把这个基础打牢。
FRL 不是简单的“速率固定”四个字就能概括。它背后是链路训练、FEC 前向纠错、以及 Retimer 适配的一套完整体系。
1.1 什么是 FRL?
FRL 的全称是 Fixed Rate Link,中文叫固定速率链接。说白了,就是把 HDMI 2.1 的物理层从传统的 TMDS 换成了一种全新的、以 3 条数据通道(Lane)加 1 条时钟通道(或嵌入时钟)工作的模式。每条 Lane 的速率是固定的,比如 6 Gbps、8 Gbps、10 Gbps 或 12 Gbps。注意,这里的“固定”是指每个 Lane 的比特率不随视频分辨率动态变化,而是预先训练好的一组离散档位。
- Lane 数量:3 条数据 Lane,1 条可选时钟 Lane(通常用嵌入时钟模式)。
- 速率档位:6 Gbps / 8 Gbps / 10 Gbps / 12 Gbps 四档,对应不同的总带宽。
- 编码方式:16b/18b 编码(实际有效载荷比 TMDS 更高)。
- FEC:内置 Reed-Solomon 前向纠错,容忍一定的误码。
| FRL 速率档位 | 每 Lane 速率 | 3 Lane 总带宽 | 典型应用 |
|---|---|---|---|
| FRL1 | 6 Gbps | 18 Gbps | 4K120 10bit HDR |
| FRL2 | 8 Gbps | 24 Gbps | 4K144 10bit |
| FRL3 | 10 Gbps | 30 Gbps | 8K60 10bit |
| FRL4 | 12 Gbps | 36 Gbps | 8K120 10bit(降低色度) |
我的个人习惯:在 SoC 设计里,我通常把 FRL 理解为“HDMI 版的车道高速公路”——每条车道速度固定,但可以通过训练调整车道数(虽然规定是3 lane,但实际链路训练会决定是否降为2 lane)。
1.2 FRL 与 VBO 的区别
这里得先澄清一下:VBO 并不是 HDMI 官方标准术语,业内更多用 VBR(Variable Bit Rate) 来指代以前 TMDS 模式下可变比特率的做法。不过既然课程题目里用了 VBO,我们就沿用这个称呼。VBO 代表老一代 HDMI 2.0 及之前的可变速率传输方式——视频源会根据分辨率刷新率动态调整 TMDS 时钟和每通道比特率。举个例子,1080p60 跑 3.4 Gbps,4K60 跑 6 Gbps,速率是随分辨率跳变的。
FRL 和 VBO 的核心差异在于:
- 速率确定性:FRL 每条 Lane 锁定一个固定档位,不随内容变化;VBO 的速率完全由视频时序决定。
- 训练机制:FRL 需要链路训练(Link Training)来建立稳定的眼图和均衡参数;VBO 靠简单的 source-sink 协商。
- FEC 支持:FRL 必须开启 FEC(除非链路质量极好且长度很短);VBO 没有 FEC。
- 对 Retimer 的要求:FRL 的 Retimer 必须参与训练握手,而 VBO 的 Redriver 只需透明传输。
| 对比项 | FRL(Fixed Rate) | VBO(Variable,如 TMDS) |
|---|---|---|
| 每 Lane 速率 | 固定档位(6/8/10/12 Gbps) | 随分辨率连续变化 |
| 时钟恢复 | 嵌入时钟或独立时钟 Lane | 独立时钟(TMDS) |
| 链路训练 | 必须,包含 EQ 训练 | 无,仅静态配置 |
| FEC | 必需(默认开启) | 无 |
| Retimer 角色 | 主动参与训练 / 转发 LT 报文 | 透明直通 |
| 总带宽上限 | 48 Gbps(FRL4) | 18 Gbps(HDMI 2.0) |
我曾经在一个项目里混淆了 FRL 的“固定”与“恒定”——以为只要跑 12 Gbps 就不用考虑链路线损了,结果眼图完全睁不开。后来才发现,FRL 的固定是指协议层速率,但物理层仍需要细致的均衡(EQ)和去加重,这点和高速 SerDes 没区别。
1.3 FRL 在 HDMI 2.1 中的应用背景
为什么 HDMI 2.1 非要抛弃成熟的 TMDS 搞 FRL?原因很简单:带宽不够用了。HDMI 2.0 的 18 Gbps 连 4K120 10bit 都勉强,8K60 更是直接卡死。要是沿用 VBO 思路,每提升一档分辨率就得重新设计 PLL 和时钟方案,成本太高。
FRL 的引入带来了三个关键变化:
- 带宽翻倍:3 Lane × 12 Gbps = 36 Gbps(有效 48 Gbps 靠 16b/18b 编码换算),直接支撑 8K120。
- 链路训练成为必须:Source 和 Sink 之间需要类似于 DisplayPort LTTPR 的握手过程,Retimer 作为中继必须理解 LT 语法。
- FEC 降低误码要求:HDMI 2.1 规定链路 BER ≥ 1e-9 即可,FEC 能将等效 BER 提升到 1e-15 以上,大大放宽了对线材和 PCB 走线的要求。
举个例子,我去年调试一块 8K 电视 SoC 时,Source 输出 FRL3(10 Gbps × 3),通过两根 3 米长的 HDMI 2.1 线到电视。如果不开启 FEC,偶尔会花屏;开启后完全正常。这就是 FRL 的容错设计在做功。
避坑指南:在 SoC 集成 FRL 时,记得给 Retimer 预留足够的固件升级接口。不同品牌的 Retimer 对 FRL 训练时序的容忍度有差异——我遇到过某款 Retimer 在 FRL1 切换 FRL3 时需要 200 ms 重新训练,而 SoC 默认只给了 100 ms 超时,导致切换失败。
下面的图把 FRL 与 VBO 的核心概念画了出来,方便对比记忆。
嗯,这张图把 FRL 的六个关键特征和 VBO 的六个对应特征并排放置,中间用箭头强调了数据 Lane 和训练机制的区别。你看,FRL 这边有链路训练、FEC、Retimer 参与,而 VBO 那边这些统统没有。这也是为什么 HDMI 2.1 SoC 必须重新设计 PHY 和训练状态机的原因。
我个人建议刚接触 FRL 的工程师,第一件事不是去看协议文档里的波形图,而是先理解 FRL 的 Link Training 状态机——Source 发训练序列 -> Sink 响应 -> 调整 EQ -> 锁定。这个流程在 Retimer 调试中几乎天天用到。