Der VPM-Agent (Vehicle Mode and Power Management) hilft dem Fahrzeug, das Stromversorgungssystem des SDV-Ökosystems (Software Defined Vehicle) zu steuern.
Der VPM-Agent erleichtert die Kommunikation von Fahrzeug- und Energiemodi an verschiedene Softwarekomponenten, einschließlich SDV-Agents und Service-Bundles innerhalb von SDV.
Der VPM-Agent ermöglicht es SDV-Komponenten, den aktuellen Status des Fahrzeugs zu verfolgen, z. B. den Betriebsmodus (z. B. geparkt oder fahrend) und den Energiestatus (z. B. an, Stand-by oder aus). Der Fahrzeugstatus ist für alle Fahrzeugsoftware gleich. Der Energiestatus ist jedoch für jede SDV-VM im Fahrzeug eindeutig.
Der VPM-Agent signalisiert der SDV-Systemplattform, bestimmte Betriebsarten zu starten. Diese Funktion optimiert den Stromverbrauch und verkürzt die Bootzeit im Falle einer Wiederaufnahme. Außerdem trägt sie zum effizienten Betrieb der verschiedenen Softwarekomponenten des SDV bei.
Auf dieser Seite werden die wichtigsten Anforderungen, Einschränkungen und Abhängigkeiten im Zusammenhang mit dem VPM-Agent beschrieben. Es werden die erwarteten Funktionen und Integrationsrichtlinien für den VPM-Agenten für Erstausrüster (OEMs) und andere SDV-Entwickler erläutert.
Architektur
Abbildung 1 zeigt die Architektur der Energieverwaltung:
Abbildung 1. Architektur der Energieverwaltung.
Der VPM-Agent empfängt Befehle für den Energiemodus (z. B. „Herunterfahren“ und „Stand-by“) vom Energiemanagementdienst des OEM.
Der VPM-Agent leitet diese Befehle an die entsprechenden SDV-Agents weiter und wartet, bis die Agents sie ausführen. Dieser koordinierte Ansatz trägt zu einem reibungslosen und sicheren Übergang zwischen den Energiemodi bei und minimiert das Risiko von Datenverlust oder Systeminstabilität.
Nachdem alle SDV-Agents ihre Energieübergänge abgeschlossen haben, benachrichtigt der VPM-Agent den OEM, damit die OEM-Systeme alle erforderlichen Maßnahmen ergreifen können (z. B. zum nächsten Status wechseln oder herunterfahren). Energieübergänge sind blockierend. Der Übergang erfolgt nur, wenn alle SDV-Agents den Übergang innerhalb eines vom OEM definierten Zeitlimits ausführen.
Das Zustandsdiagramm für die Energieverwaltung wird im folgenden Diagramm dargestellt:
Abbildung 2: Zustandsautomat für die Energieverwaltung.
Der VPM-Agent arbeitet mit dem Orchestrierungs- und Lebenszyklusverwaltungssystem zusammen, um SDV-Dienstpakete über alle Updates des Energiemodus zu informieren. So können die Service-Bundles Stromübergänge verarbeiten und Unterbrechungen des Betriebs vermeiden. Weitere Informationen zur Verwendung von Energiestatus mit Service-Bundles und zur Verarbeitung der SDV-Kommunikation finden Sie unter Suspend und Resume verarbeiten.
Energiezustände
Die zulässigen Status für die Energieverwaltung in SDV sind:
| Status | Erklärung |
|---|---|
REPORT_UNSPECIFIED |
Der Standardwert, wenn kein Bericht angegeben ist. |
POWER_OFF_EXIT |
Die VM wird über einen Kaltstart gebootet. SDV-Agents beginnen mit init.rc. |
SUSPEND_TO_RAM_EXIT |
Die VM wird aus dem RAM-Ruhezustand reaktiviert. SDV-Agents werden aus dem RAM fortgesetzt und erhalten eine Benachrichtigung über die Stromversorgung, wenn sie Stromversorgungsbenachrichtigungen abonniert haben. |
ON |
Die VM wird normal ausgeführt. |
POWER_OFF_ENTER |
Die VM wird auf das Ausschalten vorbereitet. OEM-Apps, die frühzeitig bereinigt werden können, sollten in diesem Zustand bereinigt werden. OEM-Apps können in dieser Phase weiterhin auf SDV-Agents angewiesen sein. SDV-Agents sollten in dieser Phase nicht in den Ruhezustand versetzt oder ausgeschaltet werden, da OEM-Apps möglicherweise noch mit ihnen kommunizieren müssen. |
SUSPEND_TO_RAM_ENTER |
Die VM wird für den Ruhezustand im RAM vorbereitet. OEM-Apps, die frühzeitig bereinigt werden können, sollten in diesem Zustand bereinigt werden. OEM-Apps können in dieser Phase weiterhin auf SDV-Agents angewiesen sein. SDV-Agents sollten in dieser Phase nicht in den Ruhezustand versetzt oder ausgeschaltet werden, da OEM-Apps möglicherweise noch mit ihnen kommunizieren müssen. |
WAIT_FOR_FINISH |
Die VM hat die anfängliche Bereinigung abgeschlossen und wartet auf das Signal des OEM, um das Herunterfahren oder Aussetzen abzuschließen oder abzubrechen. |
SHUTDOWN_CANCELLED |
Der OEM hat eine Stornierung zur Vorbereitung der Abschaltung beantragt. Diese Anfrage muss bis spätestens WAIT_FOR_FINISH erfolgen. OEM-Apps werden vom Lifecycle-Manager aufgefordert, die Vorbereitung für das Sperren oder Ausschalten rückgängig zu machen. |
POWER_OFF_POST_FINISH |
Nach der FINISH_SHUTDOWN-Anfrage des OEM schließt die VM die endgültige Bereinigung ab und schaltet die zugrunde liegende Plattform aus. SDV-Agenten sollten vor dem Ausschalten aufräumen. |
SUSPEND_TO_RAM_POST_FINISH |
Die VM wird in den RAM-Speicher verschoben und die zugrunde liegende Plattform wird in den RAM-Speicher verschoben. OEM-Apps sollten sich derzeit nicht auf SDV-Agents verlassen, da diese ebenfalls gesperrt sind. SDV-Agents sollten ihre Bereinigungen vor der Sperrung durchführen. |
Aktuelle Informationen zum Fahrzeugstatus erhalten
Der VPM-Agent erhält Updates zu den aktuellen Fahrzeugmodi vom Fahrzeugsteuerungsdienst-Bundle des OEM.
Der Agent leitet diese Informationen dann über den standardisierten SDV-Kommunikationsstack an die relevanten SDV-Komponenten weiter. Dadurch werden alle SDV-Komponenten über den Betriebszustand des Fahrzeugs informiert, damit sie ihr Verhalten entsprechend anpassen können.
Wenn Sie Updates zu Fahrzeugstatus erhalten möchten, verwenden Sie die folgende VSIDL-Konfiguration in Ihrem Service-Bundle:
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"
}
}
Die Fahrzeugmodi und Übergänge sind nicht blockierend und asynchron. Im Gegensatz zu Energieübergängen wird keine Statusmaschine erzwungen.
Die zulässigen Status für ein Fahrzeug in SDV sind:
| Status | Erklärung |
|---|---|
VEHICLE_STATE_UNSPECIFIED |
Der Standardwert für Fahrzeugstatus, wenn kein Status angegeben ist. |
LOW_POWER |
Das Auto ist aus Nutzersicht aus, aber die PCU kann weiterhin erkennen, dass das Auto an ist. |
SOFTWARE_UPDATE |
Auf einigen oder allen Teilen des Fahrzeugs werden Softwareupdates durchgeführt. Dabei handelt es sich um Softwareupdates, die nicht mit SDV zusammenhängen. |
PARK |
Für diese spezifische Aktivität werden nur wenige ECUs ohne Anwesenheit des Kunden bereitgestellt. |
LIFE_ON_BOARD |
Komfort-Steuergeräte wie Sitzheizungen, Kombiinstrumente und Mittelkonsolen werden mit Strom versorgt und sind nutzbar oder es wird eine Kundenaktivität erkannt, z. B. das Öffnen einer Tür oder das Entriegeln eines Autos. |
VEHICLE_ON |
Motorsteuergeräte werden mitgeliefert, der Motor ist betriebsbereit, aber das Fahren ist nicht möglich. |
TRACTION_ON |
Motorsteuergeräte sind vorhanden, der Motor ist betriebsbereit und das Fahren ist möglich. |
Fahrzeug und Energiemanagement mit dem VPM-Agenten steuern
Verwende die folgenden VSIDL-Definitionen, um ein Dienst-Bundle zu implementieren, das die Statusmaschine für den Stromverbrauch in SDV steuert:
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"
}
}
Nachdem das Bundle implementiert und dem VPM-Agent ACLs hinzugefügt wurden, kann das Bundle RPC-Anfragen an den VPM-Agent senden und Benachrichtigungen zum Energiestatus auf dem definierten Server empfangen.