Vous êtes sur la page 1sur 59

Le Bus CAN

12/14/2020 BUS CAN 1


Chapitre 2: Le Bus CAN

Plan de cours
Partie I

Introduction au bus de terrain CAN

Partie II

Couches, Codage et Protocol

Partie III

Trames CAN

Partie VI

Gestion des erreurs

12/14/2020 BUSCAN 2
Partie I : Introduction au bus CAN

Présentation de bus CAN

12/14/2020 BUS CAN 3


Introduction
Le bus CAN : Initialement conçu par Bosch et Intel (puis Philips) pour les applications
automobiles, Mercedès Benz a été le premier constructeur automobile à équiper ses véhicules du
CAN. Actuellement, implémenté par de nombreux fournisseurs (Siemens, Motorola, NEC, SGS,
Texas Instrument, Hitachi, etc.), très utilisé par de nombreux constructeurs et en expansion... il
est parmi les leaders sur le marché de l'automatisme.

12/14/2020 BUS CAN 4


Introduction
Depuis les années 1960 la longueur de câble utilisée dans l’automobile ne cesse de croître pour
dépasser 2000 m en 1995. Le nombre des connexions atteint 1800 à cette même date. La
fiabilité et la sécurité sont menacés.

12/14/2020 BUS CAN 5


Introduction (Avant le CAN )

12/14/2020 BUS CAN 6


Introduction (Avec le CAN)

12/14/2020 BUS CAN 7


Introduction : Domain d’application
Domain d’application de bus CAN (médical, produits numériques, systèmes
électrotechnique. . .).

12/14/2020 BUS CAN 8


Introduction : Protocole CAN
Le protocole CAN (Control Area Network) est un protocole de communication série qui
supporte des systèmes temps réel avec un haut niveau de fiabilité.
La structure du protocole du bus CAN possède implicitement les principales propriétés
suivantes :
 souplesse de configuration.
 fonctionnement multi-maître
 détections et signalisations d’erreurs
 retransmission automatique des messages altérés
 déconnexion automatique des nœuds défectueux

12/14/2020 BUS CAN 9


Partie II : Couches et codage

Couches, Codage et Protocol

12/14/2020 BUS CAN 10


Partie II : Modèle OSI

Le bus CAN couvre


la couche 2 (LIAISON) ,
la couche 1 (PHYSIQUE) et
la couche Application du
modèle OSI

12/14/2020 BUS CAN 11


Partie II : Couches

12/14/2020 BUS CAN 12


Partie II : Modèle OSI
 Nombre des couches réduit à 3
 CAN ne concerne que les couches basses
• Couche physique (1)
• Couche liaison de données (2)
LLC (Logic Link Control)
MAC (Medium Access Control)
La couche application est définie par autres protocoles de plus haut
niveau
Définis par l’utilisateur

12/14/2020 BUS CAN 13


Partie II : Modèle OSI(couche liaison)
La sous-couche MAC : représente le noyau du protocole CAN. Elle est

responsable des fonctions suivantes :

la mise en trame du message.

l’arbitrage.

l’acquittement.

la détection des erreurs.

la signalisation des erreurs


.
12/14/2020 BUS CAN 14
Partie II : Modèle OSI(couche liaison)
La sous-couche LLC :LLC s’occupe quant à elle :

du filtrage des messages.

de la notification de surcharge (overload).

de la procédure de recouvrement des erreurs

12/14/2020 BUS CAN 15


Partie II : Modèle OSI
La couche physique (1) : La couche Physique définit le signal transmis et a pour
rôle d’assurer le transfert physique des bits entre les différents nœuds en accord

avec toutes les propriétés (électriques et électroniques) du système. Cette couche

s’occupe :
de gérer la représentation du bit (codage, timing. . .).

de gérer la synchronisation bit.

de définir les niveaux électriques des signaux.

de définir le support de transmission.

12/14/2020 BUS CAN 16


Partie II : Couche physique
La couche physique (1) : Il existe deux normes pour la couche

physique :
 ISO 11898-2 (2003) : CAN « high-speed » (jusqu'à 1Mbits/s),

 ISO 11898-3 (2006)  : CAN « low-speed, fault tolerant » (jusqu'à


125kbits/s)

12/14/2020 BUS CAN 17


Partie II : Couche physique(Topologie)
CAN est un bus de données série bidirectionnel half-duplex dans le
domaine automobile, mais est utilisée en unidirectionnel -simplex- dans
l'aéronautique. Chaque équipement connecté, appelé « nœud », peut
communiquer avec tous les autres

Pour un bus de données CAN « basse vitesse », le nombre de nœuds est


limité à 20. Pour un bus de données CAN « haute vitesse », il est limité à 30.

12/14/2020 BUS CAN 18


Partie II : Couche physique(Support)
Chaque nœud est connecté au bus par l'intermédiaire d'une paire
torsadée (blindée ou non).Les deux extrémités du bus doivent être
rebouclées par des résistances de 120 Ω (tolérance entre 108 Ω et 132
Ω).

L'accès au bus de données CAN suit la technique CSMA/CR (écoute de


chaque station avant de parler mais pas de tour de parole, résolution des
collisions par priorité)
12/14/2020 BUS CAN 19
Partie II : Couche physique(Encodage des bits)
L'encodage utilisé est de type NRZ (non retour à 0) :Valeurs du bus : le
bus peut avoir l’une des deux valeurs logiques complémentaires définies,
non pas en 0 et 1 comme d’habitude, mais sous la forme de bit nommé
dominant ou récessif

12/14/2020 BUS CAN 20


Partie II : Couche physique(Encodage des bits)
Méthode de BitStuffing
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

Exemple : Effectuer le stuffing sur le message suivant :

12/14/2020 BUS CAN 21


Partie II : Couche physique(Dominace bits)
Différents type de support
 Lisison filaire :
• Récessif : rappel de potentiel
• Dominant : Conducteur à la masse
 Medium optique:
• Récessif : absence de lumière
• Dominant : Conducteur à la masse
 Medium hertzien:
• Récessif : absence de porteuse
• Dominant : présence de porteuse

12/14/2020 BUS CAN 22


Partie II : Couche physique(Etats logiques et
Niveaux électriques)
Les nœuds sont câblés sur le bus par le principe du « OU câblé » du point de
vue électrique (« ET câblé » du point de vue logique), ce qui veut dire qu'en
cas d'émission simultanée de deux nœuds, la valeur 0 écrase la valeur 1.

On dit donc :
 que l'état logique « 0 » est l'état « dominant »,

 que l'état logique « 1 » est l'état « récessif »

12/14/2020 BUS CAN 23


Partie II : Arbitrage
Arbitrage : le problème de l’arbitrage résulte du fonctionnement multi
maître. Si deux nœuds ou plus tentent d’émettre un message sur un bus
libre il faut régler les conflits d’accès.
Arbitrage et protocole CAN : Utilisation de la dominance bit
- Tous les nœuds vérifient l’état du bus après émission d’un bit :
Si un bit récessif est émis, et qu’un bit récessif est lu le nœud continue
d’émettre.
Si un bit récessif est émis, et qu’un bit dominant est lu, il y a eu conflit
et perte d’arbitrage le nœud stoppe son émission, et passe en mode
réception

12/14/2020 BUS CAN 24


Partie II : Arbitrage
 3 nœuds veulent émettre en même temps :
N1 : 0 1 1 0 0 1 1 1 0 1 0
Mode réception
N2 : 0 1 1 0 0 1 0 1 0 0 0
Mode émission
N3 : 0 1 1 0 0 1 0 1 0 1 1

12/14/2020 BUS CAN 25


Exercices 1:
Quatre nœud souhaitent utiliser le bus CAN et émettent les séquences
d’arbitrage suivantes :
Noud1 : 001011001000 Noud2 : 001011001101
Noud3 : 001011001011 Noud4 : 001011001110
Tracer le signal sur le bus, et dites lequel, de ces nœuds, peut continuer à utiliser
ce bus.

12/14/2020 BUS CAN 26


Partie III : Trames CAN

Trames CAN

12/14/2020 BUS CAN 27


Partie III : Trames CAN
Deux types de trames :
– Data Frame (trame de données) :
transporte les données
– Remote Frame (trame de requête) :
un nœud envoie une trame de requête pour signaler aux autres nœuds
présents sur le réseau qu’il désire recevoir des données de leur part sous
forme d’une data frame

12/14/2020 BUS CAN 28


Partie III : Trames de données
Il existe également 2 standards pour la couche de liaison de données :
ISO 11898 part A → CAN 2.0A « standard frame format » (identification sur 11bits),
ISO 11898 part B → CAN 2.0B « extended frame format » (identification sur 29bits).

CAN 2.0 A

S R I A
11 bits
O T D DLC 0-8 data bytes 15 bits de CRC C Fin de frame
Arbitration ID
F R E K

CAN 2.0 B

S I R A
High 11 bits Low 18 bits Fin de
O D T DLC 0-8 data bytes 15 bits de CRC C
Arbitration ID Arbitration ID frame
F E R K

12/14/2020 BUS CAN 29


Partie III : Trames de données
Début de trame
Champ d’arbitrage
CAN 2.0 A
Champ de commande
Champ de données
Champ de CRC
Champ de ACK
Fin de trame
Intermission
S R I A
11 bits 3
O T D DLC 0-8 data bytes 15 bits de CRC C Fin de frame
Arbitration ID
F R E K

Trame de données

12/14/2020 BUS CAN 30


Partie III : Trames de données
Début de frame (SOF) : 1 bit

- Constitué d’un seul bit dominant


- Signale le début d’un échange
- Cet échange ne peut démarrer que si le bus était précédemment
au repos
- Tous les nœuds doivent se synchroniser le flanc avant la
transition du bit de départ

S R I A
11 bits
O T D DLC 0-8 data bytes 15 bits de CRC C Fin de frame
Arbitration ID
F R E K

12/14/2020 BUS CAN 31


Partie III : Trames de données
Champ d’arbitrage : 11 bits

– Définition ISO : ensemble de bits de la trame de message


attribués à chaque message pour contrôler l’arbitrage

– RTR (Remote Transmission Request) : 1bit qui est dominant.


Ce champ sert d'identifiant la trame transportée dans le bus can
 Récessif lors d’une trame de requête
 Dominant lors d’une trame de données
S R A
11 bits
O T DLC 0-8 data bytes 15 bits de CRC C Fin de frame
Arbitration ID
F R K

12/14/2020 BUS CAN 32


12/14/2020 BUS CAN 33
Partie III : Trames de données
Champ de commande : 6 bits

– Bits de réserve :(IDE. RBO) 2 bits


permettent d’assurer de futures compatibilités
ascendantes (notamment avec CAN 2.0 B)

– DLC (Data Length Code) : 4 bits


Nombre de données contenues dans le champ de
données
S R I R A
11 bits
O T DB DLC 0-8 data bytes 15 bits de CRC C Fin de frame
Arbitration ID
F R E O K

12/14/2020 BUS CAN 34


Partie III : Trames de données
Champ de données : 0 à 64 bits

• Endroit où se trouvent les données utiles transmises


• Minimum : 0 octets
• Maximum : 8 octets
• Transmis avec le bit de poids fort en tête

S R I R A
11 bits
O T DB DLC 0-8 data bytes 15 bits de CRC C Fin de frame
Arbitration ID
F R E O K

12/14/2020 BUS CAN 35


Partie III : Trames de données
Champ de CRC : 16 bits

– Cyclic Redundancy Code : Code à Redondance Cyclique


– Séquence CRC : 15 bits
– Délimiteur CRC : 1 bit

S R I R A
11 bits
O T DB DLC 0-8 data bytes 16 bits de CRC C Fin de frame
Arbitration ID
F R E O K

12/14/2020 BUS CAN 36


Partie III : Trames de données
Champ d’acquittement : 2 bits
– ACK slot
À chaque fois qu’un récepteur a correctement reçu un message
valide, il superpose lors du time slot du ACK slot (récessif) un bit
dominant
– ACK delimiter
Doit toujours être récessif : lorsqu’un message a été correctement
reçu, le bit ACK slot (dominant) est entouré par deux bits récessifs
(CRC delimiter et ACK delimiter)
S R I A
11 bits
O T D DLC 0-8 data bytes 15 bits de CRC C Fin de frame
Arbitration ID
F R E K

12/14/2020 BUS CAN 37


Partie III : Trames de données
Fin de trame : 7 bits
 Séquence de 7 bits récessifs successifs
 Structure fixe : les logiques de stuffing et de destuffing doivent
être désactivés pendant la séquence de fin de trame

S R I A
11 bits
O T D DLC 0-8 data bytes 15 bits de CRC C Fin de frame
Arbitration ID
F R E K

12/14/2020 BUS CAN 38


Partie III : Trames de données
Espace intertrame : 3 bits
– 3 bits récessifs
– Aucun nœud n’est autorisé à à démarrer la transmission
de la data frame ou de la remote frame.
– Une seule action permise :
signaler une condition de surcharge (overload)

S R I A
11 bits
O T D DLC 0-8 data bytes 15 bits de CRC C Fin de frame
Arbitration ID
F R E K

12/14/2020 BUS CAN 39


12/14/2020 BUS CAN 40
Partie III : Trames de requête
Début de trame : 1 bit
– Identique à la trame de données
Champ d’arbitrage : 12 bits
– Identificateur identique à la trame de données
– RTR (Remote Transmission Request) récessif : c’est ce bit qui permet
de différencier les deux type de trames

S R I A
11 bits
O T D DLC 15 bits de CRC C Fin de frame
Arbitration ID
F R E K

12/14/2020 BUS CAN 41


Partie III : Trames de requête
Champ de commande : 6 bits
– Bits de réserve : 2 bits
permettent d’assurer de futures compatibilités
ascendantes (notamment CAN 2.0 B)
– DLC (Data Length Code) : 4 bits
Nombre d’octets contenus dans le champ de données qui
devra être retourné par la data frame demandée !
S R I A
11 bits
O T D DLC 0-8 data bytes 15 bits de CRC C Fin de frame
Arbitration ID
F R E K

12/14/2020 BUS CAN 42


Partie III : Trames de requête
Champ de commande : 6 bits
– Bits de réserve : 2 bits
permettent d’assurer de futures compatibilités
ascendantes (notamment CAN 2.0 B)
– DLC (Data Length Code) : 4 bits
Nombre d’octets contenus dans le champ de données qui
devra être retourné par la data frame demandée !
S R I A
11 bits
O T D DLC 0-8 data bytes 15 bits de CRC C Fin de frame
Arbitration ID
F R E K

12/14/2020 BUS CAN 43


Partie III : Trames de requête
Champ de données : 0 bits
– Toujours vide
Champs de CRC, d’acquittement, de fin de
trame, d’intertrame
– Identiques à la trame de données

S R I A
11 bits
O T D DLC 15 bits de CRC C Fin de frame
Arbitration ID
F R E K

12/14/2020 BUS CAN 44


Exemple

12/14/2020 BUS CAN 45


Partie III : GESTION DES ERREURS

GESTION DES ERREURS

12/14/2020 BUS CAN 46


Partie III : GESTION DES ERREURS
Traitement des erreurs

Lors de l’émission d’une trame sur le bus, des erreurs de transmission


peuvent venir perturber le bon fonctionnement des différents utilisateurs
du bus. L’erreur peut venir d’un nœud, et empêcher le réseau de
fonctionner correctement. Pour cela, des méthodes de détection d’erreurs
de transmissions sont prévues par le protocole CAN. .

12/14/2020 BUS CAN 47


Partie III : GESTION DES ERREURS
Traitement des erreurs

Lors de l’émission d’une trame sur le bus, des erreurs de transmission


peuvent venir perturber le bon fonctionnement des différents utilisateurs
du bus. L’erreur peut venir d’un nœud, et empêcher le réseau de
fonctionner correctement. Pour cela, des méthodes de détection d’erreurs
de transmissions sont prévues par le protocole CAN. .

12/14/2020 BUS CAN 48


Partie III : Principe général
 Bit ACK dominant : absence d’erreur

 Bit ACK récessif : le nœud qui détecte une erreur doit émettre une trame
d’erreur pour prévenir l’émetteur qu’une erreur a été détectée

S R I
11 bits AC
O T D DLC 15 bits de CRC Fin de frame
Arbitration ID K
F R E

12/14/2020 BUS CAN 49


Partie III : Différents types d’erreurs
L’erreur de Stuffing (Stuff Error) :
Une erreur de Stuffing est détectée à chaque fois qu’il y a 6 bits ou plus
consécutifs de même signe sur le bus.
L’erreur de CRC (CRC Error) :
Si la valeur du CRC calculée par le récepteur est différente de celle
envoyée par l’émetteur, il y a erreur de CRC..

12/14/2020 BUS CAN 50


Partie III : Différents types d’erreurs
L’erreur d’Acknowledge Delimiter : Une erreur d’Acknowledge
Delimiter est signalée lorsque le récepteur n’observe pas un bit récessif
lors du champ de Acknowledge Delimiter
Il en est de même pour le CRC Delimiter.
L’erreur de Slot Acknowledge (Acknowledgment Error) :
Une erreur de Slot Acknowledge est signalée par l’émetteur s’il ne lit pas
un bit dominant lors du champ de slot acknowledge

12/14/2020 BUS CAN 51


Partie III : GESTION DES ERREURS
La gestion des erreurs s'applique sur certains champs, selon les cas :

12/14/2020 BUS CAN 52


Partie III : Trame d’erreur
Trame d'erreur (Error Frame)
Si la station détecte une erreur, elle renvoie une trame d'erreur constituée de
• 6 bits à l'état dominant (Error Flag) suivi de
• 8 bits délimiteurs à l'état récessif (Error Delimiter).

12/14/2020 BUS CAN 53


Partie III : Trame de surcharge
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 :
• le drapeau de surcharge (Overload Flag) avec six bits dominants,
• le délimiteur de surcharge (Overload Delimiter) avec huit bits récessifs

12/14/2020 BUS CAN 54


Partie III : Trame de surcharge
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).

12/14/2020 BUS CAN 55


Partie III : Caractéristiques électriques

Caractéristiques électriques

12/14/2020 BUS CAN 56


Partie III : Caractéristiques électriques

Caractéristiques électriques

12/14/2020 BUS CAN 57


Partie III : Caractéristiques électriques
Le tableau ci-dessous résume les principales différences entre les deux types de bus:

12/14/2020 BUS CAN 58


Fin de chapitre

12/14/2020 BUS CAN 59

Vous aimerez peut-être aussi