PCIe LTSSM Detect
Detect是PCIe设备复位后的初始状态,在该状态下,设备检测链路远端连接的设备是否存在,其状态跳转图如下所示:
Detect.Quite子状态
进入Detect.Quite
从基本复位或者Hot Reset进入,也可以从L1、LoopBack、Disable、Polling、Configuration和Recovery状态进入。
处于Detect.Quite
1 Tx处于电气空闲状态。(在将链路置于电气空闲状态前不需要发送EIOS)
2 Tx驱动一个DC共模电压(不必满足0-3.6V的规范)。
3 初始化Gen1(2.5Gbit/s)的速率。
4 数据链路层发送LinkUp = 0。
退出Detect.Quite
12ms超时或者当链路退出电气空闲状态的时候,退出Detect.Quite,进入Detect.Active。
Detect.Active子状态
进入Detect.Active
12ms超时或者当链路退出电气空闲状态的时候,从Detect.Quite进入。
处于Detect.Active
Tx检测链路的所有lane上是否连接了Rx。Tx在所有的lane上启动一个稳定的DC共模电压,该电压可以是Vdd、GND或者这两个值之间的其他稳定电压,然后Tx驱动一个与当前值不同的DC共模电压。根据D+和D-向新电压的线路充电速率来检测Rx是否存在。(如果另一端接了Rx,充电时间会比没有接Rx的时间要长)
退出Detect.Active
1 如果Tx没有检测到Rx时,只要没有连接Rx,就每12ms重复一次检测,回到Detect.Quite。
2 如果Tx检测到Rx,则进入Polling状态。(现在设备必须驱动一个0~3.6V的DC共模电压)
参考书籍
1 PCI Express® Base Specification Revision 5.0 Version 1.0
2 PCI Express Technology Comprehensive Guide to Generations 1.x, 2.x, 3.0