透過 SPI 電源管理的 HID
本文會識別透過 SPI 進行主機和裝置電源管理的詳細數據。
裝置起始的電源優化
裝置負責在主機沒有任何電源設定的情況下,將其電源使用率優化。 這可讓裝置在沒有主機介入的情況下進入其最低電源狀態,同時確保裝置能夠及時與主機通訊。
若要正確符合裝置起始的電源優化:
- 裝置負責在其低電源模式中保留其狀態。
- 所有裝置電源優化都必須對主機和終端使用者而言是透明的。
- 裝置必須及時回應來自主機的所有要求。 裝置負責及時將自己帶入使用者或系統互動的更高電源模式。
- 裝置必須以不失真的方式,在任何輸入報告變更時通知主機。 裝置不應遺失或刪除任何事件。
- 主機起始電源優化中所述的電源狀態不適用於裝置起始的電源優化。
通常部署裝置起始電源優化的案例包括:
- 裝置閑置一段短時間間隔。 裝置會判斷它處於閑置狀態,並將本身置於其最低電源狀態,直到重新起始動作為止,其會降低其內部感測器頻率。 一旦動作開始,數據就會立即傳送至主機。
- 裝置會減少其感測器頻率。 裝置會減少掃描數據的頻率。
主機起始的電源優化
主機負責優化整體系統和裝置的功能。 當主機想要提供電源優化通知給裝置時,就會使用這個電源優化方法。
下列電源狀態是針對主機起始的電源優化所定義,而且不會與廠商特定裝置起始的電源優化狀態混淆。
- 開啟
- SLEEP (裝置可能會喚醒系統)
- 關閉 (裝置無法喚醒系統,可能會從裝置移除電源)
在 ON 狀態中,裝置的行為正常,而且可能會使用裝置起始的電源優化來減少耗電量。 當起始 HIDSPI 通訊時,裝置會負責在主機起始重設之後處於 ON 狀態。
主機會發出定義的 Set Power
命令,指示裝置從 ON 狀態進入低電源狀態。 主機會根據裝置的操作系統電源原則選擇執行這項操作。
當平臺電源原則允許裝置自行或系統喚醒時,主機會將裝置置於SLEEP狀態。 SLEEP 支援是選擇性的,而且會透過 ACPI 向主機作業系統指出,或以適用於平臺特定控制器之總線的方式表示。 收到 SET POWER SLEEP
命令時,裝置必須立即進入較低電源狀態,其會等候用戶互動,而且不得判斷提示中斷,除非起始喚醒。 如果裝置偵測到輸入,它會判斷提示中斷,並等候主機傳送 SET POWER ON
命令。 裝置會 SET POWER ON
回應 命令,並繼續將輸入傳送至主機。
當不再需要與裝置通訊時,主機會將裝置置於 OFF 狀態。 ACPI (或平臺特定控制器) 必須設定為提供冷關閉狀態。 收到 SET POWER OFF
命令時,裝置會立即進入其最低電源狀態,並停止與主機的通訊。 若要讓裝置進入 ON 狀態,主機會起始重設,此時會開始初始化程式。
針對 ACPI 列舉裝置,必須實作下列電源狀態:
- D0 – 正常運作狀態
- D2 – 如果支援,則用於 SLEEP 狀態。 裝置應該會指出來自此電源狀態的喚醒支援。
- D3 – 這應該用於 OFF 狀態。 裝置不應該指出來自此電源狀態的喚醒支援。
針對平臺特定控制器,可能會使用替代的 D 狀態對應來考慮控制器硬體的電源需求。
平臺層級的 D 狀態對應不會顯示或與裝置通訊。
主機和裝置電源狀態責任
下表識別裝置和主機必須遵循的屬性:
電源狀態 | 主機責任 | 裝置責任 |
---|---|---|
ON | - 視需要解決裝置的中斷和IO問題。 | - 在重設 后處於 ON 電源狀態 - 行程,但未提供來自主機之 或 SET POWER OFF 命令的回應SET POWER SLEEP 。 |
睡眠 | - 指示裝置進入 SLEEP 狀態。 - 如果裝置透過中斷線警示,將裝置設定為 ON 狀態。 - 如果主機需要與裝置通訊,它會 SET POWER 在任何其他命令之前,發出命令 (至 ON) 。 |
- 如果已判斷提示,請在主機起始電源優化之前,取消判斷提示插斷線。 - 將中斷傳送至主機以要求服務。 裝置必須等到主機傳送 SET POWER 命令以進入開啟狀態,裝置已回應,裝置應該再次判斷插斷,以通知主機是否有任何擱置的輸入報告之前,裝置必須重新評估中斷。 - 將電源消耗減少為絕對最小值,以維持狀態,並選擇性地支援遠端喚醒。 - 回應 SET POWER ON 主機的命令。 |
OFF | - 指示裝置進入 OFF 狀態。 - 指示平臺讓裝置進入 OFF 狀態。 - 當裝置本身無法喚醒時,請將裝置放入此狀態。 |
- 如果已判斷提示,請在主機起始電源優化之前,取消判斷提示插斷線。 - 裝置將無法起始喚醒或提供處於此狀態的中斷。 - 將電源繪製減少為絕對最小值。 不需要維護狀態。 - 將 OFF -> ON 轉換視為一般電源。 |