LE BUS CAN

Description :

Le bus CAN (Controller Area Network) est né du besoin de trouver une solution de communication série dans les véhicules automobiles, qui ont tendance à intégrer de plus en plus de commandes électroniques. Jusqu'à maintenant, tous les organes de commandes des véhicules échangeaient les données par l'intermédiaire de lignes dédiées. L'augmentation du nombre d'organe embarqué a contraint les équipementiers automobiles a développer une nouvelle architecture à base de bus réseaux. Le GIE Renault-PSA avec les partenaires comme Sagem, Valeo et autres ont développé le bus VAN (Vehicule Area Network), les puces controleurs sont fabriquées par MHS, SGS, TI .... En Allemangne, Bosch a développé, au milieu des années 80, le bus CAN ou "Controller Area Network" qui a fait l'objet d'une normalisation Iso 11898.

Avec le bus CAN, les stations ayant les mêmes droits (organes de commande, capteurs ou actionneurs) sont reliées par un bus série. Le protocole CAN de base leur permet d'échanger 2048 variables. Ce protocole, ainsi que les paramètres électriques de la ligne de transmission, sont fixés par la norme 11898. La transmission physique s'effectue soit une paire torsadée ou par liaison infrarouge, hertzienne ou par fibre optique.

A la différence du faisceau de cables, le réseau détecte et corrige, grâce à son protocole, les erreurs de transmissions induitent par les radiations électromagnétiques. L'organisation en réseau apporte aussi une configurabilité aisée du système et la possibilité d'établir un diagnostic central. Elle permet à chaque station de communiquer avec les autres sans charger le calculateur des organes de commande.

 

Principe de fonctionnement :

Du type multi-maître, orienté messages courts, le bus CAN est bien adapté à la scrutation de variables émises par des stations déportées. La norme Iso 11898 spécifie un débit maximum de 1Mbit/s. La longueur maximum du bus est déterminée par la charge capacitive et le débit. Les configurations recommandées sont les suivantes :
 

Débit 
Longueur 
1 Mbit/s 
40 m 
500 Kbit/s 
100 m 
100 Kbit/s 
500 m 
20 Kbit/s 
1000 m 


Le protocole est basé sur le principe de diffusion générale : lors de transmission, aucune station n'est adressée en particulier, mais le contenu de chaque message est explicité par une identification reçu de façon univoque par tous les abonnés. Grâce à cet identificateur, les stations, qui sont en permanence à l'écoute du réseau, reconnaissent et traitent les messages qui les concernent; elles ignorent simplement les autres.
L'identificateur indique aussi la priorité du message, qui détermine l'assignation du bus lorsque plusieurs stations émettrices sont en concurences. En version de base, c'est un nombre de 11 bits, ce qui permet de définir jusqu'à 2048 messages plus ou moins prioritaires sur le réseau. Chaque message peut contenir jusqu'à 8 octets de données, ce qui correspond par exemple à l'état de 64 capteurs. L'adressage par le contenu assure une grande flexibilité de configuration. Il est possible d'ajouter des stations réceptrice à un reseau CAN sans modifier la configuration des autres stations.
 

Principe de l'arbitrage :

Afin d'être traitées en temps réel, les données doivent être transmises rapidement. Cela suppose non seulement une voie physique de transmission atteingnant jusqu'à 1 Mbit/s ; mais encore exige une assignation rapide du bus dans les cas de conflits, lorsque plusieurs stations souhaitent transmettre simultanement des messages.

L'urgence des informations échangées sur le bus peut être très diverse : une valeur variant rapidement, comme l'état d'un capteur ou l'asservissement d'un moteur, doit être transmis plus souvent avec un retard moindre que d'autres valeurs comme la température du moteur, qui évolue lentement. Sur le réseau CAN, l'identificateur de chaque message, qui est un mot de 11 bits (format standart) ou 29 bits (format etendu), détermine sa priorité. Les priorités sont attribuées lors de l'analyse conceptuelle du réseau, au moyen de valeur binaire, et ne peuvent donner lieu à aucune modification dynamique.

Le procédé d''attribution du bus est basé sur le principe de l'"arbitrage bit à bit", selon lequel les noeuds en compétition, emettant simultanément sur le bus, comparent bit à bit l'identificateur de leur message avec celui des messages concurrents. Les stations de priorité moins élevées perderons la compétition face à celle qui a la priorité la plus élevé.

Les stations sont cablées sur le bus par le principe du "OU cablé", en cas de conflit c'est à dire emission simultanée, la valeur 0 écrase la valeur 1. On appel donc l'"état dominant" l'état logique 0, et l'"état récessif" l'état logique 1. Lors de l'arbitrage bit à bit, dès qu'une station émettrice se trouve en état récessif et détecte un état dominant, elle perd la compétition et arrête d'émettre. Tous les perdants deviennent automatiquement des récepteurs du message, et ne tentent à nouveau d'émettre que lorsque le bus se libère.

 

Formats de trames de messages :

La norme CAN définit deux format de protocole : Standart(Version2.0 A) et Extended (Version2.0 B). La différence résulte seulement dans la longueur de l'identificateur (ID) qui est de 11 bits de base et 18 bits suplémentaires en mode Extended. Cette extension permet l'augmentation du nombre de variables échangées, et le nombre de stations sur le réseau. Le nombre d'octets de données échangées à chaque trame reste inchangé.

Une trame est composée des champs suivants :

Stuff bit : au cours de la construction d'une trame, si 5 bits consécutifs portent la même valeur 0 ou 1, un bit de valeur opposée est ajouté à la suite des 5 bits consécutifs.

Les contrôleurs CAN qui admettent le format étendu peuvent aussi émettre et recevoir des messages au format standart. En revanche, dès que l'on utilise sur le réseau des contrôleurs ne maitrisant que le format standart, les messages étendus seront mal interprétés.
 

Détection des erreurs :

La trame du protocole CAN intègre des mécanismes de détection d'erreurs. De plus, comme tous les noeuds de réseau surveillent simultanément le bus, ils détectent des différences entre bits reçus et bits émis. Dès qu'une erreur est détectée, la transmission en cours est interrompue par l'emission d'un indicateur d'erreur ("error flag"). L'emetteur peut donc recommencer à émettre son message.

Tout ce système de gestion des erreurs est complétement transparent pour le développeur et l'utilisateur. Le système est capable de gérer automatiquement ses conflits et ses erreurs en émettant des trames d'erreurs pour renseigner l'émetteur du message sur le type de faute qu'il a commis. Une station est capable de faire la distinction entre les perturbations temporaires et les défauts permanemts. Les stations en défaut permanemt sont déconnectée automatiquement du réseau.

Ce système de gestion d'erreur fait toute la puissance du réseau CAN, certains constructeurs démontrent que la probabilité d'erreur résiduelle reste inférieur 4,6 10-11.
 
 

Eric DELAUNAY

aaaaaaaaaaaa@ifrance.com
Afin de limiter le spam, merci de remplacer aaaaaaaaaaaa par ericdelaunay

 

Revenir à la page d'accueil

Mentions légales & Copyright : l'ensemble des documents et informations mis à votre disposition sont libres d'utilisation à des fins personnelles mais en aucun cas ils ne peuvent être reproduits sans accord ou être détournés à des fins commerciales. L'utilisation à des fins pédagogiques est permise à la condition expresse de prévenir le webmaster de ce site, d'une part, et d'informer l'existence de ce site de référence, d'autre part.