3、链路训练的物理层过程:协商、均衡、训练序列

各位,咱们今天聊的链路训练,说白了就是两个芯片在高速通信前,先握个手、对个暗号。不把这事儿整明白,眼图就是一团浆糊,EMI也会到处乱窜。我个人习惯把这个过程拆成三步:协商、均衡、训练序列。挨个儿看。

3.1 协商阶段:互相认识一下

协商阶段在链路刚上电或者复位后立即开始。这时候发送端和接收端都还不知道对方能跑多快、能吃什么均衡。

  • 初始握手:发送端发一些最简单的符号,比如电气空闲序列 (EIOS)。接收端收到后回一个信号,表示“我在这儿”。
  • 速度协商:双方尝试不同的比特率,找到双方都支持的最高速率。我记得在 PCIe Gen4 的调试中,这一步经常因为阻抗不连续而失败。
  • 极性反转:如果差分对的 P 和 N 接反了,这里也会被纠正。我曾经因为一个连接器的引脚定义弄反了,花了半天才追到这一步。
  • 预加重系数交换:发送端告诉接收端“我的预加重最大能到多少 dB”,接收端回应“我需要多少 dB”。

重点:协商失败,链路就会降速或者以低功耗状态挂在总线上。这在量产测试中是个头疼的问题,往往不是芯片坏,而是 SI 问题。

3.2 均衡阶段:把信号拉回正轨

高速信号走一段 PCB 走线后,高频衰减很严重。眼睛都快闭上了,得靠均衡把它撑开。这一阶段发送端和接收端共同完成对信道的“补偿”。

均衡环节 谁负责 作用 我碰到的坑
CTLE (连续时间线性均衡) 接收端 给高频分量额外增益,把衰减的边沿拉起来 有的芯片 CTLE 档位太少,信噪比差的板子调不出来
DFE (判决反馈均衡) 接收端 消除码间干扰 (ISI),尤其针对长后尾 DFE 系数收敛得慢,眼图会忽好忽坏
FFE (前馈均衡 / 预加重) 发送端 发射时预强调高频分量,被动补偿信道 设置过大会增加 EMI,这是咱们做整改时绕不开的权衡

避坑指南:我曾经在调试某款 25Gbps 接口时,CTLE 和 DFE 自动协商出来的系数,反而让高频噪声被放大,EMI 辐射超标了 8dB。最后不得不手动锁死部分均衡参数。说白了,均衡不是越多越好,够用就行。

3.3 训练序列:码型与同步

协商和均衡谈好了参数,怎么传、怎么验证?这就靠训练序列。我通常把训练序列视为链路训练的“校准码型”阶段。

  • 确定同步头:发送端发一串已知的固定码型,比如 TS1 或 TS2 序列。接收端用本地 PLL 锁定这个序列,完成位同步。
  • 调整均衡系数:接收端在训练序列期间测量眼图质量,不断微调 CTLE 和 DFE 的系数。这个闭环一般需要几十微秒。
  • 校验通道:发送端会发一些特殊编码,比如 SKP 符号。接收端通过检查这些符号的抖动和幅度,判断链路裕量。
  • 完成锁定:双方交换一组确定的状态机信号,表示训练结束,可以开始传正常数据了。

你想想看,如果训练序列阶段跑出来的眼图都是花的,那正常传数据时只会更糟。所以咱们在实验室测眼图之前,最好先确认链路训练 PHY 层状态机是否真的锁住了。

小技巧:我个人习惯用示波器直接抓训练序列阶段的差分波形,看它是不是标准的 TS 码型。如果码型不对,说明前面协商或均衡就已经挂掉了,没必要花时间量眼图。

知识体系总览

下面这张图把物理层训练的三个阶段串了起来。从复位开始,到握手、均衡、训练序列,最后进入正常数据模式。每一个方块都可能是 EMI 或眼图问题的来源。

链路训练物理层过程 (协商 → 均衡 → 训练序列) 链路初始化 / 复位 第一阶段:协商 初始握手 (EIOS) 速度协商 (最高速率) 极性检测与反转 第二阶段:均衡 接收端 CTLE 配置 接收端 DFE 自适应 发送端 FFE 预加重 训练序列 TS1/TS2 位同步 系数微调 锁定? 失败 → 降速/重训 链路就绪 / 正常数据 说明:整个训练过程通常在几微秒到几十微秒内完成,失败则进入低功耗状态或重新开始

嗯,看到这张图你应该明白了,链路训练不是一次成败的握手,而是一个多级状态机。每进一级,都对眼图质量产生直接影响。在我们的 EMI 整改案例里,至少有三成问题是训练阶段的均衡参数与板级噪声耦合导致的。所以,下次测眼图发现关不上时,先别急着怀疑封装或 PCB,回头查查训练阶段的状态机日志。也许答案就在那儿。