O Google está comprometido em promover a equidade racial para as comunidades negras. Veja como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Automotivo

Ícone Android HAL do veículo

Muitos subsistemas de automóveis interconectam-se e o sistema de informação e entretenimento no veículo (IVI) por meio de várias topologias de barramento. O tipo e os protocolos exatos de barramento variam muito entre os fabricantes (e mesmo entre diferentes modelos de veículos da mesma marca); exemplos incluem o barramento CAN (Controller Area Network), o barramento de rede local de interconexão (LIN), o transporte de sistemas orientados a mídia (MOST), bem como redes Ethernet e TCP / IP de nível automotivo, 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ísico. Este veículo HAL é a interface para o desenvolvimento de implementações do Android Automotive.

Os integradores de sistemas podem implementar um módulo HAL do veículo conectando interfaces HAL da plataforma específica da função (por exemplo, HVAC) com interfaces de rede específicas da tecnologia (por exemplo, barramento CAN). As 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 um link serial à CPU executando 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 para o hardware, desde que a implementação atenda aos requisitos de interface para o veículo HAL.

Arquitetura

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

Arquitetura HAL do veículo Android

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

  • API do carro . Contém as APIs, como CarHvacManager e CarSensorManager. Para detalhes sobre APIs suportadas, 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 da propriedade (por exemplo, se a propriedade do veículo é int e quais modos de alteração são permitidos). Localizado em hardware/libhardware/include/hardware/vehicle.h . Para uma implementação básica de referência, consulte hardware/libhardware/modules/vehicle/ .

Para mais detalhes, consulte Propriedades do veículo .

Segurança

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

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

O acesso direto às propriedades do veículo é permitido apenas aos componentes selecionados do sistema, com o serviço de rede do veículo atuando como o gatekeeper. A maioria dos aplicativos passa por manutenção adicional por serviço de carro (por exemplo, apenas aplicativos do sistema podem controlar o HVAC, pois requer permissão do sistema concedida apenas aos 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 o HAL do veículo e executar operações simples. Útil para colocar o sistema em funcionamento nos estágios iniciais de desenvolvimento.
  • packages/services/Car/tests/carservice_test/
    Contém testes de serviço de carro com propriedades HAL de veículo zombadas. 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.