训练序列结构: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在训练流程中的具体位置和作用。
这张图里,我特意把T4阶段设计成了条件分支。因为它确实只在多通道时才起作用。从T1到T3是“物理层准备”,T4是“多通道对齐”,T5是“参数协商”,T6是“最终确认”。这个顺序是有严格依赖关系的,不能颠倒。