Control del vehículo y administración de energía

El agente de administración de energía y modo del vehículo (VPM) ayuda al vehículo a controlar el sistema de energía del ecosistema del vehículo definido por software (SDV).

El agente de VPM facilita la comunicación de los modos de vehículo y de energía a varios componentes de software, incluidos los agentes de SDV y los paquetes de servicios dentro del SDV.

El agente de VPM permite que los componentes del SDV realicen un seguimiento del estado actual del vehículo, como su modo operativo (por ejemplo, estacionado o en circulación) y el estado de energía (por ejemplo, encendido, suspendido o apagado). El estado del vehículo es el mismo en todo el software del vehículo. Sin embargo, el estado de energía es único para cada VM del SDV en el vehículo.

El agente de VPM le indica a la plataforma del sistema SDV que inicie modos de energía específicos. Esta capacidad optimiza el consumo de energía y disminuye el tiempo de inicio en caso de reanudación, y ayuda a garantizar el funcionamiento eficiente de los diversos componentes de software del SDV.

En esta página, se describen los requisitos, las restricciones y las dependencias clave asociados con el agente de VPM. Explica la funcionalidad esperada y los lineamientos de integración del agente de VPM para los fabricantes de equipos originales (OEM) y otros desarrolladores de SDV.

Arquitectura

En la figura 1, se ilustra la arquitectura de administración de energía:

Arquitectura de administración de energía

Figura 1: Arquitectura de administración de energía

El agente de VPM recibe comandos de modo de energía (como apagado y suspensión) del servicio de administración de energía del OEM.

El agente de VPM reenvía estos comandos a los agentes de SDV correspondientes y espera a que los agentes los ejecuten. Este enfoque coordinado ayuda a garantizar una transición fluida y segura entre los modos de energía, lo que minimiza el riesgo de pérdida de datos o inestabilidad del sistema.

Después de que todos los agentes de SDV completan sus transiciones de energía, el agente de VPM notifica al OEM, lo que permite que los sistemas del OEM realicen las acciones necesarias (por ejemplo, pasar al siguiente estado o apagar el vehículo). Las transiciones de energía son de bloqueo, y la transición solo se produce cuando todos los agentes de SDV ejecutan la transición dentro de un tiempo de espera definido por el OEM.

En el siguiente diagrama, se muestra la máquina de estados para la administración de energía:

Máquina de estado de administración de energía

Figura 2: Máquina de estados de administración de energía.

El agente de VPM funciona con el sistema de administración del ciclo de vida y la organización para notificar a los paquetes de servicios de SDV sobre cualquier actualización del modo de energía. Esto permite que los paquetes de servicios controlen las transiciones de energía y eviten interrupciones en su funcionamiento. Consulta Cómo controlar la suspensión y reanudación para obtener detalles sobre el uso de estados de administración de energía con paquetes de servicios y el control de la comunicación del SDV.

Estados de energía

Los estados permitidos para la administración de energía en el SDV son los siguientes:

Estado Explicación
REPORT_UNSPECIFIED Es el valor predeterminado si no se especifica ningún informe.
POWER_OFF_EXIT La VM se está iniciando desde un inicio en frío. Los agentes de SDV comienzan con init.rc.
SUSPEND_TO_RAM_EXIT La VM se está reanudando desde la suspensión a la RAM. Los agentes de SDV se reanudan desde la RAM y reciben una notificación sobre la actualización de energía si se suscribieron a las notificaciones de estado de energía.
ON La VM se ejecuta con normalidad.
POWER_OFF_ENTER La VM se está preparando para apagarse. Las apps del OEM que se pueden limpiar antes deben limpiarse en este estado. Las apps del OEM aún pueden depender de los agentes de SDV que se ejecutan en esta etapa. En esta etapa, los agentes de SDV no deben suspenderse ni apagarse, ya que es posible que las apps del OEM aún necesiten comunicarse con ellos.
SUSPEND_TO_RAM_ENTER La VM se está preparando para suspenderse en la RAM. Las apps del OEM que se pueden limpiar de forma anticipada deben limpiarse en este estado. Las apps del OEM aún pueden depender de los agentes de SDV que se ejecutan en esta etapa. En esta etapa, los agentes de SDV no deben suspenderse ni apagarse, ya que es posible que las apps del OEM aún necesiten comunicarse con ellos.
WAIT_FOR_FINISH La VM finalizó la limpieza inicial y espera la señal del OEM para completar o cancelar el apagado o la suspensión.
SHUTDOWN_CANCELLED El OEM solicitó una cancelación para preparar el cierre. Esta solicitud puede ocurrir a más tardar el WAIT_FOR_FINISH. El administrador del ciclo de vida solicita a las apps del OEM que deshagan la preparación para la suspensión o el apagado.
POWER_OFF_POST_FINISH Después de la solicitud de FINISH_SHUTDOWN del OEM, la VM está terminando la limpieza final y apagando la plataforma subyacente. Los agentes de SDV deben limpiar antes de apagar.
SUSPEND_TO_RAM_POST_FINISH La VM está a punto de suspenderse en la RAM y suspender la plataforma subyacente en la RAM. En este punto, las apps del OEM no deben depender de los agentes de SDV porque también están suspendidos. Los agentes de SDV deben realizar sus limpiezas antes de la suspensión.

Recibir actualizaciones sobre el estado del vehículo

El agente de VPM recibe actualizaciones sobre los modos actuales del vehículo del paquete de servicios de control del vehículo del OEM.

Luego, el agente reenvía esta información a los componentes pertinentes del SDV a través de la pila de comunicación estandarizada del SDV. Esto informa a todos los componentes del SDV sobre el estado operativo del vehículo para que puedan adaptar su comportamiento en consecuencia.

Para recibir actualizaciones sobre los estados del vehículo, usa la siguiente configuración de VSIDL en tu paquete de servicio:

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

Los modos y las transiciones del vehículo no son bloqueantes y son asíncronos. A diferencia de las transiciones de energía, no se aplica ninguna máquina de estados.

Los estados permitidos para un vehículo en SDV son los siguientes:

Estado Explicación
VEHICLE_STATE_UNSPECIFIED Es el valor predeterminado para los estados del vehículo si no se especifica ninguno.
LOW_POWER Desde la perspectiva del usuario, el automóvil está apagado, pero la PCU aún puede detectar que está encendido.
SOFTWARE_UPDATE Se están realizando actualizaciones de software en algunas o todas las partes del vehículo. Estas son actualizaciones de software que no están relacionadas con el SDV.
PARK Se proporcionan pocas ECU para esta actividad específica sin la presencia del cliente.
LIFE_ON_BOARD Las ECU de comodidad, como los calefactores de asientos, los clústeres y los paneles centrales, se suministran y se pueden usar, o se detecta la actividad del cliente, como abrir una puerta o destrabar un automóvil.
VEHICLE_ON Se suministran las ECU del motor, el motor funciona, pero no es posible conducir.
TRACTION_ON Se suministran las ECU del motor, el motor funciona y se puede conducir.

Controla la administración de energía y del vehículo con el agente de VPM

Usa las siguientes definiciones de VSIDL para implementar un paquete de servicios que controle la máquina de estados de energía en el 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"
    }
}

Después de implementar el paquete y agregar LCA al agente de VPM, el paquete puede enviar solicitudes de RPC al agente de VPM y recibir notificaciones del estado de energía en el servidor definido.