Controllare la gestione del veicolo e dell'alimentazione

L'agente Vehicle Mode and Power Management (VPM) aiuta il veicolo a controllare il sistema di alimentazione dell'ecosistema Software Defined Vehicle (SDV).

L'agente VPM facilita la comunicazione delle modalità di alimentazione e del veicolo a vari componenti software, inclusi gli agenti SDV e i bundle di servizi all'interno di SDV.

L'agente VPM consente ai componenti SDV di tenere traccia dello stato attuale del veicolo, ad esempio la modalità di funzionamento (ad esempio parcheggiato o in movimento) e lo stato di alimentazione (ad esempio acceso, sospeso o spento). Lo stato del veicolo è lo stesso in tutto il software del veicolo; tuttavia, lo stato di alimentazione è univoco per ogni VM SDV nel veicolo.

L'agente VPM segnala alla piattaforma di sistema SDV di avviare modalità di alimentazione specifiche. Questa funzionalità ottimizza il consumo energetico e riduce il tempo di avvio in caso di ripristino e contribuisce a garantire il funzionamento efficiente dei diversi componenti software dell'SDV.

Questa pagina descrive i requisiti, i vincoli e le dipendenze chiave associati all'agente VPM. Spiega la funzionalità prevista e le linee guida per l'integrazione dell'agente VPM ai produttori di apparecchiature originali (OEM) e ad altri sviluppatori di SDV.

Architettura

La figura 1 illustra l'architettura di gestione dell'alimentazione:

Architettura di gestione dell'alimentazione

Figura 1. Architettura di gestione dell'alimentazione.

L'agente VPM riceve comandi di modalità di alimentazione (come spegnimento e sospensione) dal servizio di gestione dell'alimentazione dell'OEM.

L'agente VPM inoltra questi comandi agli agenti SDV appropriati e attende che gli agenti li eseguano. Questo approccio coordinato contribuisce a garantire una transizione fluida e sicura tra le modalità di alimentazione, riducendo al minimo il rischio di perdita di dati o instabilità del sistema.

Dopo che tutti gli agenti SDV hanno completato le transizioni di alimentazione, l'agente VPM notifica l'OEM, consentendo ai sistemi OEM di procedere con le azioni necessarie (ad esempio, passare allo stato successivo o spegnere). Le transizioni di alimentazione sono bloccanti; la transizione si verifica solo quando tutti gli agenti SDV eseguono la transizione entro un timeout definito dal produttore OEM.

La macchina a stati per la gestione dell'alimentazione è mostrata nel seguente diagramma:

Macchina a stati di gestione dell'alimentazione

Figura 2. Macchina a stati di gestione dell'alimentazione.

L'agente VPM funziona con il sistema di orchestrazione e gestione del ciclo di vita per notificare ai bundle di servizi SDV eventuali aggiornamenti della modalità di alimentazione. In questo modo, i bundle di servizi gestiscono le transizioni di alimentazione ed evitano interruzioni del loro funzionamento. Per informazioni dettagliate sull'utilizzo degli stati di gestione dell'alimentazione con i bundle di servizi e sulla gestione della comunicazione SDV, vedi Gestire la sospensione e la ripresa.

Stati di alimentazione

Gli stati consentiti per la gestione dell'alimentazione in SDV sono i seguenti:

Stato Spiegazione
REPORT_UNSPECIFIED Il valore predefinito se non viene specificato alcun report.
POWER_OFF_EXIT La VM si avvia da un avvio a freddo. Gli agenti SDV iniziano con init.rc.
SUSPEND_TO_RAM_EXIT La VM sta riprendendo l'attività dalla sospensione alla RAM. Gli agenti SDV riprendono l'attività dalla RAM e ricevono una notifica sull'aggiornamento dello stato di alimentazione se hanno attivato le notifiche sullo stato di alimentazione.
ON La VM è in esecuzione normalmente.
POWER_OFF_ENTER La VM si sta preparando allo spegnimento. Le app OEM che possono essere pulite in anticipo devono essere pulite in questo stato. Le app OEM possono comunque fare affidamento sugli agenti SDV in esecuzione in questa fase. Gli agenti SDV non devono sospendere o spegnere il veicolo in questa fase perché le app OEM potrebbero ancora dover comunicare con loro.
SUSPEND_TO_RAM_ENTER La VM si sta preparando per la sospensione alla RAM. Le app OEM che possono essere pulite in anticipo devono essere pulite in questo stato. Le app OEM possono comunque fare affidamento sugli agenti SDV in esecuzione in questa fase. Gli agenti SDV non devono sospendere o spegnere il veicolo in questa fase perché le app OEM potrebbero ancora dover comunicare con loro.
WAIT_FOR_FINISH La VM ha completato la pulizia iniziale e attende il segnale dell'OEM per completare o annullare lo spegnimento o la sospensione.
SHUTDOWN_CANCELLED L'OEM ha richiesto un annullamento per la preparazione all'arresto. Questa richiesta può essere effettuata entro e non oltre il giorno WAIT_FOR_FINISH. Le app OEM vengono richieste dal gestore del ciclo di vita per annullare la preparazione alla sospensione o allo spegnimento.
POWER_OFF_POST_FINISH A seguito della richiesta FINISH_SHUTDOWN dell'OEM, la VM sta terminando la pulizia finale e spegnendo la piattaforma sottostante. Gli agenti SDV devono liberare spazio prima dello spegnimento.
SUSPEND_TO_RAM_POST_FINISH La VM sta per essere sospesa nella RAM e la piattaforma sottostante sta per essere sospesa nella RAM. A questo punto, le app OEM non devono fare affidamento sugli agenti SDV perché anche questi sono sospesi. Gli agenti SDV devono eseguire le pulizie prima della sospensione.

Ricevere aggiornamenti sullo stato del veicolo

L'agente VPM riceve aggiornamenti sulle modalità del veicolo attuali dal bundle di servizi di controllo del veicolo dell'OEM.

L'agente inoltra quindi queste informazioni ai componenti SDV pertinenti tramite lo stack di comunicazione SDV standardizzato. che informa tutti i componenti SDV dello stato operativo del veicolo in modo che possano adattare il loro comportamento di conseguenza.

Per ricevere aggiornamenti sugli stati del veicolo, utilizza la seguente configurazione VSIDL nel bundle di servizi:

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"
    }
}

Le modalità e le transizioni del veicolo non sono bloccanti e sono asincrone. A differenza delle transizioni di alimentazione, non viene applicata alcuna macchina a stati finiti.

Gli stati consentiti per un veicolo in SDV sono i seguenti:

Stato Spiegazione
VEHICLE_STATE_UNSPECIFIED Il valore predefinito per gli stati del veicolo se non viene specificato alcuno stato.
LOW_POWER L'auto è spenta dal punto di vista dell'utente, ma la PCU può comunque rilevare che è accesa.
SOFTWARE_UPDATE Gli aggiornamenti software sono in corso su alcune o tutte le parti del veicolo. Si tratta di aggiornamenti software non correlati a SDV.
PARK Per questa attività specifica vengono fornite poche ECU senza la presenza del cliente.
LIFE_ON_BOARD Le centraline elettroniche comfort, come i riscaldamenti dei sedili, i cruscotti e i pannelli centrali, sono fornite e utilizzabili oppure viene rilevata l'attività del cliente, ad esempio l'apertura di una portiera o l'apertura dell'auto.
VEHICLE_ON Le centraline del motore sono alimentate, il motore è funzionante e non è possibile guidare.
TRACTION_ON Le centraline del motore sono fornite, il motore è funzionante ed è possibile guidare.

Controllare la gestione del veicolo e dell'alimentazione con l'agente VPM

Utilizza le seguenti definizioni VSIDL per implementare un bundle di servizi che controlla la macchina a stati di alimentazione in 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"
    }
}

Dopo l'implementazione del bundle e l'aggiunta degli ACL all'agente VPM, il bundle può inviare richieste RPC all'agente VPM e ricevere notifiche sullo stato di alimentazione sul server definito.