Académique Documents
Professionnel Documents
Culture Documents
LT La Salle Avignon
- 1/23 -
- Bus CAN -
Le bus CAN
Introduction
Le bus CAN (Controller Area Network) est n du besoin de trouver une solution de
communication srie dans les vhicules automobiles. Il a t initialement dvelopp par la
socit Bosch, au milieu des annes 80, puis a fait l'objet d'une normalisation ISO 11898 et
11519.
Le bus CAN est un rseau part entire respectant le modle d'interconnexion des systmes
ouverts (modle OSI) de l'ISO et il est class dans la catgorie des rseaux de terrain utiliss
dans l'industrie pour remplacer la boucle analogique 4/20mA.
Remarque : Le GIE Renault-PSA avec les partenaires comme Sagem, Valeo et autres ont
dvelopp le bus VAN (Vehicule Area Network).
Protocole CAN
Le protocole CAN (Control Area Network) est un protocole de communication srie qui
supporte des systmes temps rel avec un haut niveau de fiabilit.
La norme ISO 11898 spcifie un dbit maximum de 1Mbits/s. La longueur maximum du bus
est dtermine par la charge capacitive et le dbit (de 20 kbps sur 1 km 1Mbps sur 40 m).
La structure du protocole du bus CAN possde implicitement les principales proprits
suivantes :
souplesse de configuration
fonctionnement multi matre
dtections et signalisations derreurs
retransmission automatique des messages altrs
dconnexion automatique des nuds dfectueux
Le protocole CAN ne couvre que 2 (ou 3) des 7 couches du modle OSI : les couches
PHYSIQUE et LIAISON et ventuellement la couche APPLICATION.
LT La Salle Avignon
- 2/23 -
- Bus CAN -
Le protocole est bas sur le principe de diffusion gnrale : lors de transmission, aucune
station n'est adresse en particulier, mais le contenu de chaque message est explicit par une
identification reue par tous les abonns. Grce cet identificateur, les noeuds, qui sont en
permanence l'coute du rseau, reconnaissent et traitent les messages qui les concernent.
Elles ignorent simplement les autres.
Applications
La premire utilisation en srie du bus CAN date de 1992 avec une Mercedes Classe S. Bien
entendu, il y a plusieurs types de rseaux communicants utiliss dans l'industrie automobile
(GM et FORD avec le J1850, Renault et Peugeot avec le VAN). Mais la tendance se dirige
vers le bus CAN (Peugeot l'utilise dans ses modles rcents 607, 307 et 206 par exemple).
Dans un vhicule, plusieurs rseaux multiplexs cohabitent :
rseau carroserie (optiques, rtroviseurs, vitres, ...) faible dbit (32,5 62,5 kbps)
avec peu d'informations et un temps de rponse demand de 100 ms
rseau inter-systmes (ABS, ...) dbit moyen (125 500 kbps) avec peu
d'informations et un temps de rponse demand de 10 ms
rseau confort (auto-radio, climatisation, navigation, ...) dbit moyen (125 kbps
1 Mbps) avec un grande quantit d'informations et un temps de rponse faible de
500 ms
rseau diagnostic (appel aussi liaison K) dbit faible (10 kbps) avec un grande
quantit d'informations et un temps de rponse lent de l'ordre de la seconde)
Autres applications :
Du fait de son efficacit et de sa robustesse prouve, le bus CAN est galement utilis dans
de nombreuses applications industrielles (systmes de navigation maritime, ascenseurs,
machines agricoles, photocopieurs, systmes mdicaux, industrie textile, machines outils,
systme de production industrielle, ...)
Modle OSI
Le bus CAN couvre la couche 2 (LIAISON) et la couche 1 (PHYSIQUE) du modle OSI :
LT La Salle Avignon
- 3/23 -
- Bus CAN -
Dfinitions
Nud : sous-ensemble reli un rseau de communication et capable de communiquer sur le
rseau selon un protocole de communication (ici le protocole CAN). Chaque nud peut
dtecter des erreurs sur un message qui ne lui est pas destin et en informer les autres nuds.
Valeurs du bus : le bus peut avoir lune des deux valeurs logiques complmentaires dfinies,
non pas en 0 et 1 comme dhabitude, mais sous la forme de bit nomm dominant ou rcessif.
dominant
rcessif
rcessif
dominant
rcessif
dominant
dominant
Message : chaque information est vhicule sur le bus laide dun message (trame de bits)
de format dfini mais de longueur variable et limite. Ds que le bus est libre, nimporte quel
nud reli au rseau peut mettre un nouveau message.
Routage des informations : des nuds peuvent tre ajouts au rseau sans quil ny ait rien
modifier tant au niveau logiciel que matriel. Chaque message possde un identificateur
(identifier) qui nindique pas la destination du message mais la signification des donnes du
message. Ainsi tous les nuds reoivent le message, et chacun est capable de savoir grce au
systme de filtrage de message si ce dernier lui est destin ou non.
LT La Salle Avignon
- 4/23 -
- Bus CAN -
Trame de donnes et de requte : une trame de donnes transporte, comme son nom
lindique, des donnes. Une trame de requte est mise par un nud dsirant recevoir une
trame de donnes (dans ce cas lidentificateur est le mme pour les deux trames).
Dbit (bit/s) : le dbit peut varier entre diffrents systmes, mais il doit tre fixe et uniforme
au sein dun mme systme.
Priorits : en cas de demandes de prise du bus simultanes les identificateurs de chaque
message permettent aussi de dfinir quel message est prioritaire sur tel autre.
Fonctionnement multi-matre : lorsque le bus est libre, chaque nud peut dcider denvoyer
un message. Seul le message de plus haute priorit prend possession du bus.
Arbitrage : le problme de larbitrage rsulte du fonctionnement multi matre. Si deux nuds
ou plus tentent dmettre un message sur un bus libre il faut rgler les conflits daccs. On
effectue alors un arbitrage bit bit non destructif tout au long du contenu de lidentificateur.
Ce mcanisme garantit quil ny aura ni perte de temps, ni perte dinformations. Dans le cas
de deux identificateurs des trames de requte et de donnes identiques, la trame de donnes
gagne le bus. Lorsquun bit rcessif est envoy et quun bit dominant est observ sur le bus,
lunit considre perd larbitrage, doit se taire et ne plus envoyer aucun bit.
Canal de liaison simple : le bus consiste en un simple canal bidirectionnel qui transporte les
bits. A partir des donnes transportes, il est possible de rcuprer des informations de
resynchronisation.
Acquittement : tous les rcepteurs vrifient la validit dun message reu, et dans le cas dun
message correct ils doivent acquitter en mettant un flag.
Scurit de transmission : dans le but dobtenir la plus grande scurit lors de transferts sur
le bus, des dispositifs de signalisation, de dtection derreurs, et dautotests ont t
implments sur chaque nud dun rseau CAN. On dispose ainsi dun monitoring bus
(vrification du bit mis sur le bus), dun CRC (Cyclic Redundancy Check), dune
procdure de contrle de larchitecture du message et dune mthode de Bit-Stuffing.
Signalement des erreurs et temps de recouvrement des erreurs : tous les messages entachs
derreur(s) sont signals au niveau de chaque nud par un flag. Les messages errons ne sont
pas pris en compte, et sont retransmis automatiquement.
Erreurs de confinement : un nud CAN doit tre capable de faire les distinctions entre des
perturbations de courtes dures et des dysfonctionnements permanents. Les nuds considrs
comme dfectueux doivent passer en mode switched off en se dconnectant (lectriquement)
du rseau.
Mode Sleep (sommeil) et Mode Wake-up (rveil) : afin de rduire la consommation dnergie,
chaque lment CAN peut se mettre en Sleep mode. Dans ce mode il ny a aucune activit
interne au nud CAN considr et ses drivers sont dconnects du bus. La reprise de
fonctionnement (mode Wake-up) seffectue lorsquil y a une activit sur le bus ou par
dcision interne llment CAN.
LT La Salle Avignon
- 5/23 -
- Bus CAN -
Mthode de Bit-Stuffing : Cette mthode consiste, ds que lon a mis 5 bits de mme
polarit sur le bus, insrer un bit de polarit contraire pour casser des chanes trop
importantes de bits identiques. On obtient ainsi dans le message un plus grand nombre de
transitions ce qui permet de faciliter la synchronisation en rception par les nuds. Cette
technique est uniquement active sur les champs de SOF, darbitrage, de contrle, de CRC
(dlimiteur exclu). Pour un fonctionnement correct de tout le rseau, cette technique doit
tre implmente aussi bien la rception qu lmission.
Exercice n1
LT La Salle Avignon
- 6/23 -
- Bus CAN -
Trame de donnes
Le dbut de trame (SOF) nest effectif que si le bus tait prcdemment au repos (bus idle).
LT La Salle Avignon
- 7/23 -
- Bus CAN -
Dterminer, pour les formats standard et tendu, les longueurs minimum et maximum en
bits d'une trame de donnes circulant sur le bus CAN en ne tenant pas compte du bitstuffing.
Rponses :
Exercice n3
Exercice n4
Calculer alors le rendement du protocole CAN lorsqu'il met une trame de donnes
complte.
Rponse :
LT La Salle Avignon
- 8/23 -
- Bus CAN -
Exercice n5
Exercice n6
Avec des trames de 60 bits en moyenne, dduire le nombre maximum de trames pouvant
circuler sur le bus en une seconde et ce pour le dbit maximum (1 Mbits/s).
Rponse :
Exercice n7
Dans le cas o il y a 4 noeuds identiques qui mettent et reoivent 16 trames (de 60 bits en
moyenne) par secondes , dterminer le taux de charge maximum pour ce bus.
Rponse :
LT La Salle Avignon
- 9/23 -
- Bus CAN -
Arbitrage
Dans une trame standard, le champ darbitrage est compos des 11 bits de lidentificateur
plus un bit de RTR (Remote Transmission Request) qui est dominant pour une trame de
donnes et rcessif pour une trame de requte.
Dterminer en thorie le nombre de messages qu'il est possible de dfinir pour une trame
standard.
Rponse :
Les bits de lidentificateur sont numrots de ID_10 ID_0 (du MSB vers LSB). Par ailleurs
les 7 bits les plus significatifs (de ID_10 ID_4) ne doivent pas tous tre rcessifs, ce qui
rduit le nombre de combinaisons possibles.
Exercice n9
LT La Salle Avignon
- 10/23 -
- Bus CAN -
Le procd dattribution du bus est bas sur le principe de l'arbitrage bit bit, selon lequel
les noeuds en comptition, mettant simultanment sur le bus, comparent bit bit
l'identificateur de leur message avec celui des messages concurrents. Les stations de priorit
moins leves perdront la comptition face celle qui a la priorit la plus leve.
Les stations sont cbles sur le bus par le principe du "ET cbl", en cas de conflit c'est
dire mission simultane, la valeur 0 crase la valeur 1.
On appelle donc l'tat dominant l'tat logique 0, et l'tat rcessif l'tat logique 1.
Les bits de lidentificateur sont transmis dans lordre, de ID_10 ID_0 (du MSB vers LSB).
Exemple :
Dans lexemple ci-dessus, les stations 1, 2 et 3 demandent le bus en mme temps. Pour les
dpartager, on applique la mthode darbitrage et les premires stations a mettre un bit
rcessif sont exclues et devront attendre que la station qui a pris le bus (la station avec la
priorit la plus haute) libre la ligne.
Dans lexemple la station 1 est exclue en premier puis la station 3. La station 2 donc la
plus haute priorit.
Le bus CAN utilise la mthode d'accs CSMA/CR (Carrier Sense Multiple Access /
Collision Resolution) dont les principes gnraux sont les suivants :
Toutes les stations sont gales
Chaque station met quand elle veut (bus libre)
Les collisions sont acceptes
Les collisions sont dtectes par les stations
Les collisions sont gres par le protocole
Il y a une stratgie d'arbitrage des collisions
La station qui remporte l'arbitrage continue sa transmission
LT La Salle Avignon
- 11/23 -
- Bus CAN -
Exercice n10
A partir de l'exemple prcdent, attribuer les priorits pour les 3 noeuds en fonction de leur
rle.
Rponses :
- un capteur de temprature reli sur le noeud ___
- le capteur danti-patinage reli sur le noeud ___
- lABS reli sur le noeud ___
Exercice n11
Champ de contrle
Le champ de contrle est compos de 6 bits. Les deux premiers sont des bits de rserve et
leur rle est dassurer des compatibilits futures ascendantes.
LT La Salle Avignon
- 12/23 -
- Bus CAN -
Les quatre derniers bits permettent de dterminer le nombre doctets de donnes contenus
dans le champ de donnes. Le nombre doctets de donnes ne peut pas excder la valeur de 8
(soit 64 bits).
Codage des bits DLC suivant la taille des donnes en octets (D : bit Dominant et R : bit
Rcessif) :
Taille des
donnes en
octets
DLC2
DLC1
DLC0
Exercice n12
Complter la trame (jusqu'au champ CRC exclu) dans le cas o un noeud met les donnes
'B' (0x42) suivi de la valeur 6.
Rponse :
LT La Salle Avignon
- 13/23 -
- Bus CAN -
Trame de requtes
Une trame de requte est constitue de la mme manire quune trame deux diffrences
prs :
Si un nud a besoin dun certain nombre de donnes, il va mettre une trame de requte ds
que le bus sera libre en prenant soin dindiquer dans le champ de contrle (DLC) le nombre
doctets de donnes dont il a besoin.
Exercice n13
Que se passe-t-il si deux noeuds mettent chacun une trame possdant le mme identificateur
mais une des deux trames est une trame de donnes et l'autre une trame de requte.
Conclure sur la priorit entre une trame de donnes et une trame de requte.
Rponse :
LT La Salle Avignon
- 14/23 -
- Bus CAN -
Champ CRC
le champ de CRC est compos de 16 bits. La squence CRC calcule est contenue dans les 15
premiers bits tandis que le dernier bit est un dlimiteur de fin de champ de CRC (bit
toujours rcessif).
Champ d'acquittement
Le champ dacquittement possde 2 bits.
Si aucune erreur na t dtecte par un nud, ce dernier met un bit dominant sinon il met
une trame derreur. La station mettrice du message originel doit alors tre capable de ragir
en fonction de lmission dun bit dominant ou non par les autres stations sur le premier bit
du champ dacquittement.
Le second bit est un bit dlimiteur dacquittement qui doit toujours tre rcessif.
- 15/23 -
- Bus CAN -
LT La Salle Avignon
- 16/23 -
- Bus CAN -
Flag d'erreur
Intertrame ou
trame de
surcharge
Dlimiteur d'erreur
A l'issue de 8 bits dlimiteurs, le bus est libr (3 bits inter-trame) et les communications
peuvent reprendre. Le nud essaiera nouveau de transmettre le message.
Exercice n14
Complter le diagramme suivant dans le cas o le noeud B dtecte un Bit Error (not E).
Rponse :
LT La Salle Avignon
- 17/23 -
- Bus CAN -
Exercice n15
Le confinement d'erreurs
Etant donn qu'une station dfectueuse peut perturber le fonctionnement de tout le systme
(envoi ininterrompu de trames d'erreurs), les noeuds dfectueux se dconnectent
automatiquement (ou limitent leur fonctionnement comme le signalement d'erreurs). Pour
mettre en oeuvre le confinement, chaque noeud comporte obligatoirement deux compteurs :
sur les trames mises (TEC - Transmit Error Counter)
sur les trames reues (REC - Receive Error Counter)
Ces compteurs s'incrmentent et se dcrmentent en utilisant un mcanisme de pondration
sophistiqu. Pour simplifier, on considrera le fonctionnement suivant (Il existe notamment
quelques exceptions ces rgles) :
REC :
Rception d'une trame corrompue : +1 (jusque 128)
Rception d'une trame correcte : -1 (si >0)
TEC :
Emission d'une trame corrompue : +8 (jusque 256)
Emission d'une trame correcte : -1 (si >0)
Suivant la valeur de ces compteurs, le noeud se trouve dans un des 3 tats suivant :
Etat Erreur-active : fonctionnement normal
Etat Erreur-passive : mission possible mais 8 bits aprs que le bus soit libre
(temps de rponse !), plus de signalement d'erreurs (le noeud transmet
uniquement des passive error flag constitus de bits recessifs)
Etat Bus-off : la station se dconnecte du bus (plus d'mission ni de rception)
Reset et
configuration
Erreur
active
Erreur
passive
Bus "OFF"
- 18/23 -
- Bus CAN -
Exercice n16
Ceci peut durer indfiniment, si par hasard les erreurs persvrent, les compteurs d'erreurs
augmentent, le circuit produisant l'erreur (ou s'en rendant compte) passe le premier en mode
bus off. A ce moment l il ne devrait plus y avoir d'erreur et, le message devrait alors bien
passer. Et si tous les noeud sont rcalcitrants sauf votre noeud, que se passe-t-il ?
Rponse :
Trame de surcharge
La trame de surcharge indique aux autres nuds quune station est surcharge. Elle est
forme de deux champs :
le drapeau de surcharge (Overload Flag) avec six bits dominants,
le dlimiteur de surcharge (Overload Delimiter) avec huit bits rcessifs.
LT La Salle Avignon
- 19/23 -
- Bus CAN -
Une priode dhorloge correspond ce que lon appelle le Nominal Bit Time. Le Nominal
Bit Time reprsente donc la dure dun bit sur le bus. Le niveau de tension est maintenu
constant pendant la dure d'un bit (NRZ). Chaque station relie sur le bus doit tre cadence
avec le mme Nominal Bit Time pour pouvoir mettre et recevoir correctement les donnes
circulant sur le bus.
La norme dcrit avec prcision la composition de ce Nominal Bit Time qui est divis en
plusieurs segments :
le segment de synchronisation (SYNC_SEG);
le segment de propagation (PROP_SEG) sert compenser les retards temporels
physiques dans le rseau. Sa valeur est fixe deux fois la somme du temps de
propagation des signaux dans les lignes du bus et des retards apports par les entressorties des drivers de lignes ;
le segment de phase buffer n1 (PHASE_SEG1),
le segment de phase buffer n2 (PHASE_SEG2) ces deux segments sont utiliss pour
compenser les erreurs de synchronisation. Ils peuvent tre allongs ou raccourcis par la
resynchronisation. .
On dfinit 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.
LT La Salle Avignon
- 20/23 -
- Bus CAN -
Le point d'chantillonnage (sample point) est l'instant o l'tat du bus est lu et o la valeur
du bit est interprte. Il se place la fin de PHASE_SEG1. Sur des bus CAN lents ou trs
perturbs, on pourra prendre trois points d'chantillonnage.
Pour corriger les drives du Nominal Bit Time, il faut placer des butes que la drive de la
priode ne pourra pas dpasser. La bute en question s'appelle le RJW : Resynchronisation
Jump Width. Le RJW est une variable entire programme une valeur comprise entre 1 et
le minimum de (4, segment de phase1). La valeur est mise dans le registre du circuit lors de
l'initialisation et ne change pas en cours de fonctionnement.
Remarque : il faudra donc consulter la documentation du circuit mise en oeuvre pour assurer
sa configuration. On devra :
dfinir une base pour la vitesse de transmission et un temps de synchronisation (ces
temps doivent tre gaux sur tous les systmes d'un mme rseau)
dfinir la dure de chaque bit, le point d'chantillonnage et le nombre
d'chantillonnages.
Exemple : les registres du SJA1000 (nominal bit time = tSYNCSEG + t
LT La Salle Avignon
- 21/23 -
TSEG1
+ tTSEG2)
- Bus CAN -
Exercice n17
Le circuit contrleur CAN SJA1000 16 Mhz a t configur avec les valeurs suivantes :
BTR0 = 0x43 et BTR1 = 0x2F. Dterminer le dbit de ce bus CAN.
Rponse :
Longueur et dbit
La longueur du bus dpend des paramtres suivants :
Le dlai de propagation sur les lignes physiques du bus.
La diffrence du quantum de temps dfini prcdemment, du aux diffrences de
cadencement des oscillations des nuds.
L'amplitude du signal qui varie en fonction de la rsistance du cble et de l'impdance
d'entre des nuds.
Remarques : la longueur du bus diminue lorsque le dbit augmente. Au del d'une certaine
distance (suprieure au km), il faudra mettre en place des rpteurs.
Dbit
1 Mbit/s
800 kbit/s
500 kbit/s
250 kbit/s
125 kbit/s
62,5 kbit/s
20 kbit/s
10 kbit/s
LT La Salle Avignon
Longueur
30 m
50 m
100 m
250 m
500 m
1000 m
2500 m
5000 m
- 22/23 -
- Bus CAN -
Caractristiques lectriques
La transmission des donnes est effectue sur une paire filaire diffrentielle. La ligne est donc
constitue de deux fils :
CANL (CAN LOW) -> broche 2 d'un connecteur DB9
CANH (CAN HIGH) -> broche 6 d'un connecteur DB9
Le CAN est un bus de terrain, soumis des parasites importants. La transmission en paire
diffrentielle permet de s'affranchir de ces problmes : l'immunit lectromagntique (EMI)
est assure car les deux lignes sont toutes deux affectes de la mme manire par la
perturbation.
Le tableau ci-dessous rsume les principales diffrences entre les deux types de bus:
Paramtres
Dbit
125 kb/s
2 20
2 30
25 50 mA sur 60
Niveau dominant
CAN H = 4V
CAN L = 1V
VCAN H - VCAN L = 2V
Niveau rcessif
CAN H = 1,75V
CAN L = 3,25V
Caractristique du cble
2*120
Tensions dalimentation
5V
5V
Bibliographie
Le bus de terrain CAN de Patrice Kadionik :
http://www.enseirb.fr/~kadionik/formation/canbus/canbus.html
Le rseau CAN et le protocole CANOpen : http://www.a2v.fr/program/canopen.htm
Gestion du bus CAN : http://www.oberle.org/can-index.html
Introduction au bus CAN : http://edelaunay.chez.tiscali.fr/buscan.htm
etc ...
LT La Salle Avignon
- 23/23 -