31
Le bus CAN LE BUS CAN

canbus

Embed Size (px)

DESCRIPTION

electrique

Citation preview

  • Le bus CAN

    LE BUS CAN

  • Le bus CAN

    TABLE DES MATIERES

    1. Introduction ........................................................................................................................ 32. Le protocole CAN ............................................................................................................... 33. Protocole CAN et couches OSI .......................................................................................... 34. Quelques rgles de fonctionnement et dfinitions............................................................. 55. Trame de donnes ............................................................................................................... 8

    5.1. Champ darbitrage ................................................................................................................. 9

    5.2. Champ de contrle................................................................................................................ 10

    5.3. Champ de donnes ................................................................................................................ 11

    5.4. Champ de CRC ..................................................................................................................... 11

    5.5. Champ dacquittement......................................................................................................... 12

    5.6. Champ de fin de trame......................................................................................................... 13

    6. Trame de requte .............................................................................................................. 137. Traitement des erreurs...................................................................................................... 14

    7.1. Les diffrents types derreurs .............................................................................................. 14

    7.2. Les trames derreurs ............................................................................................................ 16

    7.3. Recouvrement des erreurs ................................................................................................... 17

    8. Fin de trames CAN ........................................................................................................... 208.1. Trame de surcharge.............................................................................................................. 20

    8.2. Priode dintertrame ............................................................................................................ 20

    8.3. Autres modes ......................................................................................................................... 21

    9. Codage de ligne................................................................................................................. 2210. Le Nominal Bit Time..................................................................................................... 22

    10.1. Description des diffrents segments................................................................................. 23

    10.2. Dure des diffrents segments et notion de Time Quantum ........................................... 24

    11. Synchronisation des horloges ....................................................................................... 2511.1. Notion de RJW ................................................................................................................... 26

    11.2. Notion derreur de phase.................................................................................................. 26

    11.3. Les rgles de synchronisation........................................................................................... 27

    12. Caractristiques physiques du bus CAN....................................................................... 2912.1. Support de transmission ................................................................................................... 29

    12.2. Dbit sur le rseau et temps de latence............................................................................ 31

    13. Bibliographie ................................................................................................................. 3214. Webographie.................................................................................................................. 32

    2 / 32

  • Le bus CAN

    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. PROTOCOLE CAN ET COUCHES OSI

    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

  • Le bus CAN

    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.

    LLC ( Logic Link Control )Filtrage d'acceptance des messagesNotification de sucharge ( overload )Recouvrement des erreurs

    -------------------------------------------------------------------------MAC ( Medium Access Control )

    Encapsulation/Dcapsulation des donnesCodage de trame ( Stuffing/Destuffing )Medium Access ManagementDtection d'erreurSignalisation d'erreurAcquittementSrialisation/Dsrialisation

    Couche de communication de donnes

    PLS ( Physical Signalling )Codage/Dcodage de bitBit timingSynchronisation

    -------------------------------------------------------------------------PMA ( Physical Medium Attachment )

    Caractristiques Driver/Receiver-------------------------------------------------------------------------MDI ( Medium Dependent Interface )

    Connecteurs

    Couche Physique

    ---------------------------------------

    Dfautsde

    confinement

    ---------------------------------------

    Gestiondes dysfonctionnements

    du bus

    Superviseur CAN

    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

  • Le bus CAN

    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 REGLES DE FONCTIONNEMENT ETDEFINITIONS

    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

  • Le bus CAN

    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

  • Le bus CAN

    - 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 Bit-Stuffing (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

  • Le bus CAN

    Trame Stuffer

    TrameStuffe

    Trame Stuffer

    TrameStuffe

    Figure 2 : Technique de Bit-Stuffing

    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

  • Le bus CAN

    EspaceIntertrame

    ouTrame deSurcharge

    EspaceIntertrameTrame de Donnes

    Dbutde

    trame

    Champd'arbitrage

    Champ decommande

    Champ dedonnes

    Champ deCRC

    Champd'acknowlegde

    Fin deTrame

    Figure 3 : Format de la trame CAN

    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

  • Le bus CAN

    Champd'arbitrage Champ de

    commande

    Identificateur ( 11 bits )

    SOF( 1 bit )

    RTR( 1 bit )

    Format Standard

    Figure 4 : Champ arbitrage

    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.

    DLC (Data Length Code) Taille des donnes en octets DLC3 DLC2 DLC1 DLC00 D D D D1 D D D R2 D D R D3 D D R R4 D R D D5 D R D R6 D R R D7 D R R R8 R D D D

    D : bit Dominant, R : bit Rcessif

    Tableau 1 : Codage des bits DLC suivant la taille des donnes en octets

    10 / 32

  • Le bus CAN

    Champd'arbitrage

    Champ decommande Champ de

    donnesou

    Champ deCRC

    IDE/r1 DLC3r0 DLC1DLC2 DLC0

    Bitsrservs( 2 bits )

    Longueur du champde donnes

    DLC( Data Length Code )

    ( 4 bits )

    Figure 5 : Champ contrle

    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 g(x)=x15+x14+x10+x8+x7+x4+x3+1. La chane de bits correspondante ce 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

  • Le bus CAN

    Champ dedonnes

    ouChamp decommande

    Champd'acknolegde

    Champ deCRC

    DlimiteurCRC

    ( 1 bit )

    Squence CRC ( 15 bits )

    Figure 6 : Champ CRC

    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

  • Le bus CAN

    Champ deCRC

    Champd'acknolegde

    Fin detrame

    Acknolegde( 1 bit )

    Dlimiteurd'acknolegde

    ( 1 bit )

    Figure 7 : Champ acquittement

    5.6. Champ de fin de trame

    Ce champ de fin de trame est constitu de 7 bits rcessifs, ce qui droge la rgle de Bit-Stuffing. 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

  • Le bus CAN

    EspaceIntertrame

    ouTrame deSurcharge

    EspaceIntertrameTrame de requte

    Dbutde

    trame

    Champd'arbitrage

    Champ decommande

    Champ deCRC

    Champd'acknowlegde

    Fin deTrame

    Figure 8 : Trame de requte

    7. TRAITEMENT DES ERREURS

    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. Les diffrents types derreurs

    Le Bit Error :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

  • Le bus CAN

    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.

    SOF

    Identificateur

    Bit RTR

    commande donnes cyclic redundancycode 1 1 1Fin detrame

    Espaceintertrame

    Ackslot Ack

    delimitercrc

    delimiter

    Stuff Error

    CRC Error

    BitError Bit Error Bit Error

    AcknowledgmentError

    CRC DelimiterError

    AcknowledgeDelimiter Error

    Figure 9 : Les sources d'erreur dans la trame CAN

    15 / 32

  • Le bus CAN

    7.2. Les trames derreurs

    La trame derreur :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

    Figure 10 : Construction de la trame d'erreur

    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.

    Trame de donneen cours detransmission Flag Error Active Error Delimiter

    6 bits dominants 8 bits rcessifs

    Trame d'erreur active

    Figure 11 : Trame d'erreur active

    16 / 32

  • Le bus CAN

    Trame de donneen cours detransmission Flag Error Active Error Delimiter

    6 bits rcessifs 8 bits rcessifs

    Trame d'erreur passive

    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. Recouvrement des erreurs

    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

  • Le bus CAN

    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.

    Error Active

    Error Passive

    Bus Off

    Reset

    TEC: Transmit Error Counter

    REC: Receive Error Counter

    REC < 128et TEC < 128

    REC > 127et TEC > 127

    TEC > 255

    128 occurences de 11 bits rcessifs

    Figure 13 : Compteur d'erreur et tat d'un noeud

    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

  • Le bus CAN

    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.

    Les modes derreurs :

    Mode derreur active :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

  • Le bus CAN

    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. FIN DE TRAMES CAN

    8.1. Trame de surcharge

    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.

    Overload Flag Overload DelimiterTrame de donne en cours

    Trame de surcharge

    Figure 14 : Trame de surcharge

    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

  • Le bus CAN

    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.

    Trame de donneou de requte

    Intermission Suspension de transmission

    Intertrame

    Bus Idle Nouvelle trame de donneou de requte

    Les champs de fin de trame

    Figure 15 : Priode d'intertrame

    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

  • Le bus CAN

    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.

    Figure 16 : Codage NRZ du bus CAN

    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.

    10. LE NOMINAL BIT TIME

    Le Nominal Bit Time reprsente en fait la dure du bit sur le bus. Cette dure est, comme nous lavons vu, troitement lie la priode de lhorloge. Chaque station relie sur le bus doit tre cadence avec le mme Nominal Bit Time pour pouvoir mettre et recevoir correctement les donnes circulant sur le bus. Ainsi, la dure du bit time de chaque circuit est construite partir dun nombre dtermin de priodes dhorloge issue de lhorloge interne de chaque circuit CAN.

    La norme BOSCH dcrit avec prcision la composition de ce Nominal Bit Time qui est divis en plusieurs segments :

    le segment de synchronisation (SYNC_SEG), le segment de propagation (PROP_SEG),

    le segment de phase buffer n1 (PHASE_SEG1), le segment de phase buffer n2 (PHASE_SEG2).

    La figure 17 donne un aperu de ces divers composants et de leur agencement.

    22 / 32

  • Le bus CAN

    SYNC_SEG PROP_SEG PHASE_SEG1 PHASE_SEG2

    Nominal Bit Time

    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 al Bit TimeNo al Bit Rate

    min _ _min _ _

    = 1 .

    10.1. Description des diffrents segments

    le segment de synchronisation : le segment de synchronisation est utilis poursynchroniser les diffrents nuds du bus. Comme nous le verrons par la suite, unetransition (de 0 1 ou de 1 0) doit seffectuer dans ce segment pour permettreune resynchronisation des horloges des diffrents nuds en mode de rception detrames.

    Le segment de propagation : le segment de propagation est utilis pourcompenser les phnomnes de temps de propagation sur le bus. Par dfinition :

    ( )Dure PROP SEG t propag bus t retard comparateurs t retard drivers lignes_ _ * _ _ _ _ _ _ _= + +2

    Les segments buffer phase1 et buffer phase2 : les segments buffer phase1et buffer phase2 sont surtout utiliss pour compenser les erreurs de phasedtectes lors des transitions. Nous verrons aussi que ces segments peuvent treplus courts ou plus longs cause des phnomnes de resynchronisation.

    Le point dchantillonnage ou sample point : le point dchantillonnage ousample point est le point o la valeur du bit est lue sur le bus. Il est situ la fin dusegment de buffer phase1 et constitue la seule valeur mmorise pour le niveaudu bit. On saffranchit des phnomnes de propagation et doscillation des donnessur le bus dans les segments prcdents.

    23 / 32

  • Le bus CAN

    10.2. Dure des diffrents segments et notion de Time Quantum

    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 :

    TIME QUANTUM m 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 del'oscillateur

    Time Quantum

    Figure 18 : Construction du Time Quantum

    Dans lexemple ci-dessus, le facteur m est gal 4.

    La dure des diffrents segments :Segment Dure en Time Quanta Synchronisation - SYNC_SEG 1 Propagation - PROP_SEG 1 8 Buffer phase1 - PHASE_SEG1 1 8 Buffer phase1 - PHASE_SEG2 1 8

    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

  • Le bus CAN

    1 TimeQuantum

    SYNCSEG

    PROP_SEG PHASE_SEG1 PHASE_SEG2

    1 1 8 1 8 1 8

    Sample point

    Figure 19 : Dure des diffrents segments

    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.

    11. SYNCHRONISATION DES HORLOGES

    Chaque nud doit produire un nominal Bit Time pour pouvoir recevoir et mettre les donnes circulant sur le bus en synchronisme avec les autres circuits. En effet, si les Nominal Bit Time de chaque nud ne sont pas du tout synchroniss, la valeur lue sur le bus au moment de lchantillonnage peut ne pas tre la valeur correcte au bon moment, comme le reprsente la figure 20. Ces retards peuvent tre gnants, dans la phase dacquittement de la trame o il y a peu de temps pour finir de calculer le CRC et envoyer un bit ltat dominant lors de lAcknowledge Slot pour confirmer que la trame a bien t reue.

    25 / 32

  • Le bus CAN

    Nominal Bit Timecircuit 1

    Nominal Bit Timecircuit 2

    Sample pointSample point

    Bits emis

    Bits reus

    Figure 20 : Problme de la synchronisation

    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 4<

  • Le bus CAN

    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.

    SYNCSEG

    SYNCSEG

    SYNCSEG

    PROP_SEG

    PROP_SEG

    PROP_SEG

    PHASE_SEG1

    PHASE_SEG1

    PHASE_SEG1

    PHASE_SEG2

    PHASE_SEG2

    Sample point

    Sample point

    e > 0, on allonge PHASE_SEG1

    e < 0, on raccourcit PHASE_SEG2

    NominalBit Time

    Transition d'un bit sur la ligne

    Figure 21 : Erreur de phase

    11.3. Les rgles de synchronisation

    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

  • Le bus CAN

    Si lerreur de phase est positive et infrieure en valeur absolue RJW(0

  • Le bus CAN

    12. CARACTERISTIQUES PHYSIQUES DU BUS CAN

    12.1. Support de transmission

    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 HPaire filaire

    Figure 22 : Paire filaire du bus CAN

    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 CAN low speed CAN high speed Dbit 125 kb/s 125 kb/s 1 Mb/s Nombre de nuds sur le bus 2 20 2 30 Courant de sortie (mode mission)

    > 1 mA sur 2,2 k 25 50 mA sur 60 Niveau dominant CAN H = 4V

    CAN L = 1V CAN H = 3,5 V CAN L = 1,5 V

    Niveau rcessif CAN H = 1,75V CAN L = 3,25V

    CAN H = 2,5 V CAN L = 2,5 V

    Caractristique du cble 30 pF entre les cbles de ligne 2*120 Tensions dalimentation 5V 5V

    Tableau 3 : Les 2 types de bus CAN

    29 / 32

  • Le bus CAN

    0

    1

    1,75

    2,5

    3,25

    4

    5

    Bit dominantBit rcessif Bit rcessif

    CAN H

    CAN H

    CAN H

    CAN L

    CAN L

    CAN L

    CAN low speed

    Figure 23 : Niveaux de tension du bus CAN low speed

    Bit dominantBit rcessif Bit rcessif

    CAN high speed

    0

    1,5

    2,5

    3,5

    5

    tensionsur la

    paire filaire(en V)

    CAN H

    CAN L

    Figure 24 : Niveaux de tension du bus CAN high speed

    30 / 32

  • Le bus CAN

    Le schma dun circuit CAN reli au bus est prsent figure 25.

    Circuit CANGestionnaire de

    protocole

    InterfaceDrivers

    de ligne

    CAN H CAN L

    sortie0 ou 1logique

    Bitsdominants

    ou rcessifs

    Figure 25 : Schma de principe d'un circuit CAN

    12.2. Dbit sur le rseau et temps de latence

    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

    1. INTRODUCTION2. LE PROTOCOLE CAN3. PROTOCOLE CAN ET COUCHES OSI4. QUELQUES REGLES DE FONCTIONNEMENT ET DEFINITIONS5. TRAME DE DONNEES5.1. Champ darbitrage5.2. Champ de contrle5.3. Champ de donnes5.4. Champ de CRC5.5. Champ dacquittement5.6. Champ de fin de trame

    6. TRAME DE REQUETE7. TRAITEMENT DES ERREURS7.1. Les diffrents types derreurs7.2. Les trames derreurs7.3. Recouvrement des erreurs

    8. FIN DE TRAMES CAN8.1. Trame de surcharge8.2. Priode dintertrame8.3. Autres modes

    9. CODAGE DE LIGNE10. LE NOMINAL BIT TIME10.1. Description des diffrents segments10.2. Dure des diffrents segments et notion de Time Quantum

    11. SYNCHRONISATION DES HORLOGES11.1. Notion de RJW11.2. Notion derreur de phase11.3. Les rgles de synchronisation

    12. CARACTERISTIQUES PHYSIQUES DU BUSCAN12.1. Support de transmission12.2. Dbit sur le rseau et temps de latence

    13. BIBLIOGRAPHIE14. WEBOGRAPHIE15. EVOLUTION DU DOCUMENT