Google is committed to advancing racial equity for Black communities. See how.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Automotivo

Ícone HAL do veículo Android

Muitos subsistemas do carro se interconectam entre si e com o sistema de infotainment (IVI) do veículo por meio de várias topologias de ônibus. O tipo exato de ônibus e os protocolos variam amplamente entre os fabricantes (e até mesmo entre diferentes modelos de veículos da mesma marca); exemplos incluem barramento de rede de área de controlador (CAN), barramento de rede de interconexão local (LIN), transporte de sistemas orientado a mídia (MOST), bem como redes automotivas Ethernet e TCP / IP, como BroadR-Reach.

A camada de abstração de hardware (HAL) do Android Automotive fornece uma interface consistente para a estrutura do Android, independentemente da camada de transporte física. Este veículo HAL é a interface para o desenvolvimento de implementações Android Automotive.

Os integradores de sistema podem implementar um módulo HAL de veículo conectando interfaces HAL de plataforma de função específica (por exemplo, HVAC) com interfaces de rede específicas de tecnologia (por exemplo, CAN bus). Implementações típicas podem incluir uma unidade de microcontrolador (MCU) dedicada executando um sistema operacional em tempo real (RTOS) para acesso ao barramento CAN ou similar, que pode ser conectado por meio de um link serial à CPU que executa o Android Automotive. Em vez de um MCU dedicado, também pode ser possível implementar o acesso ao barramento como uma CPU virtualizada. Cabe a cada parceiro escolher a arquitetura adequada ao hardware, desde que a implementação atenda aos requisitos de interface do HAL do veículo.

Arquitetura

O veículo HAL é a definição de interface entre o carro e o serviço de rede do veículo:

Arquitetura HAL de veículo Android

Figura 1 . Arquitetura automotiva HAL e Android do veículo

  • API do carro . Contém APIs como CarHvacManager e CarSensorManager. Para obter detalhes sobre APIs com suporte, consulte /platform/packages/services/Car/car-lib .
  • CarService . Localizado em /platform/packages/services/Car/ .
  • Veículo HAL . Interface que define as propriedades do veículo que os OEMs podem implementar. Contém metadados de propriedade (por exemplo, se a propriedade do veículo é um int e quais modos de alteração são permitidos). Localizado em hardware/libhardware/include/hardware/vehicle.h . Para obter uma implementação de referência básica, consulte hardware/libhardware/modules/vehicle/ .

Para obter mais detalhes, consulte Propriedades do veículo .

Segurança

O veículo HAL oferece suporte a três níveis de segurança para acessar dados:

  • Apenas sistema (controlado por vns_policy.xml )
  • Acessível ao aplicativo com permissão (por meio do serviço de carro)
  • Acessível sem permissão (através do serviço automóvel)

O acesso direto às propriedades do veículo é permitido apenas aos componentes do sistema selecionados com o serviço de rede do veículo atuando como o porteiro. A maioria dos aplicativos passa por gatekeeping adicional por serviço de carro (por exemplo, apenas aplicativos do sistema podem controlar HVAC, pois requer permissão do sistema concedida apenas para aplicativos do sistema).

Validação

O AOSP inclui os seguintes recursos de teste para uso em desenvolvimento:

  • hardware/libhardware/tests/vehicle/vehicle-hal-tool.c
    Ferramenta nativa de linha de comando para carregar HAL do veículo e fazer operações simples. Útil para colocar o sistema em funcionamento nas fases iniciais de desenvolvimento.
  • packages/services/Car/tests/carservice_test/
    Contém teste de serviço de carro com propriedades HAL de veículo simuladas. Para cada propriedade, o comportamento esperado é implementado no teste. Esse pode ser um bom ponto de partida para entender o comportamento esperado.
  • hardware/libhardware/modules/vehicle/
    Uma implementação de referência básica.