Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Settore automobilistico

Icona di HAL del veicolo Android

Molti sottosistemi automobilistici si interconnettono tra loro e con il sistema di infotainment (IVI) a bordo del veicolo tramite varie topologie di bus. Il tipo esatto di bus e i protocolli variano ampiamente tra i produttori (e anche tra diversi modelli di veicoli della stessa marca); gli esempi includono bus Controller Area Network (CAN), bus Local Interconnect Network (LIN), Media Oriented Systems Transport (MOST), nonché reti Ethernet e TCP / IP di livello automobilistico come BroadR-Reach.

Il livello di astrazione hardware Android Automotive (HAL) fornisce un'interfaccia coerente al framework Android indipendentemente dal livello di trasporto fisico. Questo veicolo HAL è l'interfaccia per lo sviluppo di implementazioni Android Automotive.

Gli integratori di sistema possono implementare un modulo HAL del veicolo collegando interfacce HAL della piattaforma specifiche per funzione (ad es. HVAC) con interfacce di rete specifiche della tecnologia (ad es. Bus CAN). Le implementazioni tipiche possono includere un'unità microcontrollore (MCU) dedicata che esegue un sistema operativo in tempo reale (RTOS) proprietario per l'accesso al bus CAN o simili, che può essere collegata tramite un collegamento seriale alla CPU con Android Automotive. Invece di un MCU dedicato, potrebbe anche essere possibile implementare l'accesso al bus come una CPU virtualizzata. Spetta a ciascun partner scegliere l'architettura adatta all'hardware purché l'implementazione soddisfi i requisiti di interfaccia per l'HAL del veicolo.

Architettura

L'HAL del veicolo è la definizione dell'interfaccia tra l'auto e il servizio di rete del veicolo:

Architettura HAL del veicolo Android

Figura 1 . Architettura automobilistica HAL del veicolo e Android

  • API per auto . Contiene le API come CarHvacManager e CarSensorManager. Per i dettagli sulle API supportate, fare riferimento a /platform/packages/services/Car/car-lib .
  • CarService . Si trova in /platform/packages/services/Car/ .
  • Veicolo HAL . Interfaccia che definisce le proprietà del veicolo che gli OEM possono implementare. Contiene i metadati della proprietà (ad esempio, se la proprietà del veicolo è un int e quali modalità di modifica sono consentite). Situato in hardware/libhardware/include/hardware/vehicle.h . Per un'implementazione di riferimento di base, fare riferimento a hardware/libhardware/modules/vehicle/ .

Per ulteriori dettagli, vedere Proprietà del veicolo .

Sicurezza

L'HAL del veicolo supporta tre livelli di sicurezza per l'accesso ai dati:

  • Solo sistema (controllato da vns_policy.xml )
  • Accessibile all'app con autorizzazione (tramite servizio auto)
  • Accessibile senza permesso (tramite servizio auto)

L'accesso diretto alle proprietà del veicolo è consentito solo a componenti di sistema selezionati con il servizio di rete del veicolo che funge da gatekeeper. La maggior parte delle applicazioni passa attraverso un gatekeeping aggiuntivo da parte del servizio auto (ad esempio, solo le applicazioni di sistema possono controllare l'HVAC poiché richiede l'autorizzazione del sistema concessa solo alle app di sistema).

Validazione

AOSP include le seguenti risorse di test da utilizzare nello sviluppo:

  • hardware/libhardware/tests/vehicle/vehicle-hal-tool.c
    Strumento nativo da riga di comando per caricare l'HAL del veicolo ed eseguire semplici operazioni. Utile per far funzionare il sistema nelle prime fasi di sviluppo.
  • packages/services/Car/tests/carservice_test/
    Contiene test di servizio auto con proprietà HAL di veicoli simulati. Per ogni proprietà, il comportamento previsto viene implementato nel test. Questo può essere un buon punto di partenza per comprendere il comportamento previsto.
  • hardware/libhardware/modules/vehicle/
    Un'implementazione di riferimento di base.