Beruflich Dokumente
Kultur Dokumente
pk
- ENSEIRB -
LE BUS CAN
Le bus CAN
pk
1. Introduction ........................................................................................................................ 3 2. Le protocole CAN ............................................................................................................... 3 3. Protocole CAN et couches OSI .......................................................................................... 3 4. Quelques rgles de fonctionnement et dfinitions............................................................. 5 5. Trame de donnes ............................................................................................................... 8
5.1. 5.2. 5.3. 5.4. 5.5. 5.6. Champ darbitrage ................................................................................................................. 9 Champ de contrle................................................................................................................ 10 Champ de donnes ................................................................................................................ 11 Champ de CRC ..................................................................................................................... 11 Champ dacquittement......................................................................................................... 12 Champ de fin de trame ......................................................................................................... 13
11.
12.
12.1. 12.2.
13. 14.
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
1.
INTRODUCTION
Ce document a pour but de prsenter les caractristiques essentiels du bus/rseau de terrain CAN (Control Area Network). Bien plus qu'un bus au sens lectrique, le bus CAN est un rseau part entire respectant le modle d'interconnexion des systmes ouverts OSI de l'ISO. C'est un rseau de terrain aussi car il doit fonctionner dans un environnement limit et svre comme une usine, un atelier, une voiture Le bus/rseau CAN, standard de fait, est promu un essor rapide.
2.
LE PROTOCOLE CAN
Le protocole CAN (Control Area Network) est un protocole de communication srie qui supporte des systmes temps rel avec un haut niveau de fiabilit. Ses domaines dapplication stendent des rseaux moyens dbits aux rseaux de multiplexages faibles cots. Il est avant tout classer dans la catgorie des rseaux de terrain utilis dans l'industrie pour remplacer la boucle analogique 20mA. La structure du protocole du bus CAN possde implicitement les principales proprits suivantes : - hirarchisation des messages. - garantie des temps de latence. - souplesse de configuration. - rception de multiples sources avec synchronisation temporelle. - fonctionnement multimatre. - dtections et signalisations derreurs. - retransmission automatique des messages altrs ds que le bus est de nouveau au repos. - distinction derreurs : dordre temporaire ou de non-fonctionnalit permanente au niveau dun nud. - dconnexion automatique des nuds dfectueux. En tudiant la norme BOSCH on se rend compte que le protocole CAN ne couvre seulement que deux des sept couches du modle d'interconnexion des systmes ouverts OSI de l'ISO.
3.
On retrouve ainsi dans le protocole CAN, la couche liaison de donnes (couche 2) et la couche physique (couche 1) (figure 1). La couche de liaison de donnes est subdivise en deux sous-couches (LLC Logic Link Control), et MAC (Medium Access Control), tandis que la couche physique est divise en trois sous-couches (PLS Physical Signalling), PMA (Physical Medium Access), MDI (Medium Dependent Interface). 3 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
La sous-couche MAC reprsente le noyau du protocole CAN. Elle a pour fonction de prsenter les messages reus en provenance de la sous-couche LLC et daccepter les messages devant tre transmis vers la sous-couche LLC. Elle est responsable de : - la mise en trame du message. - larbitrage. - lacquittement.
Couche de communication de donnes LLC ( Logic Link Control ) Filtrage d'acceptance des messages Notification de sucharge ( overload ) Recouvrement des erreurs ------------------------------------------------------------------------MAC ( Medium Access Control ) Encapsulation/Dcapsulation des donnes Codage de trame ( Stuffing/Destuffing ) Medium Access Management Dtection d'erreur Signalisation d'erreur Acquittement Srialisation/Dsrialisation
Couche Physique PLS ( Physical Signalling ) Codage/Dcodage de bit Bit timing Synchronisation ------------------------------------------------------------------------PMA ( Physical Medium Attachment ) Caractristiques Driver/Receiver ------------------------------------------------------------------------MDI ( Medium Dependent Interface ) Connecteurs Gestion des dysfonctionnements du bus
Figure 1 : Le protocole CAN et le modle OSI la dtection des erreurs. la signalisation des erreurs.
Elle est supervise par une entit de supervision qui est un mcanisme apte faire la distinction entre les drangements de courtes dures et des pannes permanentes.
4 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
La sous-couche LLC soccupe quant elle : - du filtrage des messages. - de la notification de surcharge (Overload). - de la procdure de recouvrement des erreurs.
La couche physique dfinit comment le signal est transmis et a par consquent pour rle dassurer le transfert physique des bits entre les diffrents nuds en accord avec toutes les proprits (lectriques, lectroniques) du systme. Il est vident qu lintrieur dun mme et unique rseau la couche physique doit tre la mme pour chaque nud. Cette couche soccupe donc : - de grer la reprsentation du bit (codage, timing). - de grer la synchronisation bit. - de dfinir les niveaux lectriques des signaux. - de dfinir le support de transmission.
4.
QUELQUES DEFINITIONS
REGLES DE
FONCTIONNEMENT ET
Comme dans la plupart des protocoles, il est ncessaire dutiliser un vocabulaire adapt la situation. Nous allons donc dfinir un certain nombre de termes et de rgles de fonctionnement concernant le protocole CAN. Nud : sous-ensemble reli un rseau de communication et capable de communiquer sur le rseau selon un protocole de communication (ici le protocole CAN). Valeurs du bus : le bus peut avoir lune des deux valeurs logiques complmentaires dfinies, non pas en 0 et 1 comme dhabitude, mais sous les formes dites de dominante et rcessive. Dans le cas dune transmission simultane de bits rcessifs et dominants, la valeur rsultante du bus sera dominante (quivalence avec un OU cbl). Message : chaque information est vhicule sur le bus laide dun message (trame de bits) de format dfini mais de longueur variable (et limite). Ds que le bus est libre (bus idle), nimporte quel nud reli au rseau peut mettre un nouveau message. Routage des informations : des nuds peuvent tre ajouts au rseau sans quil ny ait rien modifier tant au niveau logiciel que matriel. Chaque message possde un identificateur (identifier) qui nindique pas la destination du message mais la signification des donnes du message. Ainsi tous les nuds reoivent le message, et chacun est capable de savoir grce au systme de filtrage de message si ce dernier lui est destin ou non. Chaque nud peut galement dtecter des erreurs sur un message qui ne lui est pas destin et en informer les autres nuds. Trame de donnes, trame de requte : une trame de donnes (data frame) est une trame qui transporte, comme son nom lindique, des donnes. Une trame de
5 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
requte est mise par un nud dsirant recevoir une trame de donnes (lidentificateur est le mme pour les deux trames dans ce cas). Dbit bit : le dbit bit peut varier entre diffrents systmes, mais il doit tre fixe et uniforme au sein dun mme systme. Priorits : les identificateurs de chaque message permettent de dfinir quel message est prioritaire sur tel autre. Demande dune trame de donnes : un nud peut demander un autre nud denvoyer une trame de donnes, et pour cela il envoie lui-mme une trame de requte. La trame de donnes correspondant la trame de requte initiale possde le mme identificateur. Fonctionnement multimatre : lorsque le bus est libre, chaque nud peut dcider denvoyer un message. Seul le message de plus haute priorit prend possession du bus. Arbitrage : le problme de larbitrage rsulte du fonctionnement multimatre. Si deux nuds ou plus tentent dmettre un message sur un bus libre il faut rgler les conflits daccs. On effectue alors un arbitrage bit bit (non destructif) tout au long du contenu de lidentificateur. Ce mcanisme garantit quil ny aura ni perte de temps, ni perte dinformations. Dans le cas de deux identificateurs identiques, la trame de donnes gagne le bus. Lorsquun bit rcessif est envoy et quun bit dominant est observ sur le bus, lunit considre perd larbitrage, doit se taire et ne plus envoyer aucun bit. L'arbitrage est qualifi de CSMA/CA (Carrier Sense Multiple Access - Collision Avoidance). Scurit de transmission : dans le but dobtenir la plus grande scurit lors de transferts sur le bus, des dispositifs de signalisation, de dtection derreurs, et dautotests ont t implments sur chaque nud dun rseau CAN. On dispose ainsi dun monitoring bus (vrification du bit mis sur le bus), dun CRC (Cyclic Redundancy Check), dune procdure de contrle de larchitecture du message, dune mthode de Bit-Stuffing. On dtecte alors toutes les erreurs globales, toutes les erreurs locales au niveau des metteurs, jusqu 5 erreurs alatoires rparties dans un message. La probabilit totale rsiduelle de messages entachs derreurs est infrieure 4.7*10-11. Signalement des erreurs et temps de recouvrement des erreurs : tous les messages entachs derreur(s) sont signals au niveau de chaque nud par un flag. Les messages errons ne sont pas pris en compte, et doivent tre retransmis automatiquement. Erreurs de confinement : un nud CAN doit tre capable de faire les distinctions entre des perturbations de courtes dures et des dysfonctionnements permanents. Les nuds considrs comme dfectueux doivent passer en mode switched off en se dconnectant (lectriquement) du rseau. Points de connexion : la liaison de communication srie CAN est un bus sur lequel un nombre important dunits peuvent tre raccordes. En pratique le nombre total dunits sera dtermin par les temps de retard (dus aux phnomnes de propagation) et/ou les valeurs des charges lectriques que ces units prsentent sur le bus. Canal de liaison simple : le bus consiste en un simple canal bidirectionnel qui transporte les bits. A partir des donnes transportes, il est possible de rcuprer des informations de resynchronisation. La faon dont le canal est implment (fil standard, liaison optique, paire diffrentielle) nest pas dtermine dans la norme officielle BOSCH.
6 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
Acquittement : tous les rcepteurs vrifient la validit dun message reu, et dans le cas dun message correct ils doivent acquitter en mettant un flag. Mode Sleep (sommeil), Mode Wake-up' (rveil) : afin de rduire la consommation dnergie, chaque lment CAN peut se mettre en Sleep mode. Dans ce mode il ny a aucune activit interne au nud CAN considr et ses drivers sont dconnects du bus. La reprise de fonctionnement (mode Wake-up) seffectue lorsquil y a une activit sur le bus ou par dcision interne llment CAN. On observe une attente due une resynchronisation de loscillateur local qui teste la prsence de 11 bits conscutifs sur le bus (lactivit interne au nud CAN a cependant repris). Par suite les drivers se reconnectent au bus. Afin dobtenir les meilleures performances en dbit sur un rseau de type CAN, il est ncessaire dutiliser des oscillateurs quartz.
Par ailleurs il existe deux types de format (trame standard, trame tendue) pour les trames de donnes et de requte, et ils diffrent seulement lun de lautre par lidentificateur (identificateur de 11 bits pour les trames standards, de 29 bits pour les trames tendues). Le transfert des messages se manifeste et est command laide de quatre types de trames spcifiques et dun intervalle de temps les sparant. Outre les trames de donnes et de requte, on a donc galement des trames derreurs (mises par nimporte quel nud ds la dtection dune erreur), et des trames de surcharge (ces trames correspondent une demande dun laps de temps entre les trames de donnes et de requte prcdentes et successives). Il existe un espace intertrame de 3 bits rcessifs entre les trames de donnes et de requte. En ce qui concerne le flot de bits des trames du bus CAN, la mthode de codage NRZ (Non Return to Zero) a t retenue. Ceci revient dire que pendant la dure totale du bit gnr son niveau reste constant quil soit dominant ou rcessif. De plus afin de scuriser la transmission des messages on utilise la mthode dite de BitStuffing (bit de transparence). Cette mthode consiste, ds que lon a mis 5 bits de mme polarit sur le bus, insrer un bit de polarit contraire pour casser des chanes 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 rception par les nuds. Cette technique est uniquement active sur les champs de SOF, darbitrage, de contrle, de CRC (dlimiteur exclu). Pour un fonctionnement correct de tout le rseau, cette technique doit tre implmente aussi bien la rception qu lmission.
7 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
Trame Stuffer
pk
Trame Stuffe
Trame Stuffer
Trame Stuffe
5.
TRAME DE DONNEES
Une trame de donnes se dcompose en 7 champs diffrents (figure 3) : - le dbut de trame SOF (Start Of Frame), 1 bit dominant. - le champ darbitrage, 12 bits. - le champ de contrle, 6 bits. - le champ de donnes, 0 64 bits. - le champ de CRC (Cyclic Redundancy Code), 16 bits. - le champ dacquittement (Acknoledge), 2 bits. - le champ de fin de trame EOF (End Of Frame), 7 bits rcessifs.
8 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
Espace Intertrame
pk
Espace Intertrame
Trame de Donnes
ou Trame de Surcharge
Dbut de trame Champ d'arbitrage Champ de commande Champ de donnes Champ de CRC Champ d'acknowlegde Fin de Trame
Le dbut de trame nest effectif que si le bus tait prcdemment au repos. Tous les nuds du rseau doivent se resynchroniser sur le bit de SOF.
5.1.
Champ darbitrage
Dans une trame standard, le champ darbitrage est compos des 11 bits de lidentificateur (figure 4) et dun bit de RTR (Remote Transmission Request) qui est dominant pour une trame de donnes et rcessif pour une trame de requte. On ne dtaillera pas ici le champ darbitrage pour une trame. Ceux qui dsire voir plus de dtails sur ce point peuvent faire appel la norme BOSCH. Pour lidentificateur les bits sont transmis dans lordre, 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 tous tre rcessifs. Pour des raisons de compatibilit avec des anciens circuits, les 4 derniers bits de lidentificateur (ID_3 ID_0) ne sont pas utiliss, ce qui rduit le nombre de combinaisons possibles.
9 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
Format Standard
Champ d'arbitrage
Champ de commande
Identificateur ( 11 bits )
SOF ( 1 bit )
RTR ( 1 bit )
5.2.
Champ de contrle
Le champ de contrle est compos de 6 bits (figure 5). Les deux premiers (r1 dans une trame standard, et r0) sont des bits de rserve et leur rle est dassurer des compatibilits futures ascendantes (par exemple avec les trames tendues). Les quatre derniers bits permettent de dterminer le nombre doctets de donnes contenus dans le champ de donnes pour une trame de donnes ou bien le nombre doctets de donnes dont a besoin un nud du rseau lors dune trame de requte. Le nombre doctets de donnes ne peut pas excder la valeur de 8. Taille des DLC (Data Length Code) donnes en octets DLC3 DLC2 0 D D 1 D D 2 D D 3 D D 4 D R 5 D R 6 D R 7 D R 8 R D D : bit Dominant, R : bit Rcessif
DLC1 D D R R D D R R D
DLC0 D R D R D R D R D
Tableau 1 : Codage des bits DLC suivant la taille des donnes en octets
10 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
Champ de commande
DLC3
DLC2
DLC1 DLC0
5.3.
Champ de donnes
Le champ de donnes a une longueur qui peut varier de 0 64 bits (0 8 octets). Cette longueur a t dtermine lors de lanalyse du champ de contrle. Dans le cas dune trame de requte, le champ de donnes est vide.
5.4.
Champ de CRC
Le champ de CRC est compos de 16 bits (figure 6). La squence CRC calcule est contenue dans les 15 premiers bits tandis que le dernier bit est un dlimiteur de fin de champ de CRC (bit toujours rcessif). Ce champ de CRC permet de sassurer de la validit du message transmis, et tous les rcepteurs doivent sastreindre ce procd de vrification. Seuls les champs de SOF, darbitrage, de contrle et de donnes sont utiliss pour le calcul de la squence de CRC. Les codes utiliss par les contrleurs de bus CAN sont des codes linaires de. De fait la longueur maximale du dbut de trame ne doit pas excder 215 bits pour une squence de CRC de 15 bits. Le nombre maximal derreurs dtectes dans la trame est de 5. La squence de CRC est calcule par la procdure suivante : - le flot de bits (hors Bit-Stuffing ), constitu des bits depuis le dbut de la trame jusqu la fin du champ de donnes (pour une trame de donnes) ou bien la fin du champ de contrle (pour une trame de requte) est interprte comme un polynme f(x) avec des coefficients 0 et 1 affects la prsence, effective ou non, de chaque bit. Le polynme obtenu est alors multipli par x15 complt pour l'ajout du mot de CRC. - le polynme ainsi form est divis (modulo 2) par le polynme gnrateur La chane de bits correspondante ce g(x)=x15+x14+x10+x8+x7+x4+x3+1. polynme est : 1100010110011001. - Le reste de la division du polynme f(x) par le polynme gnrateur g(x) constitue la squence CRC de 15 bits.
11 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
La ralisation du module de calcul de CRC est particulirement aise laide de registres dcalages. La norme BOSCH propose le programme informatique correspondant lalgorithme prcdemment dcrit : CRC_REG=0 ; REPEAT CRC_NXT_BIT=(NXT_BIT) XOR (CRC_REG(14)) ; CRC_REG(14:1)=CRC_REG(13:0) ; CRC_REG(0)=0 ; IF CRC_NXT_BIT THEN CRC_REG(14:0)=CRC_REG(14:0) XOR (4599hex) ; ENDIF UNTIL(CRC SEQUENCE starts or there is an ERROR condition)
5.5.
Champ dacquittement
Le champ dacquittement possde 2 bits (figure 7). La station mettrice de la trame laisse le bus libre pendant 2 coups dhorloge (ce qui correspond lmission de deux bits rcessifs) et elle passe en mode rception pendant le premier coup dhorloge. Le premier bit correspond lacquittement par lensemble des nuds ayant reu le message. Si aucune erreur na t dtecte par un nud (aprs calcul du CRC), ce dernier met un bit dominant sinon il met une trame derreur. La station mettrice du message originel doit alors tre capable de ragir en fonction de lmission dun bit dominant ou non par les autres stations sur le premier bit du champ dacquittement. Le second bit est un bit dlimiteur dacquittement qui doit toujours tre rcessif.
12 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
Acknolegde ( 1 bit )
5.6.
Ce champ de fin de trame est constitu de 7 bits rcessifs, ce qui droge la rgle de BitStuffing. Ce champ tant fixe, il est ncessaire de dsactiver le codage ( lmission) et le dcodage ( la rception) suivant la rgle du Bit-Stuffing.
6.
TRAME DE REQUETE
Une trame de requte est constitue de la mme manire quune trame de donnes sauf que le champ de donnes est vide (figure 8). Dans le champ darbitrage, le bit de RTR est rcessif. Par consquent si deux nuds mettent chacun une trame possdant le mme identificateur (cest dire quun nud met une trame de donnes et lautre une trame de requte), larbitrage sur le bit de RTR va donner la priorit la trame de donnes. Si un nud a besoin dun certain nombre de donnes, il va mettre une trame de requte ds que le bus sera libre en prenant soin dindiquer dans le champ de contrle le nombre doctets de donnes dont il a besoin. Les rgles de construction des autres divers champs dune trame de requte sont les mmes que dans le cas dune trame de donnes.
13 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
Espace Intertrame Trame de requte
pk
Espace Intertrame
ou Trame de Surcharge
Dbut de trame Champ d'arbitrage Champ de commande Champ de CRC Champ d'acknowlegde Fin de Trame
7.
Lors de lmission dune trame sur le bus, des erreurs de transmission peuvent venir perturber le bon fonctionnement des diffrents utilisateurs du bus. Lerreur peut venir dun nud, et empcher le rseau de fonctionner correctement. Pour cela, des mthodes de dtection derreurs de transmissions sont prvues par le protocole CAN.
7.1.
Chaque fois quun metteur envoie un bit sur le bus, il vrifie en mme temps si le niveau mis sur le bus correspond celui quil dsire envoyer en faisant une surveillance du bus. Si le niveau ne correspond pas, il le signale par un Bit Error. Cependant, le Bit Error nest pas signal dans les cas suivants : - Aucune erreur de Bit Error nest signale lorsquun bit dominant est envoy dans le champ darbitrage la place dun bit rcessif. Le bit dominant signifie simplement une perte darbitrage. - De mme, pour un bit dominant lors de lacknowledge slot, la place dun bit rcessif. - Un metteur envoyant un flag derreur passive (bit rcessif) et recevant un bit dominant, ne doit pas signaler un Bit Error.
14 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
Lerreur de Stuffing (Stuff Error) : Une erreur de Stuffing est dtecte chaque fois quil y a 6 bits ou plus conscutifs de mme signe sur le bus. Cependant, une erreur de Stuffing ne doit tre signale que dans les champs didentificateurs, de commande et de CRC. La rgle du Bit-Stuffing ne sappliquant plus aprs la fin du CRC. En aucun cas, une erreur de Bit-Stuffing ne doit tre signale dans le champ de fin de trame ou dans le champ dacquittement. Lerreur de Cyclic Redundancy Code (CRC Error) : Si la valeur du CRC calcule par le rcepteur est diffrente de celle envoye par lmetteur, il y a erreur de CRC (CRC Error). Lerreur dAcknowledge Delimiter : Une erreur dAcknowledge Delimiter est signale lorsque le rcepteur nobserve pas un bit rcessif lors du champ de Acknowledge Delimiter. Il en est de mme pour le CRC Delimiter. Lerreur de Slot Acknowledge (Acknowledgment Error) : Une erreur de Slot Acknowledge est signale par lmetteur sil ne lit pas un bit dominant lors du champ de slot acknowledge. La figure 9 rsume les diffrents types derreurs et leur validit suivant lendroit o lon se trouve dans la trame.
Bit Error
Bit Error
Stuff Error
Acknowledgment Bit Error Error Acknowledge CRC Delimiter Delimiter Error Error
CRC Error
cyclic redundancy 1 1 code Fin de trame Espace intertrame
Identificateur
SOF
commande donnes
Bit RTR
15 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
7.2.
La trame derreur est constitue de deux champs principaux : - le drapeau derreur, - le dlimiteur de champ. La figure 10 montre de quelle manire est construite la trame derreur.
Trame en cours d'mission Drapeaux d'erreur Dlimiteur de champ Intertrame
Le champ des drapeaux peut tre constitu de deux sortes de drapeaux : - les drapeaux derreur active (Active Error Flag), - les drapeaux derreur passive (Passive Error Flag). Les trames diffrent suivant le type de drapeaux quelles contiennent. Les figures 11 et 12 reprsentent les deux types de trame avec leurs drapeaux respectifs.
6 bits dominants
8 bits rcessifs
16 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
6 bits rcessifs
8 bits rcessifs
Figure 12 : Trame d'erreur passive La trame derreur active : Elle est forme de six bits dominant conscutifs pour le champ de drapeau suivi de huit bits rcessifs pour le dlimiteur. Par construction, la trame derreur brise la rgle du Bit-Stuffing. Les autres rcepteurs vont donc se mettre mettre des trames derreurs actives (sils sont en mode derreur active) la fin du drapeau de la premire station qui a mis la trame derreur. Toutes les stations vont donc mettre tour de rle la trame derreur. La dernire station aura en charge dmettre le champ dError Delimiter, les autres champs ayant t remplacs par les bits dominants des drapeaux mis. Remarque : La norme limite le nombre de bits dominant conscutifs 12 bits. La trame derreur passive : La trame est forme de six bits rcessifs pour le drapeau et de huit bits rcessifs pour le dlimiteur. Le champ du drapeau brise de nouveau la rgle du Bit-Stuffing et les metteurs envoient tour de rle le Passive Error Flag (sils sont en mode derreur passive). Mais une trame dActive Error Flag reste prioritaire sur une trame de Passive Error Flag si elles sont envoyes en mme temps. En effet, Les bits dominants de lActive Error Flag remplacent les bits rcessifs du Passive Error Flag. La fin de la trame quant elle ne change pas puisquelle est forme dans les deux cas de huit bits rcessifs.
7.3.
Le recouvrement des erreurs est assur par la retransmission automatique de la trame incrimine jusqu' ce que lmission de cette trame seffectue sans erreur. La validit du message est acquise sil ny a aucune erreur depuis le SOF (Start Of Frame) jusqu' la fin de trame. Si lmetteur narrive pas mettre sa trame correctement, il essaye de nouveau de lmettre jusqu' ce que son compteur derreur passe en mode derreur passive.
17 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
La gestion des modes derreur : Suivant le nombre derreur quun nud comptabilise, ltat du mode de ce nud peut diffrer. Un compteur mmorise le nombre derreur rencontr lors de la transmission des trames sur le bus. Deux compteurs spars rgissent respectivement le nombre derreurs en mission et en rception. Il se nomme : - Transmit Error Counter pour lmission, - Receive Error Counter pour la rception. Lorsque le nombre derreur devient trop important et que le gestionnaire est dj en erreur passive, le nud se met en Bus Off et se dconnecte du bus. Il ne reoit ni met ce moment l aucune trame circulant sur le bus CAN. Le passage dans les diffrents modes seffectue suivant la valeur des compteurs comme le montre la figure 13.
Reset
Error Active
128 occurences de 11 bits rcessifs
Error Passive
Bus Off
Les rgles de passages dans les modes : Lincrmentation et la dcrmentation des compteurs ne se fait pas avec le mme rapport. En effet, le compteur sincrmente plus vite lorsqu'il y a une erreur quil ne se dcrmente lorsque la trame reue est correcte. Les rgles dincrmentation et de dcrmentation des compteurs sont les suivantes : Le compteur de rception est incrment de 1 si : - un rcepteur dtecte une erreur, le compteur derreur de rception sera incrment de 1, sauf si lerreur est un Bit Error durant un flag derreur active ou un flag de surcharge.
18 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
Le compteur de rception est incrment de 8 si : un rcepteur reoit un bit dominant juste aprs un flag derreur. un rcepteur voit un Bit Error tandis quil reoit un flag derreur active ou un flag de surcharge. Le compteur de transmission est incrment de 8 si : un metteur envoie un flag derreur, son compteur dmission sincrmente de 8 sauf si lmetteur est en erreur passive et voit un Acknowledgment Error (il ne dtecte aucun bit dominant sur le champ dacknowledge ou lors de lenvoie de la trame derreur passive) et galement si lmetteur envoie un flag derreur lors dune erreur de Bit-Stuffing durant la priode darbitrage (dtection dun bit dominant au lieu dun bit rcessif situ aprs le RTR). un metteur voit un Bit Error tandis quil met un flag derreur active ou un flag de surcharge. Les compteurs dmission et de rception sincrmentent de 8 si : chaque nud recevant sept bits dominants conscutifs aprs rception dun Active Error Flag, dun Passive Error Flag ou dun Overload Flag. Aprs dtection de quatorzime bit dominant conscutif (pour lActive Error Flag ou lOverload Flag) ou du huitime bit dominant conscutif suivant le Passive Error Flag, et aprs toutes les suites de huit bits dominants conscutifs.
Le compteur de rception est dcrment de 1 si : le rcepteur reoit une trame sans erreur (jusquau champ dAcknowledge Slot) et si la valeur du compteur est comprise entre 1 et 127. Si le compteur est 0, sa valeur ne change pas (pas dincrmentation). S'il est suprieur 127, sa valeur est ramene entre 119 et 127. Le compteur dmission est dcrment de 1 si : la transmission dune trame se droule sans erreur (jusquau champ dAcknowledge Slot). Si la valeur du compteur est 0, le compteur ne sincrmente pas.
Le gestionnaire de protocole est en mode derreur active si le compteur de rception et le compteur dmission ont une valeur infrieure 127. Dans ce mode, le nud met des trames derreurs actives (Active Error Flag). Mode derreur passive :
19 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
Le gestionnaire de protocole est en mode derreur passive si le compteur de rception ou le compteur dmission est suprieur ou gal 128 et infrieur 255. Dans ce mode, le nud met des trames derreurs passives (Passive Error Flag). Mode Bus Off :
Le gestionnaire de protocole est en mode Bus Off si la valeur d'un des deux compteurs est > 255. Le nud est alors totalement dconnect du bus (les drivers de lignes ne sont plus actifs). Il sort de cet tat de Bus Off avoir reu 127 trames de onze bits rcessifs.
8.
La trame de surcharge indique aux autres nuds quune station est surcharge. Elle est forme de deux champs : - le drapeau de surcharge (Overload Frame) avec six bits dominants, - le dlimiteur de surcharge (Overload Delimiter) avec huit bits rcessifs. La figure 14 reprsente la trame.
Trame de surcharge
Trame de donne en cours Overload Flag Overload Delimiter
Une trame de surcharge est mise sur le bus si : - un bit dominant est dtect durant la priode dintertrame. - un rcepteur nest pas prt pour la rception dune nouvelle trame de donne ou de requte (retard sur le traitement des informations circulant sur le bus). Ds quune trame de surcharge est mise, les autres nuds voient sur le bus une suite de six bits dominants qui ne respectent pas la rgle du Bit-Stuffing. Ils mettent leur tour une trame de surcharge. Seulement deux trames de surcharges conscutives sont autorises sur le bus (pas plus de 12 bits dominants conscutifs mis sur le bus).
8.2.
Priode dintertrame
20 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
Elle spare les trames de donnes ou de requtes entre elles. Il sagit dune suite de plusieurs bits rcessifs. Le champ dintermission :
Le champ dintermission est une suite de 3 bits rcessifs conscutifs. Durant la priode dintermission, lmission de trame nest pas autorise. Les gestionnaires de protocole ne sont autoriss signaler que les conditions de surcharge. Le champ de Bus Idle :
Le champ de Bus Idle est celui du bus quand il est au repos. Le niveau de repos est le niveau rcessif et aucune trame ne circule sur le bus. Le champ de suspension de transmission :
Le champ de suspension de transmission est mis par un nud lorsque celui-ci envoie une trame derreur passive. La figure 15 reprsente les diffrents champs.
Les champs de fin de trame
Intertrame Trame de donne ou de requte Intermission Suspension de transmission Bus Idle Nouvelle trame de donne ou de requte
8.3.
Autres modes
Pour la gestion de lnergie sur le bus, les drivers de ligne peuvent tre dsactivs lorsqu'il ny a plus de trames sur le bus. Pour activer ces drivers sur le bus, la station devra observer 11 bits rcessifs la suite. La procdure ainsi dcrite est la procdure de rveil appele Wake-up. Un identificateur a t rserv cette fonction pour viter de perdre un trop grand nombre de trames lors de la reconnexion sur le bus. Lors des dmarrages dune station sur le bus, le Start-up se charge de connecter les drivers de lignes et dobserver la squence voulue pour commencer mettre ou recevoir des trames du bus.
21 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
9.
CODAGE DE LIGNE
Dans le protocole CAN le code de ligne (en bande de base) choisi pour la transmission des donnes sur le bus est le code NRZ (Non Return to Zero). La figure 16 donne un exemple de codage.
Remarque : La rgle du Bit-Stuffing ne modifie en aucun cas le procd de codage de ligne. Comme le montre la figure 16, les transitions des bits seffectuent sur chaque front montant de lhorloge. Dans le protocole CAN, une priode dhorloge correspond ce que lon appelle le Nominal Bit Time.
22 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
Sample point
Figure 17 : Dcomposition du nominal Bit Time En fait, le Nominal Bit Time, exprim en s, correspond videmment linverse du dbit sur le bus. Nous avons donc la formule suivante: No min al _ Bit _ Time = 1 . No min al _ Bit _ Rate
10.1.
Les segments buffer phase1 et buffer phase2 : les segments buffer phase1 et buffer phase2 sont surtout utiliss pour compenser les erreurs de phase dtectes lors des transitions. Nous verrons aussi que ces segments peuvent tre plus courts ou plus longs cause des phnomnes de resynchronisation. Le point dchantillonnage ou sample point : le point dchantillonnage ou sample point est le point o la valeur du bit est lue sur le bus. Il est situ la fin du segment de buffer phase1 et constitue la seule valeur mmorise pour le niveau du bit. On saffranchit des phnomnes de propagation et doscillation des donnes sur le bus dans les segments prcdents.
23 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
10.2.
Le Time Quantum : Le Time Quantum est une unit de temps qui est construite partir de la priode de loscillateur interne de chaque nud. Les frquences de fonctionnement du bus CAN stendant de 125 KHz 1 MHz et celle des oscillateurs tant de plusieurs MHz, le Time Quantum reprsente plusieurs priodes dune horloge doscillateur. La priode dhorloge de loscillateur est appele minimum Time Quantum. La valeur du prscalaire m dtermine le rapport entre le Time Quantum et le Minimum Time Quantum :
La valeur de m peut varier de 1 32. La figure 18 reprsente la construction dun Time Quantum partir dune priode dhorloge interne au circuit.
Priode de l'oscillateur
Time Quantum
Dans lexemple ci-dessus, le facteur m est gal 4. La dure des diffrents segments : Segment Synchronisation - SYNC_SEG Propagation - PROP_SEG Buffer phase1 - PHASE_SEG1 Buffer phase1 - PHASE_SEG2 Dure en Time Quanta 1 18 18 18
Le nombre de Time Quanta dans un Nominal Bit Time peut ainsi varier de 8 25. La figure 19 donne le nombre de Time Quanta possible par segment de Nominal Bit Time.
24 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
1 Time Quantum
pk
18
18
18
SYNC SEG
PROP_SEG
PHASE_SEG1
PHASE_SEG2
Sample point
Le choix du nombre de Time Quanta pour chaque segment dpend de la frquence de loscillateur. Un nombre important de Time Quanta par segment augmente la prcision de la synchronisation des diffrents nuds sur le bus.
25 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
Bits emis
Sample point
Sample point
Bits reus
La norme BOSCH prvoit donc des rgles de synchronisation du Nominal Bit Time de chaque circuit pour palier aux inconvnients exposs ci-dessus.
11.1.
Notion de RJW
Pour corriger les drives du Nominal Bit Time, il faut placer des butes que la drive de la priode ne pourra pas dpasser. La bute en question sappelle le RJW : Resynchronisation Jump Width. Le RJW est une variable entire programme une valeur comprise entre 1 et le minimum de (4, segment de phase1).
1 < Rjw < min( 4, PHASE _ SEG1) .
La valeur est mise dans le registre du circuit lors de linitialisation et ne change pas en cours de fonctionnement.
11.2.
Lerreur de phase (PHASE_ERROR) est dtecte lorsqu'une transition dun bit dominant rcessif ou dun bit rcessif dominant ne seffectue pas lintrieur du segment de synchronisation. Une variable note e sert quantifier cette erreur de phase et fournit le signe. Le calcul de e est fait de la manire suivante : e = 0, si la transition seffectue dans le segment de synchronisation (SYNC_SEG). e > 0, si la transition seffectue avant le point dchantillonnage (Sample Point). e < 0, si la transition seffectue aprs le point dchantillonnage (Sample Point). 26 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
La rgle simple voque ci-dessus sert de base pour resynchroniser les diffrents Nominal Bit Time de chaque circuit connect au bus. La rgle sappuie sur les transitions des bits rcessifs dominant ou dominant rcessif qui arrivent au moins tous les 5 bits de mme signe conscutifs, cause de la rgle du Bit-Stuffing. Lerreur de phase e est donc calcule par rapport au Sample Point qui dtermine si le PHASE_SEG1 doit tre allong ou si le PHASE _SEG2 doit tre raccourci pour que la prochaine transition seffectue dans le SYNC_SEG. La figure 21 donne un exemple et les consquences des emplacements des transitions sur la longueur des segments du Nominal Bit Time.
Transition d'un bit sur la ligne
SYNC SEG
PROP_SEG
PHASE_SEG1
SYNC SEG
PROP_SEG
PHASE_SEG1
PHASE_SEG2
Sample point
11.3.
La hard-synchronisation : Leffet dune hard-synchronisation est de faire repartir le Nominal Bit Time depuis le segment de synchronisation (SYNC_SEG) chaque fois quun ordre de hard-synchronisation est donn par le gestionnaire du protocole. Le Nominal Bit Time en cours est abandonn et un nouveau Nominal Bit Time repart ds le Time Quantum suivant, depuis le segment de synchronisation (SYNC_SEG). La resynchronisation : Le calcul et lordre de resynchronisation sont donns partir de la valeur de lerreur de phase e, et dpendent aussi de la valeur du RJW : Si lerreur de phase est nulle (e = 0, la transition est dans le SYNC_SEG), leffet de la resynchronisation est le mme que celui de la hard-synchronisation.
27 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
Si lerreur de phase est positive et infrieure en valeur absolue RJW (0<e<RJW), le PHASE_SEG1 sera rallong de e. Si lerreur de phase est ngative, mais infrieure RJW en valeur absolue (e<0 et e<RJW) le PHASE_SEG2 est raccourci de e. Si lerreur de phase est positive et suprieure ou gale RJW (e>0 et e>RJW), le PHASE_SEG1 est rallong de RJW. Enfin, si lerreur de phase est ngative et suprieure RJW (en valeur absolue -e<0 et e>RJW) le PHASE_SEG2 est raccourci de RJW. Le tableau suivant rsume les rgles voques ci-dessus. Erreur de phase 0<e<RJW E<0 et e<RJW e>0 et e>RJW E<0 et e>RJW Effet sur PHASE_SEG1 Allong de e Allong de RJW Raccourci de RJW
Tableau 2 : Rgles de resynchronisation
Les rgles de synchronisation : Un seul type de synchronisation est autoris pour un mme Nominal Bit Time. Hard-synchronisation : Une hard-synchronisation est faite chaque fois quune transition seffectue dans le segment de synchronisation SYNC_SEG. Une hard-synchronisation est effectue lorsque le bus est au repos (bus idle) et quune transition dun bit rcessif un bit dominant est dtecte, autrement dit lors dun SOF (Start Of Frame). Resynchronisation : Une resynchronisation est effectue si une transition est dtecte au point dchantillonnage prcdent et que la valeur lue sur le bus immdiatement aprs la transition est diffrente de celle lue sur le bus avant la transition. Les transitions des bits rcessifs dominants peuvent tre utilises pour la resynchronisation si elles respectent la rgle prcdente, sauf si un nud met un bit dominant qui ne suit pas la rgle de resynchronisation avec une transition de rcessif dominant et une erreur de phase positive. La rgle ne sapplique que si les transitions des bits de rcessif dominant sont utilises pour la resynchronisation.
28 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
La transmission des donnes est effectue sur une paire filaire diffrentielle. La ligne est donc constitue de deux fils : - CAN L (CAN LOW), - CAN H (CAN HIGH).
CAN L CAN H Paire filaire
Le CAN est un bus de terrain, soumis des parasites importants. La transmission en paire diffrentielle permet de s'affranchir de ces problmes. Les montages diffrentiels ont en plus un fort taux de rjection en mode commun CMRR. Pour les niveaux physiques sur le bus, il est important de distinguer les deux types de transmission possibles : - transmission en bus CAN low speed, - transmission en bus CAN high speed. Le tableau ci-dessous rsume les principales diffrences entre les deux types de bus notamment sur les dbits supports. Paramtres Dbit Nombre de nuds sur le bus Courant de sortie (mode mission) Niveau dominant Niveau rcessif Caractristique du cble Tensions dalimentation CAN low speed 125 kb/s 2 20 > 1 mA sur 2,2 k CAN H = 4V CAN L = 1V CAN H = 1,75V CAN L = 3,25V 30 pF entre les cbles de ligne 5V CAN high speed 125 kb/s 1 Mb/s 2 30 25 50 mA sur 60 CAN H = 3,5 V CAN L = 1,5 V CAN H = 2,5 V CAN L = 2,5 V 2*120 5V
29 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
5
CAN H
4
CAN L CAN L
CAN H
3,5 2,5 1,5
CAN L
0 Bit rcessif Bit dominant Bit rcessif
30 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
Le schma dun circuit CAN reli au bus est prsent figure 25.
CAN H
CAN L
12.2.
Le dbit du rseau est calcul par rapport au Nominal Bit Time. Il stend de 125 kb/s 1 Mb/s suivant le type de bus utilis. Les valeurs ci-dessus correspondent au dbit dit brut du rseau, cest dire en comptant tous les bits qui sont transmis sur le bus. Le dbit dit net ne tient compte que des bits transportant des informations utiles. Le dbit net est en fait le dbit utile du bus en ne comptant pas tous les bits tels que le SOF, les Acknowlegde Delimiter, les bits de Bit-Stuffing... Le temps de latence est un intervalle de temps qui reprsente la dure coule entre le moment o une demande de requte est formule et linstant o la rponse est prsente sur le bus. Le temps de latence dpend du nombre de nuds matres dsirant effectuer un transfert de donnes.
31 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
Le bus CAN
pk
13. 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
14. WEBOGRAPHIE
http://www.omegas.co.uk/CAN/index.html http://www.can-cia.de/
32 / 32
pk/2001 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs