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 :
|
|
|
|
|
|
|
|
|
|
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 :
- zone d'arbitrage (11 bits)
- bit RTR (Remote Transmission Request) : détermine s'il s'agit d'une trame de données ou d'une d'une trame de demande de message.
- bit IDE qui établi la distinction entre format standart (état dominat) et format étendu (état récessif)
- 1 bit réservé pour une utilisation future
- 4 bit DLC : nombre d'octets contenus dans la zone de données
- zone de données de longueur comprise entre 0 et 8 octets
- zone CRC de 15 bits :(Cyclic Redundancy Code) Ces bit sont recalculés à la réception et comparés aux bits reçus. S'il y a une différence, une erreur CRC est déclarée.
-zone ACK composé d'un bit à l'état recessif ainsi qu'un bit séparateur ACK. Le premier bit doit être forcé à létat dominant par les stations ayant bien reçu cette trame.
- zone EOF de 7 bits : (End Of Frame) permet d'identifier la fin de la trame.
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
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.