Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Автомобильная промышленность

Значок HAL автомобиля Android

Многие автомобильные подсистемы связаны друг с другом и с бортовой информационно-развлекательной системой (IVI) через различные шинные топологии. Точный тип шины и протоколы сильно различаются между производителями (и даже между разными моделями автомобилей одной марки); Примеры включают шину сети контроллеров (CAN), шину локальной сети межсоединений (LIN), транспортно-ориентированные системы мультимедиа (MOST), а также сети Ethernet и TCP / IP автомобильного уровня, такие как BroadR-Reach.

Уровень абстракции оборудования Android Automotive (HAL) обеспечивает согласованный интерфейс для платформы Android независимо от физического транспортного уровня. Этот автомобильный HAL представляет собой интерфейс для разработки реализаций Android Automotive.

Системные интеграторы могут реализовать модуль HAL транспортного средства, соединив интерфейсы HAL платформы для конкретных функций (например, HVAC) с технологическими сетевыми интерфейсами (например, шиной CAN). Типичные реализации могут включать в себя выделенный микроконтроллерный блок (MCU), работающий под собственной операционной системой реального времени (RTOS) для доступа к CAN-шине или аналогичной, которая может быть подключена через последовательный канал к процессору под управлением Android Automotive. Вместо выделенного MCU можно также реализовать доступ к шине в виде виртуализированного ЦП. Каждый партнер должен выбрать архитектуру, подходящую для оборудования, если реализация удовлетворяет требованиям интерфейса для транспортного средства HAL.

Архитектура

Автомобиль HAL - это определение интерфейса между автомобилем и сетевой службой транспортного средства:

Android автомобиль HAL архитектура

Рисунок 1 . Автомобиль HAL и автомобильная архитектура Android

  • Автомобильный API . Содержит такие API, как CarHvacManager и CarSensorManager. Подробные сведения о поддерживаемых API см. В /platform/packages/services/Car/car-lib .
  • CarService . Находится в /platform/packages/services/Car/ .
  • Автомобиль HAL . Интерфейс, определяющий свойства автомобиля, которые могут реализовать OEM-производители. Содержит метаданные свойства (например, является ли свойство транспортного средства целым и какие режимы изменения разрешены). Находится по адресу hardware/libhardware/include/hardware/vehicle.h . Базовую эталонную реализацию можно найти в hardware/libhardware/modules/vehicle/ .

Для получения дополнительной информации см. Свойства транспортного средства .

Безопасность

Автомобиль HAL поддерживает три уровня безопасности доступа к данным:

  • Только система (контролируется vns_policy.xml )
  • Доступно для приложения с разрешения (через автосервис)
  • Доступен без разрешения (через автосервис)

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

Проверка

AOSP включает следующие ресурсы для тестирования для использования в разработке:

  • hardware/libhardware/tests/vehicle/vehicle-hal-tool.c
    Собственный инструмент командной строки для загрузки HAL в автомобиль и выполнения простых операций. Полезно для настройки и запуска системы на ранних этапах разработки.
  • packages/services/Car/tests/carservice_test/
    Содержит тесты автосервиса с имитированными свойствами HAL автомобиля. Для каждого свойства в тесте реализовано ожидаемое поведение. Это может быть хорошей отправной точкой для понимания ожидаемого поведения.
  • hardware/libhardware/modules/vehicle/
    Базовая эталонная реализация.