Управление транспортным средством и энергоснабжением

Агент управления режимами работы и питанием транспортного средства (VPM) помогает транспортному средству управлять системой электропитания экосистемы программно-определяемого транспортного средства (SDV).

Агент VPM обеспечивает передачу информации о режиме работы транспортного средства и мощности различным программным компонентам, включая агенты SDV и пакеты услуг в рамках SDV.

Агент VPM позволяет компонентам SDV отслеживать текущее состояние автомобиля, например, режим работы (например, припаркован или движется) и состояние питания (например, включен, приостановлен или выключен). Состояние автомобиля одинаково для всего программного обеспечения автомобиля; однако состояние питания уникально для каждой виртуальной машины SDV в автомобиле.

Агент VPM подает сигнал системной платформе SDV о запуске определенных режимов энергосбережения. Эта возможность оптимизирует энергопотребление и сокращает время загрузки при возобновлении работы, а также помогает обеспечить эффективную работу различных программных компонентов SDV.

На этой странице описаны основные требования, ограничения и зависимости, связанные с агентом VPM. Здесь изложены ожидаемые функциональные возможности и рекомендации по интеграции агента VPM для производителей оригинального оборудования (OEM) и других разработчиков SDV.

Архитектура

На рисунке 1 показана архитектура управления питанием:

архитектура управления питанием

Рисунок 1. Архитектура управления питанием.

Агент VPM получает команды управления режимом питания (например, выключение и приостановка) от службы управления питанием производителя оборудования.

Агент VPM пересылает эти команды соответствующим агентам SDV и ожидает их выполнения. Такой скоординированный подход помогает обеспечить плавный и безопасный переход между режимами питания, минимизируя риск потери данных или нестабильности системы.

После того, как все агенты SDV завершат свои переключения питания, агент VPM уведомляет OEM-производителя, позволяя системам OEM-производителя продолжить необходимые действия (например, перейти в следующее состояние или выключиться). Переключения питания являются блокирующими; переключение происходит только тогда, когда все агенты SDV выполняют его в течение заданного OEM-производителем таймаута.

Конечный автомат для управления энергопотреблением показан на следующей диаграмме:

Конечный автомат управления питанием

Рисунок 2. Конечный автомат управления питанием.

Агент VPM взаимодействует с системой оркестрации и управления жизненным циклом, чтобы уведомлять пакеты служб SDV о любых обновлениях режимов питания. Это позволяет пакетам служб обрабатывать переключения питания и избегать сбоев в их работе. См. раздел «Обработка приостановки и возобновления» для получения подробной информации об использовании состояний управления питанием с пакетами служб и обработке связи с SDV.

властные государства

В системе SDV допустимы следующие состояния управления питанием:

Состояние Объяснение
REPORT_UNSPECIFIED Значение по умолчанию, если отчет не указан.
POWER_OFF_EXIT Виртуальная машина загружается с нуля. Агенты SDV запускаются с помощью init.rc
SUSPEND_TO_RAM_EXIT Виртуальная машина возобновляет работу из режима приостановки в оперативную память. Агенты SDV возобновляют работу из оперативной памяти и получают уведомление об обновлении питания, если они подписаны на уведомления о состоянии питания.
ON Виртуальная машина работает в обычном режиме.
POWER_OFF_ENTER Виртуальная машина готовится к выключению. Приложения OEM-производителей, которые можно удалить на ранней стадии, следует удалить в этом состоянии. Приложения OEM-производителей могут по-прежнему полагаться на работающие агенты SDV на этом этапе. Агенты SDV не должны приостанавливаться или выключаться на этом этапе, поскольку приложениям OEM-производителей может потребоваться связь с ними.
SUSPEND_TO_RAM_ENTER Виртуальная машина готовится к приостановке работы в оперативной памяти. Приложения OEM-производителей, которые можно удалить на ранней стадии, следует удалить в этом состоянии. Приложения OEM-производителей могут по-прежнему полагаться на работающие на этом этапе агенты SDV. Агенты SDV не должны приостанавливаться или выключаться на этом этапе, поскольку приложениям OEM-производителей может потребоваться связь с ними.
WAIT_FOR_FINISH Виртуальная машина завершила первоначальную очистку и ожидает сигнала от производителя для завершения или отмены выключения или приостановки работы.
SHUTDOWN_CANCELLED Производитель оборудования запросил отмену подготовки к выключению. Этот запрос не может быть отправлен позднее, чем до WAIT_FOR_FINISH . Менеджер жизненного цикла запрашивает у приложений производителя оборудования отмену подготовки к приостановке или выключению питания.
POWER_OFF_POST_FINISH После запроса FINISH_SHUTDOWN от OEM-производителя виртуальная машина завершает окончательную очистку и выключает базовую платформу. Агенты SDV должны завершить очистку перед выключением.
SUSPEND_TO_RAM_POST_FINISH Виртуальная машина вот-вот перейдет в режим ожидания с сохранением данных в оперативную память, а также в режим ожидания базовой платформы. Приложениям OEM-производителей на данном этапе не следует полагаться на агенты SDV, поскольку они также находятся в режиме ожидания. Агенты SDV должны выполнить очистку перед переходом в режим ожидания.

Получайте обновления о состоянии автомобиля.

Агент VPM получает обновления о текущих режимах работы автомобиля от пакета сервисов управления автомобилем, предоставленного производителем.

Затем агент передает эту информацию соответствующим компонентам 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 Для этой конкретной деятельности без присутствия заказчика поставляется лишь небольшое количество электронных блоков управления.
LIFE_ON_BOARD Блоки управления комфортом, такие как подогрев сидений, приборные панели и центральные панели, поставляются и могут быть использованы, либо фиксируется активность клиента, например, открытие двери или разблокировка автомобиля.
VEHICLE_ON Блоки управления двигателем поставлены, двигатель работает, но движение невозможно.
TRACTION_ON Электронные блоки управления двигателем поставлены, двигатель исправен, и движение возможно.

Управляйте работой транспортного средства и энергоснабжением с помощью агента VPM.

Для реализации пакета служб, управляющего конечным автоматом состояний питания в SDV, используйте следующие определения VSIDL:

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, пакет сможет отправлять RPC-запросы агенту VPM и получать уведомления о состоянии питания на указанном сервере.