训练序列结构:T1~T6阶段概述

链路训练这玩意儿,说白了就是eDP通信的“握手仪式”。握手没握好,后面啥也干不了。我个人习惯把T1到T6这六个阶段看作一条流水线,每个环节都有它特定的使命。今天我们就把这六个阶段掰开揉碎了讲清楚。

核心要点:T1~T6 覆盖了从接收器准备到链路参数最终锁定的全过程,每个阶段失败都会导致训练中断。

1. T1阶段:接收器就绪检测

这是链路训练的第一步。主设备(Source)需要确认从设备(Sink)的接收器已经准备好。

Source 会发出一组特殊的训练序列。Sink 收到后,得给出响应。我在项目中遇到过这种情况:Sink明明已经上电了,但T1阶段就是过不去。后来一查,原来是Sink端的CDR(时钟数据恢复)还没锁定。嗯,这里要注意,T1不仅仅是“收到信号”,更是“信号能被正确识别”。

2. T2阶段:均衡与CDR锁定

T2阶段开始,Source 会发送带有特定频率和幅度的训练信号。这个阶段的核心目的,是让Sink的接收器完成两个关键动作:

  • 均衡器调整:根据信号质量,自适应调整均衡参数
  • CDR锁定:从数据流中恢复出时钟,并锁定相位

你想想看,信号在传输线上跑,高频分量衰减得厉害。均衡器就是用来补偿这个衰减的。我曾经调试一块板子,T2阶段总是超时。用分析仪抓波形一看,发现信号的眼图几乎是闭合的。后来调整了Source端的驱动强度,均衡器才能正常工作。

个人经验:我习惯在T2阶段重点关注均衡器的配置。很多链路不稳定问题,根源都在这里。

3. T3阶段:符号锁定与对齐

过了均衡和时钟恢复这关,接下来就是数据层面的对齐了。T3阶段的目标是让接收器找到训练序列的符号边界,并完成对齐。Source会发送特定的训练模式,Sink需要识别出这个序列并锁定其相位。

在这个阶段,Sink会尝试不同的采样相位。一旦找到正确的边界,就会锁定。如果T3失败,通常意味着信号质量太差,或者均衡参数没有收敛。我建议先检查PCB走线的SI(信号完整性)问题。

4. T4阶段:通道间去偏斜

这个阶段只对多通道链路有意义。如果只有一个通道,T4可以快速跳过。

多个通道的走线长度、PCB过孔、连接器等因素,会导致信号到达Sink的时间不一致。这种时间差就是“偏斜”(Skew)。T4阶段,Sink会测量各个通道之间的偏斜,然后从Source请求相应的延迟调整。

Source收到请求后,会对各个通道的数据进行去偏斜处理,确保所有通道的数据在Sink端同步。

通道数 T4阶段行为 常见故障
1 Lane 跳过,直接标记成功 无
2/4 Lanes 逐对测量偏斜,申请调整 走线长度差超标
4 Lanes 更复杂的偏斜矩阵校准 PCB叠层不对称

避坑指南:我曾经见过一块4通道的板子,T4阶段反复失败。分析仪显示偏斜值超过了一个UI(单位间隔)。最后发现是一对差分线的等长补偿没做好。去偏斜不是万能的,硬件设计时必须控制好各通道的长度差。

5. T5阶段:链路配置与参数交换

T5是训练过程中信息交换最密集的阶段。Source和Sink会通过主链路通道读取对方的能力信息,并协商最终的链路配置。这些信息包括:

  • 支持的最高速率(例如:RBR、HBR、HBR2、HBR3)
  • 支持的通道数(1、2或4通道)
  • 支持的电压摆幅和预加重等级
  • 其他增强特性(如PSR、自适应同步等)

协商的结果,就是双方都同意的一个最佳工作点。为什么说最佳?因为Source可能会尝试更高的速率,如果Sink回复说“我扛不住”,Source就会降级到更低档位。

关键理解:T5阶段的协商机制,确保了Source不会强制Sink工作在它不支持的速率或通道数上。这体现了eDP的兼容性设计哲学。

6. T6阶段:确认与链路锁定

训练的最后一步。T6阶段的核心是确认。Sink在完成所有接收参数设置后,会向Source发送一个“训练通过”的确认信号。Source收到确认后,就知道整个训练过程已经成功,可以开始正常的数据传输了。

如果T6阶段Sink没有正确回复确认,Source会认为训练失败,可能触发链路重训练。我建议在调试时,特别关注T6阶段的响应时序。有些Sink芯片需要额外的时间来处理最终的配置,如果Source超时参数设置得太紧,就会误判为失败。

// 伪代码:T6阶段Source端逻辑
if (receive_Training_Pattern_ACK from Sink) {
    set_Link_Training_Status = SUCCESS;
    start_Normal_Video_Transmission();
} else {
    // 超时等待
    if (timeout && retry_count < MAX_RETRY) {
        restart_Training_From_T1();
    } else {
        report_Link_Failure();
    }
}

7. 六个阶段的宏观视图

现在,我们用一张图把这六个阶段串起来看看。这张图展示了T1到T6在训练流程中的具体位置和作用。

eDP链路训练T1~T6阶段流程 T1:接收器就绪 检测Sink是否准备好 T2:均衡/CDR锁定 时钟恢复与均衡 T3:符号锁定对齐 数据边界定位 条件分支:仅当链路为2或4通道时执行T4阶段 T4:通道去偏斜 多通道对齐 T5:链路配置协商 速率/通道数协商 T6:确认锁定 训练失败,回退重试 成功 → 开始传输视频 说明 • 每个阶段都有超时定时器 • 失败后可重试或降级 • 分析仪可逐阶段跟踪状态

这张图里,我特意把T4阶段设计成了条件分支。因为它确实只在多通道时才起作用。从T1到T3是“物理层准备”,T4是“多通道对齐”,T5是“参数协商”,T6是“最终确认”。这个顺序是有严格依赖关系的,不能颠倒。