基于 SPI 的 HID 电源管理

本文介绍有关通过 SPI 进行主机和设备电源管理的详细信息。

设备启动的电源优化

设备负责在主机没有任何电源设置的情况下优化其电源利用率。 这样,设备无需主机干预即可进入最低功率状态,同时确保设备能够继续及时与主机通信。

若要正确符合设备启动的电源优化,请执行以下操作:

  • 设备负责在其低功率模式下保留其状态。
  • 所有设备电源优化都必须对主机和最终用户透明。
  • 设备必须及时响应来自主机的所有请求。 设备负责在用户或系统交互时及时将自身置于更高的功率模式。
  • 设备必须以无损的方式通知主机任何输入报告更改。 设备不应丢失或删除任何事件。
  • 主机启动的电源优化中所述的电源状态不适用于设备启动的电源优化。

通常部署设备启动的电源优化方案包括:

  1. 设备空闲了一小段时间。 设备确定它处于空闲状态,并使其处于最低功率状态,降低其内部感应频率,直到重新启动运动。 一旦运动开始,数据就会立即发送到主机。
  2. 设备可降低其感应频率。 设备降低了扫描数据的频率。

主机启动的电源优化

主机负责优化整个系统和设备的电源。 当主机希望向设备提供电源优化通知时,将使用这种电源优化方法。

以下电源状态是为主机启动的电源优化定义的,不会与供应商特定的设备发起的电源优化状态混淆。

  • ON
  • 睡眠 (设备可能会唤醒系统)
  • 关闭 (设备无法唤醒系统,可能会从设备中删除电源)

在“开”状态下,设备运行正常,可以使用设备启动的电源优化来降低功耗。 在主机启动重置后,启动 HIDSPI 通信时,设备负责处于“开”状态。

主机通过发出定义的 Set Power 命令,指示设备从 ON 状态进入低功耗状态。 主机将根据设备的操作系统电源策略选择执行此操作。

当平台电源策略允许设备唤醒自身或系统时,主机将设备置于睡眠状态。 对 SLEEP 的支持是可选的,通过 ACPI 或以适合平台特定控制器的总线的方式向主机操作系统指示。 收到 SET POWER SLEEP 命令后,设备必须立即进入低功耗状态,它将等待用户交互,并且不得断言中断,除非启动唤醒。 如果设备检测到输入,它会断言中断,并等待主机发送 SET POWER ON 命令。 设备响应命令并 SET POWER ON 恢复向主机发送输入。

不再需要与设备通信时,主机会将设备置于 OFF 状态。 ACPI (或特定于平台的控制器) 必须配置为提供冷关闭状态。 收到 SET POWER OFF 命令后,设备会立即进入其最低功率状态,并停止与主机的通信。 若要使设备处于 ON 状态,主机会启动重置,此时初始化过程开始。

对于 ACPI 枚举设备,需要实现以下电源状态:

  • D0 - 正常工作状态
  • D2 - 用于睡眠状态(如果受支持)。 设备应指示此电源状态的唤醒支持。
  • D3 – 这应该用于 OFF 状态。 设备不应指示此电源状态的唤醒支持。

对于特定于平台的控制器,可以使用备用 D 状态映射来考虑控制器硬件的电源要求。

平台级 D 状态映射不可见或与设备通信。

主机和设备电源状态责任

下表标识了设备和主机必须遵循的属性:

电源状态 主机责任 设备责任
ON - 根据需要解决设备的中断和 IO 问题。 - 重置
后处于 ON 电源状态 - 正在处理,但不提供对主机的 或 SET POWER OFF 命令的响应SET POWER SLEEP
睡眠 - 指示设备进入睡眠状态。
- 如果设备通过中断线发出警报,则将设备设置为“开”状态。
- 如果主机需要与设备通信,它会在任何其他命令之前发出 (SET POWER ON) 的命令。
- 在主机启动电源优化之前,取消断言中断线(如果已断言)。
- 向主机发送中断以请求服务。 然后,设备不得重新确认中断,直到主机发送命令 SET POWER 进入设备已响应的 ON 状态,此时设备应再次断言中断,以通知主机任何挂起的输入报告。
- 将功耗降低到绝对最小值,以保持状态,并选择性地支持远程唤醒。
- 响应 SET POWER ON 来自主机的命令。
OFF - 指示设备进入 OFF 状态。
- 指示平台将设备置于 OFF 状态。
- 当设备无法自行唤醒时,将设备置于此状态。
- 在主机启动电源优化之前,取消断言中断线(如果已断言)。
- 设备将无法在此状态下启动唤醒或提供中断。
- 将功耗降低到绝对最小值。 不需要维护状态。
- 处理 OFF -> ON 转换,因为它将定期通电。

另请参阅

设备电源状态