Bus CAN
Bus CAN
Bus CAN
INTRODUCTION
1.1. Historique
Depuis les années 1960, la longueur de câble utilisée dans une automobile ne cesse de croître pour dépasser 2 km à la
fin des années 1990 et le nombre des connexions atteint 1800. La fiabilité et la sécurité sont menacées. Les normes en
matière de pollution et de consommation d’énergie, de sécurité (ABS, ESP, AIR-BAG …) et la demande de confort
(mémorisation des réglages de conduite, climatisation régulée par passager, système de navigation…) obligent les
constructeurs à multiplier les capteurs et actionneurs intelligents dans leur véhicules accélérant ce processus de
multiplication des câbles et connexions.
La société BOSCH développe dès le début des années 1980 une solution de multiplexage des informations circulant à
bord de la voiture. Le bus CAN (Control Area Network) est alors développé et est normalisé dès 1983. En 1985, Mercedes
commercialise la première voiture (classe S) équipée d'un bus CAN et de cinq unités de calcul. Aujourd'hui, tous les
véhicules neufs sont totalement multiplexés. Leurs réseaux permettent de relier plus d'une trentaine de calculateurs.
le CAN Highspeed ou CAN-HS. Ce bus présente présente un débit max de 1 Mbits/s et peut raccorder jusqu’à 30
nœuds. Dans l'automobile, il est utilisé pour les équipements de sécurité (freinage, moteur … ; Protocole CAN et
couches OSI
La structure du protocole du bus CAN possède implicitement les principales propriétés suivantes : hiérarchisation des
messages ; garantie des temps de latence ; souplesse de configuration ; réception de multiples sources avec
synchronisation temporelle ; fonctionnement multi maître ; détections et signalisations d’erreurs ; retransmission
automatique des messages altérés dès que le bus est de nouveau au repos. ; distinction d’erreurs (temporaire ou non-
fonctionnalité permanente au niveau d’un nœud) ; déconnexion automatique des nœuds défectueux.
Le protocole CAN ne couvre seulement que deux des sept couches du modèle d'interconnexion des systèmes ouverts
OSI
On retrouve ainsi dans le protocole CAN, la couche liaison de données (couche 2) et la couche physique (couche 1).
RESEAU
LIAISON
2
3. SUPPORT DE TRANSMISSION
La transmission des données est effectuée sur une paire filaire différentielle torsadée. La ligne est donc
constituée de deux fils : CAN L (CAN Low) et CAN H (CAN High). Le Signal CAN transmis est donc obtenu par la
différence de tension entre les deux lignes. La ligne du bus doit se terminer par des résistances de terminaison.
Port E/S et
Microcontrôleur Microcontrôleur et contrôleur CAN
contrôleur CAN intégré ou
intégré SLIO (Serial Linked
Input Output)
Un nœud du bus CAN requiert pour son
Contrôleur CAN
fonctionnement au sein du réseau, un
Tx Rx Ref Tx Rx Ref Tx Rx Ref
microcontrôleur, un gestionnaire de
protocole CAN (ou contrôleur CAN) et
une interface de ligne CAN (ou Emetteur TxD RxD Ref TxD RxD Ref TxD RxD Ref
/ Récepteur CAN) Emetteur/récepteur Emetteur/récepteur Emetteur/récepteur
CAN CAN CAN
CAN L CAN H CAN L CAN H
CAN H
3
Les nœuds sont câblés sur le bus de telle manière qu'en cas d'émission simultanée de deux nœuds, le NL0 s'impose par
rapport au NL1 : Le NL0 est donc appelé état dominant et le NL1, état récessif.
Tension sur la
paire filaire
en V
La transmission différentielle du signal sur le bus CAN assure l’immunité électromagnétique car les deux lignes du
bus sont affectées de la même manière par un signal perturbateur.
La longueur du bus et le débit maximum sont liés par la courbe suivante :
Débit en kbits/s
Débit en kbits/s
1000 Débit Longueur Durée d'un bit
1 Mbits/s 30 m 1 µs
100 800 kbits/s 50 m 1,25 µs
500 kbits/s 100 m 2 µs
10 250 kbits/s 250 m 4 µs
125 kbits/s 500 m 8 µs
1
Longueur
62,5 kbits/s 1000 m 16 µs
10 100 1000 Longueur
10000 en m
20 kbits/s 2500 m 50 µs
en m
10 kbits/s 5000 m 100 µs
4. CODAGE DE L'INFORMATION ET
STUFFING
Les bits transitant sur le bus sont codés avec la méthode NRZ (Non Return to Zero). Pendant la durée totale du
bit, le niveau de tension de la ligne est maintenu, c’est à dire sa valeur reste constante qu’elle soit dominante
ou récessive.
Une des caractéristiques du codage NRZ est que le niveau du bit est maintenu pendant toute sa durée. Cela pose des
problèmes de fiabilité si un grand nombre de bits identiques se succèdent.
La technique du Bit Stuffing impose au transmetteur d’ajouter automatiquement un bit de valeur opposée lorsqu’il
détecte 5 bits consécutifs identiques dans les valeurs à transmettre.
4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1 2 3 4 5 6 7 S 8 9 10 11 12 13 14 15 16 17 18 19 S 20 21 22 23 24
5
On trouve ensuite une 8ème zone dite espace intertrame (interframe) qui appartient à la trame.
Trame de données
Dès que le bus est libre (bus idle), n’importe quel noeud relié au réseau peut émettre un nouveau message.
Le bit SOF (début de trame de données) est dominant. Il signale à toutes les stations le début d'un échange. Cet
échange ne peut démarrer que si le bus était précédemment au repos.
SOF
6.2. Champ d'arbitrage Champ d'arbitrage Champ de commande
Le champ d'arbitrage est constitué des bits de
l'identificateur ainsi que du bit RTR (Remote Transmission
Request).
Identificateur (11 bits)
RTR
La longueur de l'identificateur est de 11 bits. Les bits sont transmis dans l'ordre ID10 à ID0 (du bit de poids fort au bit
de poids faible). Les 7 premiers bits de poids fort (ID10 à ID4) ne doivent pas être tous récessifs. L'identificateur a la
forme suivante : ID = (ID10 ID9 ID8 ID7 ID6 ID5 ID4 X X X X). Les 4 derniers bits ne sont pas historiquement utilisés. Le
nombre maximal d'identificateurs est donc de 2032.
Pour une trame de données, le bit RTR doit être dominant.
6
6.3. Champ de commande
Le champ de commande
est constitué de 6 bits.
Les 4 derniers bits du champ de commande sont les bits DLC (Data
Length Code) indiquent le nombre d'octets qui seront contenus
dans le champ de données.
7
6.4. Champ de données
Le champ de données contient les données utiles transmises. Il peut être composé de 0 à 8 octets. Dans chaque octet, le
MSB est transmis en premier.
0 à 8 octets
8
7.2. Champ d'arbitrage
SOF
Champ d'arbitrage Champ de commande
Contrairement à la trame de données le bit RTR du champ
d'arbitrage d'une trame de requête est un bit récessif.
C'est donc ce bit qui différencie une trame de données
d'un trame de requête. Identificateur (11 bits)
RTR