SlideShare une entreprise Scribd logo
1  sur  40
Bus de terrain – Bus CAN
TARIK ZAKARIA BENMERAR, PHD
DEPARTEMENT INSTRUMENTATION ET AUTOMATIQUE, USTHB
Introduction - Historique
 Origines : besoin du monde automobile.
 Concept Robert Bosch Gmbh et université de
Wolfenbüttel (1983).
 Réalisation sur silicium par Intel (1985).
 Première voiture équipée CAN (1991).
 Création de CAN in Automation (CiA) en 1992.
Introduction - Evolution du câblages dans
l’automobile
Introduction - Evolution du câblages dans
l’automobile
Introduction - Evolution du câblages dans
l’automobile
Introduction - Evolution du câblages dans
l’automobile
Introduction – Les avantages de 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é :
 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.
Bus CAN et OSI
La norme CAN spécifie les couches Physique et Liaison de données uniquement.
D’autres protocoles (devicenet, canopen, ..) spécifient les couches hautes.
La transmission des données dans le bus
CAN
La transmission des données dans le bus
CAN
Chaque nœud est connecté au bus par l'intermédiaire d'une paire
torsadée (blindée ou non).
Paire torsadée (blindée ou pas) 2 fils de cuivre isolés de section 0.6 mm2
La transmission des données dans le bus
CAN
CAN L
CAN H
Paire filaire
CAN Low CAN High
La transmission des données dans le bus
CAN
Dominant Récessif
CAN - H
CAN - L
Temps
Tension
(V)
5,0
3,6
2,5
1,4
0,0
2,2V 5,0V
CAN - H
CAN - L
Rx
Tx
120
5V
Le CAN low speed (max. 125kbits/s)
La différence de tension entre les deux états est grande
La transmission des données dans le bus
CAN
Le CAN high speed (max. 1Mbits/s sur 40m)
La différence de tension entre les deux états est faible
Dominant Récessif
CAN - H
CAN - L
Temps
Tension
(V)
3,5
2,5
1,5
2,0V
CAN - H
CAN - L
Rx
Tx
50 k
50 k
120
Bias.
2,5V
5V
La transmission des données dans le bus
CAN
 Le bus peut avoir l’une des deux valeurs logiques complémentaires définies.
 Ils sont sous la forme de bit nommé dominant (Bit à 0) ou récessif (Bit à 1).
La transmission des données dans le bus
CAN
CAN est un bus de données série bidirectionnel half-duplex dans le
domaine automobile,
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.
La transmission des données dans le bus
CAN
 Message : Chaque information est véhiculée sur le bus à l’aide d’un message (trame de bits) de format
défini mais de longueur variable et limitée. Dès que le bus est libre, n’importe quel nœud relié au réseau
peut émettre un nouveau message.
 Canal de liaison simple : Le bus consiste en un simple canal bidirectionnel qui transporte les bits. A
partir des données transportées, il est possible de récupérer des informations de resynchronisation.
 Acquittement : tous les récepteurs vérifient la validité d’un message reçu, et dans le cas d’un message
correct ils doivent acquitter en émettant un flag.
 Arbitrage : En absence d’un hôte, il est impératif de régler les conflits d’accès au bus de communication.
 Sécurité de transmission : Garantir la plus grande sécurité lors de transferts sur le bus. Des dispositifs de
signalisation, de détection d’erreurs, et d’autotests ont été implémentés sur chaque nœud d’un bus
CAN. On dispose ainsi d’un monitoring bus (vérification du bit émis sur le bus), d’un CRC (Cyclic
Redundancy Check), d’une procédure de contrôle de l’architecture du message et d’une méthode de
Bit-Stuffing.
Concepts :
La transmission des données dans le bus
CAN
 Méthode de Bit-Stuffing : 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
 Remarque : Cette technique s’applique sur les bits depuis le Start of Frame jusqu'à la séquence de
CRC (délimiteur exclu) de la trame.
La trame CAN – Trame de données
S
O
F
11 bits
Arbitration ID
R
T
R
DLC 0-8 data bytes 15 bits de CRC
I
D
E
A
C
K
Fin de frame 3
Début de trame
Champ d’arbitrage
Champ de commande
Champ de données
Champ de CRC
Champ de ACK
Fin de trame
Intermission
CAN 2.0 A
 Chaque nœud peut envoyer des trames de données à intervalles réguliers.
La trame CAN – Trame de données
S
O
F
11 bits
Arbitration ID
R
T
R
DLC 0-8 data bytes 15 bits de CRC
I
D
E
A
C
K
Fin de frame
 1 bit de début de trame (Start Of Frame, SOF).
 Début d’échange après repos du bus.
 Tous les nœuds doivent se synchroniser sur le flan avant la transition du bit de départ.
La trame CAN – Trame de données
11 bits
Arbitration ID
R
T
R
S
R
R
CAN 2.0 A
11 bits
Arbitration ID
I
D
E
18 bits
Arbitration ID
R
T
R
CAN 2.0 B
 le champ d’arbitrage : 11 bits (ID) + 1 bit (RTR) en standard et, 29 bits (ID) +
2 bits (SRR/IDE) + 1 bit (RTR) en etendue.
La signification de certains bits :
• RTR : Remote Transmission Request bit,
• SRR : Subsitute Remote Request bit,
• IDE : Identifier Extension bit.
Le bit RTR (Remote Transmission Request) permet de
déterminer le type de trame :
• RTR = état dominant : trame de données
• RTR = état récessif : trame de requête
La trame CAN – Trame de données
S
O
F
11 bits
Arbitration ID
R
T
R
DLC 0-8 data bytes 15 bits de CRC
A
C
K
Fin de trame
 Champ de commande : 6 bits.
 Bits de réserve : 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.
La trame CAN – Trame de données
S
O
F
11 bits
Arbitration ID
R
T
R
DLC 0-8 data bytes 15 bits de CRC
I
D
E
A
C
K
Fin de trame
 Champ de données : 0 à 64 bits :
 Les données transmises (e.g., Valeurs de capteur ).
 Minimum : 0 octets.
 Maximum : 8 octets.
 Transmis avec le bit de poids fort en tête.
La trame CAN – Trame de données
S
O
F
11 bits
Arbitration ID
R
T
R
DLC 0-8 data bytes 16 bits de CRC
I
D
E
A
C
K
Fin de trame
 Champ de CRC : 16 bits.
 Cyclic Redudency Code : Code à Redodance Cyclique.
 Séquence CRC : 15 bits.
 Délimiteur CRC : 1 bits.
La trame CAN – Trame de données
S
O
F
11 bits
Arbitration ID
R
T
R
DLC 0-8 data bytes 15 bits de CRC
I
D
E
A
C
K
Fin de trame
 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).
La trame CAN – Trame 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
O
F
11 bits
Arbitration ID
R
T
R
DLC 0-8 data bytes 15 bits de CRC
I
D
E
A
C
K
Fin de trame
La trame CAN – Trame de données
 Espace intertrame : 3 bits
 3 bits récessifs
 Aucun nœud n’est autorisé à démarrer la transmission de la trame de données ou de la trame
de requête.
 Une seule action permise :
 signaler une condition de surcharge (overload)
S
O
F
11 bits
Arbitration ID
R
T
R
DLC 0-8 data bytes 15 bits de CRC
I
D
E
A
C
K
Fin de trame
La trame CAN – Trame de requête
S
O
F
Arbitration ID
R
T
R
DLC CRC
I
D
E
A
C
K
Fin de frame
 Demande d’information à un autre nœud.
Id du nœud cible. Pas de champ de
données
La trame CAN – 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,
 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).
La trame CAN – Trame d’erreur
S
O
F
CAN ID
R
T
R
DLC Data CRC
AC
K
Fin de frame
 Bit ACK slot dominant : absence d’erreur.
 Bit ACK Slot 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.
La trame CAN – Trame d’erreur
 Le CAN implémente cinq mécanismes de détection des erreurs, 2 au niveau bits (le
”bit monitoring” et le ”bit stuffing”).
 3 au niveau messages (vérification du CRC, de la forme des trames et de
l’acquittement).
La trame CAN – Trame d’erreur
 Ces cinq types d’erreurs différents qui peuvent être détectée par un nœud sont:
 Bit error: Un noeud envoyant un bit sur le bus regarde aussi en même temps les bits qu’il reçoit (Bit
monitoring). Il considère comme une erreur de bit lorsque le bit envoyé est différent du bit reçu, à l’exception
de l’envoi d’un bit récessif durant l’arbitrage (cas de la perte d’arbitrage) ou pendant le ACK Slot (trame
acquittée).
 Stuff error: Le noeud détecte une erreur de stuffing lorsqu’il reçoit 6 bits consécutifs de même valeur dans une
partie d’un message qui devrait être codé avec la méthode du bit stuffing.
 CRC error: Une erreur de CRC est détectée lorsque le CRC calculé par un récepteur est différent de la valeur du
CRC contenu dans la trame.
 Form error: Une ”Form error” est détectée lorsqu’un bit qui devrait être à une certaine valeur est à une valeur
différente (un délimiteur par exemple).
 ACK error: Le transmetteur détecte une erreur d’acquittement lorsqu’il ne reçoit pas de bit dominant pendant
le ACK Slot.
La trame CAN – Trame d’erreur
La trame CAN – Trame d’erreur
 Le contrôle de redondance cyclique (Cyclic Redundancy Check ou CRC) est un mécanisme de contrôle
d’intégrité des données puissant mais aussi facile à mettre en œuvre.
 La plupart des systèmes de contrôle d'erreur au niveau logique sont basés sur un ajout d'information
(on parle de « redondance ») permettant de vérifier la validité des données. On appelle somme de
contrôle (en anglais checksum) cette information supplémentaire
 Avec ce mécanisme, on définit un polynôme (appelé polynôme générateur noté G(x)) connu à la fois
de l’émetteur et du récepteur. On utilise un algorithme sur les bits de la trame pour générer un CRC
qui est transmis au récepteur. Il suffit alors au récepteur d’utiliser le polynôme G(x) pour générer un
CRC à partir de la trame reçue et le comparer au CRC contenu dans la trame afin de vérifier sa validité.
La trame CAN – Trame d’erreur
 Une trame d’erreur est constituée de deux parties : La première est formée par la superposition des
différents ”Error flags” mis par les noeuds du bus. La seconde partie est un délimiteur.
 Tout nœud qui détecte une erreur la signale par la transmission d’un Error flag. Un Error flag est composé de
6 bits dominants consécutifs violant ainsi la règle du bit stuffing.
 Ainsi, tous les autres noeuds détectent aussi une erreur et commencent à envoyer un Error flag. La séquence
de bits dominants qui existe alors sur le bus est le résultat de la superposition de plusieurs Error flags, et sa
longueur varie entre 6 et 12 bits.
La trame CAN – Trame d’erreur
 Il existe deux types de trames d’erreurs :
Active error flag : 6 bits dominants consécutifs. Passive error flag : 6 bits récessifs consécutifs, jusqu’à ce
qu’ils soient écrasés par des bits dominants.
L’Error delimiter est composé de 8 bits récessifs. En fait, après avoir transmis son Error flag, chaque noeuds envoie des bits
récessifs et observe le bus jusqu’à ce qu’il détecte un bit récessif, après quoi il envoie encore 7 bits récessifs supplémentaires.
La trame CAN – Trame d’erreur
 Le confinement des erreurs est un mécanisme qui permet de différencier les erreurs
temporaires des erreurs permanentes :
 Les erreurs temporaires peuvent être causées par des bugs occasionnels.
 Les erreurs permanentes peuvent être due à de mauvaises connections ou à des
composants qui sont défaillants. Le système en place permet ainsi de mettre hors
communication un nœud défaillant qui sinon aurait pu perturber les autres nœuds.
La trame CAN – Trame d’erreur
 Un nœud en mode d’erreur actif (error-active) peut
entrer en communication avec les nœuds du bus. Il
transmettra un Active error flag s’il détecte une
condition d’erreur.
 Un nœud en mode d’erreur passif (error-passive) peut
entrer en communication avec les nœuds du bus, mais
s’il détecte une condition d’erreur sur le bus, il
transmettra un Passive error flag. Ce mode indique un
nœud à problèmes.
 Un nœud en mode bus-off n’est pas autorisé à avoir
une quelconque influence sur le bus.
La trame CAN – Trame d’erreur
 Deux compteurs d’erreurs sont implémentés dans chaque
noeud : celui des erreurs en transmission (Transmit error
count) et celui des erreurs en réception (Receive error count) :
 Lorsqu’un récepteur détecte une erreur, son compteur
des erreurs en réception est augmenté de 1.
 Lorsqu’un transmetteur envoie un Error flag, son
compteur d’erreurs en transmission est augmenté de 8.
 Après une transmission réussie, compteur d’erreurs en
transmission est diminué de 1.
 Après une réception réussie, le compteur des erreurs en
réception est diminué de 1.
L’arbitrage dans le protocole CAN
 Le Bus CAN ne dispose pas de maitre et permet n’importe quel nœud dans le réseau de faire
du broadcasting dans le réseau.
 Il est impératif ainsi de régler les conflits d’accès.
 Le concept d’arbitrage permet de régler cette problématique bit à bit de façon not destructif
sur la base de l’identifiant d’arbitrage.
 Grace au concept de bit récessif et dominant, on garantit un arbitrage sans perte
d’information et de temps.
L’arbitrage dans le protocole CAN

Contenu connexe

Tendances

Réseaux et protocoles - Cours + exercices
Réseaux et protocoles - Cours + exercices Réseaux et protocoles - Cours + exercices
Réseaux et protocoles - Cours + exercices sarah Benmerzouk
 
Modulation Analogique
Modulation Analogique Modulation Analogique
Modulation Analogique SAHELAicha
 
Travaux Dirigée: Notions de bases dans les réseaux
Travaux Dirigée: Notions de bases dans les réseauxTravaux Dirigée: Notions de bases dans les réseaux
Travaux Dirigée: Notions de bases dans les réseauxInes Kechiche
 
Cha4 réseaux
Cha4 réseauxCha4 réseaux
Cha4 réseauxEns Kouba
 
CAN (Controller Area Network) Bus Protocol
CAN (Controller Area Network) Bus ProtocolCAN (Controller Area Network) Bus Protocol
CAN (Controller Area Network) Bus ProtocolAbhinaw Tiwari
 
Formation Bus de Terrain FR _Partie 1_ General
Formation Bus de Terrain FR _Partie 1_ GeneralFormation Bus de Terrain FR _Partie 1_ General
Formation Bus de Terrain FR _Partie 1_ GeneralWojciech GOMOLKA
 
td_devoirs_2013.pdf
td_devoirs_2013.pdftd_devoirs_2013.pdf
td_devoirs_2013.pdfMeryemH2
 
Chapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSIChapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSIMohamed Lahby
 
Chapitre 1 technique de transmission
Chapitre 1 technique de transmissionChapitre 1 technique de transmission
Chapitre 1 technique de transmissionFodé Ndiaye
 
interferences entre-symboles
interferences entre-symbolesinterferences entre-symboles
interferences entre-symbolesBAKKOURY Jamila
 
Tp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlabTp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlabhamdinho
 

Tendances (20)

Réseaux et protocoles - Cours + exercices
Réseaux et protocoles - Cours + exercices Réseaux et protocoles - Cours + exercices
Réseaux et protocoles - Cours + exercices
 
Systeme embarque
Systeme embarqueSysteme embarque
Systeme embarque
 
Modulation Analogique
Modulation Analogique Modulation Analogique
Modulation Analogique
 
Routage
RoutageRoutage
Routage
 
Codes Convolutifs
Codes ConvolutifsCodes Convolutifs
Codes Convolutifs
 
Réseau lora
Réseau loraRéseau lora
Réseau lora
 
Chapitre 2 - Réseaux locaux
Chapitre 2 - Réseaux locauxChapitre 2 - Réseaux locaux
Chapitre 2 - Réseaux locaux
 
Transmission de signal
Transmission de signalTransmission de signal
Transmission de signal
 
Travaux Dirigée: Notions de bases dans les réseaux
Travaux Dirigée: Notions de bases dans les réseauxTravaux Dirigée: Notions de bases dans les réseaux
Travaux Dirigée: Notions de bases dans les réseaux
 
Cha4 réseaux
Cha4 réseauxCha4 réseaux
Cha4 réseaux
 
CAN (Controller Area Network) Bus Protocol
CAN (Controller Area Network) Bus ProtocolCAN (Controller Area Network) Bus Protocol
CAN (Controller Area Network) Bus Protocol
 
Formation Bus de Terrain FR _Partie 1_ General
Formation Bus de Terrain FR _Partie 1_ GeneralFormation Bus de Terrain FR _Partie 1_ General
Formation Bus de Terrain FR _Partie 1_ General
 
td_devoirs_2013.pdf
td_devoirs_2013.pdftd_devoirs_2013.pdf
td_devoirs_2013.pdf
 
Chapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSIChapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSI
 
Hdlc
HdlcHdlc
Hdlc
 
Chapitre 1 technique de transmission
Chapitre 1 technique de transmissionChapitre 1 technique de transmission
Chapitre 1 technique de transmission
 
Td1 gsm
Td1 gsmTd1 gsm
Td1 gsm
 
interferences entre-symboles
interferences entre-symbolesinterferences entre-symboles
interferences entre-symboles
 
05c reseaux-sans-fil
05c reseaux-sans-fil05c reseaux-sans-fil
05c reseaux-sans-fil
 
Tp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlabTp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlab
 

Similaire à Chapitre 3 - Protocole Bus CAN (2020/2021

formation_captronic_lyon.pdf
formation_captronic_lyon.pdfformation_captronic_lyon.pdf
formation_captronic_lyon.pdfOukrimMohamed
 
FR - Les réseaux Ethernet - le format des trames.pdf
FR - Les réseaux Ethernet - le format des trames.pdfFR - Les réseaux Ethernet - le format des trames.pdf
FR - Les réseaux Ethernet - le format des trames.pdfmouradslilem1
 
Arm 4 canaux-logiques_2006-fva[1]
Arm 4 canaux-logiques_2006-fva[1]Arm 4 canaux-logiques_2006-fva[1]
Arm 4 canaux-logiques_2006-fva[1]elthier
 
11861939.ppt
11861939.ppt11861939.ppt
11861939.pptmoh2020
 
chapitre1-introduction-201224111230.pdf
chapitre1-introduction-201224111230.pdfchapitre1-introduction-201224111230.pdf
chapitre1-introduction-201224111230.pdfhadda belhadj
 
Rapport W-CDMA Coding & Multiplexing
Rapport W-CDMA  Coding & MultiplexingRapport W-CDMA  Coding & Multiplexing
Rapport W-CDMA Coding & MultiplexingAnouar Loukili
 
Réglage d'un site 2G
Réglage d'un site 2G Réglage d'un site 2G
Réglage d'un site 2G kawtar dziri
 
chapitre1-introduction-201224111230.pptx
chapitre1-introduction-201224111230.pptxchapitre1-introduction-201224111230.pptx
chapitre1-introduction-201224111230.pptxMerazgaAmmar1
 
Configurer la voie modbus du variateur atv31
Configurer la voie modbus du variateur atv31Configurer la voie modbus du variateur atv31
Configurer la voie modbus du variateur atv31valentin Victoire
 

Similaire à Chapitre 3 - Protocole Bus CAN (2020/2021 (20)

formation_captronic_lyon.pdf
formation_captronic_lyon.pdfformation_captronic_lyon.pdf
formation_captronic_lyon.pdf
 
CAN
CANCAN
CAN
 
FR - Les réseaux Ethernet - le format des trames.pdf
FR - Les réseaux Ethernet - le format des trames.pdfFR - Les réseaux Ethernet - le format des trames.pdf
FR - Les réseaux Ethernet - le format des trames.pdf
 
Cours reseaux lan
Cours reseaux lanCours reseaux lan
Cours reseaux lan
 
Chapitre 6 - couche transport
Chapitre 6  - couche transportChapitre 6  - couche transport
Chapitre 6 - couche transport
 
Arm 4 canaux-logiques_2006-fva[1]
Arm 4 canaux-logiques_2006-fva[1]Arm 4 canaux-logiques_2006-fva[1]
Arm 4 canaux-logiques_2006-fva[1]
 
11861939.ppt
11861939.ppt11861939.ppt
11861939.ppt
 
Atm
AtmAtm
Atm
 
Les trames reseaux
Les trames reseauxLes trames reseaux
Les trames reseaux
 
Atelier i2 c
Atelier  i2 cAtelier  i2 c
Atelier i2 c
 
chapitre1-introduction-201224111230.pdf
chapitre1-introduction-201224111230.pdfchapitre1-introduction-201224111230.pdf
chapitre1-introduction-201224111230.pdf
 
Rapport W-CDMA Coding & Multiplexing
Rapport W-CDMA  Coding & MultiplexingRapport W-CDMA  Coding & Multiplexing
Rapport W-CDMA Coding & Multiplexing
 
Réglage d'un site 2G
Réglage d'un site 2G Réglage d'un site 2G
Réglage d'un site 2G
 
Chapitre 4 - couche liaison
Chapitre 4 - couche liaisonChapitre 4 - couche liaison
Chapitre 4 - couche liaison
 
Td2 rtel-atm-1011
Td2 rtel-atm-1011Td2 rtel-atm-1011
Td2 rtel-atm-1011
 
chapitre1-introduction-201224111230.pptx
chapitre1-introduction-201224111230.pptxchapitre1-introduction-201224111230.pptx
chapitre1-introduction-201224111230.pptx
 
SoC Hamdi -chap4
SoC Hamdi -chap4SoC Hamdi -chap4
SoC Hamdi -chap4
 
Interface radio gsm_gprs
Interface radio gsm_gprsInterface radio gsm_gprs
Interface radio gsm_gprs
 
Carte mentale transport Voix sur ip
Carte mentale transport Voix sur ipCarte mentale transport Voix sur ip
Carte mentale transport Voix sur ip
 
Configurer la voie modbus du variateur atv31
Configurer la voie modbus du variateur atv31Configurer la voie modbus du variateur atv31
Configurer la voie modbus du variateur atv31
 

Plus de Tarik Zakaria Benmerar

Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plusVideostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plusTarik Zakaria Benmerar
 
Chapitre 6 - les instructions de chaînes de caractères
Chapitre 6  - les instructions de chaînes de caractèresChapitre 6  - les instructions de chaînes de caractères
Chapitre 6 - les instructions de chaînes de caractèresTarik Zakaria Benmerar
 
Chapitre 5 - fichiers EXE-COM pour le dos
Chapitre 5 -  fichiers EXE-COM pour le dosChapitre 5 -  fichiers EXE-COM pour le dos
Chapitre 5 - fichiers EXE-COM pour le dosTarik Zakaria Benmerar
 
Chapitre 4 - les instructions de saut et conditions
Chapitre 4  - les instructions de saut et conditionsChapitre 4  - les instructions de saut et conditions
Chapitre 4 - les instructions de saut et conditionsTarik Zakaria Benmerar
 
Chapitre 3 - échanges de données et opérations arithmétiques - binaires
Chapitre 3  - échanges de données et opérations arithmétiques - binairesChapitre 3  - échanges de données et opérations arithmétiques - binaires
Chapitre 3 - échanges de données et opérations arithmétiques - binairesTarik Zakaria Benmerar
 
Chapitre 2.2 - architecture d'un microprocesseur - jeux d'instructions et reg...
Chapitre 2.2 - architecture d'un microprocesseur - jeux d'instructions et reg...Chapitre 2.2 - architecture d'un microprocesseur - jeux d'instructions et reg...
Chapitre 2.2 - architecture d'un microprocesseur - jeux d'instructions et reg...Tarik Zakaria Benmerar
 
Chapitre 2.1 - architecture d'un microprocesseur - bus et communication
Chapitre 2.1 -  architecture d'un microprocesseur - bus et communicationChapitre 2.1 -  architecture d'un microprocesseur - bus et communication
Chapitre 2.1 - architecture d'un microprocesseur - bus et communicationTarik Zakaria Benmerar
 
Chapitre 1 - représentation numérique des données
Chapitre 1  - représentation numérique des donnéesChapitre 1  - représentation numérique des données
Chapitre 1 - représentation numérique des donnéesTarik Zakaria Benmerar
 
Chapitre 3 - Commutation dans les LANs
Chapitre 3 - Commutation dans les LANsChapitre 3 - Commutation dans les LANs
Chapitre 3 - Commutation dans les LANsTarik Zakaria Benmerar
 
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6  - Protocoles TCP/IP, UDP/IPChapitre 6  - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IPTarik Zakaria Benmerar
 
Cours réseaux informatiques. Chapitre 1 : Transmission
Cours réseaux informatiques. Chapitre 1 : TransmissionCours réseaux informatiques. Chapitre 1 : Transmission
Cours réseaux informatiques. Chapitre 1 : TransmissionTarik Zakaria Benmerar
 

Plus de Tarik Zakaria Benmerar (20)

Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plusVideostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
 
Chapitre 8 - les entrées - sorties
Chapitre 8  - les entrées - sortiesChapitre 8  - les entrées - sorties
Chapitre 8 - les entrées - sorties
 
Cyber pink - Time Management
Cyber pink -  Time Management Cyber pink -  Time Management
Cyber pink - Time Management
 
Chapitre 5 - couche réseaux
Chapitre 5 - couche réseauxChapitre 5 - couche réseaux
Chapitre 5 - couche réseaux
 
Chapitre 3 - connecteurs et câbles
Chapitre 3 -   connecteurs et câblesChapitre 3 -   connecteurs et câbles
Chapitre 3 - connecteurs et câbles
 
Chapitre 2 - Transmission
Chapitre 2  - TransmissionChapitre 2  - Transmission
Chapitre 2 - Transmission
 
Chapitre 1 - notions fondamentales
Chapitre 1 -  notions fondamentalesChapitre 1 -  notions fondamentales
Chapitre 1 - notions fondamentales
 
Chapitre 9 - les interruptions
Chapitre 9 -  les interruptionsChapitre 9 -  les interruptions
Chapitre 9 - les interruptions
 
Chapitre 7 - la pile
Chapitre 7 -  la pileChapitre 7 -  la pile
Chapitre 7 - la pile
 
Chapitre 6 - les instructions de chaînes de caractères
Chapitre 6  - les instructions de chaînes de caractèresChapitre 6  - les instructions de chaînes de caractères
Chapitre 6 - les instructions de chaînes de caractères
 
Chapitre 5 - fichiers EXE-COM pour le dos
Chapitre 5 -  fichiers EXE-COM pour le dosChapitre 5 -  fichiers EXE-COM pour le dos
Chapitre 5 - fichiers EXE-COM pour le dos
 
Chapitre 4 - les instructions de saut et conditions
Chapitre 4  - les instructions de saut et conditionsChapitre 4  - les instructions de saut et conditions
Chapitre 4 - les instructions de saut et conditions
 
Chapitre 3 - échanges de données et opérations arithmétiques - binaires
Chapitre 3  - échanges de données et opérations arithmétiques - binairesChapitre 3  - échanges de données et opérations arithmétiques - binaires
Chapitre 3 - échanges de données et opérations arithmétiques - binaires
 
Chapitre 2.2 - architecture d'un microprocesseur - jeux d'instructions et reg...
Chapitre 2.2 - architecture d'un microprocesseur - jeux d'instructions et reg...Chapitre 2.2 - architecture d'un microprocesseur - jeux d'instructions et reg...
Chapitre 2.2 - architecture d'un microprocesseur - jeux d'instructions et reg...
 
Chapitre 2.1 - architecture d'un microprocesseur - bus et communication
Chapitre 2.1 -  architecture d'un microprocesseur - bus et communicationChapitre 2.1 -  architecture d'un microprocesseur - bus et communication
Chapitre 2.1 - architecture d'un microprocesseur - bus et communication
 
Chapitre 1 - représentation numérique des données
Chapitre 1  - représentation numérique des donnéesChapitre 1  - représentation numérique des données
Chapitre 1 - représentation numérique des données
 
Chapitre 4 - Réseaux Ethernet
Chapitre 4 - Réseaux EthernetChapitre 4 - Réseaux Ethernet
Chapitre 4 - Réseaux Ethernet
 
Chapitre 3 - Commutation dans les LANs
Chapitre 3 - Commutation dans les LANsChapitre 3 - Commutation dans les LANs
Chapitre 3 - Commutation dans les LANs
 
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6  - Protocoles TCP/IP, UDP/IPChapitre 6  - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IP
 
Cours réseaux informatiques. Chapitre 1 : Transmission
Cours réseaux informatiques. Chapitre 1 : TransmissionCours réseaux informatiques. Chapitre 1 : Transmission
Cours réseaux informatiques. Chapitre 1 : Transmission
 

Chapitre 3 - Protocole Bus CAN (2020/2021

  • 1. Bus de terrain – Bus CAN TARIK ZAKARIA BENMERAR, PHD DEPARTEMENT INSTRUMENTATION ET AUTOMATIQUE, USTHB
  • 2. Introduction - Historique  Origines : besoin du monde automobile.  Concept Robert Bosch Gmbh et université de Wolfenbüttel (1983).  Réalisation sur silicium par Intel (1985).  Première voiture équipée CAN (1991).  Création de CAN in Automation (CiA) en 1992.
  • 3. Introduction - Evolution du câblages dans l’automobile
  • 4. Introduction - Evolution du câblages dans l’automobile
  • 5. Introduction - Evolution du câblages dans l’automobile
  • 6. Introduction - Evolution du câblages dans l’automobile
  • 7. Introduction – Les avantages de 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é :  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.
  • 8. Bus CAN et OSI La norme CAN spécifie les couches Physique et Liaison de données uniquement. D’autres protocoles (devicenet, canopen, ..) spécifient les couches hautes.
  • 9. La transmission des données dans le bus CAN
  • 10. La transmission des données dans le bus CAN Chaque nœud est connecté au bus par l'intermédiaire d'une paire torsadée (blindée ou non). Paire torsadée (blindée ou pas) 2 fils de cuivre isolés de section 0.6 mm2
  • 11. La transmission des données dans le bus CAN CAN L CAN H Paire filaire CAN Low CAN High
  • 12. La transmission des données dans le bus CAN Dominant Récessif CAN - H CAN - L Temps Tension (V) 5,0 3,6 2,5 1,4 0,0 2,2V 5,0V CAN - H CAN - L Rx Tx 120 5V Le CAN low speed (max. 125kbits/s) La différence de tension entre les deux états est grande
  • 13. La transmission des données dans le bus CAN Le CAN high speed (max. 1Mbits/s sur 40m) La différence de tension entre les deux états est faible Dominant Récessif CAN - H CAN - L Temps Tension (V) 3,5 2,5 1,5 2,0V CAN - H CAN - L Rx Tx 50 k 50 k 120 Bias. 2,5V 5V
  • 14. La transmission des données dans le bus CAN  Le bus peut avoir l’une des deux valeurs logiques complémentaires définies.  Ils sont sous la forme de bit nommé dominant (Bit à 0) ou récessif (Bit à 1).
  • 15. La transmission des données dans le bus CAN CAN est un bus de données série bidirectionnel half-duplex dans le domaine automobile, 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.
  • 16. La transmission des données dans le bus CAN  Message : Chaque information est véhiculée sur le bus à l’aide d’un message (trame de bits) de format défini mais de longueur variable et limitée. Dès que le bus est libre, n’importe quel nœud relié au réseau peut émettre un nouveau message.  Canal de liaison simple : Le bus consiste en un simple canal bidirectionnel qui transporte les bits. A partir des données transportées, il est possible de récupérer des informations de resynchronisation.  Acquittement : tous les récepteurs vérifient la validité d’un message reçu, et dans le cas d’un message correct ils doivent acquitter en émettant un flag.  Arbitrage : En absence d’un hôte, il est impératif de régler les conflits d’accès au bus de communication.  Sécurité de transmission : Garantir la plus grande sécurité lors de transferts sur le bus. Des dispositifs de signalisation, de détection d’erreurs, et d’autotests ont été implémentés sur chaque nœud d’un bus CAN. On dispose ainsi d’un monitoring bus (vérification du bit émis sur le bus), d’un CRC (Cyclic Redundancy Check), d’une procédure de contrôle de l’architecture du message et d’une méthode de Bit-Stuffing. Concepts :
  • 17. La transmission des données dans le bus CAN  Méthode de Bit-Stuffing : 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  Remarque : Cette technique s’applique sur les bits depuis le Start of Frame jusqu'à la séquence de CRC (délimiteur exclu) de la trame.
  • 18. La trame CAN – Trame de données S O F 11 bits Arbitration ID R T R DLC 0-8 data bytes 15 bits de CRC I D E A C K Fin de frame 3 Début de trame Champ d’arbitrage Champ de commande Champ de données Champ de CRC Champ de ACK Fin de trame Intermission CAN 2.0 A  Chaque nœud peut envoyer des trames de données à intervalles réguliers.
  • 19. La trame CAN – Trame de données S O F 11 bits Arbitration ID R T R DLC 0-8 data bytes 15 bits de CRC I D E A C K Fin de frame  1 bit de début de trame (Start Of Frame, SOF).  Début d’échange après repos du bus.  Tous les nœuds doivent se synchroniser sur le flan avant la transition du bit de départ.
  • 20. La trame CAN – Trame de données 11 bits Arbitration ID R T R S R R CAN 2.0 A 11 bits Arbitration ID I D E 18 bits Arbitration ID R T R CAN 2.0 B  le champ d’arbitrage : 11 bits (ID) + 1 bit (RTR) en standard et, 29 bits (ID) + 2 bits (SRR/IDE) + 1 bit (RTR) en etendue. La signification de certains bits : • RTR : Remote Transmission Request bit, • SRR : Subsitute Remote Request bit, • IDE : Identifier Extension bit. Le bit RTR (Remote Transmission Request) permet de déterminer le type de trame : • RTR = état dominant : trame de données • RTR = état récessif : trame de requête
  • 21. La trame CAN – Trame de données S O F 11 bits Arbitration ID R T R DLC 0-8 data bytes 15 bits de CRC A C K Fin de trame  Champ de commande : 6 bits.  Bits de réserve : 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.
  • 22. La trame CAN – Trame de données S O F 11 bits Arbitration ID R T R DLC 0-8 data bytes 15 bits de CRC I D E A C K Fin de trame  Champ de données : 0 à 64 bits :  Les données transmises (e.g., Valeurs de capteur ).  Minimum : 0 octets.  Maximum : 8 octets.  Transmis avec le bit de poids fort en tête.
  • 23. La trame CAN – Trame de données S O F 11 bits Arbitration ID R T R DLC 0-8 data bytes 16 bits de CRC I D E A C K Fin de trame  Champ de CRC : 16 bits.  Cyclic Redudency Code : Code à Redodance Cyclique.  Séquence CRC : 15 bits.  Délimiteur CRC : 1 bits.
  • 24. La trame CAN – Trame de données S O F 11 bits Arbitration ID R T R DLC 0-8 data bytes 15 bits de CRC I D E A C K Fin de trame  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).
  • 25. La trame CAN – Trame 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 O F 11 bits Arbitration ID R T R DLC 0-8 data bytes 15 bits de CRC I D E A C K Fin de trame
  • 26. La trame CAN – Trame de données  Espace intertrame : 3 bits  3 bits récessifs  Aucun nœud n’est autorisé à démarrer la transmission de la trame de données ou de la trame de requête.  Une seule action permise :  signaler une condition de surcharge (overload) S O F 11 bits Arbitration ID R T R DLC 0-8 data bytes 15 bits de CRC I D E A C K Fin de trame
  • 27. La trame CAN – Trame de requête S O F Arbitration ID R T R DLC CRC I D E A C K Fin de frame  Demande d’information à un autre nœud. Id du nœud cible. Pas de champ de données
  • 28. La trame CAN – 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,  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).
  • 29. La trame CAN – Trame d’erreur S O F CAN ID R T R DLC Data CRC AC K Fin de frame  Bit ACK slot dominant : absence d’erreur.  Bit ACK Slot 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.
  • 30. La trame CAN – Trame d’erreur  Le CAN implémente cinq mécanismes de détection des erreurs, 2 au niveau bits (le ”bit monitoring” et le ”bit stuffing”).  3 au niveau messages (vérification du CRC, de la forme des trames et de l’acquittement).
  • 31. La trame CAN – Trame d’erreur  Ces cinq types d’erreurs différents qui peuvent être détectée par un nœud sont:  Bit error: Un noeud envoyant un bit sur le bus regarde aussi en même temps les bits qu’il reçoit (Bit monitoring). Il considère comme une erreur de bit lorsque le bit envoyé est différent du bit reçu, à l’exception de l’envoi d’un bit récessif durant l’arbitrage (cas de la perte d’arbitrage) ou pendant le ACK Slot (trame acquittée).  Stuff error: Le noeud détecte une erreur de stuffing lorsqu’il reçoit 6 bits consécutifs de même valeur dans une partie d’un message qui devrait être codé avec la méthode du bit stuffing.  CRC error: Une erreur de CRC est détectée lorsque le CRC calculé par un récepteur est différent de la valeur du CRC contenu dans la trame.  Form error: Une ”Form error” est détectée lorsqu’un bit qui devrait être à une certaine valeur est à une valeur différente (un délimiteur par exemple).  ACK error: Le transmetteur détecte une erreur d’acquittement lorsqu’il ne reçoit pas de bit dominant pendant le ACK Slot.
  • 32. La trame CAN – Trame d’erreur
  • 33. La trame CAN – Trame d’erreur  Le contrôle de redondance cyclique (Cyclic Redundancy Check ou CRC) est un mécanisme de contrôle d’intégrité des données puissant mais aussi facile à mettre en œuvre.  La plupart des systèmes de contrôle d'erreur au niveau logique sont basés sur un ajout d'information (on parle de « redondance ») permettant de vérifier la validité des données. On appelle somme de contrôle (en anglais checksum) cette information supplémentaire  Avec ce mécanisme, on définit un polynôme (appelé polynôme générateur noté G(x)) connu à la fois de l’émetteur et du récepteur. On utilise un algorithme sur les bits de la trame pour générer un CRC qui est transmis au récepteur. Il suffit alors au récepteur d’utiliser le polynôme G(x) pour générer un CRC à partir de la trame reçue et le comparer au CRC contenu dans la trame afin de vérifier sa validité.
  • 34. La trame CAN – Trame d’erreur  Une trame d’erreur est constituée de deux parties : La première est formée par la superposition des différents ”Error flags” mis par les noeuds du bus. La seconde partie est un délimiteur.  Tout nœud qui détecte une erreur la signale par la transmission d’un Error flag. Un Error flag est composé de 6 bits dominants consécutifs violant ainsi la règle du bit stuffing.  Ainsi, tous les autres noeuds détectent aussi une erreur et commencent à envoyer un Error flag. La séquence de bits dominants qui existe alors sur le bus est le résultat de la superposition de plusieurs Error flags, et sa longueur varie entre 6 et 12 bits.
  • 35. La trame CAN – Trame d’erreur  Il existe deux types de trames d’erreurs : Active error flag : 6 bits dominants consécutifs. Passive error flag : 6 bits récessifs consécutifs, jusqu’à ce qu’ils soient écrasés par des bits dominants. L’Error delimiter est composé de 8 bits récessifs. En fait, après avoir transmis son Error flag, chaque noeuds envoie des bits récessifs et observe le bus jusqu’à ce qu’il détecte un bit récessif, après quoi il envoie encore 7 bits récessifs supplémentaires.
  • 36. La trame CAN – Trame d’erreur  Le confinement des erreurs est un mécanisme qui permet de différencier les erreurs temporaires des erreurs permanentes :  Les erreurs temporaires peuvent être causées par des bugs occasionnels.  Les erreurs permanentes peuvent être due à de mauvaises connections ou à des composants qui sont défaillants. Le système en place permet ainsi de mettre hors communication un nœud défaillant qui sinon aurait pu perturber les autres nœuds.
  • 37. La trame CAN – Trame d’erreur  Un nœud en mode d’erreur actif (error-active) peut entrer en communication avec les nœuds du bus. Il transmettra un Active error flag s’il détecte une condition d’erreur.  Un nœud en mode d’erreur passif (error-passive) peut entrer en communication avec les nœuds du bus, mais s’il détecte une condition d’erreur sur le bus, il transmettra un Passive error flag. Ce mode indique un nœud à problèmes.  Un nœud en mode bus-off n’est pas autorisé à avoir une quelconque influence sur le bus.
  • 38. La trame CAN – Trame d’erreur  Deux compteurs d’erreurs sont implémentés dans chaque noeud : celui des erreurs en transmission (Transmit error count) et celui des erreurs en réception (Receive error count) :  Lorsqu’un récepteur détecte une erreur, son compteur des erreurs en réception est augmenté de 1.  Lorsqu’un transmetteur envoie un Error flag, son compteur d’erreurs en transmission est augmenté de 8.  Après une transmission réussie, compteur d’erreurs en transmission est diminué de 1.  Après une réception réussie, le compteur des erreurs en réception est diminué de 1.
  • 39. L’arbitrage dans le protocole CAN  Le Bus CAN ne dispose pas de maitre et permet n’importe quel nœud dans le réseau de faire du broadcasting dans le réseau.  Il est impératif ainsi de régler les conflits d’accès.  Le concept d’arbitrage permet de régler cette problématique bit à bit de façon not destructif sur la base de l’identifiant d’arbitrage.  Grace au concept de bit récessif et dominant, on garantit un arbitrage sans perte d’information et de temps.
  • 40. L’arbitrage dans le protocole CAN

Notes de l'éditeur

  1. En pratique, dans un même véhicule, plusieurs réseaux "multiplexés" vont cohabiter et à des débits différents : -- un réseau carrosserie (optiques, rétroviseurs, vitres, …) (faible débit : 32,5 à 62,5 kB/s, peu d’informations, composants faible coût, temps de réponse demandé 100ms) -- un réseau inter systèmes(ASR, ABS, …) (débit moyen : 125 à 500 kB/s, peu d’informations, temps de réponse demandé 10ms) ; -- un réseau confort (auto-radio, climatisation, système de navigation…) (débit moyen : 125 à 1MB/s, grande quantité d’informations, temps de réponse faible 500ms) ; -- un réseau diagnostic (appelé aussi liaison K) (débit faible : 10kB/s, grande quantité d’informations, temps de réponse de l’ordre de la seconde);