xHCI电源状态
2026-08-21
本文链接为:http://www.usbzh.com/article/detail-1798.html ,欢迎转载,转载请附上本文链接。
| 电源状态 | 功能特征 | 唤醒特征(必须设置关联的使能位) |
|---|---|---|
| D0 | xHC 设备完全工作状态。未屏蔽的中断完全可用。 | • 在挂起端口上检测到恢复信号(Resume) • 在端口上检测到连接(Connect)或断开(Disconnect) • 在端口上检测到过流(Over Current) |
| D1 | • xHC 应保持 PCI 配置 • xHC 应保持 USB 配置 • 硬件屏蔽功能中断 • 所有端口被禁用或挂起 |
• 在挂起端口上检测到恢复信号 • 在端口上检测到连接或断开 • 在端口上检测到过流 |
| D2 | • xHC 应保持 PCI 配置 • xHC 应保持 USB 配置 • 硬件屏蔽功能中断 • 所有端口被禁用或挂起 |
• 在挂起端口上检测到恢复信号 • 在端口上检测到连接或断开 • 在端口上检测到过流 |
| D3hot | • xHC 应保持 PCI 配置 • xHC 应保持 USB 配置 • 硬件屏蔽功能中断 • 所有端口被禁用或挂起 |
• 在挂起端口上检测到恢复信号 • 在端口上检测到连接或断开 • 在端口上检测到过流 |
| D3cold | • PCI 配置空间中的 PME 上下文被保留 • xHC 内存空间中的唤醒上下文被保留 • 所有端口被禁用或挂起 |
• 在挂起端口上检测到恢复信号 • 在端口上检测到连接或断开 • 在端口上检测到过流 |
有设备的端口挂起,没有设备的端口禁用
| 处理方式 | 目的 | 功耗影响 |
|---|---|---|
| 挂起(有设备) | 保持设备连接状态,支持远程唤醒 | 低功耗,但设备仍需供电以检测唤醒事件 |
| 禁用(无设备) | 彻底关闭端口,不浪费电能 | 最低功耗,端口的PHY可以被关断,但检测电路依旧可通过Vaux供电 |
注: 软件有责任在将根集线器端口转换到非 D0 状态之前,将与已使能远程唤醒功能的设备关联的端口置入挂起状态。
挂起(Suspend) vs 禁用(Disable)
| 对比维度 | 挂起(Suspend) | 禁用(Disable) |
|---|---|---|
| 目标对象 | 已连接的设备 | 端口本身 |
| 对设备的影响 | 设备收到挂起信号,进入低功耗状态(设备侧省电) | 设备可能仍然有电(Vbus未断),但无法通信 |
| 对端口的影响 | 端口保持使能,但停止传输(等待恢复信号) | 端口停止所有USB通信,不参与总线活动 |
| 是否保持连接 | 保持连接,设备仍“附着”在端口上 | 逻辑断开,端口认为“无设备” |
| 支持远程唤醒 | 支持,设备可通过Resume信号唤醒系统 | 不支持,端口不会响应设备发起的唤醒 |
| 支持插入检测 | 设备已连接,插入检测不适用 | 支持,端口PHY仍在检测D+/D-变化 |
| 典型应用场景 | 进入系统睡眠前,有设备连接的端口 | 进入系统睡眠前,无设备连接的端口 |
| 恢复方式 | 设备发起Resume → 端口自动唤醒 → 恢复正常通信 | 驱动重新设置 Port Enable = 1 → 重新枚举设备 |
| 功耗影响 | 设备进入低功耗(通常<1mA),端口PHY仍在工作 | 端口停止大部分PHY活动,功耗更低 |
| 恢复延迟 | 极短(微秒到毫秒级),设备无需重新枚举 | 较长,需要重新枚举设备和分配地址 |
XHCI 1.2b 规范





