Introduction au Bus CAN en Automobile
Introduction au Bus CAN en Automobile
MECANIQUE - S5
Introduction
Le bus CAN (Control 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. Le CAN a été lancé en 1990 pour répondre aux besoins de
l'industrie automobile devant la montée de l'électronique embarquée. En 2005 une voiture
moyenne comporte une centaine de microcontrôleurs. Pour éviter les 2 kms de câblage d'une
grosse voiture actuelle, soit 100 kg de cuivre, il fallait définir un bus série simplifiant
énormément l'intégration des fils dans le châssis.
Le CAN est un bus de communication série. Son architecture générale ainsi que les
couches liaison de données et physiques sont définies par les normes ISO 11519-1 pour les
débits jusqu'à 125 kbit/s (CAN basse vitesse) et ISO 11898 pour les débits jusqu'à 1Mbit/s
(CAN haute vitesse). Elles définissent la transmission d'informations entre les différents types
de modules électroniques embarqués à bord des véhicules routiers : commandes de phares,
capteurs, calculateurs d'injection, tableau de bord... Elaboré par la société Robert BOSH
GmbH, puis normalisé.
L'architecture CAN est conforme au modèle de référence pour l'interconnexion des
systèmes ouverts (OSI) de l'ISO en ce qui concerne la décomposition en couches.
Le bus/réseau de terrain CAN est un réseau de terrain aussi car il doit fonctionner dans
un environnement limité géographiquement et sévère comme une usine, un atelier, une
voiture…
En pratique, il y a trois bus CAN différents dans une voiture, à des débits différents :
un bus très rapide pour gérer la sécurité (freinage, ABS, détections chocs, airbags...) ;
un bus à vitesse moyenne pour gérer le moteur (commandes et capteurs) ;
un bus lent pour gérer tous les accessoires (lampes, moteurs d’asservissements,
boutons...).
Il existe sous deux versions :
CAN2.0A : trame standard avec un identificateur de 11 bits (CAN standard) ;
CAN2.0B : trame plus longue avec un identificateur sur 29 bits (CAN étendu).
MAGHRAOUI WIDED
1
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
I. Architecture
1. Réseau multiplexé
Un réseau multiplexé peut être organisé avec des dispositifs maîtres ou esclaves.
En automobile le multiplexage consiste à faire circuler dans peu de fils, deux, voire
un, une multitude d’informations entre les différents calculateurs d’un véhicule.
On appelle “ bus ” ou “réseau de communication ” le circuit électrique qui véhicule les
informations“ multiplexées ” et permet le “ dialogue ” entre les calculateurs.
On prend l’exemple de 3 calculateurs qui ont besoin d'échanger des données :
MAGHRAOUI WIDED
2
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
Figure 1-2 : Solution classique n fils par information Figure 1-3 : Solution multiplexée 1
bus (2 fils) pour toutes
MAGHRAOUI WIDED
3
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
MAGHRAOUI WIDED
4
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
un bus. Pour faciliter les échanges et ne pas surcharger le bus, un véhicule multiplexé peut
disposer de plusieurs bus en fonction des équipements.
2. Support de transmission
La transmission des données est effectuée sur une paire filaire différentielle.
MAGHRAOUI WIDED
5
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
Les stations sont câblées sur le bus par le principe du "OU câblé", en cas de conflit
c'est-à-dire émission simultanée, la valeur 0 écrase la valeur 1. On appelle donc l'état dominant
l'état logique 0, et l'état récessif l'état logique 1.
Le tableau ci-dessous résume les principales différences entre les deux types de bus
notamment sur les débits supportés.
Tableau 1-1: differences entre CAN low speed et CAN high speed
Débit Longueur
1 Mbit/s 40 m
20 Kbit/s 1000 m
MAGHRAOUI WIDED
6
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
I. Le protocole CAN
1. Présentation
La sous-couche MAC représente le noyau du protocole CAN. Elle a pour fonction de présenter
les messages reçus en provenance de la sous-couche LLC et d’accepter les messages devant
être transmis vers la sous-couche LLC. Elle est responsable de :
- la mise en trame du message.
- l’arbitrage.
- l’acquittement.
- la détection des erreurs.
- la signalisation des erreurs.
Elle est supervisée par une entité de supervision qui est un mécanisme apte à faire la
distinction entre les dérangements de courtes durées et des pannes permanentes.
MAGHRAOUI WIDED
8
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
On appelle "état dominant" l'état logique 0, et "état récessif" l'état logique 1. Elle est
constituée d’un seul bit dominant (0 logique), signalant à toutes les stations le début d’un
échange. Il ne peut démarrer que si le bus était au repos. Toutes les stations doivent se
synchroniser sur le front avant la transition du bit de départ.
b. Identificateur
La longueur de l'identificateur est de 11 bits, les bits sont transmis dans l'ordre de
ID_10 à ID_0 (le moins significatif est ID_0). Par ailleurs les 7 bits les plus significatifs (de
ID_10 à ID_4) ne doivent pas être tous récessifs.
ID = 1111111XXXX (X valeur indéterminée), c'est-à-dire un nombre maximal
d'identificateurs de : (211 - 24) = 2048 - 16 = 2032 combinaisons
MAGHRAOUI WIDED
10
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
Exercice n°1
Déterminer en théorie le nombre de messages qu'il est possible de définir pour une
trame standard.
En tenant compte de ces particularités, déterminer réellement le nombre de messages
qu'il est possible de définir pour une trame standard.
c. Le bit RTR
Le bit RTR est récessif lorsque il s’agit d’une trame de requête et dominant dans le cas d’une
trame de donnée.
d. Champ d’arbitrage
C’est au niveau des identificateurs suivi du bit RTR (Remote Transmission Request) que se
fait l’arbitrage bit à bit des données. Lorsque plusieurs trames sont envoyées, le niveau du bit
reçu est comparé au niveau du bit qu’il est censé transmettre lui-même. Si ces niveaux sont
identiques, la station continue d’émettre. Dans le cas contraire, le niveau dominant prend le
dessus, l’autre station perd l’arbitrage et cesse d’envoyer.
Les stations sont câblées sur le bus par le principe du "ET câblé". En cas de conflit c'est-à-dire
émission simultanée, la valeur 0 écrase la valeur 1.
Dans l'exemple ci-dessus, trois stations émettent simultanément :
la station 1 perd la compétition puis la station 3 ;
seule la station 2 pourra transmettre.
MAGHRAOUI WIDED
11
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
Tableau 1-3 : Codage des bits DLC suivant la taille des données en octets
MAGHRAOUI WIDED
12
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
Exercice n°2 : Compléter la trame (jusqu'au champ CRC exclu) dans le cas où un nœud émet les
données,'B' (0x42) suivi de la valeur 6.
f. Champ de données
Il peut être composé de 0 à 8 octets (cela fait neuf valeurs donc 4 bits du DLC pour
définir le nombre de données contenues) transmises avec le MSB en tête. C’est l’endroit où se
trouvent les données utiles transmises.
Fig
ure 1-11 : Champ de données
g. Le champ de CRC
MAGHRAOUI WIDED
13
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
Une trame de bits est considérée comme un polynôme dont les coefficients des termes
sont les valeurs des bits de la trame. Une trame de n bits est considérée comme une suite de n
termes (de X n-1 à X 0).
Un tel polynôme est dit de degré n-1. Le bit de poids fort est le coefficient du terme
Xn-1.
L’émetteur et le récepteur doivent se mettre d’accord à l’avance sur un polynôme
générateur G(x) de degrés k. Lorsqu’un émetteur veut émettre un message M(x) :
Il concatène k bits à M(x) (k étant le degré de G(x)). Ces k bits sont l’information
redondante. On appellera P(x) le message transmis composé de M(x) suivi des k bits.
si P(x) est transmis et qu’aucune erreur ne se produit lors de la transmission, le récepteur
qui divisera P(x) par G(x) obtiendra un reste de 0, signe d’une transmission correcte. Si
le reste est non nul, il y a une erreur.
Exemple : Soit un polynôme générateur de degré 4 (k=4),
G(x) = 10011 = X 4 + X 1 + X 0 = X 4 + X + 1
Et un message M(x) = 1101011011
On ajoute k bits à 0 à la suite des bits de poids faible de M(x) ce qui nous donne T(x).
T(x) = 11010110110000
La division polynomiale de ce nouveau polynôme par G(x) nous donne un reste qui sont les
valeurs que l’on recherche pour les k bits (l’information redondante).
MAGHRAOUI WIDED
14
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
Le récepteur contrôle la trame P(x) reçue en divisant P(x) reçue par G(x). Et si le reste = 0
alors il n’y a pas eu d’erreur
h. Le champ ACK
Il est composé de 2 bits : bit ACK slot, bit ACK delimiter.
ACK slot : bit dominant lorsque la station a validé la séquence CRC
ACK delimiter : bit récessif
Un nœud en train de transmettre un message envoie un bit récessif pour l’ACK Slot. Un
nœud ayant reçu correctement un message informe le transmetteur en envoyant un bit dominant
pendant l’ACK Slot : il acquitte alors le message.
La trame de donnée se termine par un drapeau formé par une séquence de 7 bits récessifs,
ce qui vient en totale contradiction avec la norme de bit stuffing. Ce champ a une structure
fixe et les logiques de codage (à l'émission) et de décodage (aux réceptions) de bit stuffing sont
désactivées pendant la séquence du champ de fin de trame.
Exercice n°3 : Déterminer, pour les formats standard et étendu, les longueurs minimum et
maximum en bits d'une trame de données circulant sur le bus CAN en ne tenant pas compte
du bit stuffing.
4. Bit-Stuffing
Afin de sécuriser la transmission des messages on utilise la méthode dite de Bit-Stuffing (bit de
transparence). Cette méthode consiste, dès que l’on a émis 5 bits de même polarité sur le bus, à
insérer un bit de polarité contraire pour casser des chaînes trop importantes de bits identiques.
On obtient ainsi dans le message un plus grand nombre de transition ce qui permet de faciliter
la synchronisation en réception par les nœuds. Cette technique est uniquement active sur les
champs de SOF, d’arbitrage, de contrôle, de CRC (délimiteur exclu). Pour un fonctionnement
correct de tout le réseau, cette technique doit être implémentée aussi bien à la réception qu’à
l’émission.
MAGHRAOUI WIDED
16
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
MAGHRAOUI WIDED
17
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
6. Trame de surcharge
La trame de surcharge indique aux autres nœuds qu’une station est surchargée. Elle est
formée de deux champs :
Cette trame indique qu'une station est surchargée pendant un certain laps de temps.
Une trame de surcharge est émise sur le bus si :
un bit dominant est détecté durant la période d’inter trame.
un récepteur n’est pas prêt pour la réception d’une nouvelle trame de donnée ou de
requête (retard sur le traitement des informations circulant sur le bus).
Afin de ne pas bloquer le bus indéfiniment seules deux trame de surcharge
consécutives peuvent être générées pour retarder les trames de données suivantes.
Les trames de données et les trames de requêtes sont séparées des trames précédentes
par un champ de 3 bits récessifs appelé l’espace inter trame. Pendant ce temps aucune station
n’est autorisée à démarrer la transmission d’une trame de requête ou de données.
Au contraire, les trames de surcharge et les trames d’erreur ne sont pas précédées par un inter
trame et les multiples trames de surcharge ne sont pas séparées par un inter trame.
8. La trame d’erreur
Si la station détecte une erreur, elle renvoie une trame d'erreur constituée de
champ des drapeaux de 6 bits (Error Flag) suivi de
8 bits délimiteurs à l'état récessif (Error Delimiter).
Lors d’une erreur active le drapeau d’erreur est constitué de 6 bits dominants consécutifs.
MAGHRAOUI WIDED
18
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
Lors d’une erreur passive le drapeau d’erreur est constitué de 6 bits récessifs successifs.
Ils n’obéissent pas à la loi du bit stuffing.
Plusieurs stations peuvent détecter l'erreur et envoyer elles aussi une trame d'erreur : il
y a aura superposition de bits d'erreur (un maximum de 6 bits supplémentaires soit 12 bits max
pour l'Error Flag afin de ne pas bloquer indéfiniment le bus).
9. Le confinement d'erreurs
MAGHRAOUI WIDED
19
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
Exercice n°5: Lors d'une erreur, le nœud essaiera à nouveau de transmettre le message
(retransmission automatique en cas d'erreur). Déterminer le délai en bits qu'il faudra attendre au
mieux et au plus (si aucun message de priorité supérieure ne prend la main sur le réseau).
Les bits formant l’Error Flag sont dominants et écrasent donc les données contenues
dans la Data Frame. Ils provoquent la retransmission de cette dernière. Dans le cas d’erreurs
successives, il y aura superposition d’Error Flags.
Le CAN intègre cinq mécanismes d’erreurs, trois au niveau du message et deux au niveau du
bit :
BIT ERROR : cette erreur est détectée lorsque la valeur du bit sur le bus est différente de la
valeur du bit transmis ;
STUFF ERROR : elle doit être détectée au Bit Time du sixième même état logique d’un
champ soumis au codage par « bit stuffing »
CRC ERROR : une séquence CRC résulte d’un calcul effectué par l’émetteur. Le récepteur
calcule le champ CRC de la même manière que l’émetteur. Une erreur est détectée si le résultat
des deux calculs ne sont pas identiques ;
FORM ERROR : cette erreur est générée si un champ donné contient au moins un bit illégal;
ACKNOWLEDGEMENT ERROR : elle doit être détectée par l’émetteur lorsqu’aucun
récepteur ne génère un bit « dominant » pendant ACK SLOT.
12. Codage
MAGHRAOUI WIDED
21
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
La transmission des bits sur le bus CAN se fait en mode Bande de Base suivant un
codage NRZ (Non Return to Zero). Les transitions des bits s’effectuent sur chaque front
montant de l’horloge.
MAGHRAOUI WIDED
22
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
Time Quantum :
Le « Time Quantum » est l'unité de temps construite à partir de la période de
l'oscillateur interne de chaque nœud. La fréquence du bus étant au maximum de 1 MHz et
celles des oscillateurs de plusieurs MHz, le « Time Quantum » vaut généralement plusieurs
périodes d'horloge (entre 1 et 32 fois).
Synchronisation 1
Propagation de 1 à 8
Ainsi la durée d'un bit peut varier de 4 à 25 « Time Quantum ».Plus la fréquence de
l'horloge interne du nœud est importante, plus la durée du « Time Quantum » pourra être faible,
plus les 3 derniers segments compteront de « Time Quantum » et meilleure sera la précision de
la synchronisation.
MAGHRAOUI WIDED
23
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
Point d’échantillonnage :
13. Synchronisation
Ceci comprend les tâches telles que les mécanismes de synchronisation, le traitement des
erreurs, l'arbitrage, un circuit capable de « doper » les signaux est généralement nécessaire
(driver de ligne) constituant ainsi l’interface entre le gestionnaire de protocole CAN et le
média de transmission. Voici les différents noms utilisés pour ce type de composants :
CAN tranceiver
Drivers de ligne
Commande d’interface de Bus CAN (Can Controller Interface)
On obtient donc une architecture à deux ou trois modules pour implémenter le bus Can
dans un système:
1 microprocesseur + Contrôleur CAN + Interface de ligne (transceiver)
1microprocesseur CAN + Interface de ligne
Serial Link I/O (SLIO) : migration de systèmes existants à des connexions de bus
CAN.
.
MAGHRAOUI WIDED
25
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
MAGHRAOUI WIDED
26
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
Exercice n°6 :
1. Calculer le rendement du protocole CAN lorsqu'il émet une trame de données complète.
2. Avec des trames de 60 bits en moyenne, déduire le nombre maximum de trames pouvant
circuler sur le bus en une seconde et ce pour le débit maximum (1 Mbits/s).
3. Dans le cas où il y a 4 nœuds identiques qui émettent et reçoivent 16 trames (de 60 bits en
moyenne) par secondes, déterminer le taux de charge maximum pour ce bus.
MAGHRAOUI WIDED
27
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5
Références bibliographiques
Bibliographie
[1] Dominique PARET. Le bus CAN Controller Area Network. 1997
[2] BOSCH. Norme CAN.
[3] Pascal BORGHESI, Cyril RAPIN. Projet de fin d'étude ENSERB. 1998
Netographie
MAGHRAOUI WIDED
28
[CORRECTION DES EXERCICES] G.MECANIQUE - S5
MAGHRAOUI WIDED