0% ont trouvé ce document utile (0 vote)
12 vues20 pages

Exercices CAN

Le document présente le bus CAN (Controller Area Network), un protocole de communication série développé pour les véhicules automobiles, qui permet une communication fiable et rapide entre différents systèmes. Il décrit les applications du bus CAN dans l'industrie automobile et d'autres secteurs, ainsi que son fonctionnement basé sur le modèle OSI, en détaillant les couches physique et de liaison. Le document aborde également les concepts clés tels que l'arbitrage, la gestion des erreurs et les caractéristiques des messages dans le réseau CAN.

Transféré par

dk.acadine
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
0% ont trouvé ce document utile (0 vote)
12 vues20 pages

Exercices CAN

Le document présente le bus CAN (Controller Area Network), un protocole de communication série développé pour les véhicules automobiles, qui permet une communication fiable et rapide entre différents systèmes. Il décrit les applications du bus CAN dans l'industrie automobile et d'autres secteurs, ainsi que son fonctionnement basé sur le modèle OSI, en détaillant les couches physique et de liaison. Le document aborde également les concepts clés tels que l'arbitrage, la gestion des erreurs et les caractéristiques des messages dans le réseau CAN.

Transféré par

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

2011-2012

Pierre-Louis CAYREL
[Link] Feuille n∘ 2
IUT de Saint-Etienne
d'après un cours de Thierry Vaira

Le bus CAN

Table des matières


1 Introduction 1
1.1 Protocole CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Modèle OSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Dénitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Couche 2  Niveau Trame 8


2.1 Trame de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Arbitrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Champ de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 Trame de requêtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5 Champ CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6 Champ d'acquittement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.7 Champ de n de trame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.8 Traitement des erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.9 Diérents types d'erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.10 Trame d'erreur (Error Frame) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.11 Le connement d'erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3 Couche 1  Niveau Bit 19

Bibliographie
 Le bus CAN de Thierry Vaira : [Link]
 Le bus de terrain CAN de Patrice Kadionik : [Link]
canbus/[Link]
 Le réseau CAN et le protocole CANOpen : [Link]
 Gestion du bus CAN : [Link]
 Introduction au bus CAN : [Link]
 etc ...

1 Introduction
Le bus CAN (Controller Area Network) est né du besoin de trouver une solution de communi-
cation série dans les véhicules automobiles. Il a été initialement développé par la société Bosch,
au milieu des années 80, puis a fait l'objet d'une normalisation ISO 11898 et 11519.

1
Le bus CAN est un réseau à part entière respectant le modèle d'interconnexion des systèmes
ouverts (modèle OSI) de l'ISO et il est classé dans la catégorie des réseaux de terrain utilisés
dans l'industrie pour remplacer la boucle analogique 4/20mA.

Remarque : Renault PSA avec les partenaires comme Sagem, Valeo et autres ont développé
le bus VAN (Vehicule Area Network).

1.1 Protocole CAN


Le protocole CAN (Control Area Network) est un protocole de communication série qui supporte
des systèmes temps réel avec un haut niveau de abilité. La norme ISO 11898 spécie un débit
maximum de 1Mbits/s. La longueur maximum du bus est déterminée par la charge capacitive
et le débit (de 20 kbps sur 1 km à 1Mbps sur 40 m). La structure du protocole du bus CAN
possède implicitement les principales propriétés suivantes :
 souplesse de conguration
 fonctionnement multi maître
 détections et signalisations d'erreurs
 retransmission automatique des messages altérés
 déconnexion automatique des noeuds défectueux
Le protocole CAN ne couvre que 2 (ou 3) des 7 couches du modèle OSI : les couches PHYSIQUE
et LIAISON et éventuellement la couche APPLICATION.
Le protocole est basé sur le principe de diusion générale : lors de transmission, aucune station
n'est adressée en particulier, mais le contenu de chaque message est explicité par une identica-
tion reçue par tous les abonnés. Grâce à cet identicateur, les noeuds, qui sont en permanence
à l'écoute du réseau, reconnaissent et traitent les messages qui les concernent. Elles ignorent
simplement les autres.

1.2 Applications
La première utilisation en série du bus CAN date de 1992 avec une Mercedes Classe S. Bien
entendu, il y a plusieurs types de réseaux communicants utilisés dans l'industrie automobile
(GM et FORD avec le J1850, Renault et Peugeot avec le VAN). Mais la tendance se dirige vers
le bus CAN (Peugeot l'utilise dans certains modèles 607, 307 et 206 par exemple). Dans un
véhicule, plusieurs réseaux multiplexés cohabitent :

2
 réseau carroserie (optiques, rétroviseurs, vitres, ...) à faible débit (32,5 à 62,5 kbps) avec peu
d'informations et un temps de réponse demandé de 100 ms
 réseau intersystèmes (ABS, ...) à débit moyen (125 à 500 kbps) avec peu d'informations et
un temps de réponse demandé de 10 ms
 réseau confort (autoradio, climatisation, navigation, ...) à débit moyen (125 kbps à 1 Mbps)
avec un grande quantité d'informations et un temps de réponse faible de 500 ms
 réseau diagnostic (appelé aussi liaison K) à débit faible (10 kbps) avec un grande quantité
d'informations et un temps de réponse lent (de l'ordre de la seconde)

Autres applications :
Du fait de son ecacité et de sa robustesse éprouvée, le bus CAN est également utilisé dans
de nombreuses applications industrielles (systèmes de navigation maritime, ascenseurs, ma-
chines agricoles, photocopieurs, systèmes médicaux, industrie textile, machines outils, système
de production industrielle, ...)

1.3 Modèle OSI


Le bus CAN couvre la couche 2 (LIAISON) et la couche 1 (PHYSIQUE) du 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 souscouche LLC et d'accepter les messages devant être transmis vers la
sous-couche LLC. Elle est responsable des fonctions suivantes :

3
 la mise en trame du message.
 l'arbitrage.
 l'acquittement.
 la détection des erreurs.
 la signalisation des erreurs.

La sous-couche LLC
s'occupe quant à elle :
 du ltrage des messages.
 de la notication de surcharge (overload).
 de la procédure de recouvrement des erreurs.

La couche physique
dénit le signal transmis et a pour rôle d'assurer le transfert physique des bits entre les diérents
noeuds en accord avec toutes les propriétés (électriques et électroniques) du système. Cette
couche s'occupe :
 de gérer la représentation du bit (codage, timing. . . ).
 de gérer la synchronisation bit.
 de dénir les niveaux électriques des signaux.
 de dénir le support de transmission.

Remarque : la couche 7 (APPLICATION) peut être implémentée sous forme d'un protocole
supplémentaire (CANOpen par exemple).

4
1.4 Dénitions
Noeud :
sous-ensemble relié à un réseau de communication et capable de communiquer sur le réseau
selon un protocole de communication (ici le protocole CAN). Chaque noeud peut détecter des
erreurs sur un message qui ne lui est pas destiné et en informer les autres noeuds.

Valeurs du bus :
le bus peut avoir l'une des deux valeurs logiques complémentaires dénies, non pas en 0 et 1
comme d'habitude, mais sous la forme de bit nommé dominant ou récessif.

Message :
chaque information est véhiculé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, n'importe quel noeud relié
au réseau peut émettre un nouveau message.

Routage des informations :


des noeuds peuvent être ajoutés au réseau sans qu'il n'y ait rien à modier tant au niveau
logiciel que matériel. Chaque message possède un identicateur (identier) qui n'indique pas
la destination du message mais la signication des données du message. Ainsi tous les noeuds
reçoivent le message, et chacun est capable de savoir grâce au système de ltrage de message
si ce dernier lui est destiné ou non.

Trame de données et de requête :


une trame de données transporte, comme son nom l'indique, des données. Une trame de requête
est émise par un noeud désirant recevoir une trame de données (dans ce cas l'identicateur est
le même pour les deux trames).

Débit (bit/s) :
le dé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 :
en cas de demandes de prise du bus simultanées les identicateurs de chaque message permettent
aussi de dénir quel message est prioritaire sur tel autre.

5
Fonctionnement multi-maître :
lorsque le bus est libre, chaque noeud peut décider 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 fonctionnement multi maître. Si deux noeuds ou plus
tentent d'émettre un message sur un bus libre il faut régler les conits d'accès. On eectue
alors un arbitrage bit à bit non destructif tout au long du contenu de l'identicateur. Ce
mécanisme garantit qu'il n'y aura ni perte de temps, ni perte d'informations. Dans le cas de
deux identicateurs des trames de requête et de données identiques, la trame de données gagne
le bus. Lorsqu'un bit récessif est envoyé et qu'un bit dominant est observé sur le bus, l'unité
considérée perd l'arbitrage, doit se taire et ne plus envoyer aucun bit.

Canal de liaison simple :


le bus consiste en un simple canal bidirectionnel qui transporte les bits. À partir des données
transportées, il est possible de récupérer des informations de resynchronisation.

Acquittement :
tous les récepteurs vérient la validité d'un message reçu, et dans le cas d'un message correct
ils doivent acquitter en émettant un ag.

Sécurité de transmission :
dans le but d'obtenir la plus grande sécurité lors de transferts sur le bus, des dispositifs de
signalisation, de détection d'erreurs, et d'autotests ont été implémentés sur chaque noeud d'un
réseau CAN. On dispose ainsi d'un monitoring bus (vérication du bit émis sur le bus), d'un
CRC (Cyclic Redundancy Check), d'une procédure de contrôle de l'architecture du message et
d'une méthode de BitStung.

Signalement des erreurs et temps de recouvrement des erreurs :


tous les messages entachés d'erreur(s) sont signalés au niveau de chaque noeud par un ag. Les
messages erronés ne sont pas pris en compte, et sont retransmis automatiquement.

Erreurs de connement :
un noeud CAN doit être capable de faire les distinctions entre des perturbations de courtes
durées et des dysfonctionnements permanents. Les noeuds considérés comme défectueux doivent
passer en mode switched o en se déconnectant (électriquement) du réseau.

Mode Sleep (sommeil) et Mode Wakeup (réveil) :


an de réduire la consommation d'énergie, chaque élément CAN peut se mettre en Sleep mode.
Dans ce mode il n'y a aucune activité interne au noeud CAN considéré et ses drivers sont
déconnectés du bus. La reprise de fonctionnement (mode Wakeup) s'eectue lorsqu'il y a une
activité sur le bus ou par décision interne à l'élément CAN.

6
Méthode de BitStung :
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 transitions ce qui permet de faciliter
la synchronisation en réception par les noeuds. 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.

Exercice 1
Compléter le diagramme suivant en respectant la méthode de BitStung.

7
2 Couche 2  Niveau Trame
Le transfert des messages se réalise à l'aide de quatre types de trames spéciques 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 consom-
mateurs.
 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 identicateur de 11 bits
 la trame étendue (format étendu CAN 2.0B) possède un identicateur 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.1 Trame de données


Le début de trame (SOF) n'est eectif que si le bus était précédemment au repos (bus idle).

8
Tous les noeuds du réseau se resynchronisent sur le bit de SOF.
Une trame de données se décompose en 7 champs diérents :
 le début de trame SOF (Start Of Frame) : 1 bit dominant
 le champ d'arbitrage : 11 bits (ID) + 1 bit (RTR) en standard et, 29 bits (ID) + 2 bits
(SRR/IDE) + 1 bit (RTR) en étendu
 le champ de commande : 6 bits
 le champ de données : 0 à 64 bits
 le champ de CRC (Cyclic Redundancy Code) : 15 bits + 1 bit
 le champ d'acquittement (Acknowledge) : 2 bits
 le champ de n de trame EOF (End Of Frame) : 7 bits récessifs
La signication de certains bits :
 RTR : Remote Transmission Request bit,
 SRR : Subsitute Remote Request bit,
 IDE : Identier Extension bit.
Le bit RTR (Remote Transmission Request) permet de déterminer le type de trame :
 RTR = état dominant : trame de données
 RTR = état récessif : trame de requête

Exercice 2
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 bitstung.

Exercice 3
Déterminer le nombre de capteurs/actionneurs TOR (Tout Ou Rien) diérents qu'un noeud
peut gérer dans une seule trame de données.

Exercice 4
Calculer alors le rendement du protocole CAN lorsqu'il émet une trame de données complète.

Exercice 5
Pour comparaison, déterminer le rendement du protocole Ethernet pour la même situation.
Quel est alors le protocole le plus ecace pour ce type de situation (notion de bus de terrain
ou bus industriel) ?

Exercice 6
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).

Exercice 7
Dans le cas où il y a 4 noeuds 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.

9
2.2 Arbitrage
Dans une trame standard, le champ d'arbitrage est composé des 11 bits de l'identicateur plus
un bit de RTR (Remote Transmission Request) qui est dominant pour une trame de données
et récessif pour une trame de requête. Comme nous l'avons vu précédemment, l'identicateur

permet de router le message vers le bon noeud mais il indique aussi la priorité du message,
qui détermine l'assignation du bus lorsque plusieurs stations émettrices sont en concurrences.
Dans sa version standard, l'identicateur est codé sur 11 bits. Les priorités sont attribuées
statiquement lors de l'analyse conceptuelle du réseau, au moyen de valeur binaire, et ne peuvent
donner lieu à aucune modication dynamique.

Exercice 8
Déterminer en théorie le nombre de messages qu'il est possible de dénir pour une trame
standard.
Les bits de l'identicateur sont numérotés de 𝐼𝐷10 à 𝐼𝐷0 (du MSB vers LSB). Par ailleurs les
7 bits les plus signicatifs (de 𝐼𝐷10 à 𝐼𝐷4 ) ne doivent pas tous être récessifs, ce qui réduit le
nombre de combinaisons possibles.

Exercice 9
En tenant compte de ces particularités, déterminer réellement le nombre de messages qu'il est
possible de dénir pour une trame standard.

Le procédé d'attribution du bus est basé sur le principe de l'arbitrage bit à bit, selon lequel les
noeuds en compétition, émettant simultanément sur le bus, comparent bit à bit l'identicateur
de leur message avec celui des messages concurrents. Les stations de priorité moins élevées
perdront la compétition face à celle qui a la priorité la plus élevée. Les stations sont câblées
sur le bus par le principe du "ET câblé", en cas de conit 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. Les bits de
l'identicateur sont transmis dans l'ordre, de 𝐼𝐷10 à 𝐼𝐷0 (du MSB vers LSB).

10
Exemple : Dans l'exemple ci-dessus, les stations 1, 2 et 3 demandent le bus en même temps.
Pour les départager, on applique la méthode d'arbitrage et les premières stations a émettre un
bit récessif sont exclues et devront attendre que la station qui a pris le bus (la station avec la
priorité la plus haute) libère la ligne. Dans l'exemple la station 1 est exclue en premier puis la
station 3. La station 2 à donc la plus haute priorité. Le bus CAN utilise la méthode d'accès
CSMA/CR (Carrier Sense Multiple Access / Collision Resolution) dont les principes généraux
sont les suivants :
 Toutes les stations sont égales
 Chaque station émet quand elle veut (bus libre)
 Les collisions sont acceptées
 Les collisions sont détectées par les stations
 Les collisions sont gérées par le protocole
 Il y a une stratégie d'arbitrage des collisions
 La station qui remporte l'arbitrage continue sa transmission

Exercice 10
À partir de l'exemple précédent, attribuer les priorités pour les 3 noeuds en fonction de leur
rôle.

Réponses :
 un capteur de température relié sur le noeud ...
 le capteur d'antipatinage relié sur le noeud ...
 l'ABS relié sur le noeud ...

11
Exercice 11
Compléter le troisième chronogramme (résultante sur le bus) et indiquer le noeud qui a réussi
à émettre sa trame.

Réponses : Le noeud ... gagne le bus.

2.3 Champ de contrôle


Le champ de contrôle est composé de 6 bits. Les deux premiers sont des bits de réserve et leur
rôle est d'assurer des compatibilités futures ascendantes.

Les quatre derniers bits permettent de déterminer le nombre d'octets de données contenus dans
le champ de données. Le nombre d'octets de données ne peut pas excéder la valeur de 8 (soit
64 bits).

12
Codage des bits DLC suivant la taille des données en octets (D : bit Dominant et R : bit
Récessif) :

Exercice 12
Compléter la trame (jusqu'au champ CRC exclu) dans le cas où un noeud émet les données 'B'
(0x42) suivi de la valeur 6.

13
2.4 Trame de requêtes

Une trame de requête est constituée de la même manière qu'une trame à deux diérences près :
 Le champ de données est vide.
 Dans le champ d'arbitrage, le bit de RTR est récessif.
Si un noeud a besoin d'un certain 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 champ de contrôle (DLC) le nombre
d'octets de données dont il a besoin.

Exercice 13
Que se passe-t-il si deux noeuds émettent chacun une trame possédant le même identicateur
mais une des deux trames est une trame de données et l'autre une trame de requête. Conclure
sur la priorité entre une trame de données et une trame de requête.

14
2.5 Champ CRC
le champ de CRC est composé de 16 bits. La séquence CRC calculée est contenue dans les 15
premiers bits tandis que le dernier bit est un délimiteur de n de champ de CRC (bit toujours
récessif).

Ce champ de CRC permet de s'assurer de la validité du message transmis, et tous les récepteurs
doivent s'astreindre à ce procédé de vérication. Seuls les champs de SOF, d'arbitrage, de
contrôle et de données sont utilisés pour le calcul de la séquence de CRC.

2.6 Champ d'acquittement


Le champ d'acquittement possède 2 bits.

Si aucune erreur n'a été détectée par un noeud, ce dernier émet un bit dominant sinon il émet
une trame d'erreur. La station émettrice du message originel doit alors être capable de réagir
en fonction de l'émission d'un bit dominant ou non par les autres stations sur le premier bit
du champ d'acquittement. Le second bit est un bit délimiteur d'acquittement qui doit toujours
être récessif.

15
2.7 Champ de n de trame
Ce champ de n de trame est constitué de 7 bits récessifs, ce qui déroge à la règle de BitStung.

2.8 Traitement des erreurs


Lors de l'émission d'une trame sur le bus, des erreurs de transmission peuvent venir perturber
le bon fonctionnement des diérents utilisateurs du bus. L'erreur peut venir d'un noeud, et
empêcher le réseau de fonctionner correctement. Pour cela, des méthodes de détection d'erreurs
de transmissions sont prévues par le protocole CAN.

2.9 Diérents types d'erreur


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 correspond à celui qu'il désire envoyer en faisant une surveillance du bus. Si le niveau
ne correspond pas, il le signale par un Bit Error. Sauf si :
 Un bit dominant est envoyé dans le champ d'arbitrage à la place d'un bit récessif. Dans ce
cas, le bit dominant signie simplement une perte d'arbitrage.
 Un bit dominant est envoyé lors de l'acknowledge slot, à la place d'un bit récessif.
 Un émetteur envoyant un ag d'erreur passive (bit récessif) et recevant un bit dominant, ne
doit pas signaler un Bit Error.

L'erreur de Stung (Stu Error) :


Une erreur de Stung est détectée à chaque fois qu'il y a 6 bits ou plus consécutifs de même
signe sur le bus.

L'erreur de CRC (CRC Error) :


Si la valeur du CRC calculée par le récepteur est diérente de celle envoyée par l'émetteur, il y
a erreur de CRC.

L'erreur d'Acknowledge Delimiter :


Une erreur d'Acknowledge Delimiter est signalée lorsque le récepteur n'observe pas un bit
récessif lors du champ de Acknowledge Delimiter. Il en est de même pour le CRC Delimiter.

L'erreur de Slot Acknowledge (Acknowledgment Error) :


Une erreur de Slot Acknowledge est signalée par l'émetteur s'il ne lit pas un bit dominant lors
du champ de slot acknowledge.

16
La gestion des erreurs s'applique sur certains champs, selon les cas :

2.10 Trame d'erreur (Error Frame)


Si la station détecte une erreur, elle renvoie une trame d'erreur constituée de
 6 bits à l'état dominant (Error Flag) suivi de
 8 bits délimiteurs à l'état récessif (Error Delimiter).
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 an de ne pas bloquer indéniment le bus). Les bits formant l'Error Flag sont
dominants et écrasent donc les données contenues dans la trame de données. Ils provoqueront
donc la retransmission de cette dernière.

A l'issue de 8 bits délimiteurs, le bus est libéré (3 bits intertrame) et les communications peuvent
reprendre. Le noeud essaiera à nouveau de transmettre le message.

17
2.11 Le connement 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 automatique-
ment (ou limitent leur fonctionnement comme le signalement d'erreurs). Pour mettre en oeuvre
le connement, chaque noeud comporte obligatoirement deux compteurs :
 sur les trames émises (TEC Transmit Error Counter)
 sur les trames reçues (REC Receive Error Counter)
Ces compteurs s'incrémentent et se décrémentent en utilisant un mécanisme de pondération
sophistiqué. Pour simplier, 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 (si >0)
 TEC :
 Emission d'une trame corrompue : +8 (jusque 256)
 Emission d'une trame correcte : 1 (si >0)
Suivant la valeur de ces compteurs, le noeud se trouve dans un des 3 états suivant :
 Etat Erreur active : fonctionnement normal
 Etat Erreur passive : émission possible mais 8 bits après que le bus soit libre (temps de
réponse !), plus de signalement d'erreurs (le noeud transmet uniquement des passive error
ag constitués de bits recessifs)
 Etat Buso : la station se déconnecte du bus (plus d'émission ni de réception)

Remarque : une condition de "WARNING" est signalée à 96.

Exercice 16
Ceci peut durer indéniment, si par hasard les erreurs persévèrent, les compteurs d'erreurs
augmentent, le circuit produisant l'erreur (ou s'en rendant compte) passe le premier en mode
bus o. A ce moment là il ne devrait plus y avoir d'erreur et, le message devrait alors bien
passer. Et si tous les noeuds sont récalcitrants sauf votre noeud, que se passe-t-il ?

18
3 Couche 1  Niveau Bit
Codage
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'eectuent sur chaque front montant de
l'horloge.

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. La norme décrit avec précision la composition de ce Nominal Bit Time qui est divisé
en plusieurs segments :
 le segment de synchronisation (𝑆𝑌 𝑁 𝐶𝑆𝐸𝐺 ) ;
 le segment de propagation (𝑃 𝑅𝑂𝑃𝑆𝐸𝐺 ) sert à compenser les retards temporels physiques
dans le réseau. Sa valeur est xée à deux fois la somme du temps de propagation des signaux
dans les lignes du bus et des retards apportés par les entréessorties des drivers de lignes ;
 le segment de phase buer 1 (𝑃 𝐻𝐴𝑆𝐸𝑆𝐸𝐺1 ),
 le segment de phase buer 2 (𝑃 𝐻𝐴𝑆𝐸𝑆𝐸𝐺2 ) ces deux segments sont utilisés pour compenser
les erreurs de synchronisation. Ils peuvent être allongés ou raccourcis par la resynchronisation.
On dénit la plus petite base de temps reconnue sur un bus CAN comme étant le Time Quan-
tum. Cette base de temps est une fraction de l'horloge de l'oscillateur.

Le point d'échantillonnage (sample point) est l'instant où l'état du bus est lu et où la valeur du
bit est interprétée. Il se place à la n de 𝑃 𝐻𝐴𝑆𝐸𝑆𝐸𝐺1 . Sur des bus CAN lents ou très perturbés,
on pourra prendre trois points d'échantillonnage.

19
Pour corriger les dérives du Nominal Bit Time, il faut placer des butées que la dérive de la
période ne pourra pas dépasser. La butée en question s'appelle le RJW : Resynchronisation
Jump Width. Le RJW est une variable entière programmée à une valeur comprise entre 1 et
le minimum de (4, segment de phase1). La valeur est mise dans le registre du circuit lors de
l'initialisation et ne change pas en cours de fonctionnement.

Remarque : il faudra donc consulter la documentation du circuit mise en oeuvre pour assurer
sa conguration. On devra :
 dénir une base pour la vitesse de transmission et un temps de synchronisation (ces temps
doivent être égaux sur tous les systèmes d'un même réseau)
 dénir la durée de chaque bit, le point d'échantillonnage et le nombre d'échantillonnages.

Exemple : les registres du SJA1000 (Nominal Bit Time = 𝑡𝑆𝑌 𝑁 𝐶𝑆𝐸𝐺 + 𝑡𝑇 𝑆𝐸𝐺1 + 𝑡𝑇 𝑆𝐸𝐺2 )

Exercice 17
Le circuit contrôleur CAN SJA1000 à 16 Mhz (𝑡𝑆𝐶𝐿𝐾 = 16×101
6 ) a été conguré avec les valeurs

suivantes : 𝐵𝑇 𝑅0 = 0x43 et 𝐵𝑇 𝑅1 = 0x2F. Déterminer le débit ( 𝑁 𝐵𝑇


1
) en bit/s de ce bus CAN.

20

Vous aimerez peut-être aussi