Google is committed to advancing racial equity for Black communities. See how.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Automobile

Icône de véhicule Android HAL

De nombreux sous-systèmes automobiles 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 le développement d'implémentations Android Automotive.

Les intégrateurs de 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 telles que CarHvacManager et CarSensorManager. Pour plus de détails sur les API prises en charge, reportez-vous à /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 trois niveaux de sécurité pour accéder aux données:

  • Système uniquement (contrôlé par vns_policy.xml )
  • Accessible à l'application avec permission (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, le service réseau du véhicule agissant en tant que gardien. 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 le CVC car il nécessite une autorisation système accordée uniquement aux applications système).

Validation

AOSP inclut les ressources de test suivantes à utiliser dans le développement:

  • hardware/libhardware/tests/vehicle/vehicle-hal-tool.c
    Outil natif en ligne de commande pour charger le véhicule HAL et effectuer des opérations simples. Utile pour mettre le système en marche dès les premiers stades de développement.
  • packages/services/Car/tests/carservice_test/
    Contient des tests de service de voiture avec des propriétés HAL de véhicule simulées. Pour chaque propriété, le comportement attendu est implémenté dans le test. Cela peut être un bon point de départ pour comprendre le comportement attendu.
  • hardware/libhardware/modules/vehicle/
    Une implémentation de référence de base.