Le bus CAN............................................................................................................2 Introduction........................................................................................................2 Protocole CAN...................................................................................................2 Applications........................................................................................................3 Modle OSI.........................................................................................................3 Dfinitions...........................................................................................................4 Exercice n1.............................................................................................6 Couche 2 Niveau Trame......................................................................................7 Trame de donnes...............................................................................................7 Exercice n2.............................................................................................8 Exercice n3.............................................................................................8 Exercice n4.............................................................................................8 Exercice n5.............................................................................................9 Exercice n6.............................................................................................9 Exercice n7.............................................................................................9 Arbitrage.......................................................................................................10 Exercice n8...........................................................................................10 Exercice n9...........................................................................................10 Exercice n10.........................................................................................12 Exercice n11.........................................................................................12 Champ de contrle........................................................................................12 Exercice n12.........................................................................................13 Trame de requtes.............................................................................................14 Exercice n13.........................................................................................14 Champ CRC..................................................................................................15 Champ d'acquittement..................................................................................15 Champ de fin de trame.................................................................................15 Traitement des erreurs......................................................................................16 Diffrents types d'erreur...............................................................................16 Trame d'erreur (Error Frame).......................................................................17 Exercice n14.........................................................................................17 Exercice n15.........................................................................................18 Le confinement d'erreurs...............................................................................18 Exercice n16.........................................................................................19 Trame de surcharge...........................................................................................19 Couche 1 Niveau Bit..........................................................................................20 Codage..............................................................................................................20 Exercice n17.........................................................................................22 Longueur et dbit..............................................................................................22 Caractristiques lectriques...............................................................................23 Bibliographie.........................................................................................................23 LT La Salle Avignon - 1/23 - 2005-2008 BTS IRIS tv - Bus CAN - Le bus CAN Introduction Le bus CAN (Controller Area Network) est n du besoin de trouver une solution de communication srie dans les vhicules automobiles. Il a t initialement dvelopp par la socit Bosch, au milieu des annes 80, puis a fait l'objet d'une normalisation ISO 11898 et 11519. Le bus CAN est un rseau part entire respectant le modle d'interconnexion des systmes ouverts (modle OSI) de l'ISO et il est class dans la catgorie des rseaux de terrain utiliss dans l'industrie pour remplacer la boucle analogique 4/20mA. Remarque : Le GIE Renault-PSA avec les partenaires comme Sagem, Valeo et autres ont dvelopp le bus VAN (Vehicule Area Network). 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. La norme ISO 11898 spcifie un dbit maximum de 1Mbits/s. La longueur maximum du bus est dtermine par la charge capacitive et le dbit (de 20 kbps sur 1 km 1Mbps sur 40 m). La structure du protocole du bus CAN possde implicitement les principales proprits suivantes : souplesse de configuration fonctionnement multi matre dtections et signalisations derreurs retransmission automatique des messages altrs dconnexion automatique des nuds dfectueux Le protocole CAN ne couvre que 2 (ou 3) des 7 couches du modle OSI : les couches PHYSIQUE et LIAISON et ventuellement la couche APPLICATION. LT La Salle Avignon - 2/23 - 2005-2008 BTS IRIS tv - Bus CAN - Le protocole est bas sur le principe de diffusion gnrale : lors de transmission, aucune station n'est adresse en particulier, mais le contenu de chaque message est explicit par une identification reue par tous les abonns. Grce cet identificateur, les noeuds, qui sont en permanence l'coute du rseau, reconnaissent et traitent les messages qui les concernent. Elles ignorent simplement les autres. Applications La premire utilisation en srie du bus CAN date de 1992 avec une Mercedes Classe S. Bien entendu, il y a plusieurs types de rseaux communicants utiliss dans l'industrie automobile (GM et FORD avec le J1850, Renault et Peugeot avec le VAN). Mais la tendance se dirige vers le bus CAN (Peugeot l'utilise dans ses modles rcents 607, 307 et 206 par exemple). Dans un vhicule, plusieurs rseaux multiplexs cohabitent : rseau carroserie (optiques, rtroviseurs, vitres, ...) faible dbit (32,5 62,5 kbps) avec peu d'informations et un temps de rponse demand de 100 ms rseau inter-systmes (ABS, ...) dbit moyen (125 500 kbps) avec peu d'informations et un temps de rponse demand de 10 ms rseau confort (auto-radio, climatisation, navigation, ...) dbit moyen (125 kbps 1 Mbps) avec un grande quantit d'informations et un temps de rponse faible de 500 ms rseau diagnostic (appel aussi liaison K) dbit faible (10 kbps) avec un grande quantit d'informations et un temps de rponse lent de l'ordre de la seconde) Autres applications : Du fait de son efficacit et de sa robustesse prouve, le bus CAN est galement utilis dans de nombreuses applications industrielles (systmes de navigation maritime, ascenseurs, machines agricoles, photocopieurs, systmes mdicaux, industrie textile, machines outils, systme de production industrielle, ...) Modle OSI Le bus CAN couvre la couche 2 (LIAISON) et la couche 1 (PHYSIQUE) du modle OSI : LT La Salle Avignon - 3/23 - 2005-2008 BTS IRIS tv - 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 des fonctions suivantes : la mise en trame du message. larbitrage. lacquittement. la dtection des erreurs. la signalisation des erreurs. 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 le signal transmis et a pour pour rle dassurer le transfert physique des bits entre les diffrents nuds en accord avec toutes les proprits (lectriques et lectroniques) du systme. Cette couche soccupe : 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. Remarque : la couche 7 (APPLICATION) peut tre implmente sous forme d'un protocole supplmentaire (CANOpen par exemple). Dfinitions Nud : sous-ensemble reli un rseau de communication et capable de communiquer sur le rseau selon un protocole de communication (ici le protocole CAN). Chaque nud peut dtecter des erreurs sur un message qui ne lui est pas destin et en informer les autres nuds. Valeurs du bus : le bus peut avoir lune des deux valeurs logiques complmentaires dfinies, non pas en 0 et 1 comme dhabitude, mais sous la forme de bit nomm dominant ou rcessif. 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, 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. LT La Salle Avignon - 4/23 - 2005-2008 BTS IRIS tv 0 dominant 1 rcessif 1 rcessif 1 rcessif 0 dominant 0 dominant 0 dominant - Bus CAN - Trame de donnes et de requte : une trame de donnes transporte, comme son nom lindique, des donnes. Une trame de requte est mise par un nud dsirant recevoir une trame de donnes (dans ce cas lidentificateur est le mme pour les deux trames). Dbit (bit/s) : le dbit peut varier entre diffrents systmes, mais il doit tre fixe et uniforme au sein dun mme systme. Priorits : en cas de demandes de prise du bus simultanes les identificateurs de chaque message permettent aussi de dfinir quel message est prioritaire sur tel autre. Fonctionnement multi-matre : 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 multi matre. 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 des trames de requte et de donnes 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. 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. Acquittement : tous les rcepteurs vrifient la validit dun message reu, et dans le cas dun message correct ils doivent acquitter en mettant un flag. 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 et dune mthode de Bit-Stuffing. 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 sont 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. Mode Sleep (sommeil) et 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. LT La Salle Avignon - 5/23 - 2005-2008 BTS IRIS tv - Bus CAN - Mthode de Bit-Stuffing : 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. Exercice n1 Complter le diagramme suivant en respectant la mthode de Bit-Stuffing. Rponse : LT La Salle Avignon - 6/23 - 2005-2008 BTS IRIS tv - Bus CAN - Couche 2 Niveau Trame Le transfert des messages se ralise laide de quatre types de trames spcifiques et dun intervalle de temps les sparant : les trames de donnes : ces trames transportent des donnes d'un producteur vers des consommateurs. les trames de requte : ces trames de polling sont mises par un matre vers des esclaves pour requrir la transmission d'une trame de donnes. les trames derreurs : ces trames sont transmises lorsqu'une station dtecte une erreur de transmission sur le bus. les trames de surcharge (overload) : ces trames sont mises pour demander un laps de temps supplmentaire entre des trames (de donnes ou de requte) successives. Il existe un espace inter trame de 3 bits rcessifs entre les trames de donnes et de requte. Par ailleurs, il existe deux types de format de trames : la trame standard (format standard - CAN 2.0A) possde un identificateur de 11 bits la trame tendue (format tendu - CAN 2.0B) possde un identificateur 29 bits Ce format tendu permet dobtenir un plus grand nombre de messages et/ou de priorits. Remarque : Le bus CAN2.0B est compatible avec le CAN2.0A. Trame de donnes Le dbut de trame (SOF) nest effectif que si le bus tait prcdemment au repos (bus idle). Tous les nuds du rseau se resynchronisent sur le bit de SOF. LT La Salle Avignon - 7/23 - 2005-2008 BTS IRIS tv - Bus CAN - Une trame de donnes se dcompose en 7 champs diffrents : le dbut de trame SOF (Start Of Frame) : 1 bit dominant le champ darbitrage : 11 bits (ID) + 1 bit (RTR) en standard et, 29 bits (ID) + 2 bits (SRR/IDE) + 1 bit (RTR) en tendu le champ de commande : 6 bits le champ de donnes : 0 64 bits le champ de CRC (Cyclic Redundancy Code) : 15 bits + 1 bit le champ dacquittement (Acknowledge) : 2 bits le champ de fin de trame EOF (End Of Frame) : 7 bits rcessifs
La signification de certains bits : RTR : Remote Transmission Request bit, SRR : Subsitute Remote Request bit, IDE : Identifier Extension bit. Le bit RTR (Remote Transmission Request) permet de dterminer le type de trame : RTR = tat dominant : trame de donnes RTR = tat rcessif : trame de requte Exercice n2 Dterminer, pour les formats standard et tendu, les longueurs minimum et maximum en bits d'une trame de donnes circulant sur le bus CAN en ne tenant pas compte du bit- stuffing. Rponses : Exercice n3 Dterminer le nombre de capteurs/actionneurs TOR (Tout Ou Rien) diffrents qu'un noeud peut grer dans une seule trame de donnes. Rponse : Exercice n4 Calculer alors le rendement du protocole CAN lorsqu'il met une trame de donnes complte. Rponse : LT La Salle Avignon - 8/23 - 2005-2008 BTS IRIS tv - Bus CAN - Exercice n5 Pour comparaison, dterminer le rendement du protocole Ethernet pour la mme situation. Quel est alors le protocole le plus efficace pour ce type de situation (notion de bus de terrain ou bus industriel) ? Rponse : Exercice n6 Avec des trames de 60 bits en moyenne, dduire le nombre maximum de trames pouvant circuler sur le bus en une seconde et ce pour le dbit maximum (1 Mbits/s). Rponse : Exercice n7 Dans le cas o il y a 4 noeuds identiques qui mettent et reoivent 16 trames (de 60 bits en moyenne) par secondes , dterminer le taux de charge maximum pour ce bus. Rponse : LT La Salle Avignon - 9/23 - 2005-2008 BTS IRIS tv - Bus CAN - Arbitrage Dans une trame standard, le champ darbitrage est compos des 11 bits de lidentificateur plus un bit de RTR (Remote Transmission Request) qui est dominant pour une trame de donnes et rcessif pour une trame de requte. Comme nous lavons vu prcdemment, lidentificateur permet de router le message vers le bon nud mais il indique aussi la priorit du message, qui dtermine l'assignation du bus lorsque plusieurs stations mettrices sont en concurrences. Dans sa version standard, l'identificateur est cod sur 11 bits. Les priorits sont attribues statiquement lors de l'analyse conceptuelle du rseau, au moyen de valeur binaire, et ne peuvent donner lieu aucune modification dynamique. Exercice n8 Dterminer en thorie le nombre de messages qu'il est possible de dfinir pour une trame standard. Rponse : Les bits de lidentificateur sont numrots de ID_10 ID_0 (du MSB vers LSB). Par ailleurs les 7 bits les plus significatifs (de ID_10 ID_4) ne doivent pas tous tre rcessifs, ce qui rduit le nombre de combinaisons possibles. Exercice n9 En tenant compte de ces particularits, dterminer rellement le nombre de messages qu'il est possible de dfinir pour une trame standard. Rponse : LT La Salle Avignon - 10/23 - 2005-2008 BTS IRIS tv - Bus CAN - Le procd dattribution du bus est bas sur le principe de l'arbitrage bit bit, selon lequel les noeuds en comptition, mettant simultanment sur le bus, comparent bit bit l'identificateur de leur message avec celui des messages concurrents. Les stations de priorit moins leves perdront la comptition face celle qui a la priorit la plus leve. Les stations sont cbles sur le bus par le principe du "ET cbl", en cas de conflit c'est dire mission simultane, la valeur 0 crase la valeur 1. On appelle donc l'tat dominant l'tat logique 0, et l'tat rcessif l'tat logique 1. Les bits de lidentificateur sont transmis dans lordre, de ID_10 ID_0 (du MSB vers LSB). Exemple : Dans lexemple ci-dessus, les stations 1, 2 et 3 demandent le bus en mme temps. Pour les dpartager, on applique la mthode darbitrage et les premires stations a mettre un bit rcessif sont exclues et devront attendre que la station qui a pris le bus (la station avec la priorit la plus haute) libre la ligne. Dans lexemple la station 1 est exclue en premier puis la station 3. La station 2 donc la plus haute priorit. Le bus CAN utilise la mthode d'accs CSMA/CR (Carrier Sense Multiple Access / Collision Resolution) dont les principes gnraux sont les suivants : Toutes les stations sont gales Chaque station met quand elle veut (bus libre) Les collisions sont acceptes Les collisions sont dtectes par les stations Les collisions sont gres par le protocole Il y a une stratgie d'arbitrage des collisions La station qui remporte l'arbitrage continue sa transmission LT La Salle Avignon - 11/23 - 2005-2008 BTS IRIS tv - Bus CAN - Exercice n10 A partir de l'exemple prcdent, attribuer les priorits pour les 3 noeuds en fonction de leur rle. Rponses : - un capteur de temprature reli sur le noeud ___ - le capteur danti-patinage reli sur le noeud ___ - lABS reli sur le noeud ___ Exercice n11 Complter le troisime chronogramme (rsultante sur le bus) et indiquer le noeud qui a russi mettre sa trame. Rponses : Le noeud ____ gagne le bus. Champ de contrle Le champ de contrle est compos de 6 bits. Les deux premiers sont des bits de rserve et leur rle est dassurer des compatibilits futures ascendantes. LT La Salle Avignon - 12/23 - 2005-2008 BTS IRIS tv - Bus CAN - Les quatre derniers bits permettent de dterminer le nombre doctets de donnes contenus dans le champ de donnes. Le nombre doctets de donnes ne peut pas excder la valeur de 8 (soit 64 bits). Codage des bits DLC suivant la taille des donnes en octets (D : bit Dominant et R : bit Rcessif) : Taille des donnes en octets DLC (Data Length Code) DLC3 DLC2 DLC1 DLC0 0 D D D D 1 D D D R 2 D D R D 3 D D R R 4 D R D D 5 D R D R 6 D R R D 7 D R R R 8 R D D D Exercice n12 Complter la trame (jusqu'au champ CRC exclu) dans le cas o un noeud met les donnes 'B' (0x42) suivi de la valeur 6. Rponse : LT La Salle Avignon - 13/23 - 2005-2008 BTS IRIS tv - Bus CAN - Trame de requtes Une trame de requte est constitue de la mme manire quune trame deux diffrences prs : Le champ de donnes est vide. Dans le champ darbitrage, le bit de RTR est rcessif. 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 (DLC) le nombre doctets de donnes dont il a besoin. Exercice n13 Que se passe-t-il si deux noeuds mettent chacun une trame possdant le mme identificateur mais une des deux trames est une trame de donnes et l'autre une trame de requte. Conclure sur la priorit entre une trame de donnes et une trame de requte. Rponse : LT La Salle Avignon - 14/23 - 2005-2008 BTS IRIS tv - Bus CAN - Champ CRC le champ de CRC est compos de 16 bits. 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. Champ d'acquittement Le champ dacquittement possde 2 bits. Si aucune erreur na t dtecte par un nud, 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. 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. LT La Salle Avignon - 15/23 - 2005-2008 BTS IRIS tv - Bus CAN - 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. Diffrents types d'erreur 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. Sauf si : Un bit dominant est envoy dans le champ darbitrage la place dun bit rcessif. Dans ce cas, le bit dominant signifie simplement une perte darbitrage. Un bit dominant est envoy 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. 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. Lerreur de CRC (CRC Error) : Si la valeur du CRC calcule par le rcepteur est diffrente de celle envoye par lmetteur, il y a erreur de CRC. 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 gestion des erreurs s'applique sur certains champs, selon les cas : LT La Salle Avignon - 16/23 - 2005-2008 BTS IRIS tv - Bus CAN - Trame d'erreur (Error Frame) Si la station dtecte une erreur, elle renvoie une trame d'erreur constitue de 6 bits l'tat dominant (Error Flag) suivi de 8 bits dlimiteurs l'tat rcessif (Error Delimiter). Plusieurs stations peuvent dtecter l'erreur et envoyer elles aussi une trame d'erreur : il y a aura superposition de bits d'erreur (un maximum de 6 bits supplmentaires soit 12 bits max pour l'Error Flag afin de ne pas bloquer indfiniment le bus). Les bits formant l'Error Flag sont dominants et crasent donc les donnes contenues dans la trame de donnes. Ils provoqueront donc la retransmission de cette dernire. A l'issue de 8 bits dlimiteurs, le bus est libr (3 bits inter-trame) et les communications peuvent reprendre. Le nud essaiera nouveau de transmettre le message. Exercice n14 Complter le diagramme suivant dans le cas o le noeud B dtecte un Bit Error (not E). Rponse : LT La Salle Avignon - 17/23 - 2005-2008 BTS IRIS tv Flag d'erreur Trame d'erreur ACTIVE ERROR FLAG Trame de donnes Intertrame ou trame de surcharge Superposition maximale des flags d'erreur Dlimiteur d'erreur - Bus CAN - Exercice n15 Lors d'une erreur, le nud essaiera nouveau de transmettre le message (retransmission automatique en cas d'erreur). Dterminer le dlai en bits qu'il faudra attendre au mieux et au plus (si aucun message de priorit suprieure ne prend la main sur le rseau). Rponse : Le confinement d'erreurs Etant donn qu'une station dfectueuse peut perturber le fonctionnement de tout le systme (envoi ininterrompu de trames d'erreurs), les noeuds dfectueux se dconnectent automatiquement (ou limitent leur fonctionnement comme le signalement d'erreurs). Pour mettre en oeuvre le confinement, chaque noeud comporte obligatoirement deux compteurs : sur les trames mises (TEC - Transmit Error Counter) sur les trames reues (REC - Receive Error Counter) Ces compteurs s'incrmentent et se dcrmentent en utilisant un mcanisme de pondration sophistiqu. Pour simplifier, on considrera le fonctionnement suivant (Il existe notamment quelques exceptions ces rgles) : REC : Rception d'une trame corrompue : +1 (jusque 128) Rception d'une trame correcte : -1 (si >0) TEC : Emission d'une trame corrompue : +8 (jusque 256) Emission d'une trame correcte : -1 (si >0) Suivant la valeur de ces compteurs, le noeud se trouve dans un des 3 tats suivant : Etat Erreur-active : fonctionnement normal Etat Erreur-passive : mission possible mais 8 bits aprs que le bus soit libre (temps de rponse !), plus de signalement d'erreurs (le noeud transmet uniquement des passive error flag constitus de bits recessifs) Etat Bus-off : la station se dconnecte du bus (plus d'mission ni de rception) Remarque : une condition de "WARNING" est signale 96. LT La Salle Avignon - 18/23 - 2005-2008 BTS IRIS tv Erreur active Erreur passive Bus "OFF" REC > 127 ou TEC > 127 REC < 128 ou TEC < 128 TEC > 255 "Normal Mode Request" et 128 occurences de 11 bits successifs/recessifs Reset et configuration - Bus CAN - Exercice n16 Ceci peut durer indfiniment, si par hasard les erreurs persvrent, les compteurs d'erreurs augmentent, le circuit produisant l'erreur (ou s'en rendant compte) passe le premier en mode bus off. A ce moment l il ne devrait plus y avoir d'erreur et, le message devrait alors bien passer. Et si tous les noeud sont rcalcitrants sauf votre noeud, que se passe-t-il ? Rponse : 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 Flag) avec six bits dominants, le dlimiteur de surcharge (Overload Delimiter) avec huit bits rcessifs. Une trame de surcharge est mise sur le bus si : un bit dominant est dtect durant la priode dinter trame. 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. LT La Salle Avignon - 19/23 - 2005-2008 BTS IRIS tv - Bus CAN - Couche 1 Niveau Bit Codage La transmission des bits sur le bus CAN se fait en mode Bande de Base suivant un codage NRZ (Non Return to Zero). Les transitions des bits seffectuent sur chaque front montant de lhorloge. Une priode dhorloge correspond ce que lon appelle le Nominal Bit Time. Le Nominal Bit Time reprsente donc la dure dun bit sur le bus. Le niveau de tension est maintenu constant pendant la dure d'un bit (NRZ). 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. La norme 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) sert compenser les retards temporels physiques dans le rseau. Sa valeur est fixe deux fois la somme du temps de propagation des signaux dans les lignes du bus et des retards apports par les entres- sorties des drivers de lignes ; le segment de phase buffer n1 (PHASE_SEG1), le segment de phase buffer n2 (PHASE_SEG2) ces deux segments sont utiliss pour compenser les erreurs de synchronisation. Ils peuvent tre allongs ou raccourcis par la resynchronisation. . On dfinit la plus petite base de temps reconnue sur un bus CAN comme tant le Time Quantum. Cette base de temps est une fraction de l'horloge de l'oscillateur. LT La Salle Avignon - 20/23 - 2005-2008 BTS IRIS tv - Bus CAN - Le point d'chantillonnage (sample point) est l'instant o l'tat du bus est lu et o la valeur du bit est interprte. Il se place la fin de PHASE_SEG1. Sur des bus CAN lents ou trs perturbs, on pourra prendre trois points d'chantillonnage. 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 s'appelle 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). La valeur est mise dans le registre du circuit lors de l'initialisation et ne change pas en cours de fonctionnement. Remarque : il faudra donc consulter la documentation du circuit mise en oeuvre pour assurer sa configuration. On devra : dfinir une base pour la vitesse de transmission et un temps de synchronisation (ces temps doivent tre gaux sur tous les systmes d'un mme rseau) dfinir la dure de chaque bit, le point d'chantillonnage et le nombre d'chantillonnages. Exemple : les registres du SJA1000 (nominal bit time = t SYNCSEG + t TSEG1 + t TSEG2 ) LT La Salle Avignon - 21/23 - 2005-2008 BTS IRIS tv - Bus CAN - Exercice n17 Le circuit contrleur CAN SJA1000 16 Mhz a t configur avec les valeurs suivantes : BTR0 = 0x43 et BTR1 = 0x2F. Dterminer le dbit de ce bus CAN. Rponse : Longueur et dbit La longueur du bus dpend des paramtres suivants : Le dlai de propagation sur les lignes physiques du bus. La diffrence du quantum de temps dfini prcdemment, du aux diffrences de cadencement des oscillations des nuds. L'amplitude du signal qui varie en fonction de la rsistance du cble et de l'impdance d'entre des nuds. Remarques : la longueur du bus diminue lorsque le dbit augmente. Au del d'une certaine distance (suprieure au km), il faudra mettre en place des rpteurs. LT La Salle Avignon - 22/23 - 2005-2008 BTS IRIS tv Dbit Longueur Longueur d'un bit 1 Mbit/s 30 m 1 s 800 kbit/s 50 m 1,25 s 500 kbit/s 100 m 2 s 250 kbit/s 250 m 4 s 125 kbit/s 500 m 8 s 62,5 kbit/s 1000 m 16 s 20 kbit/s 2500 m 50 s 10 kbit/s 5000 m 100 s - Bus CAN - Caractristiques lectriques La transmission des donnes est effectue sur une paire filaire diffrentielle. La ligne est donc constitue de deux fils : CANL (CAN LOW) -> broche 2 d'un connecteur DB9 CANH (CAN HIGH) -> broche 6 d'un connecteur DB9 Le CAN est un bus de terrain, soumis des parasites importants. La transmission en paire diffrentielle permet de s'affranchir de ces problmes : l'immunit lectromagntique (EMI) est assure car les deux lignes sont toutes deux affectes de la mme manire par la perturbation. Le tableau ci-dessous rsume les principales diffrences entre les deux types de bus: 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 V CAN H - V CAN L = 2V Niveau rcessif CAN H = 1,75V CAN L = 3,25V V CAN H - V CAN L = 2,5V Caractristique du cble 30 pF entre les cbles de ligne 2*120 Tensions dalimentation 5V 5V Transceiver CAN : 80C250 de Philips ou MCP2551 de MicroChip Bibliographie Le bus de terrain CAN de Patrice Kadionik : http://www.enseirb.fr/~kadionik/formation/canbus/canbus.html Le rseau CAN et le protocole CANOpen : http://www.a2v.fr/program/canopen.htm Gestion du bus CAN : http://www.oberle.org/can-index.html Introduction au bus CAN : http://edelaunay.chez.tiscali.fr/buscan.htm etc ... LT La Salle Avignon - 23/23 - 2005-2008 BTS IRIS tv