車両と電源の管理を制御する

車両モードと電源管理(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 リクエストを送信し、定義されたサーバーで電源状態の通知を受信できます。