Vous êtes sur la page 1sur 42

Le réseau CAN

(Controller Area Network)


Nicolas NAVET
INRIA Lorraine - projet TRIO
nnavet@loria.fr - http://www.loria.fr/~nnavet

Certaines images de ce cours proviennent de :


- spécification CAN (CAN in Automation - http://www.can-cia.de )
- Cours de P. Koopman (http://www.ece.cmu.edu/~ece540/lecture/)
- Slid CAN IIn A
Slides Automation
i (h(http://www.can-cia.de
// i d )
CAN: un réseau pour l’automobile
l automobile (1/4)
ƒ CAN conçu pour le multiplexage véhicule
(conception BOSCH 1983 – normalisation ISO 1994)
ƒ Pourquoi multiplexer les communications ?
Réduction des coûts de câblage et de maintenance
ƒ Situation à la fin des 80’s:
80 s:
Clim
Contrôle Suspension
Moteur Sièges
Tableau
de Bord Plafonnier

ABS Boite de
Vitesses Centralisation

2
CAN: un réseau pour l’automobile
l automobile (2/4)
ƒ Architecture typique début 2000’s
2000 s Cli
Clim
Contrôle Suspension CAN
Sièges
Moteur CAN
CAN CAN C Tableau C
A A
N de Bord N
CAN
CAN CAN

ABS Boite de Plafonnier


CAN
Vitesses Centralisation

CAN High Speed 250kbit/s CAN Low Speed


ƒ Quelques chiffres :
ƒ R25 (fin 80’s) : 2 km de câbles cuivre ! >80kg
ƒ MB Classe C (2001) : 12 ECU’s – 25 fonctions
ƒ MB Classe S (2002) : > 50 ECU’s !
3
CAN: un réseau pour l’automobile
l automobile (3/4)
Des fonctions
critiques
Architecture de
communication

Calculateurs

Exemple d’architecture PSA 2004


4
Caractéristiques Techniques
ƒ Bus
B à diff
diffusion
i - technique
t h i CSMA
ƒ MAC priorisé avec arbitrage non destructif
ƒ Un identificateur unique par message :
ƒ priorité pour l’accès
l accès au bus
ƒ filtrage des messages en réception

ƒ Retransmission
R t i i automatique
t ti d
des ttrames corrompues
ƒ Compteurs d’erreurs sur chaque contrôleur
ƒ 8 octets de données au plus par trame

5
CAN dans le modèle OSI
ƒ CAN ne normalise
li que lles couches
h LDD ett physique
h i !

6
Modèles de coopération
ƒ Producteur – Consommateur(s)
( )

ƒ Client – Serveur

7
Couche Physique : codage NRZ
ƒ Non-Return
N R t tto Zero
Z (NRZ) C
Coding
di :

= 011010
ƒ Niveau logique 0 : bit dominant
ƒ Niveau logique 1 : bit récessif

8
Couche Physique : « et » logique
ƒ En
E cas de
d ttransmissions
i i simultanées
i lt é :
niveau 0 (dominant) + niveau 1 (récessif) = 0 sur le bus
ƒ Le temps bit minimum est 2 x temps de propagation
qui est fonction (données CiA) :
ƒ Contrôleurs CAN (50-62ns)
ƒ Interface
I t f de
d ligne
li (120
(120-250ns)
250 )
ƒ Opto-coupleur (40-140ns)
ƒ Câble (environ 5ns/m)

9
Les supports physiques

ƒ Standard ISO : paire torsadée


ƒ Autres supports envisageables :
9 Support monofilaire
9 Courant porteur
9 Transmission radio
9 Infra-rouge
9 Fibre-optique
9…
10
Couche Physique : débit vs longueur
ƒ En
E pratique,
ti on peutt atteindre
tt i d (réseau
(é filaire)
fil i ) :

Débit Longueur Temps bit


1 Mbit/s 30m 1us
CAN High Speed
ISO
SO 11898
500kbit/s 100m 2us

250kbit/s 250m 4us

125kbit/s 500m 8us


CAN Low Speed
ISO 11519-2
10kbit/s 5km 100us

11
Couche Physique : Bit
Bit-Stuffing
Stuffing (1/2)
ƒ Bit-Stuffing
Bit St ffi (t(taille=5)
ill 5) pour créer
é d des ffronts
t sur lle signal
i l

Suite de bits à transmettre

Au niveau du médium

A è «dé-stuffing»
Après dé t ffi

12
Couche Physique : Bit
Bit-Stuffing
Stuffing (2/2)

ƒ Bit-Stuffing : le pire cas

A
Accroissement
i t max d
de ⎣(n-1)/4⎦ bit
bits

13
Couche Physique : sensibilité EMI
ƒ Fct du support physique :

ƒ Fct du débit du bus : + élevé + de perturbations


ƒ Fct de l’environnement d’utilisation :
ƒ perturbations d’origine interne
ƒ Perturbations d’origine externe (radars, haute tension, FM ..)

14
Implémentations CAN typiques

Application

Microcontrôleur
Micro-contrôleur
avec composant
CAN intégré
Contrôleur CAN

I t f
Interface de
d ligne
li

Bus CAN
C

15
Les différents types de trame
ƒ Trame de données (data frame)
ƒ CAN standard (2.0A) : Ident. sur 11 bits
ƒ CAN étendu (2.0B) : Ident. sur 19 bits
ƒ Trame de demande de données (remote
transmission request
q - RTR))

ƒ Trame d’erreurs (error frame)


ƒ Trame de surcharge (overload frame)

16
Format de la trame de données (1/2)

ƒ CAN standard
t d d (2(2.0A)
0A) : identificateur
id tifi t d
de 11 bit
bits
En théorie: 2048 id différents, en pratique 2032 .. (id dans
[2033,2048] interdits)
ƒ CAN étendu (2
(2.0B)
0B) : identificateur de 29 bits
> 500 millions d’id différents

17
Format de la trame de données (2/2)

18
Champ d’arbitrage
d arbitrage
ƒ CAN standard (2
(2.0A)
0A)

r
d

ƒ CAN étendu (2.0B)

r
d

19
L’accès
L accès au bus (1/2)
ƒ La phase d’arbitrage
d arbitrage ou de « résolution des
collisions » : la trame la plus prio. gagne le bus
ƒ Se fait sur les champs Identificateur + RTR
ƒ Principe : chaque station émet puis écoute, si
la valeur lue est différente de la valeur émise, la
station sait qu’elle
qu elle a perdu l’arbitrage
l arbitrage
ƒ Conséquence : un aller-retour pour le signal
avant l’émission d’un nouveau bit d’où limite sur
le débit max
max.
20
L’accès
L accès au bus (2/2)

La station 3 remporte l’arbitrage


21
Champs de contrôle et de données
ƒ Champ de contrôle :

ƒ Bit RTR : 0 trame de données, 1 trame de demande.


ƒ IDE(2.0A)/r1(2.0B) : dominant (pour CAN 2.0B, le
champ IDE est un champ d’arbitrage)
ƒ r0 : dominant
ƒ DLC : taille des données (octets)
ƒ Champ de données : de 0 à 8 octets
22
Champs d’acquittement
d acquittement

ƒ ACK Slot : Émis récessif – toute station qui reçoit la


trame écrit un bit dominant

ƒ Signification de l’acquittement : au moins une


station a reçue la trame mais pas forcément le
destinataire !! L’acquittement
q est non-fiable
23
Champs soumis au bit
bit-stuffing
stuffing

Bit-Stuffing sur ces champs uniquement

24
Exercices
1. A un instant donné, le bus devient libre et 2 trames
d’identificateurs 31 et 29 (émises respectivement par
les stations 1 et 2) sont en concurrence. Représenter
les bits émis par la station 1 et 2 et le ni
niveau
ea rés
résultant
ltant
sur le bus.
2 Q
2. Quelle
ll est lla d
durée
é maximale
i l d de transmission
i i d’ d’une
trame CAN (2.0A) sur un réseau à 125kbit/s ?
3. Sur un bus CAN à 500kbit/s, quel débit utile (données)
peut-on espérer ?
4. Est-il possible d’envisager de transmettre le signal qui
ordonne le déclenchement d’un airbag sur un réseau
CAN à 125kbit/
125kbit/s ?
25
Trame de demande de données
ƒ Bit RTR à 1 (d’où
(d’ ù une priorité
i ité iinférieure
fé i à lla
trame de données!)
ƒ Ne contient pas de données
ƒ La réponse n’est pas « écrite » dans la trame
ƒ Permet une coopération de type Client
Client-Serveur
Serveur
ƒ Induit une surcharge sur le réseau
ƒ Aucune garantie sur le délai de la réponse !

26
Les erreurs de transmission
ƒ Pas de technique de correction automatique
ƒ Principe : une station qui détecte une erreur, la
signale aux autres par une trame d’erreur (6 bits
dominants)
ƒ La trame corrompue participera à un prochain
arbitrage (mais ne gagne pas en priorité)
ƒ Probabilité d’erreur résiduelle très faible (de
l’ordre de 10-12)

27
Les ≠ types d’erreurs
d erreurs

ƒ Bit-stuffing : 6 bits consécutifs même niveau


ƒ Bit-error : dominant + récessif = récessif !
ƒ CRC error : CRC calculé ≠ CRC trame
ƒ Acknowledgement error : pas d’acquittement
ƒ Form error : mauvaise valeur pour un champ fixe

28
La trame d’erreur
d erreur

ƒ Meilleur cas : retransmission après 17 bits


ƒ Pire cas : retransmission après 23 bits
29
Erreur de bit
bit-stuffing
stuffing

Bit t ffi uniquement


Bit-stuffing i t sur ces champs
h

ƒ 6 bits consécutifs de même niveau entraînent


une erreur de bit-stuffing
ƒ La
L ttrame d’
d’erreur permett d
de propager l’l’erreur à
toutes les stations …
30
Erreur du niveau d’un
d un bit

vérification uniquement sur ces champs

ƒ Bit-error = émission d’un bit dominant et


réception d’un
d un bit récessif

31
Erreur de CRC

CRC calculé
l lé sur ces champs
h

ƒ Erreur de CRC : le CRC reçu est différent du


CRC calculé

32
Erreur d’acquittement
d acquittement

ƒ Erreur d’acquittement : ACK slot récessif

33
Erreur « de forme »
End of Frame

Délimiteur de CRC Délimiteur d’ACK

ƒ Erreur de forme : un champ dont la valeur est


fi é par lle protocole
fixée l n’a
’ pas lla valeur
l attendue
d

34
Le confinement d’erreurs
d erreurs
ƒ Problème sur CAN : une station défectueuse peut
p
perturber le fonctionnement de tout le système .. (ex: envoi
ininterrompu
p de trames d’erreurs))
ƒ Une solution : les stations «défectueuses» se
déconnectent automatiquement (ou limitent leur
prérogatives comme le signalement d’erreurs)
ƒ Comment détecter un pb ? 2 compteurs d’erreurs
d erreurs
de transmission sur chaque contrôleur
ƒ sur les trames émises (TEC – transmit error counter)
ƒ sur les trames reçues (REC – receive error counter)

35
Les 3 états d’une
d une station
Selon la valeur des compteurs :
ƒEtat Erreur-active : fonctionnement normal
ƒEtat Erreur-passive :
- émission possible mais 8 bits après que le bus soit
libre (temps de réponse !!)
- plus
l d de signalement
i l t d’
d’erreurs
ƒ Etat Bus-off :
- la station se déconnecte du bus (plus d’émission ni
de réception)
36
Évolution des compteurs
ƒ REC :
ƒ Réception d’une trame corrompue : +1 (jusque 128)
ƒ Réception d’une trame correcte : -1 (si >0)
ƒ TEC :
ƒ Emission d’une trame corrompue : +8 (jusque 256)
ƒ Emission d’une trame correcte : -1 (si >0)

Ö Il existe
i t quelques
l exceptions
ti mineures
i à ces
règles (ex: quand une station est seule sur le réseau)
37
Les règles de changement d’états
d états

38
Conclusion sur le confinement d’erreurs
d erreurs
Le confinement est un plus pour la sûreté
de fonctionnement mais …
ƒ de fortes EMI peuvent conduire à bus
bus-off
off ou
erreur passive sans dysfonctionnement hardware
ƒ le concepteur doit évaluer les risques et prévoir
des changements de mode de marche (ex: que
faire si le contrôle-moteur est bus-off ??)
ƒ des études ont montrés que le REC ne servait à
rien si la station émettait .. (on passe toujours en
erreur-passive
erreur passive plus tôt avec le TEC)
39
Trame de surcharge
ƒ Une station émet une trame de surcharge (6 bits
dominants) pour signaler qu’elle ne peut recevoir la
prochaine trame (p
p (pas p
plus de 2 consécutivement))

Ö En pratique très rarement utilisé ..


40
Un « bug » du protocole
Certaines trames peuvent être reçues en double !
1. une perturbation localisée à certaines stations (dont
l’é tt ) sur lle d
l’émetteur) dernier
i bit d
du champ
h EOF :
retransmission ..
2 Toutes les stations non-affectées
2. non affectées reçoivent 2x la trame

Conséquences
q : sur un réseau CAN
ƒ ne jamais utiliser de messages on/off
ƒ pas d’incréments
d c é e ts relatifs
e at s ((+20°)
0)

Vraisemblablement pas de validation formelle du protocole …


41
Conclusions
ƒ CAN standard dans l’industrie automobile,
pourquoi ?
ƒ bien adapté aux
a e exigences
igences temps réel d
du domaine
ƒ très bon marché
ƒ simple d’utilisation
ƒ Mais :
ƒ débit limité (par la technique d’accès au bus)
ƒ peu de services: en particulier
particulier, peu de fonctionnalités
relatives à la sûreté de fonctionnement

42

Vous aimerez peut-être aussi