次の方法で共有


HID Over SPI の電源管理

この記事では、SPI を介したホストとデバイスの電源管理について詳細に説明します。

デバイスによって開始される電力の最適化

ホストからの電源設定がない場合は、デバイスが電力使用量を最適化する役割を担います。 これにより、デバイスはホストの介入なしに最も低電力の状態に入りながら、ホストとのタイムリーな通信も継続できます。

デバイスによって開始される電力の最適化に正しく準拠するには:

  • 低電力モードで状態を維持する役割はデバイスが担います。
  • すべてのデバイスの電力の最適化が、ホストとエンド ユーザーに対して透過的である必要があります。
  • デバイスは、ホストからのすべての要求にタイムリーに応答する必要があります。 ユーザーまたはシステムとの対話時に、高い電力モードに移行する役割はデバイスが担います。
  • デバイスは、入力レポートの変更を無損失でホストに通知する必要があります。 イベントが失われたり、デバイスによって削除されたりしてはなりません。
  • ホストによって開始される電力の最適化」で説明されている電源状態は、デバイスによって開始される電力の最適化には適用されません。

デバイスによって開始される電力の最適化が一般的に展開されるシナリオには、次のようなものがあります。

  1. デバイスが短時間アイドル状態になり、 自身がアイドル状態であると判断すると、動作が再び開始されるまで内部的なセンシング頻度を低減する最低電力の状態に移行します。 動作が開始されると、データは直ちにホストに送信されます。
  2. デバイスは、センシング頻度を低減します。 つまり、データをスキャンする頻度を減らします。

ホストによって開始される電力の最適化

システム全体とデバイスの電力を最適化する役割はホストが担います。 この電力最適化方法は、ホストがデバイスに対して電力の最適化を通知する場合に使用されます。

次の電源状態は、ホストによって開始される電力の最適化に対して定義されているものです。ベンダー固有のデバイスによって開始される電力最適化の状態と混同しないでください。

  • ON
  • SLEEP (デバイスがシステムをスリープ解除する可能性があります)
  • OFF (デバイスはシステムをスリープ解除できず、デバイスから電源が取り外される可能性があります)

ON 状態では、デバイスは正常に動作し、デバイスによって開始される電力の最適化を使用して電力消費量を削減できます。 ホストがリセットを開始し、HIDSPI 通信が開始されると、デバイスは ON 状態になります。

ホストは、定義済みの Set Power コマンドを発行して、ON 状態から低電力状態に移行するようデバイスに指示します。 ホストは、デバイスのオペレーティング システムの電源ポリシーに基づいてこの処理を行います。

プラットフォームの電源ポリシーによってデバイスがそれ自体またはシステムをスリープ解除することが許可されている場合、ホストはデバイスを SLEEP 状態にします。 SLEEP のサポートはオプションであり、ACPI を介して、またはプラットフォーム固有のコントローラーのバスに適した方法でホスト オペレーティング システムに示されます。 SET POWER SLEEP コマンドを受け取ると、デバイスは直ちに低電力状態に入る必要があります。この状態では、ユーザーの操作を待機し、スリープ解除の開始以外は割り込みをアサートしてはなりません。 デバイスは、入力を検出すると割り込みをアサートし、ホストが SET POWER ON コマンドを送信するまで待機します。 デバイスは SET POWER ON コマンドに応答し、ホストへの入力の送信を再開します。

デバイスとの通信が不要になると、ホストはデバイスを OFF 状態にします。 ACPI (またはプラットフォーム固有のコントローラー) は、コールド OFF 状態を提供するように構成する必要があります。 SET POWER OFF コマンドを受信すると、デバイスは直ちに最低電力状態になり、ホストとの通信が停止します。 デバイスを ON 状態にするために、ホストはリセットを開始し、その時点で初期化プロセスが開始されます。

ACPI で列挙されたデバイスについては、次の電源状態を実装する必要があります。

  • D0 – 通常の動作状態
  • D2 – サポートされている場合は、SLEEP 状態に使用されます。 デバイスは、この電源状態からのスリープ解除のサポートを示す必要があります。
  • D3 – これは OFF 状態に使用する必要があります。 デバイスは、この電源状態からのスリープ解除のサポートを示してはなりません。

プラットフォーム固有のコントローラーの場合、コントローラー ハードウェアの電源要件を考慮するために、代替の D 状態のマッピングを使用できます。

プラットフォーム レベルの D 状態のマッピングは不可視であり、デバイスに伝達されません。

電源状態に関するホストとデバイスの役割

次の表は、デバイスとホストが従うべきプロパティを示したものです。

電源状態 ホストの役割 デバイスの役割
ON - 必要に応じてデバイスへの割り込みと IO の問題に対処します。 - リセット後に ON の電源状態にする
- プロセスですが、ホストからの SET POWER SLEEP コマンドまたは SET POWER OFF コマンドへの応答は提供しません。
SLEEP - SLEEP 状態に入るようデバイスに指示します。
- デバイスが割り込みラインを介して警告している場合は、デバイスを ON 状態に設定します。
- ホストがデバイスと通信する必要がある場合は、他のコマンドの前に SET POWER コマンドを発行 (ON に設定) します。
- 割り込みラインがアサートされている場合は、ホストが電力の最適化を開始する前にアサートを解除します。
- ホストに割り込みを送信してサービスを要求します。 その後は、ホストが SET POWER コマンドを送信して ON 状態にするまで、デバイスは割り込みを再アサートしてはなりません。デバイスは、この時点で割り込みを再度アサートして、保留中の入力レポートをホストに通知する必要があります。
- 状態を維持し、オプションでリモートウェイクをサポートできる必要最低限の消費電力量まで抑えます。
- ホストからの SET POWER ON コマンドに応答します。
OFF - OFF 状態に入るようデバイスに指示します。
- デバイスを OFF 状態にするようにプラットフォームに指示します。
- デバイスをスリープ解除できない状態にする必要がある場合は、この状態にします。
- 割り込みラインがアサートされている場合は、ホストが電力の最適化を開始する前にアサートを解除します。
- この状態では、デバイスはスリープ解除を開始したり、割り込みを提供したりすることはできません。
- 消費電力を極限まで抑えます。 状態を維持する必要はありません。
- 通常の電源投入と同様に、OFF -> ON 遷移を処理します。

関連項目

デバイスの電源状態