Liaison optique et bus CAN
Liaison optique et bus CAN
Chapitre 6
Bus CAN
hiérar
hisation des messages,
garantie des temps de laten
e,
souplesse de
onguration,
ré
eption de multiples sour
es ave
syn
hronisation temporelle,
fon
tionnement multimaître,
déte
tions et signalisations d'erreurs,
retransmission automatique des messages altérés dès que le bus est de nouveau au
repos,
distin
tion d'erreurs: d'ordre temporaire ou de non-fon
tionnalité permanente au
niveau d'un n÷d,
dé
onnexion automatique des n÷uds défe
tueux.
En étudiant la norme BOSCH on se rend
ompte que le proto
ole CAN ne
ouvre
seulement que deux des sept
ou
hes du modèle d'inter
onnexion des systèmes ouverts
OSI de l'ISO.
les propriétés (éle
triques, éle
troniques...) du système. Il est évident qu'à l'intérieur d'un
même et unique réseau la
ou
he physique doit être la même pour
haque n÷ud. Cette
ou
he s'o
upe don
:
de gérer la représentation du bit (
odage, timing...),
de gérer la syn
hronisation bit,
de dénir les niveaux éle
triques des signaux,
de dénir le support de transmission.
Cou he physique
PLS(Physi al Signaling)
Conne teurs
la trame de données gagne le bus. Lorsqu'un bit ré
essif est envoyé et qu'un bit
dominant est observé sur le bus, l'unité
onsidérée perd l'arbitrage, doit se taire
et ne plus envoyer au
un bit. L'arbitrage est qualié de CSMA/CA (Carrier Sense
Multiple A
ess - Collision Avoidan
e).
Sé
urité de transmission: dans le but d'obtenir la plus grande sé
urité lors de
transferts sur le bus, des dispositifs de signalisation, de déte
tion d'erreurs, et d'au-
totests ont été implémentés sur
haque n÷ud d'un réseau CAN. On dispose ainsi
d'un monitoring bus (véri
ation du bit émis sur le bus), d'un CRC (Cy
li
Re-
dundan
y Che
k), d'une pro
édure de
ontrle de l'ar
hite
ture du message, d'une
méthode de Bit-Stung. On déte
te alors toutes les erreurs globales, toutes les er-
reurs lo
ales au niveau des émetteurs, jusqu'à 5 erreurs aléatoires réparties dans un
message. La probabilité totale résiduelle de messages enta
hés d'erreurs est inférieure
à 4, 7 · 10−11 .
Signalement des erreurs et temps de re
ouvrement des erreurs: tous les
messages enta
hés d'erreur(s) sont signalés au niveau de
haque n÷ud par un ag.
Les messages erronés ne sont pas pris en
ompte, et doivent être retransmis auto-
matiquement.
Erreurs de
onnement: un n÷ud CAN doit être
apable de faire les distin
tions
entre des perturbations de
ourtes durées et des dysfon
tionnements permanents.
Les n÷ds
onsidérés
omme défe
tueux doivent passer en mode swit
hed o en se
dé
onne
tant (éle
triquement) du réseau.
Points de
onnexion: la liaison de
ommuni
ation série CAN est un bus sur le-
quel un nombre important d'unités peuvent être ra
ordées. En pratique le nombre
total d'unités sera déterminé par les temps de retard (dus aux phénomènes de pro-
pagation) et/ou les valeurs des
harges éle
triques que
es unités présentent sur le
bus.
Canal de liaison simple: le bus
onsiste en un simple
anal bidire
tionnel qui
transporte les bits. A partir des données transportées, il est possible de ré
upérer
des informations de resyn
hronisation. La façon dont le
anal est implémenté (l
standard, liaison optique, paire diérentielle...) n'est pas déterminée dans la norme
o
ielle BOSCH.
A
quittement: tous les ré
epteurs vérient la validité d'un message reçu, et dans
le
as d'un message
orre
t ils doivent a
quitter en émettant un ag.
Mode Sleep (sommeil), Mode Wake-up (réveil): an de réduire la
onsomma-
tion d'énergie,
haque élément CAN peut se mettre en Sleep mode. Dans
e mode
il n'y a au
une a
tivité interne au n÷ud CAN
onsidéré et ses drivers sont dé
on-
ne
tés du bus. La reprise de fon
tionnement (mode Wake-up ) s'ee
tue lorsqu'il y
90 6. Bus CAN
a une a
tivité sur le bus ou par dé
ision interne à l'élément CAN. On observe une
attente due à une resyn
hronisation de l'os
illateur lo
al qui teste la présen
e de 11
bits
onsé
utifs sur le bus (l'a
tivité interne au n÷ud CAN a
ependant repris). Par
suite les drivers se re
onne
tent au bus. An d'obtenir les meilleures performan
es
en débit sur un réseau de type CAN, il est né
essaire d'utiliser des os
illateurs à
quartz.
Le transfert des messages se manifeste et est
ommandé à l'aide de quatre types de
trames spé
iques et d'un intervalle de temps les séparant. Outre les trames de données
et de requête, on a don
également des trames d'erreurs (émises par n'importe quel n÷ud
dès la déte
tion d'une erreur), et des trames de sur
harge (
es trames
orrespondent à
une demande d'un laps de temps entre les trames de données et de requête pré
édentes et
su
essives). Il existe un espa
e intertrame de 3 bits ré
essifs entre les trames de données
et de requête. En
e qui
on
erne le ot de bits des trames du bus CAN, la méthode de
odage NRZ (Non Retour à Zéro) a été retenue. Ce
i revient à dire que pendant la durée
totale du bit généré son niveau reste
onstant qu'il soit dominant ou ré
essif.
De plus an de sé
uriser la transmission des messages on utilise la méthode dite de
Bit-Stung (bit de transparen
e). Cette méthode
onsiste, dès que l'on a émis 5 bits de
même polarité sur le bus, à insérer un bit de polarité
ontraire pour
asser des
haînes trop
importantes de bits identiques. On obtient ainsi dans le message un plus grand nombre de
transitions
e qui permet de fa
iliter la syn
hronisation en ré
eption par les n÷uds. Cette
te
hnique est uniquement a
tive sur les
hamps de SOF(Start Of Frame), d'arbitrage, de
ontrle, de CRC (délimiteur ex
lu). Pour un fon
tionnement
orre
t de tout le réseau,
ette te
hnique doit être implémentée aussi bien à la ré
eption qu'à l'émission.
Généralement, CAN utilise
omme support de transmission une paire torsadée blindée
ou non blindée. La norme CAN ne spé
ie pas de
ou
he physique unique. Diérentes
implémentations sont don
possibles: bre optique,
âble
oaxial, infrarouge, et
.
Les n÷uds sont reliés entre eux par l'intermédiaire d'un bus série équipé de termina-
teurs de lignes (résistan
es de terminaison).
Pour le
odage de bit, CAN a retenu le
ode NRZ (Non Retour à Zéro) pour sa
simpli
ité.
6.1. Introdu
tion 91
Longueur et débit
À
ause du délai de propagation sur le médium qui est non nul, deux n÷uds peuvent
déte
ter simultanément que le bus est libre et peuvent don
transmettre en même temps.
En parti
ulier, un n÷ud se trouvant à une extrémité du bus peut
ommen
er sa transmis-
sion quelques mi
ro instants avant l'arrivée du bit venant du n÷ud se trouvant à l'autre
extrémité. Pour que
haque n÷ud puisse déte
ter s'il est en
onit d'a
ès ave
d'autres,
le temps que doit durer un bit sur le médium doit être supérieur à deux fois le temps de
propagation d'un bit sur toute la longueur du bus. Les nombreuses années d'utilisation et
d'expérimentation de CAN ont permis de mieux
erner, par la pratique, les bonnes valeurs
du
ouple (débit, longueur). Ainsi, le CiA (CAN in Automation, asso
iation de promotion
de CAN) et beau
oup d'utilisateurs industriels de CAN re
ommandent les
ongurations
représentées sur le tableau 6.1.
si deux n÷uds présentent des niveaux logiques diérents, le bit dominant s'impose. On
dit que le bus CAN se
omporte
omme un ET logique.
apa
ité de l'arbitrage non destru
tif (dit Non-Destru
tive Bitwise Arbitration ).
Les
ara
téristiques éle
triques dénies par la norme CAN font qu'en
as de
onit
d'a
ès (
'est-à-dire quand deux ou plusieurs n÷uds
ommen
ent à transmettre en même
temps), la valeur 0 é
rase la valeur 1. Lors de l'arbitrage, dès qu'un n÷ud émetteur déte
te
un bit à 0 sur le bus, alors qu'il émet un bit à 1, il abandonne sa tentative d'a
ès au bus.
L'un après l'autre, les n÷uds en
ompétition abandonnent leur transmission au prot du
n÷ud le plus prioritaire,
'est-à-dire
elui qui transmet la trame ayant l'identi
ateur le
plus petit. Tout se passe don
omme si la trame de plus haute priorité était la seule à être
transmise. Lorsqu'un n÷ud perd l'arbitrage, il devient automatiquement un ré
epteur de
la trame en
ours de transmission. Les n÷uds qui abandonnent tentent leur transmission
plus tard une fois que le n÷ud le plus prioritaire en
ours termine sa transmission et après
un silen
e sur le bus qui dure au moins 3 fois le temps de transmission d'un bit.
Dans l'exemple illustré par la gure 6.3, trois n÷uds tentent de transmettre en même
temps. C'est le n÷ud 3, dont l'identi
ateur est le plus petit, qui nit par s'imposer.
Début de Le n÷ud 3
ompétition gagne
Le n÷ud 1 Le n÷ud 2
abandonne abandonne
1 (ré
essif)
État du bus
0 (dominant)
ID du n÷ud 1
0101111....
ID du n÷ud 2
0111001....
ID du n÷ud 3
0101011....
Types de trames
Le proto
ole CAN 2.0
omporte deux spé
i
ations qui dièrent uniquement au niveau
de la longueur d'identi
ateur. La version 2.0A (format standard) dénit des identi
a-
teurs de 11 bits et la version 2.0B (format étendu) des identi
ateurs de 29 bits. Il existe
94 6. Bus CAN
S R I r CRC A
O Identi
ateur T D 0 DLC 0 à 8 o
tets
15 bits C 7 bits 3 bits
F (11 bits) R E K
Figure 6.4 Format de trame de données a) Standard CAN 2.0A, b) Standard CAN
2.0B
et un bit délimiteur d'a
quittement (DDA). A l'émission d'une trame, le bit ACQ
est mis à 1 (bit ré
essif). Ensuite
e bit est é
rasé (rempla
é par un bit dominant)
par tout ré
epteur qui a reçu
orre
tement la trame. Ce mé
anisme évite d'utiliser
des trames séparées pour faire les a
quittements.
Champ de n de trame: il est
omposé de 7 bits ré
essifs.
Les trames sont transmises en
ommençant par le
hamp le plus à gau
he (DDT) et
en terminant par le délimiteur de n. Le début de trame n'est ee
tif que si le bus était
pré
édemment au repos. Tous les n÷uds du réseau doivent se resyn
hroniser sur le bit de
SOF.
Champ d'arbitrage
Dans une trame standard, le
hamp d'arbitrage est
omposé des 11 bits de l'identi-
ateur et d'un bit de RTR (Remote Transmission Request) qui est dominant pour une
trame de données et ré
essif pour une trame de requête. On ne détaillera pas i
i le
hamp
d'arbitrage pour une trame. Ceux qui désire voir plus de détails sur
e point peuvent faire
appel à la norme BOSCH. Pour l'identi
ateur les bits sont transmis dans l'ordre, de ID10
à ID0 (le moins signi
atif est ID0). Par ailleurs les 7 bits les plus signi
atifs (de ID10 à
ID4) ne doivent pas tous être ré
essifs. Pour des raisons de
ompatibilité ave
des an
iens
96 6. Bus CAN
ir
uits, les 4 derniers bits de l'identi
ateur (ID3 à ID0) ne sont pas utilisés,
e qui réduit
le nombre de
ombinaisons possibles.
Champ de
ontrle
Le
hamp de
ontrle est
omposé de 6 bits. Les deux premiers (r1 dans une trame
standard, et r0) sont des bits de réserve et leur rle est d'assurer des
ompatibilités futures
as
endantes (par exemple ave
les trames étendues). Les quatre derniers bits permettent
de déterminer le nombre d'o
tets de données
ontenus dans le
hamp de données pour
une trame de données ou bien le nombre d'o
tets de données dont a besoin un n÷ud du
réseau lors d'une trame de requête. Le nombre d'o
tets de données ne peut pas ex
éder
la valeur de 8.
Champ de données
Le
hamp de données a une longueur qui peut varier de 0 à 64 bits (0 à 8 o
tets).
Cette longueur a été déterminée lors de l'analyse du
hamp de
ontrle. Dans le
as d'une
trame de requête, le
hamp de données est vide.
Champ de CRC
Le
hamp de CRC est
omposé de 16 bits. La séquen
e CRC
al
ulée est
ontenue
dans les 15 premiers bits tandis que le dernier bit est un délimiteur de n de
hamp de
CRC (bit toujours ré
essif).
Ce
hamp de CRC permet de s'assurer de la validité du message transmis, et tous
les ré
epteurs doivent s'astreindre à
e pro
édé de véri
ation. Seuls les
hamps de SOF,
d'arbitrage, de
ontrle et de données sont utilisés pour le
al
ul de la séquen
e de CRC.
Les
odes utilisés par les
ontrleurs de bus CAN sont des
odes linéaires. De fait la
longueur maximale du début de trame ne doit pas ex
éder 215 bits pour une séquen
e de
CRC de 15 bits. Le nombre maximal d'erreurs déte
tées dans la trame est de 5.
La séquen
e de CRC est
al
ulée par la pro
édure suivante:
le ot de bits (hors Bit-Stung ),
onstitué des bits depuis le début de la trame
jusqu'à la n du
hamp de données (pour une trame de données) ou bien la n du
hamp de
ontrle (pour une trame de requête) est interprétée
omme un polynme
f(x) ave
des
oe
ients 0 et 1 ae
tés à la présen
e, ee
tive ou non, de
haque
bit. Le polynme obtenu est alors multiplié par x15
omplété pour l'ajout du mot
de CRC.
le polynme ainsi formé est divisé (modulo 2) par le polynme générateur
6.1. Introdu
tion 97
Champ de n de trame
Ce
hamp de n de trame est
onstitué de 7 bits ré
essifs,
e qui déroge à la règle de
Bit-Stung. Ce
hamp étant xe, il est né
essaire de désa
tiver le
odage (à l'émission)
et le dé
odage (à la ré
eption) suivant la règle du Bit-Stung.
Bit-stung
Pour renfor
er la déte
tion d'erreurs de transmission, CAN intègre un mé
anisme dit
de bit stung (ou bourrage de bits) : quand l'émetteur déte
te
inq bits identiques qui
se suivent, il insère automatiquement un bit de valeur
omplémentaire qui sera supprimé
à la ré
eption. Les bits insérés sont pris en
ompte aussi pour déte
ter les suites de
inq
bits
onsé
utifs et identiques. L'opération de bit stung s'applique seulement aux
hamps
Début de trame, Arbitrage, Contrle, Données et CRC ; les
hamps restants ont une forme
xe et ne sont pas
odés par l'opération de bit stung.
stung ) et trois au niveau trame (véri
ation du CRC, de la forme de trame et du bit
d'a
quittement).
CAN utilise une te
hnique de
onnement des erreurs qui est un mé
anisme permet-
tant de faire la diéren
e entre des erreurs temporaires et les erreurs permanentes. Les
erreurs temporaires peuvent être
ausées par des bruits transitoires, tandis que des er-
reurs permanentes sont en général dues à de mauvaises
onnexions ou à des
omposants
défaillants. Cette distin
tion d'erreurs permet de retirer un n÷ud défaillant du bus qui,
sinon, aurait pu perturber les autres n÷uds.
Un émetteur envoyant un ag d'erreur passive (bit ré
essif) et re
evant un bit do-
minant, ne doit pas signaler un Bit Error.
L'erreur de Stung (Stu Error): Une erreur de Stung est déte
tée à
haque fois
qu'il y a 6 bits ou plus
onsé
utifs de même signe sur le bus. Cependant, une erreur de
Stung ne doit être signalée que dans les
hamps d'identi
ateurs, de
ommande et de
CRC. La règle du Bit-Stung ne s'appliquant plus après la n du CRC. En au
un
as,
une erreur de Bit-Stung ne doit être signalée dans le
hamp de n de trame ou dans le
hamp d'a
quittement.
L'erreur d'A
knowledge Delimiter: Une erreur d'A
knowledge Delimiter est signa-
lée lorsque le ré
epteur n'observe pas un bit ré
essif lors du
hamp de A
knowledge Deli-
miter. Il en est de même pour le CRC Delimiter.
La trame d'erreur a
tive: Elle est formée de six bits dominant
onsé
utifs pour le
hamp de drapeau suivi de huit bits ré
essifs pour le délimiteur. Par
onstru
tion, la
trame d'erreur brise la règle du Bit-Stung. Les autres ré
epteurs vont don
se mettre
à émettre des trames d'erreurs a
tives (s'ils sont en mode d'erreur a
tive) à la n du
100 6. Bus CAN
drapeau de la première station qui a émis la trame d'erreur. Toutes les stations vont don
émettre à tour de rle la trame d'erreur. La dernière station aura en
harge d'émettre le
hamp d'Error Delimiter, les autres
hamps ayant été rempla
és par les bits dominants
des drapeaux émis.
Remarque: La norme limite le nombre de bits dominant
onsé
utifs à 12 bits.
La trame d'erreur passive: La trame est formée de six bits ré
essifs pour le drapeau
et de huit bits ré
essifs pour le délimiteur. Le
hamp du drapeau brise de nouveau la
règle du Bit-Stung et les émetteurs envoient à tour de rle le Passive Error Flag (s'ils
sont en mode d'erreur passive). Mais une trame d'A
tive Error Flag reste prioritaire sur
une trame de Passive Error Flag si elles sont envoyées en même temps. En eet, Les bits
dominants de l'A
tive Error Flag rempla
ent les bits ré
essifs du Passive Error Flag. La
n de la trame quant à elle ne
hange pas puisqu'elle est formée dans les deux
as de huit
bits ré
essifs.
La gestion des modes d'erreur: Suivant le nombre d'erreur qu'un n÷ud
omptabilise,
l'état du mode de
e n÷ud peut diérer. Un
ompteur mémorise le nombre d'erreur
ren
ontré lors de la transmission des trames sur le bus. Deux
ompteurs séparés régissent
respe
tivement le nombre d'erreurs en émission et en ré
eption. Il se nomme:
Transmit Error Counter pour l'émission,
Re
eive Error Counter pour la ré
eption.
Lorsque le nombre d'erreur devient trop important et que le gestionnaire est déjà en
erreur passive, le n÷ud se met en Bus O et se dé
onne
te du bus. Il ne reçoit ni émet à
e moment là au
une trame
ir
ulant sur le bus CAN.
Les règles de passage dans les modes: L'in
rémentation et la dé
rémentation des
ompteurs ne se fait pas ave
le même rapport. En eet, le
ompteur s'in
rémente plus
vite lorsqu'il y a une erreur qu'il ne se dé
rémente lorsque la trame reçue est
orre
te.
Les règles d'in
rémentation et de dé
rémentation des
ompteurs sont les suivantes:
6.1. Introdu
tion 101
inférieur à 255. Dans
e mode, le n÷ud émet des trames d'erreurs passives (Passive
Error Flag).
Mode Bus O: Le gestionnaire de proto
ole est en mode Bus O si la valeur d'un
des deux
ompteurs est supérieure 255. Le n÷ud est alors totalement dé
onne
té
du bus (les drivers de lignes ne sont plus a
tifs). Il sort de
et état de Bus O avoir
reçu 127 trames de onze bits ré
essifs.
Période d'intertrame
Elle sépare les trames de données ou de requêtes entre elles. Il s'agit d'une suite de
plusieurs bits ré
essifs.
Le
hamp d'intermission: Le
hamp d'intermission est une suite de 3 bits ré
essifs
onsé
utifs. Durant la période d'intermission, l'émission de trame n'est pas autorisée.
Les gestionnaires de proto
ole ne sont autorisés à signaler que les
onditions de
sur
harge.
Le
hamp de Bus Idle: Le
hamp de Bus Idle est
elui du bus quand il est au
repos. Le niveau de repos est le niveau ré
essif et au
une trame ne
ir
ule sur le bus.
Le
hamp de suspension de transmission: Le
hamp de suspension de trans-
mission est émis par un n÷ud lorsque
elui-
i envoie une trame d'erreur passive.
6.1. Introdu
tion 103
Autres modes
Pour la gestion de l'énergie sur le bus, les drivers de ligne peuvent être désa
tivés
lorsqu'il n'y a plus de trames sur le bus.
Pour a
tiver
es drivers sur le bus, la station devra observer 11 bits ré
essifs à la suite.
La pro
édure ainsi dé
rite est la pro
édure de réveil appelée Wake-up. Un identi
ateur
a été réservé à
ette fon
tion pour éviter de perdre un trop grand nombre de trames lors
de la re
onnexion sur le bus.
Lors des démarrages d'une station sur le bus, le Start-up se
harge de
onne
ter les
drivers de lignes et d'observer la séquen
e voulue pour
ommen
er à émettre ou à re
evoir
des trames du bus.