Sie sind auf Seite 1von 24

Le Bus CAN

La gestion des erreurs


Gnralits
Il est indispensable de bien en comprendre le mcanisme de gestion des erreurs. Il est souvent occult par le fait que les composants satisfaisants au protocole grent tous ces dtails en interne des circuits (puisqu'ils sont conformes au protocole !) et que l'utilisateur final n'y prte gure d'attention. tant donn la complexit du traitement des erreurs, nous distinguons deux grandes parties. Abord gnral

Philosophie et stratgie globale dvolues au traitement et recouvrement des erreurs. Description des diffrents types d'erreurs pouvant se produire. Les techniques de dtections des erreurs. Les techniques (et trames) de signalisation des erreurs. Les techniques de recouvrement des erreurs.
1

Dtail

Le Bus CAN
La gestion des erreurs
1 - Types d'erreurs au niveau de la couche physique elle-mme :
bit lui-mme est entach d'erreurs (parasit, par exemple), une erreur de bit stuffing pour des raisons quelconques involontaires (parasites, transmissions, oublis, etc.) ou parfois volontaires comme dans la trame d'erreur.
le

au niveau du bit et de la structure de la trame, tout va bien mais, par exemple :

celle-ci n'a pas t acquitte provoquant un ACKnowledgement

error
la valeur du CRC ne correspond pas ce que l'on attendait. erreur de CRC delimiter, erreur de ACKnowledge delimiter, erreur de end of frame, erreur de error delimiter, erreur de overload delimiter.
2

au niveau de la trame :

Le Bus CAN
La gestion des erreurs
Dans tous ces cas de figures, la prsence d'erreurs sera signale par une trame d'erreur - error frame - qui sera gnre sur le bus pour en informer qui de droit. Mis part le fait que des erreurs peuvent se produire, il est toujours utile de savoir :

de quel type elles relvent, si, se produisant rarement, elles sont rellement gnantes, que le(s) (micro)contrleur(s) grant le rseau doivent tre informs lors des perturbations durables, quand l'activit du bus redevient normale.

Lors de perturbations persistantes, la partie contrleur de bus passe en mode dite de bus off et la partie CPU locale peut alors prendre des valeurs convenues par dfaut. La prsence de perturbations mineures (ou de courtes dures) sur le bus n'affecte pas la partie contrleur de bus.
3

Le Bus CAN
La gestion des erreurs
Pour raliser cela, le terme barbare de confinement sous-entend un norme mcanisme ayant pour but d'tre apte dterminer si un nud :

n'est pas perturb du tout, est peu perturb, est un peu plus gravement perturb, est tellement perturb qu'il doit passer en bus off.

Le contrleur du bus est dans le mode bus off lorsque trop derreurs se sont produites il se place dans ltat de sommeil (sleep mode). Cependant il peut reprendre son activit si le taux derreur diminue (voir mcanisme de comptage des erreurs) et si son activit interne le permet.

Le Bus CAN
La gestion des erreurs
2 - Mcanisme confinement de traitement des erreurs de
L'une des finalits de ce mcanisme consiste permettre la dtection des dfauts et perturbations du hardware, mais aussi et surtout procder leur localisation afin de pouvoir intervenir avec prcision. Tous les (micro)contrleurs conformes au protocole CAN doivent obligatoirement possder deux compteurs internes bien distincts: le transmit error counter, le receive error counter, qui auront pour mission d'enregistrer (compter) les erreurs se produisant lors de transmissions et de rceptions. Les compteurs sincrmentent plus vite quils se dcrmente.

Le Bus CAN
La gestion des erreurs
En effet : si le message est transmis ou reu correctement, le contenu du compteur respectif dcrot, si le message est entach d'erreurs, le contenu du compteur respectif augmente. De plus : les compteurs d'erreurs ne pratiquent pas des mthodes proportionnelles de comptage, une erreur provoque un accroissement du compteur considr, d'une quantit bien plus importante que ce qu'aurait pu faire dcrotre le mme compteur selon que celui-ci ait mis ou reu un message correctement.

le rapport augmentation/diminution des compteurs - autrement dit la pondration du comptage des points - dpend du rapport messages corrects/messages incorrects sur le bus ; par dfinition, le protocole fixe sa valeur huit. Tout ce mcanisme est implment en silicium sur les composants.
6

Le Bus CAN
La gestion des erreurs
3 - Dcompte des erreurs
Quelles que soient les rgles exactes du dcomptage des points dont le dtail est donn par la figure suivante, on peut tout de suite noncer les consquences des totaux obtenus.
"Normal Mode Request" et 128 occurences de 11 bits successifs/recessifs REC > 127 ou TEC > 127 Reset et configuration Erreur active REC < 128 ou TEC < 128 Erreur passive TEC > 255 Bus "OFF"

Le Bus CAN
La gestion des erreurs
Une reprsentation graphique des rsultats et consquences est donne dans les graphiques suivants :

Erreurs mission 255 Erreur passive

Bus off

Erreurs rception 255 Erreur passive

127 96 Erreur active


temps

127 96 Erreur active


temps

N.B. : une condition de "WARNING" est signale 96.


8

Le Bus CAN
La gestion des erreurs
De 0 127 inclus : tat error active
Lorsque les valeurs de l'un et l'autre des compteurs d'erreurs sont comprises entre 0 et 127 inclus, on dit que la station (le nud) CAN fonctionne en tat (mode) error active. Ceci signifie que le nud en question continuera de recevoir et d'mettre normalement mais aussi que dans le cas o une erreur est dtecte, il transmettra un active error flag pendant la trame d'erreur. Remarque : Il est recommand dans le protocole de commencer s'affoler au moment o le compteur atteint 96 points (warning limit), indiquant une accumulation significative de conditions d'erreurs. Gnralement, ce niveau il se produit l'intrieur du (micro)contrleur CAN une interruption dite de error status ou de error interrupt provoquant une requte de gestion de ces perturbations.
9

Le Bus CAN
La gestion des erreurs
De 128 255 inclus : tat error passive
Lorsque les valeurs contenues dans l'un ou l'autre des deux compteurs sont comprises entre 128 et 255 (inclus), on dit que la station (le nud) CAN fonctionne en tat (mode) error passive. Ceci signifie que le nud en question continuera de recevoir et d'mettre normalement mais aussi, qu'en cas de dtection d'erreur, il continuera de transmettre uniquement des passive error flag pendant la trame d'erreur.

Remarque spcifique : Une condition d'erreur laissant un nud devenu error passive oblige le nud envoyer une active error flag. C'est notamment le cas lorsque le nud tait error active avec un compteur 125, par exemple, et prenant sur une erreur 8 units de comptage de plus, passe 133 en error passive

10

Le Bus CAN
La gestion des erreurs
Au-del de la valeur de 255 : tat de bus off
Au-del de la valeur de 255 (> 256) du compteur de transmission, on dit que la station (le nud) CAN rentre dans l'tat (mode) de bus off. Ceci signifie que le nud en question cesse de recevoir et d'mettre normalement. Dans ce cas l'unit bus off n'est plus autorise avoir d'influence ou d'activit sur le bus. Ses tages de commande du bus (les drivers) doivent tre lectroniquement dconnects du bus. Il peut rester dans cet tat jusqu' ce qu'il dsire entrer une nouvelle fois dans le rseau en ayant tenu compte des misres prcdentes et en remettant ses compteurs zro. Le protocole autorise un nud bus off redevenir error active (en ayant remis tous ses compteurs d'erreurs zro) aprs que celui-ci ait observ, sans erreur sur le bus, 128 occurrences de 11 bits rcessifs chacun (montrant ainsi que de nombreux messages dont les bits de ACKnowledge delimiter + end of frame + ceux de l'intermission sont bien passs et qu'apparemment le bus a retrouv une bonne sant).
11

Le Bus CAN
La gestion des erreurs
Echanges couronns de succs :
Les compteurs d'erreurs de rception et de transmission sont modifis en accord avec les rgles suivantes : Il est noter que plus d'une rgle peut tre applique pendant un mme transfert de message.
Compteurs d'erreurs de rception Transmission Aprs le succs d'une transmission (ACK reu et pas d'erreur jusqu' la fin de trame) Rception Aprs le succs d'une rception (rception sans erreur jusqu' ACK SLOT et mission correcte du bit d'ACK) Dcrot de 1 unit si il tait entre 1 et 27 Reste 0 si dj 0 si > 127 il est remis entre 119 et 127 Compteur d'erreurs de transmission dcrot de 1 unit sauf si c'tait le cas

12

Le Bus CAN
La gestion des erreurs
Quand un EMETTEUR :
Compteurs d'erreurs de rception
Dtecte: un BIT ERROR pendant l'envoi d'un ACTIVE ERROR FLAG ou un OVERLOAD FLAG

Compteur d'erreurs de transmission

s'accrot de 8 units

Envoie un ERROR FLAG


sauf : a) si l'metteur est "error passive" et dtecte un ACKnowledgement ERROR parce qu'il n'a pas dtect un ACK "dominant" et ne dtecte pas un bit dominant pendant l'envoi de son PASSIVE ERROR FLAG b)si l'metteur envoie un ERROR FLAG par ce qu'un STUFF ERROR se produit pendant l'arbitrage

s'accrot de 8 units pas de changement de l'tat du compteur

pas de changement de l'tat du compteur

13

Le Bus CAN
La gestion des erreurs
Quand un RECEPTEUR :
Compteurs d'erreurs de rception Compteur d'erreurs de transmission

Dtecte a) une erreur sauf si l'erreur est un s'accrot de 1 units BIT ERROR se produisant pendant un ACTIVE ERROR FLAG ou un OVERLOAD FLAG b) un bit "dominant" comme tant s'accrot de 8 units le premier bit aprs avoir envoy un ERROR FLAG
c) un BIT ERROR pendant l'envoi s'accrot de 8 units d'un ACTIVE ERROR FLAG ou un OVERLOAD FLAG

14

Le Bus CAN
La gestion des erreurs
Et pour terminer :
Chaque nud tolre jusqu' 7 bits dominants aprs avoir envoy une ACTIVE/PASSIVE/ERROR/FLAG ou un OVERLOAD FRAME
Compteurs d'erreurs de rception
Aprs avoir dtect soit : a) le 14me bit conscutif dominant (dans le cas ACTIVE ERROR FLAG ou un OVERLOAD FRAME) b) le 8me bit conscutif dominant suivant un PASSIVE ERROR FLAG c) chaque squence de 8 bits dominants conscutifs chaque metteur voit s'accrotre son compteur De 8 units

Compteur d'erreurs de transmission

chaque rcepteur voit s'accrotre son De 8 units compteur 15

Le Bus CAN
La gestion des erreurs
4 - Consquences des erreurs :
Localisation de nud dfectueux Les figures suivantes montrent clairement comment, quelques soient les tats missif ou rceptif, un nud fautif s'accrot toujours de plus de points que les autres nuds ; d'o une grande facilit de reprage par leurs absences successives (dans l'ordre de leur passage en mode error passive puis disparitions suite des passage en mode bus off sur un rseau et, par consquent, de prendre des dcisions adaptes. Erreurs de confinement CRC et Acquittement Le nud fautif incrmente toujours son compteur d'erreurs d'une valeur plus leve que les autres et, de ce fait, tend devenir pus rapidement "error passive".

16

Le Bus CAN
La gestion des erreurs
Erreur locale sur un nud recevant un message
Transmetteur pas d'erreur avant tx la fin de trame Rception ACK rx CRC ACK Fin de trame (EOF) Compteur d'erreur Envoie trame d'erreur aprs erreur de confinement compteur + 8

Tous rcepteurs sauf un Pas d'erreur avant la tx fin de la trame ACK positif rx

Erreur de confinement sur fin de trame compteur + 1

Rcepteur avec erreur de CRC tx ACK ngatif Gnration de trame rx d'erreur

Erreur de CRC compt. + 1 Dtection bit dominant dans le dlimiteur de trame d'erreur compt. + 8

17

Le Bus CAN
La gestion des erreurs
Erreur locale sur un nud transmettant un message

Transmetteur tx Erreur dans la squence de CRC rx

CRC

ACK

Fin de trame (EOF)

Compteur d'erreur Envoie trame d'erreur aprs non retour d'acquittement compt. + 8

Tous rcepteurs tx pas d'ACK rx

Erreur de CRC compt. + 8 Erreur de confinement sur fin de trame compt. + 1

18

Le Bus CAN
La gestion des erreurs
En rsum, les causes derreurs:
Chaque lments constitutifs de la trame peut provoquer une erreur.
Erreur bit Erreur Stuff-bit Erreur de format Trame de donnes Emetteur Rcepteur
S O F

Erreur ACK CRC Erreur bit EOF

Arbitrage

Commande

Donnes

Erreur Stuff-bit Erreur de CRC

Erreur de format

19

Le Bus CAN
La gestion des erreurs
5 - Signalisation des erreurs:
La dtection des erreurs tant effectue, il est raisonnable d'une faon gnrale d'en rendre compte au rseau : pour informations et actions aux participants du rseau, pour indiquer simultanment aux autres participants l'tat local dans lequel on se trouve cet instant (compte tenu de l'tat de ses propres compteurs d'erreurs dj dtectes). Pour cela, un nud dtectant une condition d'erreur a pour mission de la signaler en transmettant un error flag diffrent selon les tats instantans de ses propres compteurs d'erreurs : pour un nud en tat error passive : un passive error flag, pour un nud en tat error active : un active error flag

20

Le Bus CAN
La gestion des erreurs
Dmarrage dune trame derreur
Le dclenchement des trames d'erreurs a lieu des moments diffrents selon les origines des erreurs. Si nous sommes en prsence : d'erreur bit, d'erreur de bit stuffing, d'erreur de structure, d'erreur d'acquittement, la transmission d'un error flag dmarre ds le bit suivant partir de la station qui a dtect l'erreur. Toutes les fois qu'une station dtecte une erreur de CRC, la transmission d'un error flag dmarre au bit suivant le ACKnowledge delimiter, moins qu'un error flag ait dj dmarr ailleurs sur le rseau pour une autre condition.
21

Le Bus CAN
La gestion des erreurs
Trame derreur active
La squence de bits dominants que l'on peut observer sur le bus rsulte de la superposition de la participation des diffrents error flag fournis par toutes les stations individuelles (et que chacune d'entre elles peut examiner - monitorer - en temps rel). Le document CAN autorise une longueur totale de cette squence pouvant varier entre un minimum de 6 bits (la longueur de l'active error flag) et un maximum limit 12 bits afin de ne pas bloquer indfiniment le bus.
Trame d'erreur ACTIVE ERROR FLAG Trame de donnes Flag d'erreur Intertrame ou trame de surcharge

Superposition maximale des flags d'erreur

Dlimiteur d'erreur

22

Le Bus CAN
La gestion des erreurs
Trame derreur passive
Une station dite error passive dtectant une condition d'erreur essaye de signaler celle-ci par la transmission d'un passive error flag. Par dfinition un passive error flag est constitu de 6 bits rcessifs successifs. . . moins que ces bits ne soient crass par des bits dominants provenant d'autres nuds (voir la figure suivante). Elle n'est pas capable d'interrompre un message en cours entre diffrents autres contrleurs prsents sur le bus, et elle peut tre crase par les autres contrleurs.
Trame d'erreur PASSIVE ERROR FLAG Trame de donnes Flag d'erreur Intertrame ou trame de surcharge

Superposition maximale des flags d'erreur

Dlimiteur d'erreur

23

Le Bus CAN
La gestion des erreurs
Recouvrement des erreurs
Le recouvrement des erreurs s'effectue par la retransmission automatique de la trame perturbe jusqu'au moment o celle-ci russit passer correctement et qu'il n'y a plus de message d'erreur. Ceci peut durer indfiniment, si par hasard les erreurs persvrent, les compteurs d'erreurs augmentent, le circuit produisant l'erreur (ou s'en rendant compte) passe le premier en mode bus off A ce moment l il ne devrait plus y avoir d'erreur et, le message devrait alors bien passer. Si tous les noeud sont rcalcitrants, tous disparatront tour tour et vous serez le seul nud vouloir continuer de communiquer sur le rseau. Personne ne vous rpondra. Pas d'acquittement. Donc erreur, donc compteur d'erreurs, etc. Le bus se trouve momentanment bloqu car aucune station ne peut voir passer les fameuses 128 occurrences de 11 bits rcessifs ncessaires son rveil !
24

Das könnte Ihnen auch gefallen