Controller Area Network

Transcription

Controller Area Network
Le réseau CAN
(Controller Area Network)
Nicolas NAVET
INRIA Lorraine - projet TRIO
[email protected] - 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:
Contrôle
Clim
Suspension
Moteur
Sièges
Tableau
de Bord
ABS
Plafonnier
Boite de
Vitesses
Centralisation
2
CAN: un réseau pour l’automobile
l automobile (2/4)
ƒ Architecture typique début 2000’s
2000 s
Contrôle
Cli
Clim
Suspension
CAN
Moteur
CAN
Sièges
CAN
CAN
C
A
N
Tableau
de Bord
C
A
N
CAN
CAN
ABS
Boite de
CAN
Vitesses
Centralisation
CAN High Speed
250kbit/s
CAN
Plafonnier
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
CAN High Speed
ISO
SO 11898
CAN Low Speed
ISO 11519-2
Longueur Temps bit
1 Mbit/s
30m
1us
500kbit/s
100m
2us
250kbit/s
250m
4us
125kbit/s
500m
8us
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
bits
⎣(n-1)/4⎦ bit
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
Micro-contrôleur
Microcontrô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