Vous êtes sur la page 1sur 20

85

Chapitre 6

Bus CAN

6.1 Introdu tion


La so iété Robert Bos h GmbH (Allemagne), un important fabriquant d'équipements
automobile, a fourni une solution dans les années 1980 ave le bus CAN(Controller Area
Network). CAN est utilisé surtout pour la mise en réseau des organes de ommande du
moteur, de la boîte à vitesse, de la suspension et des freins.
Les ontrleurs CAN sont physiquement petits, peu oûteux et entièrement intégrés.
Ils sont utilisables à des débits jusqu'à 1 Mb/s, en temps réel et dans des environnements
di iles. C'est pourquoi les ontrleurs CAN ont été utilisés dans d'autres se teurs que
l'automobile, et des appli ations utilisant CAN sont aujourd'hui disponibles dans l'in-
dustrie, le bâtiment, l'agri ulture, la marine, le matériel médi al, les ma hines textiles,
et .
Dans la norme CAN, seule la ou he liaison de données est spé iée totalement; la
ou he physique est spé iée partiellement et la ou he appli ation n'est pas spé iée. Il
existe diérentes propositions non en ore normalisées pour la ou he appli ation: Devi e-
Net (de Allen Bradley), SDS (de Honeywell), CAL (de Philips), et .

6.1.1 La proto ole CAN


Le proto ole CAN (Control Area Network) est un proto ole de ommuni ation série
qui supporte des systèmes temps réel ave un haut niveau de abilité. Ses domaines
d'appli ation s'étendent des réseaux moyens débits aux réseaux de multiplexages faibles
oûts. Il est avant tout à lasser dans la atégorie des réseaux de terrain utilisé dans
l'industrie pour rempla er la bou le analogique 20mA.
La stru ture du proto ole du bus CAN possède impli itement les prin ipales propriétés
suivantes:
86 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.

6.1.2 Proto ole CAN et ou hes OSI


On retrouve ainsi dans le proto ole CAN, la ou he liaison de données ( ou he 2) et la
ou he physique ( ou he 1) (gure 1). La ou he de liaison de données est subdivisée en
deux sous- ou hes (LLC Logi Link Control), et MAC (Medium A ess Control), tandis
que la ou he physique est divisée en trois sous- ou hes PLS( Physi al Signalling), PMA
(Physi al Medium A ess) et MDI (Medium Dependent Interfa e).
La sous- ou he MAC représente le noyau du proto ole CAN. Elle a pour fon tion
de présenter les messages reçus en provenan e de la sous- ou he LLC et d'a epter les
messages devant être transmis vers la sous- ou he LLC. Elle est responsable de:
 la mise en trame du message,
 l'arbitrage,
 l'a quittement,
 la déte tion des erreurs,
 la signalisation des erreurs.
Elle est supervisée par une entité de supervision qui est un mé anisme apte à faire la
distin tion entre les dérangements de ourtes durées et des pannes permanentes.
La sous- ou he LLC s'o upe quant à elle:
 du ltrage des messages,
 de la noti ation de sur harge (Overload),
 de la pro édure de re ouvrement des erreurs.
La ou he physique dénit omment le signal est transmis et a par onséquent pour
rle d'assurer le transfert physique des bits entre les diérents n÷uds en a ord ave toutes
6.1. Introdu tion 87

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 de ommuni ation de données

LLC(Logi Link Control)

Filtrage d'a eptan e des messages


Noti ation de sur harge(overload)
Re ouvrement des erreurs

MAC(Medium A ess Control)

En apsulatio/Dé apsulation des données


Codage de trame(Stung/Destung)
Re ouvrement des erreurs

Cou he physique

PLS(Physi al Signaling)

Codage/Dé odage de bit


Bit timing
Syn hronisation

PMA(Physi al Medium Atta hment)

Cara téristiques Driver/Re eiver

MDI(Medium Dependent Interfa e)

Conne teurs

Figure 6.1  Proto ole CAN

6.1.3 Règles de fon tionnement et dénitions


Comme dans la plupart des proto oles, il est né essaire d'utiliser un vo abulaire adapté
à la situation. Nous allons don dénir un ertain nombre de termes et de règles de
fon tionnement on ernant le proto ole CAN.
88 6. Bus CAN

 N÷ud:sous-ensemble relié à un réseau de ommuni ation et apable de ommuni-


quer sur le réseau selon un proto ole de ommuni ation (i i le proto ole CAN).
 Valeurs du bus: le bus peut avoir l'une des deux valeurs logiques omplémentaires
dénies, non pas en 0 et 1 omme d'habitude, mais sous les formes dites de dominante
et ré essive. Dans le as d'une transmission simultanée de bits ré essifs et dominants,
la valeur résultante du bus sera dominante.
 Message: haque information est véhi ulée sur le bus à l'aide d'un message (trame
de bits) de format déni mais de longueur variable (et limitée). Dès que le bus
est libre (bus idle), n'importe quel n÷ud relié au réseau peut émettre un nouveau
message.
 Routage des informations: des n÷ds peuvent être ajoutés au réseau sans qu'il
n'y ait rien à modier tant au niveau logi iel que matériel. Chaque message possède
un identi ateur (identier) qui n'indique pas la destination du message mais la
signi ation des données du message. Ainsi tous les n÷ds reçoivent le message, et
ha un est apable de savoir grâ e au système de ltrage de message si e dernier
lui est destiné ou non. Chaque n÷ud peut également déte ter des erreurs sur un
message qui ne lui est pas destiné et en informer les autres n÷uds.
 Trame de données, trame de requête: une trame de données (data frame) est
une trame qui transporte, omme son nom l'indique, des données. Une trame de re-
quête est émise par un n÷ud désirant re evoir une trame de données (l'identi ateur
est le même pour les deux trames dans e as).
 Débit bit: le débit bit peut varier entre diérents systèmes, mais il doit être xe
et uniforme au sein d'un même système.
 Priorités: les identi ateurs de haque message permettent de dénir quel message
est prioritaire sur tel autre.
 Demande d'une trame de données: un n÷ud peut demander à un autre n÷ud
d'envoyer une trame de données, et pour ela il envoie lui-même une trame de
requête. La trame de données orrespondant à la trame de requête initiale possède
le même identi ateur.
 Fon tionnement multimaître: lorsque le bus est libre, haque n÷ud peut dé ider
d'envoyer un message. Seul le message de plus haute priorité prend possession du
bus.
 Arbitrage: le problème de l'arbitrage résulte du fon tionnement multimaître. Si
deux n÷uds ou plus tentent d'émettre un message sur un bus libre il faut régler
les onits d'a ès. On ee tue alors un arbitrage bit à bit (non destru tif) tout au
long du ontenu de l'identi ateur. Ce mé anisme garantit qu'il n'y aura ni perte
de temps, ni perte d'informations. Dans le as de deux identi ateurs identiques,
6.1. Introdu tion 89

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.

6.1.4 Cou he physique

Support, topologie et odage

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

Figure 6.2  Couplage physique du réseau CAN

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.

Notion de bit dominant et bit ré essif


Toute implantation de CAN doit respe ter le prin ipe des bits dominants et ré essifs.
Chaque n÷ud doit pouvoir présenter sur le bus un bit appelé dominant (0 logique) et un bit
appelé ré essif (1 logique). Les implantations de CAN doivent respe ter la règle suivante:
92 6. Bus CAN

Débit Longueur Débit Longueur


1 Mb/s 25 à 40 m 125 kb/s 500 m
800 kb/s 50 m 50 kb/s 1000 m
500 kb/s 100 m 20 kb/s 2500 m
250 kb/s 250 m 10 kb/s 5000 m

Table 6.1  Débit et longueur re ommandés dans un bus CAN

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.

6.1.5 Cou he liaison de données


Identi ateurs
Les trames de données transmises par un n÷ud sur le bus ne ontiennent ni adresse
d'un n÷ud destinataire, ni adresse du n÷ud sour e. Elles ontiennent des identi ateurs
d'objets. Il n'y a qu'un seul mode d'adressage dans CAN: l'adressage objet. Un identi-
 ateur est unique et spé ie, sans ambiguïté, l'information (ou l'objet) qu'une trame
transporte. Par exemple, l'identi ateur 100 désigne un angle de volant d'automobile et
l'identi ateur 101 désigne la température du moteur. Les identi ateurs sont attribués,
par le on epteur d'appli ation, aux objets selon l'urgen e et l'importan e de es objets.
Plus la valeur de l'identi ateur ontenu dans une trame est faible, plus ette trame est
prioritaire.
Chaque n÷ud relié au réseau est produ teur des valeurs d'un ou de plusieurs objets
identiés ou onsommateur des valeurs d'un ou de plusieurs objets identiés. Un n÷ud
peut être à la fois produ teur et onsommateur de valeurs d'objets identiés. Grâ e à
l'identi ateur ontenu dans une trame, les n÷uds onne tés au réseau, et qui sont en
permanen e à l'é oute du bus, re onnaissent les objets qui les intéressent ( eux qu'ils
onsomment ou qu'ils produisent) et traitent les trames; tout n÷ud fait une opie de
la trame ourante s'il est onsommateur de l'objet diusé, ou envoie sa valeur s'il est
produ teur de l'objet diusé.
Les identi ateurs sont odés sur 11 bits en version standard (CAN 2.0.A) et sur 29
bits en version étendue (CAN 2.0.B).

Arbitrage bit à bit


CAN intègre une méthode simple et e a e pour arbitrer l'a ès au bus. Cette méthode
est appelée CSMA/CR(Carrier Sense, Multiple A ess with Collision Resolution ) et a la
6.1. Introdu tion 93

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....

Figure 6.3  Prin ipe d'arbitrage du réseau CAN

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

quatre types de trames pouvant être transmises sur un bus CAN:


 Trames de données: elles sont utilisées pour transporter des données de l'appli-
ation (ou valeurs d'objets) sur le bus. C'est le produ teur d'un identi ateur qui
émet des trames de données asso iées à et identi ateur.
 Trames de requête distante: elles sont utilisées par un n÷ud (un onsomma-
teur) pour demander la transmission de trames de données par d'autres n÷uds (les
produ teurs). Le bit RTD (Requête de Transmission Distante) permet de distinguer
les trames de données des trames de requête. Le bit RTD est égal à 0 pour une
trame de données et à 1 pour une trame de requête. On notera que les trames de
données sont prioritaires par rapport aux trames de requête: quand un produ teur
et un onsommateur d'un même objet entrent en onit, 'est la trame émise par le
produ teur qui s'impose, e qui est normal puisque la trame du produ teur répond
à la requête faite par le onsommateur.
 Trames d'erreur: elles sont transmises par un n÷ud ayant déte té une erreur sur
une trame en ours de transmission.
 Trames de sur harge: elles sont utilisées par un n÷ud pour demander un délai
entre deux trames su essives; 'est une forme de ontrle de ux simplié.
Les trames de données ou de requête sont séparées des trames qui les pré èdent, de
quelque type qu'elles soient, par un temps dit intertrame; e temps doit orrespondre à
au moins le temps de transmission de 3 bits. Les trames d'erreur ou de sur harge ne sont
pas séparées des autres trames par un intertrame.

Format de trames de données et de requête


Comme le montre la gure 6.4, les trames CAN sont omposées des éléments suivants:
 Bit Début de Trame (SOF): un bit dominant qui marque le début d'une trame.
 Champ d'arbitrage: il ontient l'identi ateur et le bit RTD. Le bit SRD (Sub-
stitution de Requête Distante) est ré essif pour le format étendu et inexistant pour
le format standard.
 Champ de ontrle: e hamp est omposé de 6 bits. Le premier bit dépend du
format de trame: e bit est dominant dans le format standard et s'appelle EID (Ex-
tension d'IDenti ateur). Il est noté r1 (réservé) dans le format étendu. Le deuxième
bit (noté r0) est réservé pour des extensions futures. Les quatre bits qui restent in-
diquent la longueur des données (LOD) qui ne peut dépasser 8 o tets.
 Champ de données: e hamp véhi ule les données de la ou he appli ation.
 Champ de CRC: e hamp est omposé de la séquen e de CRC sur 15 bits suivis
du délimiteur de CRC (1 bit ré essif). Le délimiteur du CRC est noté DOC.
 Champ ACQ (a quittement): e hamp est omposé de deux bits : un bit ACQ
6.1. Introdu tion 95

Champ de Champ de Champ de Fin de Inter


Champ d'arbitrage ontrle données CRC AKC trame trame

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

a) Standard CAN 2.0A

Champ de Champ de Champ de Fin de Inter


Champ d'arbitrage ontrle données CRC AKC trame trame

S S I Identi ateur R r r CRC A


O Identi ateur
(11 bits) R D suite T 1 0 DLC 0 à 8 o tets
15 bits C 7 bits 3 bits
F R E (18 bits) R K

b) Standard CAN 2.0B

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

g(x)=x15 +x14 +x10 +x8 +x7 +x4 +x3 +1.


La haîne de bits orrespondante à e polynme est : 1100010110011001.
 Le reste de la division du polynme f(x) par le polynme générateur g(x) onstitue
la séquen e CRC de 15 bits.

Champ d'a quittement


Le hamp d'a quittement possède 2 bits. La station émettri e de la trame laisse le bus
libre pendant 2 oups d'horloge ( e qui orrespond à l'émission de deux bits ré essifs) et
elle passe en mode ré eption pendant le premier oup d'horloge.
Le premier bit orrespond à l'a quittement par l'ensemble des n÷uds ayant reçu le
message. Si au une erreur n'a été déte tée par un n÷ud (après al ul du CRC), e dernier
émet un bit dominant sinon il émet une trame d'erreur. La station émettri e du message
originel doit alors être apable de réagir en fon tion de l'émission d'un bit dominant ou
non par les autres stations sur le premier bit du hamp d'a quittement.
Le se ond bit est un bit délimiteur d'a quittement qui doit toujours être ré essif.

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.

Déte tion et gestion des erreurs


Le réseau CAN a été onçu pour opérer dans des environnements agressifs et 'est
pourquoi il omprend de nombreux mé anismes de déte tion d'erreurs de transmission
ausées par les diérents bruits inhérents à es environnements. CAN implante inq mé-
anismes de déte tion des erreurs: deux au niveau bit ( ontrle de bit et ontrle du bit
98 6. Bus CAN

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.

6.1.6 Trame de requête


Une trame de requête est onstituée de la même manière qu'une trame de données
sauf que le hamp de données est vide. Dans le hamp d'arbitrage, le bit de RTR est
ré essif. Par onséquent si deux n÷uds émettent ha un une trame possédant le même
identi ateur ( 'est à dire qu'un n÷ud émet une trame de données et l'autre une trame
de requête), l'arbitrage sur le bit de RTR va donner la priorité à la trame de données. Si
un n÷ud a besoin d'un ertain nombre de données, il va émettre une trame de requête
dès que le bus sera libre en prenant soin d'indiquer dans le hamp de ontrle le nombre
d'o tets de données dont il a besoin. Les règles de onstru tion des autres divers hamps
d'une trame de requête sont les mêmes que dans le as d'une trame de données.

6.1.7 Traitement des erreurs


Lors de l'émission d'une trame sur le bus, des erreurs de transmission peuvent venir
perturber le bon fon tionnement des diérents utilisateurs du bus. L'erreur peut venir
d'un n÷ud, et empê her le réseau de fon tionner orre tement. Pour ela, des méthodes
de déte tion d'erreurs de transmissions sont prévues par le proto ole CAN.

Les diérents types d'erreurs


Le Bit Error : Chaque fois qu'un émetteur envoie un bit sur le bus, il vérie en même
temps si le niveau émis sur le bus orrespond à elui qu'il désire envoyer en faisant une
surveillan e du bus. Si le niveau ne orrespond pas, il le signale par un Bit Error.
Cependant, le Bit Error n'est pas signalé dans les as suivants:
 Au une erreur de Bit Error n'est signalée lorsqu'un bit dominant est envoyé dans le
hamp d'arbitrage à la pla e d'un bit ré essif. Le bit dominant signie simplement
une perte d'arbitrage,
 De même, pour un bit dominant lors de l'a knowledge slot, à la pla e d'un bit
ré essif,
6.1. Introdu tion 99

 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 de Cy li Redundan y Code (CRC Error): Si la valeur du CRC al ulée


par le ré epteur est diérente de elle envoyée par l'émetteur, il y a erreur de CRC (CRC
Error).

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.

L'erreur de Slot A knowledge (A knowledgment Error): Une erreur de Slot A k-


nowledge est signalée par l'émetteur s'il ne lit pas un bit dominant lors du hamp de slot
a knowledge.
La gure xx résume les diérents types d'erreurs et leur validité suivant l'endroit où
l'on se trouve dans la trame.

Les trames d'erreurs


La trame d'erreur: La trame d'erreur est onstituée de deux hamps prin ipaux :
 le drapeau d'erreur,
 le délimiteur de hamp.
Le hamp des drapeaux peut être onstitué de deux sortes de drapeaux:
 les drapeaux d'erreur a tive (A tive Error Flag),
 les drapeaux d'erreur passive (Passive Error Flag).
Les trames dièrent suivant le type de drapeaux quelles ontiennent.

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.

Re ouvrement des erreurs


Le re ouvrement des erreurs est assuré par la retransmission automatique de la trame
in riminée jusqu'à e que l'émission de ette trame s'ee tue sans erreur. La validité du
message est a quise s'il n'y a au une erreur depuis le SOF (Start Of Frame) jusqu'à la n
de trame.
Si l'émetteur n'arrive pas à émettre sa trame orre tement, il essaye de nouveau de
l'émettre jusqu'à e que son ompteur d'erreur passe en mode d'erreur passive.

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

 Le ompteur de ré eption est in rémenté de 1 si:


 un ré epteur déte te une erreur, le ompteur d'erreur de ré eption sera in rémenté
de 1, sauf si l'erreur est un Bit Error durant un ag d'erreur a tive ou un ag de
sur harge
 Le ompteur de ré eption est in rémenté de 8 si:
 un ré epteur reçoit un bit dominant juste après un ag d'erreur.
 un ré epteur voit un Bit Error tandis qu'il reçoit un ag d'erreur a tive ou un
ag de sur harge.
 Le ompteur de transmission est in rémenté de 8 si:
 un émetteur envoie un ag d'erreur, son ompteur d'émission s'in rémente de
8 sauf si l'émetteur est en erreur passive et voit un A knowledgment Error (il
ne déte te au un bit dominant sur le hamp d'a knowledge ou lors de l'envoie
de la trame d'erreur passive) et également si l'émetteur envoie un ag d'erreur
lors d'une erreur de Bit-Stung durant la période d'arbitrage (déte tion d'un bit
dominant au lieu d'un bit ré essif situé après le RTR).
 un émetteur voit un Bit Error tandis qu'il émet un ag d'erreur a tive ou un ag
de sur harge.
 Les ompteurs d'émission et de ré eption s'in rémentent de 8 si:
 haque n÷ud re evant sept bits dominants onsé utifs après ré eption d'un A tive
Error Flag, d'un Passive Error Flag ou d'un Overload Flag. Après déte tion de
quatorzième bit dominant onsé utif (pour l'A tive Error Flag ou l'Overload Flag)
ou du huitième bit dominant onsé utif suivant le Passive Error Flag, et après
toutes les suites de huit bits dominants onsé utifs.
 Le ompteur de ré eption est dé rémenté de 1 si:
 le ré epteur reçoit une trame sans erreur (jusqu'au hamp d'A knowledge Slot)
et si la valeur du ompteur est omprise entre 1 et 127. Si le ompteur est à 0,
sa valeur ne hange pas (pas d'in rémentation). S'il est supérieur à 127, sa valeur
est ramenée entre 119 et 127.
 Le ompteur d'émission est dé rémenté de 1 si:
 la transmission d'une trame se déroule sans erreur (jusqu'au hamp d'A know-
ledge Slot). Si la valeur du ompteur est à 0, le ompteur ne s'in rémente pas.

Les modes d'erreurs


 Mode d'erreur a tive: Le gestionnaire de proto ole est en mode d'erreur a tive si
le ompteur de ré eption et le ompteur d'émission ont une valeur inférieure à 127.
Dans e mode, le n÷ud émet des trames d'erreurs a tives (A tive Error Flag).
 Mode d'erreur passive: Le gestionnaire de proto ole est en mode d'erreur passive
si le ompteur de ré eption ou le ompteur d'émission est supérieur ou égal à 128 et
102 6. Bus CAN

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.

6.1.8 Fin de trame CAN


Trame de sur harge
La trame de sur harge indique aux autres n÷uds qu'une station est sur hargée. Elle
est formée de deux hamps:
 le drapeau de sur harge (Overload Frame) ave six bits dominants,
 le délimiteur de sur harge (Overload Delimiter) ave huit bits ré essifs.
La gure 14 représente la trame.
Une trame de sur harge est émise sur le bus si:
 un bit dominant est déte té durant la période d'intertrame,
 un ré epteur n'est pas prêt pour la ré eption d'une nouvelle trame de donnée ou de
requête (retard sur le traitement des informations ir ulant sur le bus).
Dès qu'une trame de sur harge est émise, les autres n÷uds voient sur le bus une suite de
six bits dominants qui ne respe tent pas la règle du Bit-Stung. Ils émettent à leur tour
une trame de sur harge. Seulement deux trames de sur harges onsé utives sont autorisées
sur le bus (pas plus de 12 bits dominants onsé utifs émis sur le bus).

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.

6.1.9 Codage de ligne


Dans le proto ole CAN le ode de ligne (en bande de base) hoisi pour la transmission
des données sur le bus est le ode NRZ (Non Return to Zero).
Remarque: La règle du Bit-Stung ne modie en au un as le pro édé de odage de
ligne.
Les transitions des bits s'ee tuent sur haque front montant de l'horloge. Dans le
proto ole CAN, une période d'horloge orrespond à e que l'on appelle le Nominal Bit
Time.

6.1.10 Le Nominal Bit Time


Le Nominal Bit Time représente en fait la durée du bit sur le bus. Cette durée est
étroitement liée à la période de l'horloge. Chaque station reliée sur le bus doit être aden ée
ave le même Nominal Bit Time pour pouvoir émettre et re evoir orre tement les données
ir ulant sur le bus.
Ainsi, la durée du bit time de haque ir uit est onstruite à partir d'un nombre
déterminé de périodes d'horloge issue de l'horloge interne de haque ir uit CAN.
La norme BOSCH dé rit ave pré ision la omposition de e Nominal Bit Time qui
est divisé en plusieurs segments:
 le segment de syn hronisation,
 le segment de propagation,
 le segment de phase buer numéro 1,
 le segment de phase buer numéro 2.
104 6. Bus CAN

6.2 Cara téristiques physiques du bus CAN


6.2.1 Support de transmission
La transmission de données est ee tuée sur une paire laire diérentielle. La ligne est
don onstituée de deux ls:
 CAN L(CAN LOW),
 CAN H(CAN HIGH).
CAN est un bus de terrain soumis à des parasites importants. La transmission en paire
diérentielle permet de s'aran hir de es problèmes. Les montages diérentiels on en plus
un fort taux de rejé tion en mode ommun CMRR.
Pour les niveaux physiques sur le bus, il est important de distinguer les deux types de
transmission possible:
 transmission en bus CAN low speed,
 transmission en bus CAN high speed.
Le tableau 6.2 résume les prin ipales diéren es entre les deux types de bus notamment
sur les débits supportés.

Paramètres CAN low speed CAN high speed


Débit 125 kb/s 125 kb/s à 1 Mb/s
Nombre de n÷uds sur le bus 2 à 20 2 à 30
Courant de sortie (mode emmission) > 1 mA sur 2,2 kΩ 25 à 50 mA sur 60 Ω
Niveau dominant CAN H = 4 V VCAN H − VCAN L = 2V
CAN L = 1 V
Niveau ré essif CAN H = 1.75 V VCAN H − VCAN L = 2.5V
CAN L = 3.25 V
Cara téristique du able 30 pF entre les âbles de ligne 2*120 Ω
Tension d'alimentation 5V 5V

Table 6.2  Les deux types de bus CAN

Vous aimerez peut-être aussi