100% ont trouvé ce document utile (2 votes)
657 vues29 pages

Introduction au Bus CAN en Automobile

Transféré par

mezzi houssem
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (2 votes)
657 vues29 pages

Introduction au Bus CAN en Automobile

Transféré par

mezzi houssem
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

[COURS PROTOCOLE & MULTIPLEXAGE] G.

MECANIQUE - S5

Chapitre 1 : Bus CAN

Introduction

Le bus CAN (Control Area Network) est né du besoin de trouver une solution de
communication série dans les véhicules automobiles, qui ont tendance à intégrer de plus en plus
de commandes électroniques. Le CAN a été lancé en 1990 pour répondre aux besoins de
l'industrie automobile devant la montée de l'électronique embarquée. En 2005 une voiture
moyenne comporte une centaine de microcontrôleurs. Pour éviter les 2 kms de câblage d'une
grosse voiture actuelle, soit 100 kg de cuivre, il fallait définir un bus série simplifiant
énormément l'intégration des fils dans le châssis.
Le CAN est un bus de communication série. Son architecture générale ainsi que les
couches liaison de données et physiques sont définies par les normes ISO 11519-1 pour les
débits jusqu'à 125 kbit/s (CAN basse vitesse) et ISO 11898 pour les débits jusqu'à 1Mbit/s
(CAN haute vitesse). Elles définissent la transmission d'informations entre les différents types
de modules électroniques embarqués à bord des véhicules routiers : commandes de phares,
capteurs, calculateurs d'injection, tableau de bord... Elaboré par la société Robert BOSH
GmbH, puis normalisé.
L'architecture CAN est conforme au modèle de référence pour l'interconnexion des
systèmes ouverts (OSI) de l'ISO en ce qui concerne la décomposition en couches.
Le bus/réseau de terrain CAN est un réseau de terrain aussi car il doit fonctionner dans
un environnement limité géographiquement et sévère comme une usine, un atelier, une
voiture…
En pratique, il y a trois bus CAN différents dans une voiture, à des débits différents :
un bus très rapide pour gérer la sécurité (freinage, ABS, détections chocs, airbags...) ;
un bus à vitesse moyenne pour gérer le moteur (commandes et capteurs) ;
un bus lent pour gérer tous les accessoires (lampes, moteurs d’asservissements,
boutons...).
Il existe sous deux versions :
CAN2.0A : trame standard avec un identificateur de 11 bits (CAN standard) ;
CAN2.0B : trame plus longue avec un identificateur sur 29 bits (CAN étendu).

MAGHRAOUI WIDED
1
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Il existe également deux types différenciés par leur débit :

le CAN Low Speed ;


le CAN High Speed.

Figure 1-1 : Réseau CAN automobile

I. Architecture
1. Réseau multiplexé

Un réseau multiplexé peut être organisé avec des dispositifs maîtres ou esclaves.
En automobile le multiplexage consiste à faire circuler dans peu de fils, deux, voire
un, une multitude d’informations entre les différents calculateurs d’un véhicule.
On appelle “ bus ” ou “réseau de communication ” le circuit électrique qui véhicule les
informations“ multiplexées ” et permet le “ dialogue ” entre les calculateurs.
On prend l’exemple de 3 calculateurs qui ont besoin d'échanger des données :

MAGHRAOUI WIDED
2
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Figure 1-2 : Solution classique n fils par information Figure 1-3 : Solution multiplexée 1
bus (2 fils) pour toutes

MAGHRAOUI WIDED
3
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Exemple de système de refroidissement et gestion température d'eau 406:


La figure (a) présente le schéma simplifié de refroidissement et de la gestion de la température
d'eau 406 sans multiplexage.
La solution multiplexée est décrite par la figure (b).

Figure 1-4 (a) : solution simplifiée non multiplexée

Figure 1-4 (b) : solution multiplexée


Les calculateurs échangeant régulièrement des informations entre eux sont connectés sur

MAGHRAOUI WIDED
4
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

un bus. Pour faciliter les échanges et ne pas surcharger le bus, un véhicule multiplexé peut
disposer de plusieurs bus en fonction des équipements.

2. Support de transmission

La transmission des données est effectuée sur une paire filaire différentielle.

Figure 1-5 : Support de transmission


L’utilisation de paires torsadées permet, en créant une cage de Faraday naturelle, de
s'affranchir des émissions du câble en inversant à chaque torsade les vecteurs induction
produits, ce qui les annule deux à deux alors que 2 fils en parallèle sont rapidement parasités
Elle permet également de réduire les perturbations extérieures en annulant par opposition les
courants induits dans chaque boucle par un champ perturbateur.
Le bus utilisé en format CAN est donc constitué de deux fils désignés par CAN-H
(High : haut) et CAN-L (Low : bas) ; les signaux sont complémentaires l’un de l’autre mais les
niveaux logiques « 0 » et « 1 » sont à des potentiels différents. Et les niveaux logiques
(récessifs et dominants) sont obtenus par la différence de potentiel entre les deux voies CANL
et CAN H.
Les niveaux de tension sur CANL et CANH dépendent du type Low Speed ou High
Speed du bus.
Ces niveaux de tension correspondent à un codage dit NRZ (No Return to Zero : il n’y
a jamais de courant nul sur la ligne. La masse n’est plus utilisée et les niveaux logiques
correspondent à 2 niveaux de tensions distinctes).

Figure 1-6 : Niveaux de tension sur CANL et CANH

MAGHRAOUI WIDED
5
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Les stations sont câblées sur le bus par le principe du "OU câblé", en cas de conflit
c'est-à-dire émission simultanée, la valeur 0 écrase la valeur 1. On appelle donc l'état dominant
l'état logique 0, et l'état récessif l'état logique 1.

Le tableau ci-dessous résume les principales différences 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 25 à 50 mA sur 60
émission) > 1 mA sur 2,2 kohm ohm
CAN H = 4V
V
Niveau dominant CAN H - VCAN L = 2V
CAN L = 1V
CAN H = 1,75V
V
Niveau récessif CAN H - VCAN L = 2,5V
CAN L = 3,25V
30 pF entre les câbles
Caractéristique du câble de ligne 2*120 ohm
Tensions d’alimentation 5V 5V

Tableau 1-1: differences entre CAN low speed et CAN high speed

La longueur des liaisons est limitée en fonction du débit :

Débit Longueur

1 Mbit/s 40 m

500 Kbit/s 100 m

100 Kbit/s 500 m

20 Kbit/s 1000 m

Tableau 1-2: longueur des liaisons

MAGHRAOUI WIDED
6
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

I. Le protocole CAN
1. Présentation

La structure du protocole du bus CAN possède implicitement les principales propriétés


suivantes :
hiérarchisation des messages.
garantie des temps de latence.
souplesse de configuration
fonctionnement multi-maître.
détections et signalisations d’erreurs.
retransmission automatique des messages altérés dès que le bus est de nouveau au repos.
distinction d’erreurs : d’ordre temporaire ou de non-fonctionnalité permanente au niveau
d’un nœud.
déconnexion automatique des nœuds défectueux.
Le transfert des messages se réalise à l’aide de quatre types de trames spécifiques et
d’un intervalle de temps les séparant :
les trames de données : ces trames transportent des données d'un producteur vers des
consommateurs.
les trames de requête : ces trames de polling sont émises par un maître vers des esclaves
pour requérir la transmission d'une trame de données.
les trames d’erreurs : ces trames sont transmises lorsqu'une station détecte une erreur de
transmission sur le bus.
les trames de surcharge (overload) : ces trames sont émises pour demander un laps de
temps supplémentaire entre des trames (de données ou de requête) successives.
Il existe un espace inter trame de 3 bits récessifs entre les trames de données et de requête.
Par ailleurs, il existe deux types de format de trames :
la trame standard (format standard CAN 2.0A) possède un identificateur de 11 bits
la trame étendue (format étendu CAN 2.0B) possède un identificateur 29 bits : Ce format
étendu permet d’obtenir un plus grand nombre de messages et/ou de priorités.
Remarque : Le bus CAN2.0B est compatible avec le CAN2.0A.

2. Protocole CAN et couches OSI


MAGHRAOUI WIDED
7
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

On retrouve ainsi dans le protocole CAN, la couche liaison de données (couche 2) et la


couche physique (couche 1) (figure 1). La couche de liaison de données est subdivisée en deux
sous-couches (LLC Logic Link Control), et MAC (Medium Access Control), tandis que la couche
physique est divisée en trois sous-couches (PLS Physical Signalling), PMA (Physical Medium
Access), MDI (Medium Dependent Interface).

Figure 1-7 : Le protocole CAN et le modèle OSI

La sous-couche MAC représente le noyau du protocole CAN. Elle a pour fonction de présenter
les messages reçus en provenance de la sous-couche LLC et d’accepter les messages devant
être transmis vers la sous-couche LLC. Elle est responsable de :
- la mise en trame du message.
- l’arbitrage.
- l’acquittement.
- la détection des erreurs.
- la signalisation des erreurs.
Elle est supervisée par une entité de supervision qui est un mécanisme apte à faire la
distinction entre les dérangements de courtes durées et des pannes permanentes.
MAGHRAOUI WIDED
8
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

La sous-couche LLC s’occupe quant à elle :


- du filtrage des messages.
- de la notification de surcharge (Overload).
- de la procédure de recouvrement des erreurs.
La couche physique définit comment le signal est transmis et a par conséquent pour
rôle d’assurer le transfert physique des bits entre les différents nœuds en accord avec toutes les
propriétés (électriques, électroniques…) du système. Il est évident qu’à l’intérieur d’un même
et unique réseau la couche physique doit être la même pour chaque nœud. Cette couche
s’occupe donc :
- de gérer la représentation du bit (codage, timing…).
- de gérer la synchronisation bit.
- de définir les niveaux électriques des signaux.
- de définir le support de transmission.

3. Constitution d’une trame de données


La norme CAN définit deux formats de protocole : Standard (Version2.0 A) et
Extended (Version2.0 b). La différence résulte seulement dans la longueur de l'identificateur
(ID) qui est de 11 bits de base et 18 bits supplémentaires en mode Extended soit 29 bits. Cette
extension permet l'augmentation du nombre de variables échangées, et le nombre de stations
sur le réseau. Le nombre d'octets de données échangées à chaque trame reste inchangé.

Figure 1-6 : Trame de données au format standard (spécification CAN2.0A)

Figure 1-8 : Trame de données au format étendu (spécification CAN2.0B)

Une trame est composée des champs suivants :


bit SOF (Start Of Frame) : début de le trame (bit dominant)
MAGHRAOUI WIDED
9
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Identificateur (11 bits)


bit RTR (Remote Transmission Request) : détermine s'il s'agit d'une trame de données ou
d'une trame de demande de message.
bit IDE qui établit la distinction entre format standard (état dominat) et format étendu
(état récessif)
1 bit réservé pour une utilisation future
4 bits DLC : nombre d'octets contenus dans la zone de données
zone de données de longueur comprise entre 0 et 8 octets
zone CRC de 15 bits : (Cyclic Redundancy Code) Ces bits sont recalculés à la réception
et comparés aux bits reçus. S'il y a une différence, une erreur CRC est déclarée.
zone ACK (Acknowledge) composé d'un bit à l'état récessif ainsi qu'un bit séparateur
ACK. Le premier bit doit être forcé à l’état dominant par les stations ayant bien reçu
cette trame.
zone EOF de 7 bits récessifs : (End Of Frame) permet d'identifier la fin de la trame.
Le début de trame n’est effectif que si le bus était précédemment au repos. Tous les nœuds du
réseau doivent se resynchroniser sur le bit de SOF. Le transfert des messages se manifeste et est
commandé à l’aide de quatre types de trames spécifiques et d’un intervalle de temps les
séparant.

a. Le bit SOF : (début de trame de données)

On appelle "état dominant" l'état logique 0, et "état récessif" l'état logique 1. Elle est
constituée d’un seul bit dominant (0 logique), signalant à toutes les stations le début d’un
échange. Il ne peut démarrer que si le bus était au repos. Toutes les stations doivent se
synchroniser sur le front avant la transition du bit de départ.
b. Identificateur

La longueur de l'identificateur est de 11 bits, les bits sont transmis dans l'ordre de
ID_10 à ID_0 (le moins significatif est ID_0). Par ailleurs les 7 bits les plus significatifs (de
ID_10 à ID_4) ne doivent pas être tous récessifs.
ID = 1111111XXXX (X valeur indéterminée), c'est-à-dire un nombre maximal
d'identificateurs de : (211 - 24) = 2048 - 16 = 2032 combinaisons

MAGHRAOUI WIDED
10
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Exercice n°1
 Déterminer en théorie le nombre de messages qu'il est possible de définir pour une
trame standard.
 En tenant compte de ces particularités, déterminer réellement le nombre de messages
qu'il est possible de définir pour une trame standard.

c. Le bit RTR
Le bit RTR est récessif lorsque il s’agit d’une trame de requête et dominant dans le cas d’une
trame de donnée.
d. Champ d’arbitrage
C’est au niveau des identificateurs suivi du bit RTR (Remote Transmission Request) que se
fait l’arbitrage bit à bit des données. Lorsque plusieurs trames sont envoyées, le niveau du bit
reçu est comparé au niveau du bit qu’il est censé transmettre lui-même. Si ces niveaux sont
identiques, la station continue d’émettre. Dans le cas contraire, le niveau dominant prend le
dessus, l’autre station perd l’arbitrage et cesse d’envoyer.
Les stations sont câblées sur le bus par le principe du "ET câblé". En cas de conflit c'est-à-dire
émission simultanée, la valeur 0 écrase la valeur 1.
Dans l'exemple ci-dessus, trois stations émettent simultanément :
la station 1 perd la compétition puis la station 3 ;
seule la station 2 pourra transmettre.

MAGHRAOUI WIDED
11
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Figure 1-9 : Exemple des stations câblées sur le bus


Lors de l'arbitrage bit à bit, dès qu'une station émettrice se trouve en état récessif et
détecte un état dominant, elle perd la compétition et arrête d'émettre. Tous les perdants
deviennent automatiquement des récepteurs du message, et ne tentent à nouveau d'émettre que
lorsque le bus se libère.
e. Champ de commande
Il est constitué de 6 bits : les 2 premiers bits sont dominants, les 4 suivants indiquent le nombre
d’octets contenus dans le champ de données. (Voir tableau 1-3)

Figure 1-10 : Champ commande

Tableau 1-3 : Codage des bits DLC suivant la taille des données en octets

MAGHRAOUI WIDED
12
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Exercice n°2 : Compléter la trame (jusqu'au champ CRC exclu) dans le cas où un nœud émet les
données,'B' (0x42) suivi de la valeur 6.

f. Champ de données

Il peut être composé de 0 à 8 octets (cela fait neuf valeurs donc 4 bits du DLC pour
définir le nombre de données contenues) transmises avec le MSB en tête. C’est l’endroit où se
trouvent les données utiles transmises.

Fig
ure 1-11 : Champ de données

g. Le champ de CRC

Il est composé de la séquence de CRC (Cyclic Redundancy Code : code de redondance


cyclique) suivi d’un bit délimiteur de CRC (bit récessif).

Figure 1-12 : Champ CRC

MAGHRAOUI WIDED
13
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Le CRC est un polynôme calculé de la même manière par l’émetteur et par le


récepteur de la trame : le message est vu par l’algorithme, présenté ci-dessous, comme un
polynôme qui est divisé par X15+X14+X10+X8+X7+X4+X3+1 et le reste de cette division est la
séquence CRC transmise avec le message

Algorithme de calcul de polynôme CRC :

Une trame de bits est considérée comme un polynôme dont les coefficients des termes
sont les valeurs des bits de la trame. Une trame de n bits est considérée comme une suite de n
termes (de X n-1 à X 0).
Un tel polynôme est dit de degré n-1. Le bit de poids fort est le coefficient du terme
Xn-1.
L’émetteur et le récepteur doivent se mettre d’accord à l’avance sur un polynôme
générateur G(x) de degrés k. Lorsqu’un émetteur veut émettre un message M(x) :
 Il concatène k bits à M(x) (k étant le degré de G(x)). Ces k bits sont l’information
redondante. On appellera P(x) le message transmis composé de M(x) suivi des k bits.
 si P(x) est transmis et qu’aucune erreur ne se produit lors de la transmission, le récepteur
qui divisera P(x) par G(x) obtiendra un reste de 0, signe d’une transmission correcte. Si
le reste est non nul, il y a une erreur.
Exemple : Soit un polynôme générateur de degré 4 (k=4),
G(x) = 10011 = X 4 + X 1 + X 0 = X 4 + X + 1
Et un message M(x) = 1101011011
On ajoute k bits à 0 à la suite des bits de poids faible de M(x) ce qui nous donne T(x).

T(x) = 11010110110000

La division polynomiale de ce nouveau polynôme par G(x) nous donne un reste qui sont les
valeurs que l’on recherche pour les k bits (l’information redondante).

MAGHRAOUI WIDED
14
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Donc P(x) l’information transmise sera : 1101011011


1110 
M ( x) RESTE

Le récepteur contrôle la trame P(x) reçue en divisant P(x) reçue par G(x). Et si le reste = 0
alors il n’y a pas eu d’erreur
h. Le champ ACK
Il est composé de 2 bits : bit ACK slot, bit ACK delimiter.
ACK slot : bit dominant lorsque la station a validé la séquence CRC
ACK delimiter : bit récessif
Un nœud en train de transmettre un message envoie un bit récessif pour l’ACK Slot. Un
nœud ayant reçu correctement un message informe le transmetteur en envoyant un bit dominant
pendant l’ACK Slot : il acquitte alors le message.

Figure 1-13 : Champ acquittement


i. Fin de trame de donnée
MAGHRAOUI WIDED
15
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

La trame de donnée se termine par un drapeau formé par une séquence de 7 bits récessifs,
ce qui vient en totale contradiction avec la norme de bit stuffing. Ce champ a une structure
fixe et les logiques de codage (à l'émission) et de décodage (aux réceptions) de bit stuffing sont
désactivées pendant la séquence du champ de fin de trame.

Exercice n°3 : Déterminer, pour les formats standard et étendu, les longueurs minimum et
maximum en bits d'une trame de données circulant sur le bus CAN en ne tenant pas compte
du bit stuffing.

4. Bit-Stuffing

Afin de sécuriser la transmission des messages on utilise la méthode dite de Bit-Stuffing (bit de
transparence). Cette méthode consiste, dès que l’on a émis 5 bits de même polarité sur le bus, à
insérer un bit de polarité contraire pour casser des chaînes trop importantes de bits identiques.
On obtient ainsi dans le message un plus grand nombre de transition ce qui permet de faciliter
la synchronisation en réception par les nœuds. Cette technique est uniquement active sur les
champs de SOF, d’arbitrage, de contrôle, de CRC (délimiteur exclu). Pour un fonctionnement
correct de tout le réseau, cette technique doit être implémentée aussi bien à la réception qu’à
l’émission.

Figure 1-14 : Technique de Bit-Stuffing

MAGHRAOUI WIDED
16
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Exercice n°4 : Compléter le diagramme suivant en respectant la méthode de BitStuffing.

5. Trame de requête (remote frame)


Chaque nœud émet sans savoir si l'information est envoyée à l'un des participants.
Il se peut aussi qu'un nœud ait besoin d'information d'un certain type dont il ne dispose pas
pour assurer la mission qui lui est dévolue. Dans ce cas, une station nécessitant des données
peut initialiser la demande d'une transmission des données considérées par un autre nœud en
envoyant une trame de requête. Sa constitution est pratiquement identique à celle d’une trame
de données. La différence est qu’une trame de requête n’a pas de champ de données et le bit
RTR est récessif.
Cette trame ne se compose que de six parties au lieu des sept précédentes :
le début de trame,
le champ d'arbitrage,
le champ de commande,
le champ de CRC,
le champ d'acquittement,
la fin de trame.
Puis une 7ème zone dite d'espace inter trame

Figure 1-15 : Trame de requête

MAGHRAOUI WIDED
17
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

6. Trame de surcharge

La trame de surcharge indique aux autres nœuds qu’une station est surchargée. Elle est
formée de deux champs :

le drapeau de surcharge (Overload Flag) avec six bits dominants,


le délimiteur de surcharge (Overload Delimiter) avec huit bits récessifs.

Cette trame indique qu'une station est surchargée pendant un certain laps de temps.
Une trame de surcharge est émise sur le bus si :
un bit dominant est détecté durant la période d’inter trame.
un récepteur n’est pas prêt pour la réception d’une nouvelle trame de donnée ou de
requête (retard sur le traitement des informations circulant sur le bus).
Afin de ne pas bloquer le bus indéfiniment seules deux trame de surcharge
consécutives peuvent être générées pour retarder les trames de données suivantes.

7. Inter trame (Inter frame)

Les trames de données et les trames de requêtes sont séparées des trames précédentes
par un champ de 3 bits récessifs appelé l’espace inter trame. Pendant ce temps aucune station
n’est autorisée à démarrer la transmission d’une trame de requête ou de données.

Au contraire, les trames de surcharge et les trames d’erreur ne sont pas précédées par un inter
trame et les multiples trames de surcharge ne sont pas séparées par un inter trame.

8. La trame d’erreur

Si la station détecte une erreur, elle renvoie une trame d'erreur constituée de
champ des drapeaux de 6 bits (Error Flag) suivi de
8 bits délimiteurs à l'état récessif (Error Delimiter).

Les trames diffèrent suivant le type de drapeaux qu’elles contiennent. Le drapeau


d’erreur indique s’il s’agit d’une erreur passive ou active.

Lors d’une erreur active le drapeau d’erreur est constitué de 6 bits dominants consécutifs.
MAGHRAOUI WIDED
18
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Lors d’une erreur passive le drapeau d’erreur est constitué de 6 bits récessifs successifs.
Ils n’obéissent pas à la loi du bit stuffing.

Plusieurs stations peuvent détecter l'erreur et envoyer elles aussi une trame d'erreur : il
y a aura superposition de bits d'erreur (un maximum de 6 bits supplémentaires soit 12 bits max
pour l'Error Flag afin de ne pas bloquer indéfiniment le bus).

Figure 1-16 : Trame d'erreur active

9. Le confinement d'erreurs

Etant donné qu'une station défectueuse peut perturber le fonctionnement de


tout le système (envoi ininterrompu de trames d'erreurs), les noeuds «défectueux» se
déconnectent automatiquement (ou limitent leur fonctionnement comme le signalement
d'erreurs). Pour mettre en oeuvre le confinement, chaque noeud comporte
obligatoirement deux compteurs :
sur les trames émises (TEC Transmit Error Counter)
sur les trames reçues (REC Receive Error Counte
Ces compteurs s'incrémentent et se décrémentent en utilisant un mécanisme de
pondération sophistiqué. Pour simplifier, on considérera le fonctionnement suivant (Il existe
notamment quelques exceptions à ces règles) :
REC :
Réception d'une trame corrompue : +1 (jusque 128)
Réception d'une trame correcte : 1
TEC :
Emission d'une trame corrompue : +8 (jusque 256)
Emission d'une trame correcte : 1
Suivant la valeur de ces compteurs, le noeud se trouve dans un des 3 états suivant :

MAGHRAOUI WIDED
19
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Etat Erreur active : fonctionnement normal


Etat Erreur passive : émission possible mais 8 bits après que le bus soit libre (temps de
réponse !), plus de signalement d'erreurs (le noeud transmet uniquement des passive
error flag constitués de bits recessifs)
Etat Bus off : la station se déconnecte du bus (plus d'émission ni de réception)

Figure 1-17 : Compteur d'erreur et état d'un nœud

Exercice n°5: Lors d'une erreur, le nœud essaiera à nouveau de transmettre le message
(retransmission automatique en cas d'erreur). Déterminer le délai en bits qu'il faudra attendre au
mieux et au plus (si aucun message de priorité supérieure ne prend la main sur le réseau).

Lors d'une erreur, le nœud essaiera à nouveau de transmettre le message


(retransmission automatique en cas d'erreur). Déterminer le délai en bits qu'il faudra attendre au
mieux et au plus (si aucun message de priorité supérieure ne prend la main sur le réseau).

10. Gestion d’erreurs


Pour différentes raisons, comme l’existence de fortes perturbations ou de pertes
importantes lors de la transmission, le protocole CAN dispose d’un système de gestion des
erreurs locales.
Le principe du bit stuffing vu précédemment permet de localiser une erreur et un nœud
qui détecte ce type d’erreur transmettra aux autres nœuds un message dit « Error Flag »
contenant six bits de même polarité. Après avoir transmis le message Error Flag, le nœud
essaiera à nouveau de transmettre le message, et si aucun message de priorité supérieure ne
prend la main sur le réseau ce nouveau message transmet 23 bits au plus après.
MAGHRAOUI WIDED
20
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Les bits formant l’Error Flag sont dominants et écrasent donc les données contenues
dans la Data Frame. Ils provoquent la retransmission de cette dernière. Dans le cas d’erreurs
successives, il y aura superposition d’Error Flags.

11. Détection d’erreurs

Le CAN intègre cinq mécanismes d’erreurs, trois au niveau du message et deux au niveau du
bit :

BIT ERROR : cette erreur est détectée lorsque la valeur du bit sur le bus est différente de la
valeur du bit transmis ;

STUFF ERROR : elle doit être détectée au Bit Time du sixième même état logique d’un
champ soumis au codage par « bit stuffing »
CRC ERROR : une séquence CRC résulte d’un calcul effectué par l’émetteur. Le récepteur
calcule le champ CRC de la même manière que l’émetteur. Une erreur est détectée si le résultat
des deux calculs ne sont pas identiques ;
FORM ERROR : cette erreur est générée si un champ donné contient au moins un bit illégal;
ACKNOWLEDGEMENT ERROR : elle doit être détectée par l’émetteur lorsqu’aucun
récepteur ne génère un bit « dominant » pendant ACK SLOT.

Figure 1-18 : Les sources d'erreur dans la trame CAN

12. Codage

MAGHRAOUI WIDED
21
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

La transmission des bits sur le bus CAN se fait en mode Bande de Base suivant un
codage NRZ (Non Return to Zero). Les transitions des bits s’effectuent sur chaque front
montant de l’horloge.

Figure 1-19 : Codage NRZ


Une période d’horloge correspond à ce que l’on appelle le Nominal Bit Time. Le
Nominal
Bit Time représente donc la durée d’un bit sur le bus. Le niveau de tension est
maintenu constant pendant la durée d'un bit (NRZ). Chaque station reliée sur le bus doit être
cadencée avec le même Nominal Bit Time pour pouvoir émettre et recevoir correctement les
données circulant sur le bus.
Chaque bit est constitué de plusieurs segments cadencés par l'horloge interne de
chaque nœud :
 le segment de synchronisation (SYNC_SEG);
 le segment de propagation (PROP_SEG) sert à compenser les retards temporels
physiques dans le réseau. Sa valeur est fixée à deux fois la somme du temps de
propagation des signaux dans les lignes du bus et des retards apportés par les entrées
sorties des drivers de lignes ;
 le segment de phase buffer n°1 (PHASE_SEG1),
 le segment de phase buffer n°2 (PHASE_SEG2) ces deux segments sont utilisés pour
compenser les erreurs de synchronisation. Ils peuvent être allongés ou raccourcis par la
resynchronisation.

MAGHRAOUI WIDED
22
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Figure 1-20 : Composition de Nominal Bit Time

Time Quantum :
Le « Time Quantum » est l'unité de temps construite à partir de la période de
l'oscillateur interne de chaque nœud. La fréquence du bus étant au maximum de 1 MHz et
celles des oscillateurs de plusieurs MHz, le « Time Quantum » vaut généralement plusieurs
périodes d'horloge (entre 1 et 32 fois).

La durée de chaque segment est la suivante :

Segment Durée en « Time Quantum »

Synchronisation 1

Propagation de 1 à 8

Phase buffer n°1 de 1 à 8

Phase buffer n°1 de 1 à 8

Tableau 1-4 : Durée des segments de Time quantum

Ainsi la durée d'un bit peut varier de 4 à 25 « Time Quantum ».Plus la fréquence de
l'horloge interne du nœud est importante, plus la durée du « Time Quantum » pourra être faible,
plus les 3 derniers segments compteront de « Time Quantum » et meilleure sera la précision de
la synchronisation.

MAGHRAOUI WIDED
23
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Point d’échantillonnage :

Le point d'échantillonnage ou « Sample point » est l'instant où on lit la valeur du bit


sur le bus. Celui-ci intervient à la fin de PHASE_SEG1. Sur des bus CAN lents ou très
perturbés, on pourra prendre trois points d'échantillonnage.

13. Synchronisation

Il existe 2 types de synchronisation :

 la hard-synchronisation qui consiste à se resynchroniser brutalement dès qu'une transition


est détectée dans le segment de synchronisation, notamment lors du SOF (Start Of
Frame) d'une nouvelle trame,
 la resynchronisation qui consiste à allonger le segment de phase buffer n°1 ou à diminuer
le segment de buffer phase n°2, ce qui a 2 effets :

a)déplacer le point d'échantillonnage,


b)diminuer ou augmenter la durée du bit et ainsi améliorer la synchronisation du bit suivant.

14. Les composants CAN


Le CAN est un système très ouvert en ce sens que plusieurs produits issus de différents
fabricants peuvent cohabiter sur le même réseau.
Les composants CAN peuvent être classés en plusieurs catégories :
contrôleur CAN « Stand Alone » : composant assurant la gestion du protocole CAN
destiné à s’interfacer avec un système programmable de type microcontrôleur pour lui
fournir ainsi l’accès à un bus CAN. Couplé avec un « driver » de ligne, il permet à
l’ensemble de communiquer avec d’autres composants/capteurs CAN.;
microcontrôleur « Single Chip Solution » : il s’agit d’un microcontrôleur intégrant
(fondu) avec un contrôleur CAN ;
SLIO (Serial Link Input/Output) : composant autonome intégrant un contrôleur CAN,
prévu pour des entrées/sorties déportées, et conçu pour réaliser des fonctions de
contrôle à distance de capteurs et d’actionneurs ;
« Gate array » : il s’agit de circuits intégrés sur mesure incorporant un contrôleur CAN.

Ces composants sont chargés de gérer la couche physique en permettant un accès à la


paire différentielle. L’intérêt du bus étant de véhiculer des signaux sur une certaine longueur
MAGHRAOUI WIDED
24
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Ceci comprend les tâches telles que les mécanismes de synchronisation, le traitement des
erreurs, l'arbitrage, un circuit capable de « doper » les signaux est généralement nécessaire
(driver de ligne) constituant ainsi l’interface entre le gestionnaire de protocole CAN et le
média de transmission. Voici les différents noms utilisés pour ce type de composants :
CAN tranceiver
Drivers de ligne
Commande d’interface de Bus CAN (Can Controller Interface)

Exemple de « Driver » de ligne : PCA 82C250


Exemple de « de gestionnaire de protocole» de type standalone : SJA1000

On obtient donc une architecture à deux ou trois modules pour implémenter le bus Can
dans un système:
1 microprocesseur + Contrôleur CAN + Interface de ligne (transceiver)
1microprocesseur CAN + Interface de ligne
Serial Link I/O (SLIO) : migration de systèmes existants à des connexions de bus
CAN.
.

MAGHRAOUI WIDED
25
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Figure 1-21 : Schéma de principe d'un circuit CAN

Le brochage sur le bus CAN est normalisé et utilise un connecteur DB-9 :

Figure 14-2 : brochage de DB9

MAGHRAOUI WIDED
26
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Exercice n°6 :

1. Calculer le rendement du protocole CAN lorsqu'il émet une trame de données complète.
2. Avec des trames de 60 bits en moyenne, déduire le nombre maximum de trames pouvant
circuler sur le bus en une seconde et ce pour le débit maximum (1 Mbits/s).
3. Dans le cas où il y a 4 nœuds identiques qui émettent et reçoivent 16 trames (de 60 bits en
moyenne) par secondes, déterminer le taux de charge maximum pour ce bus.

MAGHRAOUI WIDED
27
[COURS PROTOCOLE & MULTIPLEXAGE] G.MECANIQUE - S5

Références bibliographiques

 Bibliographie
[1] Dominique PARET. Le bus CAN Controller Area Network. 1997
[2] BOSCH. Norme CAN.
[3] Pascal BORGHESI, Cyril RAPIN. Projet de fin d'étude ENSERB. 1998

 Netographie

[1] http://www.enseirb.fr/~kadionik/formation/canbus/canbus.html:Le bus de terrain CAN de


Patrice Kadionik

[2] http://www.a2v.fr/program/canopen.htm: Le réseau CAN et le protocole CANOpen


[3] http://www.oberle.org/canindex.html : Gestion du bus CAN :
[4] http://edelaunay.chez.tiscali.fr/buscan.htm : Introduction au bus CAN

MAGHRAOUI WIDED
28
[CORRECTION DES EXERCICES] G.MECANIQUE - S5

MAGHRAOUI WIDED

Vous aimerez peut-être aussi