目录
1.2.2 Polling.Configuration 子状态
LTSSM是指Link Training and Status State Machine,是PCIe物理层实现的,用于控制和管理PCIe总线上的数据链路。它提供了一组状态,以便设备进行链路训练和链接协商。
在PCIe总线上,发送端和接收端需要进行链路训练,以便确定最佳的链接速度和链接宽度。LTSSM的作用是控制这个过程,并在链路训练期间跟踪链路状态和错误。
LTSSM状态包括:Detect、Polling、Configuration、Recovery、L0、L0s、L1、L2、Hot Reset、Loopback和Disable。当设备之间开始建立连接时,LTSSM从Detect状态开始。然后,它进入Polling状态,等待对方回应确认连接。如果确认完成,则进入Configuration状态,进行链路配置。之后,LTSSM进入L0状态,表明链路处于活动状态。如果设备需要低功耗状态,则可以进入L0s或L1状态。如果出现错误,则可能会进入L2状态或Loopback状态进行修复。
1. 链路训练和状态机
物理层的链路训练和状态机(LTSSM)模块负责配置和初始化一个设备的物理层、端口的发送器和接收器以及相关的链路,以状态机来管理和描述这个过程。
下图展示了LTSSM的 11 个状态,这些状态可以分为以下 4 种类型:
- PCIe链路训练状态:Detect、Polling 和 Configuration状态。正常PCIe链路训练状态转换流程:Detect -> Polling -> Configuration -> L0;L0是PCIe链路可以正常工作的电源状态。
- PCIe链路重训练状态:Recovery 状态。进入这个状态因素很多,比如电源状态的变化,PCIe链路速率的变化等。
- 电源管理状态:PCIe总线的电源状态主要有两部分内容。
- 基于软件控制的PCI-PM电源管理机制
- 基于硬件控制的ASPM(Active State Power Management)电源管理机制,是基于硬件自主控制的链路电源管理机制,只有在PCIe设备处于D0状态时才可以启动ASPM机制,与ASPM有关的链路状态有L0、L0s、L1 (包括L1.1和L1.2)和 L2。
- 其它状态:Disable、Loopback 和 Hot Reset。
1.1 Detect 状态
Detect 状态是在基本复位或者软件产生的热复位命令后进入的初始状态,在复位80ms内进入这个状态。Detect状态也能从其它状态进入。如下图所示:
Detect有两个子状态:Detect.Quiet 和 Detect.Active。
1.1.1 Detect.Quiet 子状态
进入条件 | Detect.Quiet 期间 | 退出条件 |
---|---|---|
1. 基本复位或热复位进入; 2. 从L2、Loopback、Disable、Polling、Configuration 和 Recovery 状态进入。 |
1. 发送器处于Electrical Idle状态; 2.发送器DC共模电压(不满足0~3.6V的规格); 3. 传输速率默认Gen1; 4. 向数据链路层发送LinkUp = 0的链路状态指示。 |
1. 处于Detect.Quiet子状态超过12ms,或者当链路退出Electrical Idle状态时,退出本子状态,进入Detect.Active状态。 |
1.1.2 Detect.Active 子状态
进入条件 | Detect.Active 期间 | 退出条件 |
---|---|---|
1. 从Detect.Quiet 子状态进入。 |
1. TX设备检测RX设备是否存在,通过RC充放电时间来检测,当设备没有连接,RC充放电时间短,接上以后时间长; |
1. 如果没有检测到RX端,返回到Detect.Quiet子状态,循环检测12ms。 2. 检测到RX端设备,进入下一个Polling状态,这个时候DC共模电压 |