車両モードと電源管理(VPM)エージェントは、車両がソフトウェア定義車両(SDV)エコシステムの電源システムを制御するのに役立ちます。
VPM エージェントは、車両モードと電源モードを SDV 内の SDV エージェントやサービス バンドルなどのさまざまなソフトウェア コンポーネントに伝達します。
VPM エージェントにより、SDV コンポーネントは、動作モード(駐車中、運転中など)や電源ステータス(オン、一時停止、オフなど)といった車両の現在の状態を追跡できます。車両の状態はすべての車両ソフトウェアで同じですが、電源の状態は車両内の SDV VM ごとに固有です。
VPM エージェントは、SDV システム プラットフォームに特定の電源モードを開始するよう通知します。この機能により、消費電力が最適化され、再開時の起動時間が短縮されます。また、SDV の多様なソフトウェア コンポーネントの効率的な動作を確保できます。
このページでは、VPM エージェントに関連する主な要件、制約、依存関係について説明します。VPM エージェントの想定される機能と統合ガイドラインを、相手先ブランド製品製造企業(OEM)やその他の SDV デベロッパーに説明します。
アーキテクチャ
図 1 は、電源管理アーキテクチャを示しています。
図 1. 電源管理アーキテクチャ。
VPM エージェントは、OEM の電源管理サービスから電源モード コマンド(シャットダウンや一時停止など)を受け取ります。
VPM エージェントは、これらのコマンドを適切な SDV エージェントに転送し、エージェントがコマンドを実行するのを待ちます。この連携アプローチにより、電源モード間のスムーズで安全な移行が保証され、データ損失やシステムの不安定さのリスクが最小限に抑えられます。
すべての SDV エージェントが電源移行を完了すると、VPM エージェントが OEM に通知し、OEM システムは必要なアクション(次の状態への移行やシャットダウンなど)に進むことができます。電源遷移はブロックされます。遷移は、すべての SDV エージェントが OEM 定義のタイムアウト内で遷移を実行した場合にのみ発生します。
電源管理のステートマシンを次の図に示します。
図 2. 電源管理ステートマシン。
VPM エージェントは、オーケストレーションとライフサイクル管理システムと連携して、SDV サービス バンドルに電力モードの更新を通知します。これにより、サービス バンドルで電源の切り替えを処理し、オペレーションの中断を回避できます。サービス バンドルで電源管理状態を使用し、SDV 通信を処理する方法について詳しくは、一時停止と再開を処理するをご覧ください。
電源の状態
SDV での電源管理で許可される状態は次のとおりです。
| 状態 | 説明 |
|---|---|
REPORT_UNSPECIFIED |
レポートが指定されていない場合のデフォルト値。 |
POWER_OFF_EXIT |
VM がコールドブートで起動しています。SDV エージェントは init.rc で始まります。 |
SUSPEND_TO_RAM_EXIT |
VM は Suspend to RAM から再開しています。SDV エージェントは RAM から再開し、電源状態の通知に登録している場合は電源更新に関する通知を受け取ります。 |
ON |
VM が正常に実行されている。 |
POWER_OFF_ENTER |
VM は電源オフの準備中です。早期にクリーンアップできる OEM アプリは、この状態でクリーンアップする必要があります。OEM アプリは、この段階で実行されている SDV エージェントに引き続き依存できます。OEM アプリがまだ通信を必要としている可能性があるため、この段階で SDV エージェントを一時停止したり、電源を切ったりしないでください。 |
SUSPEND_TO_RAM_ENTER |
VM は suspend-to-RAM の準備をしています。早期にクリーンアップできる OEM アプリは、この状態でクリーンアップする必要があります。OEM アプリは、この段階で実行されている SDV エージェントに引き続き依存できます。OEM アプリがまだ通信を必要としている可能性があるため、SDV エージェントはこの段階で一時停止または電源オフにしないでください。 |
WAIT_FOR_FINISH |
VM は初期クリーンアップを完了し、OEM からの信号を待って、電源オフまたは一時停止を完了またはキャンセルします。 |
SHUTDOWN_CANCELLED |
OEM がシャットダウンの準備のためにキャンセルをリクエストしました。このリクエストは WAIT_FOR_FINISH までに行うことができます。OEM アプリは、ライフサイクル マネージャーから一時停止または電源をオフにする準備を元に戻すようリクエストされます。 |
POWER_OFF_POST_FINISH |
OEM からの FINISH_SHUTDOWN リクエストに従い、VM は最終的なクリーンアップを完了し、基盤となるプラットフォームの電源をオフにしています。SDV エージェントは、電源をオフにする前にクリーンアップする必要があります。 |
SUSPEND_TO_RAM_POST_FINISH |
VM は RAM に一時停止し、基盤となるプラットフォームを RAM に一時停止しようとしています。この時点で SDV エージェントは一時停止されているため、OEM アプリは SDV エージェントに依存すべきではありません。SDV エージェントは、停止前にクリーンアップを行う必要があります。 |
車両の状態に関する最新情報を受け取る
VPM エージェントは、OEM の車両制御サービス バンドルから現在の車両モードに関する更新情報を受け取ります。
エージェントは、標準化された SDV 通信スタックを介して、この情報を関連する SDV コンポーネントに転送します。これにより、すべての SDV コンポーネントに車両の動作状態が通知され、それに応じて動作を適応させることができます。
車両の状態に関する更新情報を受け取るには、サービス バンドルで次の VSIDL 構成を使用します。
package: "com.sdv.google.vpm.vehicle.client.subscriber"
service_bundle {
name: "VehicleStateSubscriber"
//Subscriber to the vehicle state updates.
subscriber {
message: "com.sdv.google.vpm.vehicle.VehicleStateChange"
}
}
車両モードとトランジションは非ブロックで非同期です。電源移行とは異なり、ステートマシンは強制されません。
SDV の車両で許可される状態は次のとおりです。
| 状態 | 説明 |
|---|---|
VEHICLE_STATE_UNSPECIFIED |
状態が指定されていない場合の車両状態のデフォルト値。 |
LOW_POWER |
ユーザーの視点では車はオフになっていますが、PCU は車がオンになっていることを検出できます。 |
SOFTWARE_UPDATE |
車両の一部またはすべてでソフトウェア アップデートが進行中です。これらは SDV 関連以外のソフトウェア アップデートです。 |
PARK |
この特定のアクティビティ用に、お客様がいない状態で ECU がいくつか供給されています。 |
LIFE_ON_BOARD |
シートヒーター、クラスター、中央パネルなどの快適性 ECU が供給され、使用可能になっているか、ドアを開ける、車のロックを解除するなどのユーザー アクティビティが検出されている。 |
VEHICLE_ON |
エンジン ECU が供給され、エンジンは動作しているが、運転できない。 |
TRACTION_ON |
エンジン ECU が供給され、エンジンが動作し、運転が可能である。 |
VPM エージェントで車両と電源管理を制御する
次の VSIDL 定義を使用して、SDV の電源状態マシンを制御するサービス バンドルを実装します。
package: "com.sdv.google.vpm.client"
service_bundle {
name: "VpmSystemClient"
//Client for VPM system interface.
client {
service: "com.sdv.google.vpm.VpmSystemService"
}
//Server to VPM notification interface.
server {
service: "com.sdv.google.vpm.client.PowerNotificationService"
}
}
バンドルが実装され、ACL が VPM エージェントに追加されると、バンドルは VPM エージェントに RPC リクエストを送信し、定義されたサーバーで電源状態の通知を受信できます。