3. Polling 状态目的与行为

Polling 状态是 PCIe 链路训练状态机(LTSSM)中,从 Detect 状态退出后进入的第一个物理层训练阶段。该状态的核心目标是在每一条 Lane 上建立基本的物理层同步,为后续的 Configuration 状态交换链路宽度和极性信息奠定基础。如果 Polling 状态超时,通常意味着物理层无法在指定时间内完成 Bit Lock、Symbol Lock 或 Lane Polarity 校正。

3.1 Polling 状态的核心目标

Polling 状态在每条 Lane 上独立完成以下三个关键任务:

目标 英文术语 说明 失败后果
位锁定 Bit Lock 接收器通过 CDR(时钟数据恢复)电路锁定发送器串行数据的比特边界,实现位对齐。 无法识别有效数据,链路卡在 Polling.Active。
符号锁定 Symbol Lock 在 Bit Lock 基础上,接收器识别出 10-bit 或 128b/130b 编码的符号边界,完成字符对齐。 无法正确解码 TS1/TS2 训练序列,链路无法进入 Configuration。
极性校正 Lane Polarity 检测并纠正由于 PCB 走线差分对反接导致的 D+/D- 极性反转,通过训练序列中的极性位进行协商。 数据持续反转,链路训练失败或数据错误。
关键指标: 在 Gen1/Gen2 速率下,Polling 状态超时时间为 48 ms(约 48,000 个 2 µs 超时周期)。若在此时间内未完成所有 Lane 的 Bit Lock 和 Symbol Lock,链路将回退至 Detect 状态并重新开始训练。

3.2 Polling 状态子状态机

Polling 状态内部包含两个子状态:Polling.Active 和 Polling.Compliance。下图展示了这两个子状态之间的转换关系及核心行为。

Polling 状态子状态机与核心行为 从 Detect 进入 Polling.Active 发送 TS1/TS2 训练序列 等待 Bit Lock + Symbol Lock Polling.Compliance 发送 Compliance Pattern 用于信号质量测试 进入条件:所有 Lane 锁定失败 锁定成功 → Configuration 超时 → 回退 Detect Polling 状态关键行为说明 1. 发送器持续发送 TS1 训练序列(Gen1/Gen2)或修改版 TS1/TS2(Gen3+)。 2. 接收器在每条 Lane 上独立进行 CDR 锁定和符号边界搜索。 3. 若所有 Lane 均无法锁定,设备可进入 Polling.Compliance 进行调试。 4. 极性校正通过 TS1 中的符号位(Symbol 4, bit 4)协商完成。

3.3 Polling.Active 子状态

Polling.Active 是 Polling 状态的主子状态,设备在此状态下执行以下操作:

  1. 发送训练序列: 每条 Lane 的发送器连续发送 TS1 训练序列(Gen1/Gen2)或修改版 TS1/TS2(Gen3 及以上)。
  2. 接收器锁定: 接收器在每条 Lane 上独立执行 CDR 锁定(Bit Lock)和符号边界搜索(Symbol Lock)。
  3. 极性检测: 通过接收到的 TS1 序列中的极性位(Symbol 4, bit 4)判断 Lane 极性是否反转。若检测到极性反转,接收器会在本地翻转数据极性。
  4. 超时管理: 每条 Lane 都有一个独立的 2 µs 超时计数器。若在 48 ms 内未完成所有 Lane 的锁定,链路状态机回退至 Detect 状态。
调试提示: 在 Polling.Active 超时场景中,使用逻辑分析仪或协议分析仪捕获 TS1 序列是定位问题的首选方法。检查接收器是否在 TS1 序列中识别到有效的 COM 字符(K28.5),这是 Symbol Lock 成功的标志。

3.4 Polling.Compliance 子状态

Polling.Compliance 是一个可选的调试子状态,用于信号完整性测试。设备进入该状态后,发送器会发送 Compliance Pattern(一种特定的测试码型),而非正常的训练序列。

特性 Polling.Active Polling.Compliance
发送内容 TS1/TS2 训练序列 Compliance Pattern(测试码型)
主要目的 建立链路同步 信号质量测试与调试
进入条件 从 Detect 状态正常进入 所有 Lane 锁定失败,或强制进入
超时行为 回退至 Detect 回退至 Detect
典型应用 正常链路训练 眼图测试、信号完整性验证
注意: Polling.Compliance 状态不是链路训练的正常路径。如果设备在正常启动过程中频繁进入 Compliance 状态,说明物理层存在严重的信号完整性问题,如阻抗不匹配、串扰过大或时钟抖动超标。

3.5 Lane Polarity 校正机制

Lane Polarity 校正是 Polling 状态中一个容易被忽视但至关重要的步骤。当 PCB 走线中差分对的正负端反接时,接收到的数据会全部反转。PCIe 通过以下机制自动处理:

  • 检测: 接收器在 TS1 序列中检查 Symbol 4 的 bit 4。如果该位为 1,表示发送端指示极性正常;如果为 0,表示发送端检测到极性反转。
  • 校正: 接收器在本地对接收到的数据进行按位取反操作,恢复正确的数据极性。
  • 协商: 在 Polling 状态中,发送器和接收器通过 TS1 序列中的极性位进行双向协商,确保双方对极性状态达成一致。
Lane Polarity 校正流程 发送器 发送 TS1 序列 极性位=1 接收器 检测极性位 判断 极性正常 极性反转 正常 继续训练 反转 本地取反

3.6 Polling 状态常见失败模式

在链路训练失败案例中,Polling 状态超时通常由以下原因引起:

  • CDR 无法锁定: 参考时钟偏差过大(超过 ±300 ppm)、时钟抖动超标或接收器带宽不足。
  • 符号边界搜索失败: 信号衰减严重导致 COM 字符无法被正确识别,常见于长走线或劣质连接器。
  • 极性校正失败: 发送器和接收器对极性状态协商不一致,导致数据持续反转。
  • 电气空闲退出异常: 在 Polling 状态下错误地检测到电气空闲条件,导致状态机异常跳转。