Vous êtes sur la page 1sur 13

Transmission de donnée

Le bus CAN

Historique
L’entrée en force de l’électronique dans l’automobile, avec l’introduction de nombreux processeurs qui
réalisent les fonctions de contrôle-commande pour des processus aussi variés que :
Le contrôle moteur en conformité avec les normes anti-pollution,
Le freinage : ABS (Anti Blocage Système), AFU (Assistance au Freinage d’urgence)…
La sécurité : Airbags, régulateur de vitesse, système anticollision par radar, ESP (Electronic Stability
Program), ASR (antipatinage)
Le confort : Climatisation, lève-vitre, autoradio, siège ergonomique
L’aide à la navigation : navigateur GPS et cartographie
Le dialogue avec l’utilisateur : tableau de bord & ordinateur de bord
Les fabricants ont été amenés à développer des réseaux informatiques pour l’automobile. En effet une solution
informatique centralisée était impensable, car elle aurait induit à un câblage trop coûteux et même impossible à
mettre en uvre. Une structure informatique répartie permet de multiplier les calculateurs qui seront ainsi
localisés au plus près des capteurs et des actionneurs, ceci permet de limiter le câblage au maximum. Il ne
restait plus qu’à interconnecter les différents processeurs entre eux pour assurer l’interopérabilité. CAN est un
réseau de terrain qui a été développé pour l’automobile par l’équipementier allemand BOSCH.

Citons quelques étapes de son développement :


de 1983 à 1986 : étude et définition du standard,
1987 : premier circuit intégré mettant en uvre CAN,
1991 : commercialisation de la première automobile utilisant CAN.

CAN un réseau de terrain pour l’automobile et l’industrie


Les grandes séries de production du
domaine automobile ont permis de
disposer de nombreux composants
intégrant CAN, mais aussi de faire
baisser leur coût. Le réseau de
terrain CAN est alors devenu fort
attractif pour les applications
industrielles.
Les réseaux de terrain (ou bus de
terrain) sont utilisés au niveau le
plus bas des architectures de
systèmes automatisés (niveau 0-1 de
CIM). La pyramide CIM pour
Computer Integrated Manufacturing,
permet de décrire les niveaux de
communication dans un concept
d’usine informatisée.

#Niedercorn LT « la Briquerie » 57100 THIONVILLE Transmission bus CAN & page 1/13
Une usine possède plusieurs ateliers, un atelier comprend un ensemble de cellules de production, une cellule est
elle-même composée d’un ensemble de machines et chaque machine comporte plusieurs équipements (capteurs
et actionneurs). Les informations transitent à tous les niveaux au moyen de réseaux. Bien entendu un même
réseau peut être présent sur différents niveaux de CIM (ex. : WorldFIP & PROFIBUS sont présents au niveau
cellule & au niveau terrain (capteurs et actionneurs).
Dans un environnement industriel, CAN permettra donc d’interconnecter des équipements tels que
capteurs, actionneurs, automates programmables, calculateurs industriels.

Cahier des charges de CAN


Compte tenu de son positionnement, les caractéristiques exigées pour le réseau CAN sont les suivantes :
Quantité d’information à transmettre par message faible (quelques octets ó état d’un capteur ou
consigne pour un actionneur),
Distance à parcourir (entre les n uds les plus éloignés) faible (quelques mètres dans une automobile à
quelques centaines de mètres dans une installation industrielle),
Rapidité, temps de réponse : dans un environnement temps réel, c’est le déterminisme qui est important.
En d’autres termes, ce n’est pas d’un débit très rapide dont on a besoin, mais on veut connaître le délai
maximum au bout duquel notre message sera acheminé. Ainsi Ethernet (802.3) même à 1 Gigabit/s n’est
pas temps réel. Un temps de 1ms entre le moment où un n ud désire émettre et l’instant où le
destinataire a reçu la trame, est en général satisfaisant. Pour pouvoir satisfaire ces conditions CAN a
besoin d’un débit correct : qq 100kbit/s,
Elasticité : l’élasticité d’un réseau, permet d’apprécier son aptitude à évoluer avec souplesse (en cas
d’ajout (ou de suppression) de n ud, aucune modification "hard" ou "soft" n’est nécessaire),
Fonctionnement dans un environnement hostile (fortes variations de température, parasites EM,
humidité, vibrations …),
Sécurité (Fiabilité des données reçues) => détection, traitement & acquittement d’erreurs,
è Faible coût et taille réduite des équipements.

Fonctionnement du réseau CAN

L’adressage & les identificateurs


Traditionnellement dans les réseaux, on pratique un adressage de n ud : chaque hôte sur le réseau possède son
adresse et lorsqu’il envoie un message à une autre station, il précise sa propre adresse (adresse émetteur) et
l’adresse du destinataire.
Parce que l’adressage de n ud n’offre pas une bonne élasticité, pour CAN on a adopté un adressage d’objet.
Dans ce cas les n uds ne possèdent pas d’adresse, ce sont les messages échangés sur le médium qui sont
identifiés. On utilise des Identificateurs ("Identifiers" en anglais) que nous noterons sous la forme abréviée ID.
Chaque message possède un ID, qui décrit son contenu (la signification des données). Un message déposé sur le
réseau, est mis à la disposition de tous (diffusion : "Broadcast"). Cela suppose que chaque n ud soit capable de
décider si ce message l’intéresse ou non (un contrôleur CAN possèdera des filtres d’acceptation en réception,
seules les trames qui passent le filtre seront traitées par cette station, les autres seront ignorées par cette station).
Un identificateur est unique et spécifie sans ambiguïté, l’information (ou l’objet) qu’une trame transporte. Par
exemple, l’ID 200 désigne la température du moteur, l’ID 301 la commande des phares. Les IDs sont attribués
par le concepteur de l’application suivant l’urgence du message (priorité). Chaque n ud est producteur (ou
consommateur) des valeurs d’un ou plusieurs objets identifiés.
Les IDs sont codés sur 11bits (trame standard CAN 2.0 A) ou sur 29bits (trame étendue CAN 2.0 B).

#Niedercorn LT « la Briquerie » 57100 THIONVILLE Transmission bus CAN & page 2/13
Principe des bits dominants et récessifs
Parce que les collisions sur le bus peuvent avoir un effet catastrophique (le débit peut s’écrouler sur un réseau
Ethernet en cas de fort taux de charge => réseau non déterministe), CAN utilise une technique de bits
dominants et récessifs.
Le bus peut prendre deux états :
état dominant (correspondant à un niveau logique 0),
état récessif (correspondant à un niveau logique 1).
En cas de transmission simultanée (par deux n uds) de deux niveaux différents, c’est l’état dominant qui
l’emporte.
Donnons un exemple d’implémentation matérielle de cette technique :

Sur la figure ci-dessus, la technique des sorties à collecteur ouvert est un exemple de solution pour mettre en
uvre le principe de bit dominant et bit récessif. Sur la ligne de bus, le niveau dominant est le niveau 0 et le
niveau 1 est récessif. En effet, il suffit qu’une seule sortie d’un n ud impose un 0 (Transistor saturé) pour que
la ligne de bus passe à 0, et ceci même si l’autre sortie veut imposer un niveau 1 (Transistor bloqué). Le niveau
0 est dominant, il l’emporte sur le 1. Pour que la ligne de bus soit à 1, il faudra donc que les deux sorties des
uds soient à 1 (les deux transistors sont bloqués).
Méthode d’accès au bus
CAN utilise une méthode d’arbitrage bit à bit pour l’accès au bus. Cette méthode est appelée CSMA/CR
(Carrier Sense, Multiple Access with Collision Resolution), elle réalise un arbitrage non destructif (dit Non-
Destructive Bitwise Arbitration). Afin d’attribuer le bus à un n ud et un seul, CAN opère de la manière
suivante :
è Le n ud qui désire transmettre, vérifie d’abord que le réseau est libre en analysant le signal sur le réseau
(Carrier Sense). Si c’est le cas, il accède au bus directement en déposant sur celui-ci un bit de start à 0 (Start Of
Frame ) puis l’ID : l’identificateur du bit de poids fort au bit de poids faible.
è Si plusieurs stations désirent émettre quasi simultanément, elles vont voir le bus libre et vont donc accéder
simultanément au réseau (Multiple Access). L’arbitrage se fait ensuite bit à bit, chaque station vérifie qu’elle lit
bien sur le bus (bus monitoring), ce qu’elle y a écrit. Tant que les données lues correspondent aux données
écrites, chaque station croit être la seule, elle continue donc à émettre. Dés qu’une station présente un bit
récessif alors qu’au moins une autre présente un bit dominant, alors elle perd l’arbitrage (le schéma de la figure
3 ci-dessous présente ce principe). Lorsqu’un n ud perd l’arbitrage, il arrête d’émettre (Collision Resolution) et
devient récepteur. Il n’essaiera de retransmettre son message que lorsque le bus sera à nouveau libre. Tout se
passe donc comme si le message de plus haute priorité était le seul à être transmis.
La trame la plus prioritaire sera donc celle dont l’ID est le plus petit (beaucoup de bits à 0 (dominants) dans les
bits de poids fort).

#Niedercorn LT « la Briquerie » 57100 THIONVILLE Transmission bus CAN & page 3/13
Conséquence sur le compromis débit/distance
L’arbitrage au niveau du bit, impose une contrainte de longueur maximale du bus. En effet le "Temps Bit" doit
être supérieur à 2 fois la durée de propagation à travers le câble (notée tp).
Examinons le chronogramme de la figure, à t0 la station 1 croit être la seule sur le bus, elle commence à émettre
un bit récessif. Compte tenu de la vitesse de propagation des ondes EM dans les câbles (200 000km/s), ce bit
parviendra à la station 2 au bout du temps tp (à l’instant t2). Mais peu de temps avant, la station 2 qui désirait
émettre et ne voyant pas de conflit, a commencé à transmettre un bit dominant. Ce bit dominant va écraser le bit
récessif émis par la station 1, mais celle-ci ne le saura qu’à l’instant t 3, à condition qu’elle l’émette encore à ce
moment là. Dans le pire des cas (t1#t2), le temps bit doit donc être supérieur à 2tp.

Si l’on considère le débit maximum de Can, soit 1Mbit/s, il vient : Temps bit=1µs et tp<0,5µs, soit une distance
maximum théorique du bus de 200 000 km/ 2000 000 soit 100m.
En réalité, il faut prendre en compte les temps de transfert des étages électroniques en entrée et en sortie, mais
également les dérives possibles des horloges. Le diagramme, présente le compromis débit/distance, qu’il est
recommandé de respecter.

#Niedercorn LT « la Briquerie » 57100 THIONVILLE Transmission bus CAN & page 4/13
Types de messages
Il existe quatre types de trames pouvant être transmises sur un Bus CAN :
Trames de données (Data frames): elles sont utilisées pour transporter des données de l’application sur
le bus.
Trames de requête distante (Remote frames) : elles permettent à un n ud d’interroger un autre n ud,
afin que ce dernier lui envoie les données désirées.
Trames d’erreur (Error frames): elles sont émises par un n ud ayant détecté une erreur de transmission
sur une trame en cours de transmission.
Trames de surcharge (Overload frames): elles permettent à une station, d’indiquer qu’elle est surchargée
pendant un certain laps de temps. C’est une forme de contrôle de flux.
Format des trames de données
Le protocole CAN 2.0 comporte deux sous-spécifications qui différent au niveau de la taille de l’ID :
Trame standard (CAN 2.0A) avec ID sur 11
bits,
Trame étendue (CAN 2.0B) : parce que la
version 2.0A ne propose que 11bits d’ID (ce
qui peut parfois se révéler insuffisant), une
nouvelle mouture appelée CAN 2.0B propose
un ID sur 29 bits. CAN 2.0B assure la
compatibilité ascendante avec la précédente
version.
Pour permettre le développement de contrôleurs CAN
assez simples, il a été décidé que le support complet
du format étendu, n’était pas nécessaire pour être
conforme à CAN 2.0
Pour qu’un contrôleur soit considéré conforme à CAN 2.0, il suffit qu’il respecte les deux conditions suivantes :
Le format standard doit être totalement supporté,
Il doit être capable de recevoir des trames étendues, mais sans forcément être capable de les traiter.
Simplement, elles ne doivent pas être détruites.

La trame de données

La figure présente la structure d’une trame CAN 2.0A, celle-ci comprend :


bit SOF : Une trame de données CAN débute par un bit dominant de début (SOF : Start Of Frame),
Le champ d’arbitrage est lui même composé de :

#Niedercorn LT « la Briquerie » 57100 THIONVILLE Transmission bus CAN & page 5/13
o l’identifiant sur 11bits qui est transmis dans l’ordre ID10 à ID0 (ID0 est le bit de poids faible).
Les 7 bits de poids fort (ID10 à ID4) ne peuvent pas tous être récessifs (au moins un est au
niveau logique 0 (dominant)).
o d’un bit RTR (Remote Transmission Request) : Il permet de distinguer les trames de requêtes &
les trames de données. RTR est dominant pour une trame de donnée et récessif pour une trame
de requête.
Remarque : Il est logique que RTR fasse partie du champ d’arbitrage. En effet si deux trames (avec un même
ID mais de type différent : l’une trame de requête et l’autre de donnée), sont émises simultanément sur le bus, il
est normal que la trame de donnée emporte l’arbitrage. En effet elle répond par anticipation à la demande
qu’était en train de formuler la trame de requête !
Le champ de contrôle est composé de 6 bits :
o le bit IDE (IDentifier Extension bit) est dominant pour une trame standard et récessif pour une
trame étendue,
o le bit r0 : bit réservé dominant,
o les quatre bits DLC (3 à 0) pour Data Length Code, permettent de déterminer la longueur du
champ de données en nombre d’octets. Comme ce champ peut contenir de 0 à 8 octets, DLC
pourra prendre une valeur allant de 0 à 8 sur 4bits. Par exemple, s’il y a 7 octets dans la zone de
données, on a DLC3, DLC2, DLC1, DLC0 = 0111 soit d’abord un bit dominant, puis trois bits
récessifs.
Le champ de données : contient les données transmises uniquement dans une trame de données (il n’y a
pas de données dans une trame de requête). Il peut contenir de 0 à 8 octets, où chaque octet est transmis
avec le bit de poids fort en premier.
Le champ de CRC (Calcul Redondant Cyclique), il est constitué de la séquence de CRC sur 15bits,
suivie d’un bit CRCD (CRC Delimiter) récessif. Le CRC permet de vérifier l’intégrité des données
transmises. Les bits utilisés pour le calcul du CRC sont ceux de SOF, du champ d’arbitration, du champ
de contrôle et du champ de données.
Le champ ACK (champ d’acquittement) composé de 2 bits :
o ACK slot (bit d’acquittement),
o ACKD (bit ACK Delimiter) toujours récessif.
Un noeud ayant correctement reçu le message force le bit ACK à l’état dominant, il acquitte le message. Cela
signifie qu’au moins un noeud a reçu correctement le message transmis, et donc cela prouve que le transmetteur
fonctionne correctement. Si par contre ACK reste à l’état récessif, cela signifie qu’aucune station n’a reçu
correctement le message.
Le champ Fin de trame (End Of Frame) comporte 7bits récessifs.
Au total une trame de données CAN 2.0A comporte (44 + 8*N) bits, avec N : nombre d’octets de données, soit
entre 44 et 108 bits/trame.

#Niedercorn LT « la Briquerie » 57100 THIONVILLE Transmission bus CAN & page 6/13
La figure présente la structure d’une trame CAN 2.0B, celle-ci ne diffère de la trame CAN 2.0A qu’au niveau
du champ d’arbitrage :
pour rester compatible avec CAN 2.0A, l’ID a été divisé en deux parties. On place d’abord les 11
premiers bits de poids fort (de ID28 à ID18),
puis on trouve un bit SRR à l’état récessif (Substitute Remote Request bit) qui comble l’emplacement
laissé libre par RTR,
puis on retrouve le bit IDE à l’état récessif, pour préciser qu’il s’agit bien d’une trame étendue,
on complète ensuite l’ID, en plaçant les 18bits restants (de ID17 à ID0),
on place ensuite le bit RTR qui précise toujours s’il s’agit d’une trame de données (RTR dominant) ou
de requête (RTR Récessif),
le champ de contrôle commence lui par les deux bits r1 & r0 (bits de réserve pour des extensions
futures).

La trame de requête

Cette trame permet à un n ud d’interroger un autre n ud. En réponse, ce dernier renvoie la trame de données
correspondant au même ID.
La trame de requête a la même structure qu’une trame de données (voir figures 6 & 7) à l’exception :
du bit RTR qui bien entendu est récessif, alors qu’il est dominant pour la trame de données,
du champ de données qui n’existe pas (c’est normal! La nature de la demande est déjà précisée par
l’ID). En conséquence, le champ DLC indique le nombre d’octets de donnée que devrait retourner la
trame en réponse.

La technique de Bit stuffing ou bourrage de bits

Si l’on place un oscilloscope sur le bus CAN, on n’observera pas tout à fait la séquence de bits présentée aux
figures précédentes. Le code utilisé sur le support physique est pourtant du NRZ. NRZ stipule que durant le
temps bit le niveau appliqué sur le bus est constant (soit dominant ou récessif). Justement l’inconvénient du
code NRZ, (contrairement au code Manchester) est qu’il n’est pas auto synchronisant. Par exemple si l’on doit
transmettre 10 bits dominants de suite, il n’y a plus aucun front sur le bus et donc pas de moyen de
resynchroniser l’horloge de réception. En effet à la réception le contrôleur CAN fonctionne comme un UART,
synchronisé par le front récessif/dominant fourni par le SOF & resynchronisé par les fronts suivants.

La méthode du Bit stuffing consiste à rajouter un bit supplémentaire dès que 5 bits identiques sont émis. Ce bit
sera bien entendu de valeur opposée à la séquence de 5 bits (exemple : séquence de 5 bits dominants, puis un bit
de stuff récessif). Les bits insérés sont pris en compte aussi pour détecter les suites de cinq bits consécutifs et
identiques. Bien entendu à la réception, le contrôleur CAN effectue l’opération inverse (destuffing) pour
supprimer les bits de stuff, afin de restituer le message originel. Ainsi les bits de stuff n’auront servi qu’à la
transmission.
La technique du stuffing est appliquée aux trames de données et de requête uniquement (pas aux trames
d’erreur ou de surcharge), du bit de début (SOF) au champ CRC inclus. Par contre les champs CRC Délimiteur,
ACK et Fin de trame ne sont pas stuffés, car fixes.
Si cette technique a pour effet d’allonger les temps de transmission de message sur le réseau, elle offre par
contre un moyen de détecter des erreurs de transmission, sur non respect de la règle du Bit Stuffing.
#Niedercorn LT « la Briquerie » 57100 THIONVILLE Transmission bus CAN & page 7/13
La trame d’erreur

Lorsqu’un n ud détecte une erreur sur le bus, il émet une trame d’erreur en perturbant la trame en cours
(violation de la règle de stuffing et des règles de format), par conséquent tous les autres n uds détectent aussi
une erreur, et envoient également une trame d’erreur.

La trame d’erreur comprend deux champs :


le champ drapeau d’erreur qui comprend la superposition des drapeaux d’erreur auxquels ont contribué
les différentes stations présentes sur le bus. Les drapeaux d’erreur peuvent être de deux types :
o Soit un active error flag qui est émis par une station error active détectant une condition d’erreur.
Le drapeau d’erreur actif est constitué de 6 bits dominants.
o Soit un passive error flag qui est émis par une station error passive détectant une condition
d’erreur Le drapeau d’erreur actif est constitué de 6 bits récessifs.
Le champ délimiteur d’erreur, constitué de 8 bits récessifs.

L’espace inter trame

Les trames de données ou de requête sont séparées des trames précédentes par un espace inter trame. Au
contraire, les trames d’erreur ou de surcharge ne sont pas précédées par un espace inter trame
L’espace inter trame est constitué de deux ou trois champs :
le champ de bits d’intermission, constitué de trois bits récessifs. Pendant l’intermission aucune
transmission de trame ne doit être débutée par aucune station. Ce temps permet aux contrôleurs CAN
d’exécuter des tâches internes avant les prochaines transmissions ou réceptions.
le champ de bits de bus libre (ou oisif : idle), ce champ peut être de n’importe quelle durée. Pendant ce
temps le bus est libre et n’importe quelle station ayant quelque chose à transmettre peut accéder au bus.
Un message qui était précédemment en attente de transmission, peut alors démarrer dès le premier bit
suivant l’intermission. La détection d’un bit dominant pendant la phase bus idle est interprétée comme
le SOF d’une nouvelle transmission.
et pour les stations error passive qui ont été transmetteur du précèdent message, d’un champ de bits de
suspension de transmission. Après qu’une station error passive ait transmis un message, elle envoie 8
bits récessifs suivant le champ d’intermission avant de reconnaître que le bus est libre et de démarrer la
transmission d’un nouveau message. Si, dans le même temps, une transmission (due à une autre station)
démarre, la station deviendra réceptrice de ce message.

#Niedercorn LT « la Briquerie » 57100 THIONVILLE Transmission bus CAN & page 8/13
La trame de surcharge

La trame de surcharge ne comprend que deux champs :


le champ des drapeaux de surcharge. Un drapeau de surcharge est constitué de 6 bits dominants
consécutifs, comme l’active error flag.
le délimiteur de surcharge, soit 8 bits récessifs.
Il y a deux sortes de conditions qui conduisent à l’émission d’une trame de surcharge :
Un récepteur qui a besoin de temps pour recevoir la prochaine trame. Dans ce cas, le démarrage d’une
overload frame est seulement autorisé au premier temps bit de l’intermission escomptée.
La détection d’un bit dominant durant la phase d’intermission. Dans ce cas le démarrage de l’overload
frame a lieu juste après la détection du bit dominant.
Afin de na pas bloquer indéfiniment le bus, seules deux trames de surcharge consécutives peuvent être
générées.
La sécurité de transmission et la gestion des erreurs
Afin d’assurer une grande sécurité de transmission, de nombreux dispositifs de signalisation, de détection
d’erreur ont été implémentés.

La détection d’erreur

CAN met en uvre cinq moyens de détection d’erreur, deux au niveau du bit (le bit monitoring et le bit
stuffing) et trois au niveau du message (vérification du CRC, du format de la trame et de l’acquittement). Un
ud peut donc détecter cinq types d’erreur :
Bit error : un n ud CAN écoute ce qu’il émet (technique du bus monitoring). Il considère comme une
erreur de bit, le fait que le bit reçu soit différent du bit émis, à l’exception de l’envoi d’un bit récessif
durant l’arbitrage (cas de perte d’arbitrage) et du bit ACK Slot (cas d’une trame acquittée).
Stuff error : Le n ud détecte une erreur de stuffing, lorsqu’il reçoit six bits consécutifs de même valeur
dans une partie de message qui utilise le stuffing.
CRC error : Une erreur de CRC est détectée quand le CRC calculé en réception est différent du CRC
contenu dans la trame.
Form error : Une erreur de format est détectée quand un bit fixe de la trame est dans un état différent de
ce qu’il devrait être :
o erreur de CRC delimiter (normalement toujours récessif)
o erreur de ACK delimiter (normalement toujours récessif)
o erreur de End Of Frame (7 bits normalement toujours récessifs)
o erreur de error delimiter (8 bits normalement toujours récessifs)
o erreur de Overload delimiter (8 bits normalement toujours récessifs)

#Niedercorn LT « la Briquerie » 57100 THIONVILLE Transmission bus CAN & page 9/13
ACK error : Le transmetteur détecte une erreur d’acquittement, lorsqu’il ne reçoit pas de bit dominant
dans le ACK Slot.
Dans tous ces cas de figure, la présence d’erreur sera signalée par une trame d’erreur.

Gestion et confinement des erreurs

Le confinement des erreurs a pour but de cerner, localiser la cause de l’erreur, il permet même d’éliminer un
ud défaillant qui sinon aurait pu paralyser le réseau. Il permet de faire la différence entre des erreurs
temporaires ou permanentes. Les erreurs temporaires peuvent être causées par des glitchs par exemple, tandis
que les erreurs permanentes sont dues à de mauvaises connexions ou à des composants défaillants.
Un n ud peut être dans trois états :
error active : le n ud peut prendre normalement part à la communication sur le bus. Il transmettra un
Active error flag s’il détecte une erreur.
error passive : le n ud peut prendre part à la communication, mais s’il détecte une erreur sur le bus, il
transmet un Passive error flag. Ce mode indique un n ud à problème.
bus off : le noeud est alors (virtuellement) déconnecté du bus.
Pour implémenter ce mécanisme de confinement des erreurs, le contrôleur CAN, possèdent deux compteurs
d’erreurs :
le compteur d’erreur en transmission (Transmit Error Counter),
le compteur d’erreur en réception (Receive Error Counter).
Les compteurs sont incrémentés et décrémentés suivant les règles suivantes :
lorsqu’ une erreur en réception ou en transmission est détectée, le compteur d’erreur correspondant est
incrémenté de 8,
après une transmission réussie ou une réception réussie, le compteur d’erreur correspondant est
décrémenté de 1.
Ainsi le niveau des compteurs reflète la fréquence relative des erreurs. Les incrémentations des compteurs ont
les effets suivants :
Un n ud est en mode error active si ses deux compteurs d’erreur sont inférieurs à 128.
Un n ud est en mode error passive si l’un des deux compteurs d’erreur est compris entre 128 & 255.
Si le compteur d’erreur en transmission est supérieur à 255, le n ud est en Bus Off.
Une station en Bus Off reste dans cet état jusqu’à ce que le microcontrôleur ne fasse une demande de
retour au mode normal et qu’il y ait sur le bus, 128 occurrences de bus libre (11bits récessifs successifs).
Si un des compteurs franchit le seuil de 96, une alarme (Warning) est signalée au microprocesseur de la
station, via une demande d’interruption.

Performance de la détection des erreurs

CAN est très fiable au niveau de la détection d’erreur :


100% des erreurs globales (concernant tous les n uds) sont détectées,
au niveau des erreurs locales (survenant sur un seul n ud), le CRC permet de :
o détecter à 100% jusqu’à 5 erreurs aléatoires réparties dans un message,
o détecter toutes les erreurs sur simple bit, si leur nombre total est impair,
−11

au final, la probabilité totale d’erreur résiduelle de messages entachés d’erreurs est inférieure à 4,7 . 10 .

#Niedercorn LT « la Briquerie » 57100 THIONVILLE Transmission bus CAN & page 10/13
CAN et le modèle OSI.
Le modèle OSI (établi en 1984 par l’ISO), définit 7 couches. Le réseau CAN, comme bon nombre de RLI, lui
n’utilise que 3 couches, il est donc plus proche de l’architecture dite OSI réduite, comme MAP.
Du modèle OSI, il subsiste donc :
La couche Physique (1) sans laquelle il n’y aurait pas de possibilité de transmettre quoi que ce soit,
La couche liaison de données (2) qui règle notamment les problèmes d’accès au support (medium),
La couche Application (7) sans laquelle le réseau n’est d’aucune utilité.
Et encore sur ces trois couches CAN ne spécifie totalement que la couche liaison de données. La couche
physique n’est spécifiée que partiellement. Quant à la couche application, elle est à spécifier par l’utilisateur,
mais il existe aujourd’hui différentes propositions développées par des industriels utilisateurs de CAN.
Couche Physique
Cette couche gère la représentation du bit (codage, timing, synchronisation) et définit les signaux ainsi que le
support de transmission.
CAN ne spécifie pas de medium, plusieurs implémentations sont donc possibles : paire torsadée blindée, câble
coaxial, fibre optique, infrarouge, etc.
La solution implémentée doit satisfaire au principe des bits dominants et récessifs. Le codage est NRZ.
Le support de transmission le plus répandu est la paire torsadée blindée (ou non blindée). Dans le cadre d’une
liaison sur paire différentielle du bus CAN, l’ISO subdivise ses normes entre deux grands champs d’application
bien distincts :
CAN low speed : ISO 11519 (125kb/s maxi),
CAN high speed : ISO 11898 (1Mb/s maxi).
Les différentes tâches accomplies par la couche physique sont réalisées par des circuits électroniques (On-chip
hardware). La couche physique est répartie dans deux types de circuits :
Les drivers de ligne (transceiver), règlent le problème d’interface physique avec le support (niveaux
électriques de tension et courant, impédance …). On peut citer : 82C250 de Philips, SI9200 de Temic
Siliconix, 75LBC031 de Texas Instrument.
Les gestionnaires de réseau CAN assurent le travail correspondant à la couche liaison de données (voir
5.2.), mais aussi la partie de la couche physique correspondant à la représentation du bit (codage,
timing, synchronisation). Des exemples de circuits sont fournis au 5.2.
Citons les principales caractéristiques du CAN high speed (ISO11898):
débit maxi 1Mb/s,
longueur de ligne jusqu’à 40m à 1Mb/s,
de 2 à 30 n uds sur le bus,
paire différentielle torsadée avec rappel de masse,
impédance caractéristique de ligne de 120 (entre 108 & 132 ),
état dominant Vcan_h – Vcan_l = 2 Volt (entre 1,5 V & 2,5 V),
état récessif Vcan_h – Vcan_l =0 Volt (entre -0,5V & +50mV),
protection contre les courts-circuits -3V à +16V (+32V pour 24V nominal),
courant de sortie fourni par l’émetteur : 25mA à 50 mA sur 60 ,
La figure présente les chronogrammes sur les lignes du bus CAN_H & CAN_L et le principe de connexion au
bus.

#Niedercorn LT « la Briquerie » 57100 THIONVILLE Transmission bus CAN & page 11/13
Couche Liaison de données
Cette couche est totalement spécifiée par CAN, elle règle notamment les problèmes :
au niveau sous-couche MAC (Medium Access Control):
è de mise en trame du message,
è d’arbitrage,
è d’acquittement,
è de détection d’erreur,
è de signalisation des erreurs.
au niveau sous-couche LLC (Logical Link Control):
è de filtrage des messages,
è de notification des surcharges (overload),
è de procédure de recouvrement des erreurs.
Ces services sont embarqués dans des circuits intégrés (On-chip hardware). On peut distinguer :
Les circuits intégrés gestionnaires de réseau CAN : le 82C200 (Can 2.0A) et le SJA1000 (CAN2.0B) de Philips
sont les circuits les plus utilisés. Intel (82526 & 82527) et Siemens (81C90) fabriquent également de tels
composants.
Les contrôleurs CAN embarqués sur des microcontrôleurs : Intel (8xC 592 & 8x C598) & Motorola
(68HC912D60) sont des exemples de ce type de circuit, mais dans pratiquement toutes les familles de
microcontrôleurs modernes, on dispose d’une variante avec CAN intégré.
Couche Application
Il existe différentes propositions non encore normalisées pour la couche application :
dans le domaine des applications industrielles : Device Net (de Allen Bradley), SDS (de Honeywell),
CAL : CAN Application Layer & CANopen (tous deux du groupement CiA : Can In Automation),
CANKingdom (de la société Kvaser) etc.
dans le domaine des applications automobiles : J1939 de la SAE (Society of Automotive Ingineers),
OSEK : Open System and Interfaces for Distributed Electronics in Cars (du groupe européen : European
Car Industries Users Group).
Le nombre important de propositions peut s’expliquer par le fait que les sociétés mères travaillent sur des
champs d’applications différents.

Mise en uvre
Chaque n ud est constitué de la façon suivante :

Le moteur de bus est chargé de l’accès au bus.


Le contrôleur est chargé de la gestion du réseau CAN.
Le microcontrôleur assure la gestion de la fonction électronique qui utilise l’accès au réseau CAN.

#Niedercorn LT « la Briquerie » 57100 THIONVILLE Transmission bus CAN & page 12/13
Les contrôleurs CAN.
Pour les contrôleurs CAN plusieurs produits existent sur le marché.
Le P82C150 est un CAN Serial Linked I/O (SLIO), un n ud CAN sans intelligence.
Ce périphérique inclut un contrôleur CAN et 16 pins d’entrées/sorties. Ses 16 pins d’E/S sont
individuellement configurables en mode analogique ou digital. Il est ainsi possible d’avoir jusqu’à 16
entrées digitales, avec la possibilité d’une transmission automatique d’un message au changement d’une
des entrées. Le 82C150 intègre un ADC sur 10 bits, qu’il est possible de multiplexer sur 6 entrées.
L’oscillateur interne limite le débit entre 20kbits/s et 125kbits/s.
L’absence d’intelligence du SLIO oblige à le mettre sur un bus où un n ud plus ”intelligent”,
typiquement un microcontrôleur sera capable de le configurer et de le commander.
Le SJA1000 est un contrôleur CAN ne nécessitent qu’un microcontrôleur externe. Il a été développé par
Philips en 1997 comme un successeur (compatible) du 82C200.
Les MCP 2510 ou 2515 sont des contrôleurs CAN autonomes développés par Microchip.
Les moteurs de bus.
Le protocole CAN ne spécifie pas la couche physique, c’est pourquoi la plupart des contrôleurs CAN ne
possèdent pas de circuits permettant de les connecter à un bus, qu’il soit filaire, à fibre optique ou tout autre
mode de transmission possible
• Le PCA82C250 (ou 82C251) est un transceiver qui permet de faire l’interface entre le contrôleur CAN
et le bus physique.
• Le MCP2551 est un transceiver développé par Microchip afin de réaliser l’interface entre le contrôleur
CAN et le bus physique.
Le circuit PCA82C251 est le circuit le plus utilisé. Si la longueur du bus est importante, il faut disposer à
chaque extrémité du bus une résistance de 120 ohms pour réaliser une adaptation d’impédance. Le 82C251 est
prévu pour piloter jusqu’à 110 n uds et ce sur une longueur de 100 pieds à une vitesse maximale d’un Mbits/s
(plus pour des vitesses plus faibles.
Les composants évolués.
Devant la popularité du bus CAN, on trouve aujourd’hui des microcontrôleurs intégrant un contrôleur CAN
comme par exemple le PIC 18F458 de chez Microchip.
Exemple d’application.
Ci-dessous un exemple d’utilisation des composants de Microchip.

#Niedercorn LT « la Briquerie » 57100 THIONVILLE Transmission bus CAN & page 13/13

Vous aimerez peut-être aussi