Многие автомобильные подсистемы взаимодействуют друг с другом и с бортовой информационно-развлекательной системой (IVI) через различные топологии шины. Точный тип шины и протоколы сильно различаются у разных производителей (и даже у разных моделей автомобилей одной марки); примеры включают шину локальной сети контроллеров (CAN), шину локальной сети межсоединений (LIN), транспорт медиа-ориентированных систем (MOST), а также автомобильные сети Ethernet и TCP/IP, такие как BroadR-Reach.
Уровень аппаратной абстракции (HAL) Android Automotive обеспечивает согласованный интерфейс с платформой Android независимо от физического транспортного уровня. Этот транспортный HAL представляет собой интерфейс для разработки реализаций Android Automotive.
Системные интеграторы могут внедрить модуль HAL для транспортных средств, соединив интерфейсы HAL платформы для конкретных функций (например, HVAC) с сетевыми интерфейсами для конкретных технологий (например, шина CAN). Типичные реализации могут включать в себя выделенный блок микроконтроллера (MCU), работающий под управлением проприетарной операционной системы реального времени (RTOS) для доступа к шине CAN или аналогичной, который может быть подключен через последовательный канал к ЦП, работающему под управлением Android Automotive. Вместо выделенного MCU также может быть возможно реализовать доступ к шине в виде виртуализированного ЦП. Каждый партнер должен выбрать архитектуру, подходящую для аппаратного обеспечения, если реализация соответствует требованиям к интерфейсу HAL транспортного средства.
Архитектура
HAL транспортного средства — это определение интерфейса между автомобилем и сетевой службой транспортного средства:
- Автомобильный API . Содержит API, включая
CarSensorManager
. Дополнительные сведения о поддерживаемых API см. в разделе/platform/packages/services/Car/car-lib
. - АвтоСервис . Находится по адресу
/platform/packages/services/Car/
. - ХАЛ транспортного средства . Интерфейс, который определяет свойства автомобиля, которые OEM-производители могут реализовать. Содержит метаданные свойства (например, является ли свойство транспортного средства типом int и какие режимы изменения разрешены). Находится по адресу
hardware/libhardware/include/hardware/vehicle.h
. Для базовой эталонной реализации обратитесь кhardware/libhardware/modules/vehicle/
.
Дополнительные сведения см. в разделе Свойства транспортного средства .
Безопасность
Транспортное средство HAL поддерживает следующие уровни безопасности при доступе к данным:
- Доступно для приложения с разрешения (через автосервис).
- Доступен без разрешения (через автосервис).
Прямой доступ к свойствам автомобиля разрешен только для выбранных компонентов системы с сетью автомобиля с защитой доступа selinux. Большинство приложений проходят дополнительную охрану автомобильным сервисом (например, только системные приложения могут управлять HVAC, поскольку для этого требуется системное разрешение, предоставляемое только системным приложениям).