Controller Area Network - Nicolas Navet

99 downloads 138 Views 409KB Size Report
CAN: un réseau pour l'automobile (1/4). CAN: un réseau pour l automobile (1/4). ▫ CAN conçu pour le multiplexage véhicule. ▫ CAN conçu pour le multiplexage ...
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

Suggest Documents