Automobile

Icône de véhicule Android HAL

De nombreux sous-systèmes de voiture sont interconnectés entre eux et avec le système d'infodivertissement embarqué (IVI) via diverses topologies de bus. Le type et les protocoles de bus exacts varient considérablement entre les fabricants (et même entre les différents modèles de véhicules de la même marque); les exemples incluent le bus CAN (Controller Area Network), le bus LIN (Local Interconnect Network), le transport de systèmes orientés média (MOST), ainsi que les réseaux Ethernet et TCP / IP de qualité automobile tels que BroadR-Reach.

La couche d'abstraction matérielle (HAL) d'Android Automotive fournit une interface cohérente avec le framework Android, quelle que soit la couche de transport physique. Ce véhicule HAL est l'interface pour développer des implémentations Android Automotive.

Les intégrateurs système peuvent implémenter un module HAL de véhicule en connectant des interfaces HAL de plate-forme spécifiques à une fonction (par exemple HVAC) avec des interfaces réseau spécifiques à la technologie (par exemple bus CAN). Les implémentations typiques peuvent inclure une unité de microcontrôleur (MCU) dédiée exécutant un système d'exploitation en temps réel (RTOS) propriétaire pour l'accès au bus CAN ou similaire, qui peut être connectée via une liaison série au processeur exécutant Android Automotive. Au lieu d'un MCU dédié, il peut également être possible d'implémenter l'accès au bus en tant que CPU virtualisée. Il appartient à chaque partenaire de choisir l'architecture adaptée au matériel tant que l'implémentation répond aux exigences d'interface pour le véhicule HAL.

Architecture

Le véhicule HAL est la définition de l'interface entre la voiture et le service réseau du véhicule:

Architecture HAL du véhicule Android

Graphique 1 . Architecture automobile HAL et Android du véhicule

  • API de voiture . Contient les API, y compris CarSensorManager . Pour plus de détails sur les API prises en charge, consultez /platform/packages/services/Car/car-lib .
  • CarService . Situé à /platform/packages/services/Car/ .
  • Véhicule HAL . Interface qui définit les propriétés du véhicule que les OEM peuvent implémenter. Contient des métadonnées de propriété (par exemple, si la propriété du véhicule est un entier et quels modes de modification sont autorisés). Situé dans hardware/libhardware/include/hardware/vehicle.h . Pour une implémentation de référence de base, reportez-vous à hardware/libhardware/modules/vehicle/ .

Pour plus de détails, voir Propriétés du véhicule .

Sécurité

Le véhicule HAL prend en charge ces niveaux de sécurité lors de l'accès aux données:

  • Accessible à l'application avec autorisation (via le service de voiture).
  • Accessible sans autorisation (via le service de voiture).

L'accès direct aux propriétés du véhicule n'est autorisé qu'à certains composants du système avec un réseau de véhicule avec protection d'accès selinux. La plupart des applications passent par un service de contrôle d'accès supplémentaire par voiture (par exemple, seules les applications système peuvent contrôler HVAC car il nécessite une autorisation système accordée uniquement aux applications système).