Chapitre 5
Le BUS CAN
1. Introduction
2. Protocole
3. Couche Physique
4. Trame de données
5. Trame de requête
M2SI
Communication Industrielle
Pr M.N. Kabbaj, 2020
1. Introduction
Historique
■ Depuis les années 1960 la longueur de câble utilisée dans l’automobile ne cesse de croître
pour dépasser 2000m en 1995. Le nombre des connexions atteint 1800 à cette même date. La
fiabilité et la sécurité sont menacés.
■ Les normes en matière de pollution et de consommation d’énergie obligent les constructeurs
à multiplier les capteurs et actionneurs intelligents dans leur véhicules accélérant ce processus
de multiplication des câbles et connexion.
■ Le besoin de sécurité accrue (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…) ne font
que renforcer cette tendance.
■ 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 apparaîtra et sera normalisé dans les
années qui suivent (dès 1983).
!2
1. Introduction
Exemples d’applications
CAN
!3
1. Introduction
Exemples d’applications
■ Industrie automobile
Evolution du câblage dans l’automobile grâce à un bus de terrain
Câblage traditionnel
Simple CAN
&
Léger
2 câbles pour l’alimentation électrique 12 V DC
1 paire torsadée pour les transferts d’informations
!4
1. Introduction
Exemples d’applications
■ Industrie automobile
!5
2. Protocole
Protocole CAN et couches OSI
Couche du modèle ISO/OSI Description CAN spécification
Couche 2 : Liaison LLC (Logic Link Control)
Filtrage d'acceptance
Notification de overload
Recovery Management
MAC "Medium Access Control" Défauts de
Encapsulation/Decapsulation des données
Codage de trame (Stuffing/Destuffing) confinement
Medium Access Management
Delection d'erreur
Signalisation d'erreur
Acquittement
Serialisalion/désérialiation
Couche 1 : Physique PLS (Physical Signalling)
Codage/décodage bit
Bit timing Gestion des
Synchronisation Dysfonctionnements
PMA (Physical Medium Attach.) du bus
Caracteristiques Driver/Receiver
MDI (Medium Dependent Interf.)
Connecteurs
Les sous couches LLC, MAC et PLS sont traitées par les circuits
contrôleur de bus CAN (microcontrôleur, circuits spécialisés)
!6
3. Couche physique
Bits dominants et récessifs
■ La succession de bits transitant sur le bus est codé avec la méthode du NRZ (Non
Return To Zero).
■ Pendant la durée totale du bit, le niveau de tension de la ligne est maintenu, c’est à
dire que pendant toute la durée durant laquelle un bit est généré, sa valeur reste
constante qu’elle soit dominante ou récessive.
0 1 1 0 1 0 0
dominant récessif récessif dominant récessif dominant dominant
!7
3. Couche physique
Bits stuffing
■ 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
dans les valeurs à transmettre.
Trame à l'émission avant la mise en place des bits de stuffing
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Trame avec bits de stuffing (S)
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
!8
3. Couche physique
Bits timing
■ On définit la plus petite base de temps reconnue sur un bus CAN comme
étant le Time Quantum. Cette base de temps est une fraction de l’horloge de
l’oscillateur du bus. Un bit dure entre 8 et 25 quantum
Horloge
Quantum
Horloge prédivisée
Durée d'un bit (bit time)
!9
3. Couche physique
Longueur du bus et bits
Débit Longueur Longueur d'un bit
1 Mbit/s 30 m 1 µs
800 kbit/s 50 m 1,25 µs
Débit en kbits/s 500 kbit/s 100 m 2 µs
1000
250 kbit/s 250 m 4 µs
125 kbit/s 500 m 8 µs
62,5 kbit/s 1000 m 16 µs
20 kbit/s 2500 m 50 µs
100
10 kbit/s 5000 m 100 µs
10
1
Longueur
10 100 1000 10000 en m
!10
3. Couche physique
Principal support de transmission
■ Norme ISO 11898-2
■ De nombreux standards industriels fonctionnent avec un bus CAN, la première
norme du bus CAN est l’ISO 11898-2 spécifiant les caractéristiques du bus CAN
High Speed.
■ On note que le CAN peut très bien utiliser la fibre optique ou la transmission
hertzienne.
■ La transmission des données s’effectue sur une paire par émission différentielle
c’est à dire que l’on mesure la différence de tension entre les deux lignes (CAN H et
CAN L).
■ La ligne du bus doit se terminer par des résistances de 120 Ω (minimum 108 Ω,
maximum 132 Ω) à chacun des bouts.
!11
3. Couche physique
Niveaux de tension du bus CAN
!12
3. Couche physique
Constitution d’un noeud
■ Un nœud du bus CAN requiert pour son fonctionnement au sein du réseau un
microcontrôleur et un contrôleur CAN.
■ Ces considérations d'ordre général et architectural du découpage d'un concept ont
donné naissance à différentes familles de composants que nous pouvons résumer sous
les noms suivants :
▫ les gestionnaires de protocole,
▫ les microcontrôleurs à gestionnaire CAN intégré,
▫ les interfaces (transceivers - ou encore drivers) de lignes,
▫ les Serial Linked Input Output - SLIO.
!13
3. Couche physique
Constitution d’un noeud
Micro-
Microproces-
contrôleur
seur
Gestionnaire SLIO
Gestionnaire
de protocole de protocole
Interface de Interface de Interface de
ligne ligne ligne
CAN_H
term CAN_L term
!14
4. Trame de données
Trame de données
Cette trame (type standard CAN 2.0A) se décompose en sept parties principales
que l'on appelle des champs :
▪ début de trame (1 bit) start of frame (SOF)
▪ champ d'arbitrage (12 bits) arbitration field
▪ champ de commande (6 bits) control field
▪ champ de données (0 à 64 bits) data field
▪ champ de CRC (16 bits) CRC sequence
▪ champ d'acquittement (2 bits) ACKnowledgement field
▪ fin de trame (7 bits) end of frame (EOF)
Début de trame
Champ d'arbitrage
Champ de ACK
Champ de commande
Fin de trame
Champ de données Champ de CRC intermission
IDLE 1 12 6 0à 64 bits 16 2 7 3 IDLE
Trame de données
!15
4. Trame de données
Trame de données
■ Champ d’arbitrage
▪ Chaque station connectée au réseau écoute les trames transmises par les
stations émettrices. Ensuite chaque nœud décide quoi faire du message, s’il doit y
répondre ou non, s’il doit agir ou non, etc…
▪ Le protocole CAN autorise différents nœuds à accéder simultanément au bus.
C’est un procédé rapide et fiable d’arbitrage qui détermine le nœud qui émet en
premier.
▪ L’accès au bus est donc aléatoire car un nœud peut émettre à n’importe quel
moment. Mais cet accès se fait par priorité ; cette méthode est appelée CSMA
CD/AMP (Carrier Sense Multiple Acces with Collision Detection and Arbitration
Message Priority).
!16
4. Trame de données
Trame de données
■ Champ d’arbitrage
Ce champ est constitué des 11 bits de l'identificateur et d’un bit de RTR
(Remote Transmission Request).
Trame de données / requête
Procédure d'arbitrage
Bus
libre Récessif Pendant le champ d'arbitrage, les bits transmis
(passif) et reçus sont comparés par l'interface CAN
S I I I I I I I I I I I R
Tx d Transfert Tx r
Dominant Arbitrage
durant
Champ d'arbitrage (actif) perdu
Rx d l'arbitrage Rx d
I : 1 parmi 11 bits d'identificateur
R : Bit RTR Tx r
- récessif : trame de requête
Transfert Tx d
durant Erreur bit
- dominant : trame de données
Rx r l'arbitrage
S : bit de départ de trame Rx r
!17
4. Trame de données
Trame de données
■ Exemple d’arbitrage
Champ d'arbitrage
S Identificateur R Champ de
Champ de
O T données 0
commande
F 10 9 8 7 6 5 4 3 2 1 0
R à 8 octets
Station
1
Station
2
Station
3
La station La station 1
2 perd perd
l'arbitrage l'arbitrage
Signal
sur le bus
La station 3 a gagne le bus
!18
4. Trame de données
Trame de données
■ Champ de commande
Il est constitué de 6 bits. Les deux premiers sont des bits de réserve et leur
rôle est d’assurer des compatibilités futures ascendantes (par exemple avec les
trames étendues CAN 2.0B).
Champ de
Champ d'arbitrage Champ de commande
données
Bits de Data Lengh Code
réserve
DL DL DL DL
R0 R1
C3 C2 C1 C0
!19
4. Trame de données
Trame de données
■ Champ de commande
Les 4 derniers bits du champ de commande (champ DLC - Data Length Code)
indiquent le nombre d'octets de données contenus dans le champ de données
pour une trame de données ou bien le nombre d’octets dont a besoin un
nœud du réseau lors d’une trame de requête.
Nombre DLC DLC DLC DLC
d'octet 3 2 1 0
0 d d d d
1 d d d r
2 d d r d
3 d d r r
4 d r d d
5 d r d r
6 d r r d
7 d r r r
8 r d d d
!20
4. Trame de données
Trame de données
■ Champ de données
Le champ de données est l'endroit où se trouvent les données utiles
transmises. Il peut être composé de 0 octet minimum à 8 octets maximum.
Cette longueur a été déterminée lors de l’analyse du champ de contrôle. Dans
le cas d’une trame de requête, le champ de données est vide.
Champ de Champ de données Champ de
commande 0 à 8 octets CRC
M L
S S
B B
1 octet
!21
4. Trame de données
Trame de données
■ Champ de CRC (Cyclic Redundancy Check)
▪ Le champ de CRC permet de s’assurer de la validité du message transmis.
Seuls les champs de SOF, d’arbitrage, de contrôle et de données sont utilisés
pour le calcul de la séquence de CRC.
▪ Le CRC est un polynôme calculé de la même manière par l’émetteur et par
le récepteur de la trame : le message est vu par l’algorithme comme un
polynôme qui est divisé par X15+X14+X10+X8+X7+X4+X3+1 et le reste de
cette division est la séquence CRC transmise avec le message.
Champ de Champ
Champ de CRC d'acquittement
données ou de
commande
Séquence de CRC 15 bits Délimiteur
de CRC
!22
4. Trame de données
Trame de données
■ Champ d’acquittement ACK
Il est composé de 2 bits, l'ACK Slot et le ACK Délimiteur (1 bit récessif).
▪ Un nœud en train de transmettre envoie un bit récessif pour le ACK Slot.
▪ Un nœud ayant reçu correctement un message en informe le transmetteur
en envoyant un bit dominant pendant le ACK Slot : il acquitte le message.
Champ
Champ de CRC d'acquittement Fin de trame
Délimiteur de
ACK-Slot ACK
!23
4. Trame de données
Trame de données
■ Champ de fin de trame
▪ La trame de donnée se termine par un drapeau formé par une séquence de 7
bits récessifs, ce qui, dépasse de deux bits la largeur de 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.
!24
5. Trame de requête
Trame de requête
▪ Il se peut qu'un nœud ait besoin d'information d'un certain type dont il ne
dispose pas pour assurer la mission qui lui est dévolue. Dans ce cas, une station
nécessitant des données peut initialiser la demande d'une transmission des
données considérées par un autre nœud en envoyant une requête (remote
frame).
▪ Cette trame est constituée de la même manière qu’une trame de données
sauf que le champ de données est vide.
Espace Espace
inter Trame de requête de données inter
trame trame
Nb de bits 1 11 1 6 0à8 15 111 7 3
octets
Fin de
Identificateur Données (optionnel) Séquence de CRC trame
Commande Délimiteur ACK
Début de
Bit de RTR Délimiteur CRC
trame Slot ACK
Dans le champ d’arbitrage, le bit de RTR est récessif. C'est donc ce bit qui différencie
une trame de données d'une trame de requête.
!25
Références
1. Industrial Sensors and Controls in Communication Networks, Springer International
Publishing, Dong-Seong Kim, Hoa Tran-Dang, 2019
2. International Organization for Standardization (2003) Road vehicles: controller area
network: part 1: data link layer and physical signalling, ISO 11898-1
3. International Organization for Standardization (2003) Road vehicles: controller area
network: part 2: high-speed medium access unit, ISO 11898-2
4. International Organization for Standardization (2003) Road vehicles: controller area
network: part 3: low-speed, fault-tolerant, medium dependent interface, TC 22/SC 3/WG 1,
ISO/PRF 11898-3
!26