• Aucun résultat trouvé

Le transcodage de la trame dans les réseaux embarqués en automobile.

N/A
N/A
Protected

Academic year: 2022

Partager "Le transcodage de la trame dans les réseaux embarqués en automobile."

Copied!
30
0
0

Texte intégral

(1)

Le transcodage de la trame dans les réseaux embarqués en automobile.

Ceci est le premier article d'une série traitant des réseaux multiplexés en automobile.

L'objectif est la description du signal, l'information véhiculée à son niveau le plus physique, et plus particulièrement la justification de la présence du bit

« Manchester » (dans le cas du VAN) ou de la méthode de « bit stuffing » (dans le cas du CAN).

A ce stade, on ne se préoccupera pas du format de la trame ni de la signification des données transportées.

Problématique des transmissions série

D'une manière générale, les réseaux effectuent les transmissions en « série » : les informations élémentaires (bits) se succèdent à intervalles de temps réguliers sur la même ligne.

Dans le cas d'une transmission en mode asynchrone les évènements pourraient se dérouler de la manière suivante :

• L'émetteur génère chacune de ses informations élémentaires au rythme de son horloge de transmission.

• Le récepteur doit utiliser sa propre horloge à la même fréquence et choisir l'instant de la lecture du bit. Généralement il attend que le niveau de tension correspondant à l'information soit suffisamment stabilisé. C'est le point d'échantillonnage, et il se situe de 25% à 75% après le début du bit.

Dans les équipements utilisés en automobile les horloges fonctionnent rarement à la même vitesse :

• Elles utilisent des circuits résonants de type « RC » très bon marché mais d'une précision médiocre, par opposition aux horloges basées sur des systèmes piézo-électriques (quartz).

• Elles subissent des variations de température qui peuvent entraîner des dérives importantes.

Période de l'horloge d'émission Info élémentaire

Période de l'horloge d’émission Echantillonnage : instant

de l'évaluation du signal

(2)

Dans l'exemple suivant, qui reste très caricatural, on fait l'hypothèse que l'horloge du récepteur est plus rapide (+10%) ce qui se traduit par un intervalle réduit d'autant entre chaque échantillonnage.

Message émis : 1000 0111 1101 Message reçu : 1000 0111 1110 1

Les messages sont différents, 13 bits ont été lus pour 12 qui ont été émis.

Les transmissions en mode asynchrone ne sont pas adaptées aux réseaux, car les équipements ne sont pas synchronisés. Cette technologie reste cependant valable pour des messages très courts, comme nous le verrons plus loin.

Les transmissions en mode synchrone

Les deux équipements sont synchronisés, soit :

• Par une liaison supplémentaire commune qui permet de transporter le signal d'horloge.

• Par l'inclusion d'éléments de synchronisation dans le message à transmettre.

C'est généralement cette dernière solution qui est retenue. Elle permet de s'affranchir du problème précédent et de transporter une grande quantité d'information (plusieurs milliers de bits). L'ensemble des informations transmises porte le nom de trame.

Après l'inclusion des éléments de synchronisation la trame est dite codée ou transcodée.

Le principe général s'appuie sur le fait que le récepteur doit pouvoir utiliser les changements d'états du signal (front montant ou descendant) pour se ‘recaler' au cours de la lecture. Comme il n’y a pas d'assurance que le signal comporte

suffisamment d'alternances naturelles, il faut en introduire à l'émission, et les prendre en compte pour l'interprétation du message après réception.

Le codage Manchester

Il est souvent utilisé dans le cadre des réseaux locaux. L'émetteur « mélange » son signal d'horloge au message à transmettre de la manière suivante :

Période de l'horloge d'émission Point d'échantillonnage en réception (70%)

1 0 0 0 0 1 1 1 1 1 1 0

Période de l'horloge de réception

= Période d'émission – 10%

1 0 0 0 0 1 1 1 1 1 0 1

1 Message

émis

Message reçu

(3)

On substitue au niveau de tension (0/5Volts par ex.) représentatif de l'information (0/1) un changement d'état :

• 1 sera représenté par un front descendant

• 0 sera représenté par un front montant

L'information véhiculée sur le fil ne comporte plus de composante continue même en cas de suite de valeurs identiques importante.

La réalisation peut s'effectuer de manière câblée :

Le codage Manchester étendu

C'est le codage adopté sur l'un des réseaux embarqués en automobile : le VAN (Vehicle Area Network).

On constate dans le cas du codage Manchester de base que les données sont transmises à une fréquence qui est la moitié de celle de l'horloge .

Dans les systèmes embarqués les fréquences d'horloge sont très petites (de 62.5KHz à 1MHz) devant celles des réseaux locaux (de 10MHz à 1GHz).

Le Manchester étendu n'effectue le codage que d'un élément d'information sur quatre et ne majore donc la durée brute que de 20%.

L'information élémentaire sera désignée sous le nom de TS (Time Slot = Tranche de temps) et le bit reste l'information utile.

Soit l'information à transmettre : 4 bits

Signal transmis : 5 TS

=1 Message émis Message

à émettre

OU Exclusif Horloge

Message à émettre

Message émis Horloge

Codage Manchester

Bit Manchester (0 ici)

(4)

D’une manière plus simple, l’introduction du codage Manchester se traduit par l’ajout d’un TS de valeur opposé au précédent tous les 4 TS. C’est le bit Manchester.

L’interprétation d’une trame lue à l’oscilloscope, nécessite d’effectuer l’opération inverse : la suppression des bits Manchester.

Après cette opération il ne reste que les bits de données.

Au cours de cette opération on peut contrôler l’intégrité du codage, à savoir que chaque bit Manchester est bien précédé de son inverse.

On remarque que la trame VAN est entièrement codée à l’exception de l’en-tête et d’une anomalie qui apparaît en fin de trame et qui fera l’objet d’un développement ultérieur.

Le Bit Stuffing

C’est la méthode employée dans le protocole CAN.

Le principe est toujours d’introduire un bit de valeur opposée au précédent dans le message mais, cette fois ci, uniquement lorsque cela s’avère nécessaire. On utilise donc les alternances naturelles du message lorsqu’elles existent.

La notion de TS n’est pas employée en CAN.

Lorsque se présente une succession de 5 valeurs identiques (assimilable à une composante continue) on introduit un bit de valeur opposée. On effectue un bourrage (stuffing) de la trame avec ce bit.

Les variations de durée de transmission dues au codage de la trame dépendent ici essentiellement du contenu du message contrairement au VAN ou la durée est toujours pénalisée de la même valeur.

Par contre la lecture ‘à la main’ des données utiles de la trame (suppression des bits de ‘Stuff’ ou ‘destuffage’) est un peu plus délicate :

(5)

Débits et rendement de transmission

La transmission de données sous forme de trame fait apparaître 2 types de débit.

Le débit brut est défini comme étant le nombre de bits transmis par seconde. Il ne dépend que de la durée du time slot : débit brut = 1 / durée du time slot.

Le débit net, quand a lui, prend en compte le nombre de bits utiles, c’est à dire le nombre de bits correspondant aux données à transmettre. Il dépend donc du rapport qu’il existe entre le nombre de bits utiles et le nombre de times slots de la trame : Débit net = débit brut x (nombre de bits utiles / nombre de times slots total).

Le rendement de transmission est défini comme étant le rapport entre le débit net et le débit brut : η = débit net / débit brut.

Dans le cas du protocole VAN, le transcodage utilise le manchester étendu. La taille de la trame dépend du nombre d’octets de données à transmettre, sachant que les autres champs ont une taille fixe et connue. Le débit net, et donc le rendement, peuvent alors être calculés

Allure du rendement de transmission, protocole VAN

Dans le cas du protocole CAN, la taille de la trame dépend du nombre d’octet de données, mais également de la nature même du contenu de la trame, car le transcodage utilise la méthode du bit stiffing.

Le débit net, ainsi que le rendement, ne pourront être calculés qu’après lecture de la trame. Une estimation pourra être faite en négligeant le nombre de stuff-bits.

(6)

Multiplexage

2 - L’accès au bus : collisions et arbitrage

Quelques termes :

• On appellera ‘Trame’ l’ensemble des bits à transmettre. Cet ensemble contient les données utiles (objet de la transmission) accompagnées des informations nécessaires à leur bon acheminement : repère de début, usage, vérification et contrôle, repère de fin. Le tout est transcodé1 dans la norme désirée (Manchester, Manchester comprimé ou Bit Stuffing).

Les formats des protocoles VAN et CAN feront l’objet d’une prochaine Infotech.

• Les termes ‘station’ ou ‘poste’ désignent indifféremment un élément (‘nœud’) du réseau. D’une manière générale, ‘poste’ est plus adapté aux réseaux locaux (interconnexion de PC) alors que ‘station’ représente plus un élément d’un réseau embarqué en automobile.

Préambule

Les similitudes d’accès au bus entre les réseaux locaux (LAN = Local Area Network) et les réseaux VAN et CAN existent. Aussi, il paraît intéressant de partir du réseau local, d’analyser ses faiblesses (dans le cadre d’une application automobile) afin de mettre en évidence et de mieux comprendre les solutions apportées par les

protocoles VAN et CAN.

La règle d’accès au bus

Un nœud ne peut commencer à émettre une trame que si le bus est libre (= la ligne physique est au repos) pendant un temps t qui est déterminé par le protocole. Une ligne au repos est caractérisée par un état logique ‘1’ (présence de tension).

Toutefois, cette règle n’interdit pas à deux nœuds (ou plus) d’initier une transmission au même instant (ou presque).

Dans ce cas il y a un conflit d’accès au bus qui va se traduire par une collision des trames.

Cette règle s’applique aux réseaux locaux de type ‘Ethernet’ et à nos réseaux VAN et CAN. Ce sont des réseaux de type ‘CSMA’.

• CS = Carrier Sense, littéralement ‘détection de porteuse’. Cela correspond au fait de s’assurer si le bus est occupé ou non avant d’initier une transmission.

• MA = Multiple Acces, à ‘accès multiple’ signifie qu’il n’y a pas de priorité d’accès au bus entre les nœuds.

Pour les amateurs d’analogie, on peut faire le parallèle avec une conversation polie entre gens polis :

• Une seule personne parle.

• On n’interrompt pas une personne qui parle.

• On ne prend la parole qu’après un silence significatif.

Ce qui, là non plus, n’empêche pas la collision d’exister, mais sa gestion relève de la courtoisie !

1 Voir Infotech n°6 : le transcodage de la trame.

(7)

Gestion des collisions : la détection

Tout d’abord…

Pour un électricien il est certain qu’entre deux points d’un circuit les potentiels sont identiques en l’absence de circulation de courant. Ce raisonnement est tout à fait adapté aux systèmes électromécaniques présents, jusqu’à présent, dans les automobiles. Il va falloir changer cette vision des choses car aux fréquences auxquelles travaillent les bus, l’unité élémentaire d’information (le ‘bit’), n’occupe qu’une partie de la ligne et se déplace sur cette ligne à une vitesse donnée (quel que soit son potentiel électrique représentatif d’un ‘0’ ou d’un ‘1’).

Quelques chiffres…

On se place dans le cadre d’un réseau local à 10Mbit/s sur une liaison de 500m entre deux postes. La vitesse de propagation de l’information est une constante, une fraction de C (vitesse de la lumière dans le vide), soit : 200 000 Km/s.

Dans ces circonstances, la durée d’un bit sur le câble est : s

10.10 10

tbit_câble = 1 6 = -7

et il occupe sur le câble une longueur de : m

20 10 . 200 . 10 lg

v t

lg

6 7

bit_câble -

n propagatio bit_câble

bit_câble

=

=

×

=

tout en se déplaçant à 200 000 Km/s, ce qui se traduit par la présence de 25 bits sur les 500 mètres qui séparent les deux postes et par un trajet d’une durée de 2.5µs soit un temps de propagation de 5ns/m.

Ethernet : analyse d’une collision.

On pourrait représenter le mécanisme de la collision de la manière suivante :

La collision correspond à une destruction du signal par courts-circuits successifs entre des ‘0’ et des ‘1’. Il devient illisible.

Détection de la collision par le poste A

Vu de la station A, le bus est libre : la station A émet une trame.

Vu de la station B, le bus est toujours libre : la station B émet une trame.

Les 2 trames se rencontrent : il y a collision.

Les messages sont détruits : il y a diffusion d’un message qui ne correspond à aucune des 2 trames émises à l’origine.

(8)

Si l’on considère le cas le plus défavorable, c'est-à-dire quand la collision a lieu un instant juste avant l’arrivée en ‘B’, il faudra au poste ‘A’ le temps nécessaire à un aller-retour (temps de propagation de la trame + temps de retour de propagation de la collision) pour s’apercevoir que la ligne est perturbée2 .

Les deux postes savent que la trame est détruite. Ils vont tenter une nouvelle émission, dès que le bus sera libre, en se décalant de manière aléatoire.

Ethernet est un réseau de type CSMA/CD.

• CD pour ‘Collision Detection’ ou ‘à détection de collision’. En résumé la collision est connue et subie.

Ethernet et l’embarqué

Malgré un débit élevé un réseau de type CSMA/CD ne peut pas être adapté à l’embarqué, où l’on a besoin d’un fonctionnement apparenté au ‘temps réel’, et l’on comprend pourquoi !

• Le mécanisme de détection de collision ne garantit pas l’acheminement des données dans un délai compatible avec le fonctionnement des systèmes.

D’autant plus que si le trafic est élevé, la probabilité de collision augmente.

A cause de cela, on dit d’Ethernet qu’il est probabiliste. Dans les cas critiques on peut atteindre le blocage du réseau par saturation.

• Rien n’est prévu pour gérer des priorités dans les trames émises. Alors que dans une automobile il est évident que l’on doit pouvoir rendre prioritaire certains types de message (pour des raisons de sécurité par exemple).

A cause de cela, on dit d’Ethernet qu’il n’est pas déterministe.

Gestion des collisions : l’évitement

Les réseaux VAN et CAN mettent en œuvre un processus d’évitement de collision ou, de collision non destructive (terme qui est plus approprié). Ils sont du type CSMA/CA.

• CA pour ‘Collision Avoidance’ ou ‘à évitement de collision’.

L’évitement de collision repose sur deux principes :

• La relecture du bit.

• L’arbitrage au niveau du bit.

La relecture du bit

Une station qui émet (ou écrit) un bit le relit en permanence et s’assure donc à tous moment de la cohérence entre ce qui doit être écrit et ce qui est réellement écrit.

Le principe consiste en l’écriture d’un bit d’une longueur au moins égale à la distance aller retour entre les deux stations les plus éloignées (cas le plus défavorable).

Scénario :

Etape 1 : la station A qui pose un bit sur le fil et qui ne le voit pas altéré pendant toute sa durée (le temps de l’aller et du retour), est en droit de croire qu’il n’y a pas eu de collision. Deux cas peuvent cependant se produire :

• La station A est la seule à écrire sur le bus, c’est le cas qui vient tout de suite à l’esprit.

2 Ceci est une vue simplifiée du problème, car en fait il faudrait également comptabiliser tous les délais de transmission depuis le câble jusqu’au programme gérant la transmission. Ces délais sont souvent non négligeables par rapport au temps de propagation. Voir à la fin de la présente InfoTech.

(9)

• Une ou plusieurs autres stations écrivent également sur le bus, mais elles écrivent la même chose ! Il n’y a pas de conflit. La station A ne le sait pas et se croit seule.

Etape 2 : Cette station continue d’émettre sans encombre une succession de bits.

Etape 3 : La station A pose ensuite un’1’ sur le bus. Avant la fin de l’émission de ce bit elle relit une valeur ‘0’. C’est un début de collision. Une seule solution :

• La station A cesse d’émettre, la collision est évitée. Il y a eu arbitrage au niveau de ce bit.

L’arbitrage au niveau du bit.

On appelle bit dominant un bit de valeur ‘0’3. On appelle bit récessif un bit de valeur ‘1’.

La règle est simple et a été illustrée dans l’exemple précédent. En cas de collision, une station qui émet un bit dominant, gagne l’arbitrage et peut continuer à émettre, alors que celle qui émet un bit récessif, perd l’arbitrage et cesse d’émettre. Si les séquences de bit émises sont identiques, il n’y a pas de collision et donc pas de procédure d’arbitrage.

Les avantages apportés par l’évitement de collision

Le temps d’accès au réseau

Il est évidemment réduit puisqu’en l’absence de collisions réelles, on ne risque plus l’engorgement. Cependant le temps d’accès4 n’est pas garanti pour autant puisque la règle d’accès subsiste : il faut que le réseau soit libre pour pouvoir émettre. Le

concepteur devra donc veiller à ne pas avoir un réseau trop chargé (en terme de trames/s) pour pouvoir garantir un temps d’accès raisonnable.

Détermination des priorités d’accès

On peut introduire une hiérarchie entre les stations (en cas de conflit d’accès uniquement) puisque c’est la première à poser un bit dominant qui conservera

l’accès. Il suffit alors au concepteur d’organiser le contenu des trames pour privilégier ou non certaines stations par rapport à d’autres.

Intervention à ‘la volée’

On verra, en abordant la structure des trames, qu’il va être possible à une station d’intervenir dans la trame d’une autre station pour, par exemple, fournir une réponse ou acquitter une réception. Tout cela sans perturber la trame et en appliquant

simplement le processus d’arbitrage.

Les contraintes apportées par l’évitement de collision

Elles sont inhérentes au principe même. On veut que le bit ait une longueur

supérieure à deux fois la distance séparant les 2 stations les plus éloignées. Si on veut un temps de bit court (donc un débit élevé), la longueur du bit sera faible. La contrainte se situera alors au niveau de la longueur du réseau.

Débit élevé Æ petit réseau.

Et inversement, si l’on souhaite un réseau étendu, il faudra réduire le débit.

3 Parce qu’il est évident que le court circuit (0 Volt) aura toujours une priorité sur la présence de tension.

4 Le temps d’accès est le délai entre la demande d’accès de la station (partie logicielle) et son accès effectif (écriture de la trame sur le câble).

(10)

Pour les amateurs de détails nous établirons un peu plus loin une relation réaliste entre le débit (temps de bit) et la longueur utile du réseau.

Vu à l’oscillo…

Un petit exemple, en CAN, pour illustrer ce phénomène de collision non destructive.

Soient 3 stations : Station1, Station2 et Station3. Les trames commencent par un champ d’identification, sur 11 bits, et ils ont pour valeurs respectives 65F, 67F et 659 en hexadécimal.

Il apparaît clairement, au fil des pertes d’arbitrages successives, que c’est la station dont l’identificateur possède la valeur la plus faible (décimal ou hexadécimal) qui gagne l’arbitrage. On voit donc clairement comment le constructeur peut mettre en place une stratégie de gestion des priorités au travers de la messagerie5. Attention ces règles ne s’appliquent qu’en cas de conflit.

En ce qui concerne le signal sur le bus, il est idéalisé par rapport à celui réellement visible à l’oscilloscope. En fait il s’agit du seul signal visible et l’on ne perçoit rien de l’arbitrage qui a eu lieu, ni même s’il y en a eu un !

Particularités VAN/CAN

Les principes de collisions non destructives sont strictement identiques dans les deux protocoles, que ce soit tant au niveau de la relecture du bit (durée et longueur du bit) qu’à celui de l’arbitrage (dominant/récessif).

La différence réside uniquement dans la zone réservée à l’arbitrage.

• En CAN il s’agit d’une zone qui comporte le champ d’identification plus un bit (RTR), soit 12 bits au total.

• En VAN l’arbitrage s’exerce sur tous les champs à l’exception du champ de contrôle.

5 La messagerie est déterminée par le constructeur. Elle définit la signification des données contenues dans les trames. C’est là que s’exprime le savoir-faire du constructeur en termes de pertinence des contenus mais également au niveau des périodes d’émission des messages. La période d’émission constitue également un moyen pour accorder une priorité en dehors des collisions.

65F 67F

659 6 5 9

(11)

Relation durée du bit/longueur du réseau.

La durée effective d’un bit (bit_time) dépend de plusieurs paramètres :

• La durée de transfert sur le câble, qui dépend uniquement des vitesses de propagation des supports employés. Identique pour le cuivre et la fibre optique elle est évaluée à 200 000 Km/s.

• La durée de transfert due aux délais imposés par les interfaces entre la partie applicative (le logiciel qui demande une transmission) et le câble. Ce sont des délais propres aux composants d’interfaces (de l’ordre de 50 ns).

La somme de ces deux paramètres t_câble, et t_elec constitue le temps de propagation t_prop.

Tprop = (T_elec + T_câble + T_elec) x 2 pour un aller retour

Ceci pourrait être considéré comme un temps de bit minimal, mais, pour prendre en compte les problèmes liés à l’instant d’échantillonnage et ceux liés aux corrections de dérive d’horloge, T_prop est augmenté d’un ‘tampon’ équivalent à 50% (valeur courante) de T_prop.

T_bit=1.5 x T_prop6

Une petite application…

Recherchons la longueur maximale (entre les stations les plus éloignées) que peut supporter un réseau CAN réglé à un débit de 1Mbit/s.

Le time bit est connu. Il dérive directement du débit : ns

1000 10 10

t_bit = 16 = 6s =

Le délai électronique est connu : nst_elec =50.109s =50

Le temps de propagation : ns 1.5 666

t_bit

t_prop = =

La durée de l’aller retour de transfert sur le câble : ns

466 200

666 2(t_câble)

) t_elec ( 4 t_prop _câble)

( 2

=

=

= t

6 Il ne s’agit que d’une estimation représentative des valeurs employées les plus courantes. Pour plus de précision sur la détermination du bit_time, il faut consulter l’ouvrage « Le bus CAN » de Dominique Paret chez Dunod.

Application

Interface

Driver de

ligne Driver de

ligne Application

Interface Interface

T_elec T_elec

T_câble

(12)

Soit pour un aller simple : 233ns

Avec une vitesse de propagation de 5ns/m, on trouve une distance m

5 46 L= 233 ≈

Grâce à cette relation on pourrait facilement explorer le champ Débit/Distance d’un réseau CAN.

(13)

Multiplexage 3 – Le bus VAN

Renault et PSA sont à l'origine de la création de la norme VAN. Seul PSA l'a mise en œuvre, et Citroën en premier sur la XM quelques années avant sa disparition. Ce bus a ensuite été généralisé à l'ensemble des véhicules PSA en ce qui concerne la gestion des fonctions "confort" et "carrosserie". Les liaisons inter-calculateurs étant confiées à un bus CAN dès leur apparition (bus "inter système").

Même si aujourd'hui le bus VAN va disparaître de la production chez PSA au profit d'une technologie CAN Low Speed, il n'en reste pas moins un excellent support pédagogique1 pour les réseaux embarqués.

Format de la trame

Une trame est composée de 8 champs :

· Préambule : c'est un champ fixe qui permet à toutes les stations à l'écoute de caler et de synchroniser leurs horloges. Il est composé de 10 TS (Time Slot2).

· IDEN : C'est le champ qui contient l'identificateur du destinataire de la trame.

On parle parfois d'adresse, bien que le terme ne soit pas toujours approprié. Il comporte 15 TS, soit 12 bits.

· COM : C'est le champ qui va permettre de paramétrer les échanges sur le réseau. Sa description fait l'objet d'un chapitre détaillé, plus loin. Il comporte 5TS.

· Data : C'est le champ réservé aux données à transporter, la raison d'être de la trame. Il peut comporter de 0 à 28 octets, soit de 0 à 280 TS.

· CTRL : c'est le champ contenant la séquence de contrôle qui permet de vérifier l'intégrité des données. Ce champ sera décrit dans une prochaine Infotech, orientée sur les sécurités et les stratégies associées. Il comporte 18TS mais uniquement 15 bits, ce qui est une singularité.

· EOD : C'est le champ de fin de données (End Of Data). Il est composé de 2 TS de niveaux bas.

· ACK : Ce sont 2 TS réservés au mécanisme d'acquittement qui est décrit plus loin.

· EOF : C'est le champ de fin de trame (End Of Frame), une série de 5 TS toujours à 1 et que l'on ne peut pas distinguer de l'état repos de la ligne qui suit. On ne parlera pas davantage de ce champ.

Toute la trame est soumise au processus d'arbitrage3. Le transcodage (Manchester comprimé) s'arrête après le champ CTRL.

Repérage des champs dans une trame

1 Très largement diffusé, et aisé à transférer vers d'autres normes, notamment le CAN, il reste de plus très facile à mettre en oeuvre.

2 Voir Infotech n°6

3 voir Infotech n°8

(14)

Lorsque l'on se trouve en possession d'une trame (image d'un écran d'oscilloscope par exemple) et que l'on souhaite en connaître le contenu, on se trouve confronté à 2 difficultés :

· Retrouver la durée de l'information élémentaire, le TS.

· Trouver le nombre d'octets contenu dans le champ "Data", puisque cette information n'est pas disponible dans la trame (contrairement au CAN).

Evaluation du TS.

De même que toute station appartenant au réseau, on peut se fier au premier champ "Préambule" pour déterminer la valeur du TS. Sa taille et son contenu sont immuables et il est prévu pour cela !

Tous les champs, à l'exception des champs "CTRL" et "EOD" qu'il faut associer, sont organisés en multiples de 5TS, soit 4bits utiles + 1 bit Manchester :

· Préambule = 2 x 5TS

· IDEN = 3 x 5TS

· COM = 1 x 5TS

· Data = 2 x 5TS x nombre d'octets

· CTRL + EOD = 4 x 5TS

En pratique, pour traiter notre image, il suffit de découper une languette de papier de la longueur du champ "Préambule", puis de la plier en 2 pour obtenir une longueur équivalente à 5TS. Ceci nous permet, en "promenant" cette languette tout au long de la trame, de faire des repères tous les 5TS.

On peut identifier ainsi facilement les champs "IDEN" et "COM".

Au-delà, on ne sait pas comment procéder, par manque d'information sur la longueur, voire sur l'existence de données.

(15)

Recherche du champ "Data".

A ce stade, le plus simple consiste à partir de la fin de la trame. Le champ "EOD" est immuable et facile à repérer (2 zéros consécutifs) :

· S'il n'y a pas d'acquittement, ce sont les 2 derniers "0" avant passage au repos (état 1) de la ligne ("ACK" et "EOF" sont à l'état 1 et ne sont donc pas visibles).

· S'il y a acquittement, ces 2 zéros sont suivis d'une alternance "1-0", ce qui rend le champ "ACK" visible. C'est le cas de notre exemple.

A partir de la fin du champ "EOD", il suffit d'appliquer 2 x 5TS vers le début de la trame pour déterminer la fin du champ "Data".

L'espace qui reste, s'il existe, correspond au champ "Data". Il reste à vérifier que cette zone est bien un multiple de 2 x 5TS

Ceux qui essaieront de mettre cette technique en pratique remarqueront que cet

"étalon" de 5TS ne tombe pas toujours juste, et qu'il oblige à faire de légers réajustements. C'est ce qui se passe dans la réalité. Ces opérations de re-

synchronisation ne sont rendues possibles que par la présence du bit Manchester.

Interprétation du contenu de la trame

On se comporte toujours comme une station en lecture en vérifiant que le 5ème bit de chaque paquet de 5 TS est bien codé, c'est-à-dire l'inverse du précédent. Dans le cas contraire, on détecte une erreur appelée "erreur de confinement". Une fois les

IDEN + COM = 4 x 5TS

EOD ACK

CTRL + EOD = 4 x 5TS 10TS

Fin du champ "Data"

Début du champ "Data"

IDEN + COM = 4 x 5TS 10 TS

(16)

bits Manchester repérés, on peut les éliminer et procéder à l'évaluation du contenu des champs "IDEN" et "Data".

Le champ "COM" va faire, un peu plus loin, l'objet d'une analyse particulière. Le champ "CTRL" sera décrit dans une prochaine Infotech dédiée à la sécurité et aux stratégies associées.

On remarque à la fin de la trame une singularité provoquée par le double zéro du champ "EOD". Il s'agit d'une erreur de confinement provoquée de manière volontaire pour avertir le récepteur de la fin des données. Mais comment différencier cette anomalie volontaire d'une véritable erreur de confinement ?

Si la valeur de contrôle calculée par le récepteur correspond aux 15 bits reçus précédemment (le champ "CTRL" débarrassé des bits Manchester), eh bien, il s'agit effectivement du champ "EOD", sinon il s'agit d'une erreur de confinement !

Organisation des échanges : les mécanismes utilisés

Un échange, c'est-à-dire la production d'une trame, est toujours initié par une station qui doit posséder les capacités requises. Ce doit être une station maître4 du réseau.

Cette capacité découle principalement de la nature de ses composants : la présence d'un microprocesseur est obligatoire. Il est l'initiateur de la transaction.

Le composant, maître ou esclave, qui utilise les données est le consommateur, et celui qui les met à la disposition des autres est le producteur.

Ces trois rôles, initiateur, consommateur et producteur, ne dépendent pas uniquement de la nature de la station (Maître ou Esclave) ; ils peuvent varier en fonction des circonstances.

L'initiateur d'un échange peut

· Envoyer des données vers un consommateur désigné par l'IDEN. C'est une opération d'écriture

· Demander des données à un producteur désigné par l'IDEN. C'est une opération de lecture, mais deux cas peuvent se produire :

4 Chez PSA, le bus carrosserie est un réseau maître/esclave, dont le maître est le BSI. Le réseau confort est un réseau multi-maîtres.

IDEN + COM = 4 x 5TS

EOD ACK

CTRL + EOD = 4 x 5TS 10TS

Fin du champ "Data"

Début du champ "Data"

(17)

· le producteur initiera une trame de réponse comportant les données en sa possession, dès qu'il le pourra (bus libre, etc.).

Bien sûr, cela suppose qu'il soit capable d'initier un échange (donc qu'il soit un composant maître, ou presque5...).

Il s'agit alors d'une réponse différée.

- Le producteur interrompt la trame de l'initiateur au niveau de la fin du champ "COM" et poursuit cette trame en y introduisant les champs

"Data", "CTRL", "EOD" et "ACK". En fait, l'initiateur a perdu l'arbitrage et est devenu le consommateur.

Il s'agit d'une réponse dans la trame.

La réponse dans la trame est la particularité essentielle de la norme VAN. Elle assure une maîtrise du délai de réponse. Pour un observateur extérieur (devant son oscilloscope par exemple), il ne s'est rien passé de particulier; le phénomène n'est pas ou peu décelable6.

Quelles données ? et pour Qui ?

Le fait d'adresser une requête à un composant (esclave la plupart du temps) en le désignant simplement par son IDEN déclenche en lui le réflexe de fourniture des données.

La demande ne préjuge pas de la nature ni de la valeur des données qui lui sont demandées.

En principe, l'esclave fournit toutes les données en sa possession, de 1 à quelques octets au maximum.

Organisation des échanges : l'acquittement

L'acquittement est une opération qui consiste, pour le consommateur, à valider la réception de la trame. Une fois de plus, cela ne préjuge pas de la qualité des données transmises, cela signifie simplement que le format de la trame est correct (pas d'erreur de confinement) et que le champ "CTRL" est conforme à ce qu'il doit être.

L'acquittement n'est pas obligatoire, notamment en cas de diffusion. Dans ce dernier cas, l'IDEN de la trame est accepté par plusieurs stations et l'acquittement n'a plus de sens. L'acquittement est demandé dans le champ "COM" et il a lieu dans le

5 En effet, la norme VAN prévoit qu'il soit possible de gagner l'arbitrage d'une trame sans l'avoir initiée.

Une station peut se mettre en concurrence avec un module maître, en se synchronisant sur le 1er bit du champ IDEN. Ensuite, ce n'est plus qu'un problème d'arbitrage. A priori, il ne semble pas que PSA ait utilisé cette possibilité.

6 Un exemple dont la réponse dans la trame est visible est fourni à la fin de cet article.

Préambule IDEN COM

EOD ACK

EOF

Préambule IDEN COM Data CTRL EOF

0 1

0 Data CTRL 1

0 1 0 Station A

Station B

Résultat sur le bus

Initiateur

Producteur

r

Consommateur

(18)

champ "ACK" par la mise à 0 du 2ème TS de ce champ. Là encore, il s'agit d'une intervention dans la trame. Elle est effectuée par le consommateur des données et lue immédiatement (principe de relecture du bit) par le producteur.

C'est ainsi que dans une seule trame, il peut y avoir jusqu'à 3 intervenants :

· Le début, écrit par l'initiateur,

· Ensuite, le producteur qui fournit les données et les champs suivants ;

· Enfin, le consommateur qui interrompt la trame au milieu du champ "ACK"

pour acquitter la réception.

Le consommateur et l'initiateur sont généralement identiques.

Organisation des échanges : le champ "COM"

Le champ "COM" est composé de 5 TS, soit 4 bits, et est organisé de la manière suivante :

Le premier bit est toujours à 1, il est réservé pour des extensions futures.

· RAK=0

Il n'y a pas de demande d'acquittement. Cette option est généralement réservée aux trames en mode diffusion. Une trame en mode diffusion est une trame dont le

champ "IDEN" va être reconnu par plusieurs stations. L'acquittement collectif ne présente pas d'intérêt : une station qui n'acquitterait pas passerait inaperçue du fait de la nature d'un bit récessif (bit à 1).

· RAK=1

Le consommateur devra acquitter la trame par mise à 0 du 2ème bit du champ "ACK".

Ici, il est important de bien distinguer la demande d'acquittement (RAK = Request AcKnowledge) exprimée dans le champ "COM" de l'action d'acquittement

proprement dite qui a lieu dans le champ "ACK" (ACKnowledge).

· R/W=07

7 L'expression R/W doit être interprétée comme un terme logique : "R, W barre" (RW ) ou R (Read = lire) correspond à 1 et W (Write = écrire) correspond à 0.

Intervention du consommateur Intervention du producteur

EX T = 1 R A K R / W R T R

Man'chester

4 bits

5 TS

(19)

Il s'agit d'une opération d'écriture (fourniture de données), à destination de la station repérée par le champ "IDEN". Le champ "COM" est immédiatement suivi des

données. Dans ce cas, l'initiateur est également le producteur.

· R/W=1

Il s'agit d'une opération de lecture (demande de données), en provenance de la station repérée par le champ "IDEN". En fonction de la valeur du bit RTR qui suit R/W, les données demandées suivent immédiatement le champ "COM" (cas d'une réponse dans la trame) ou non (cas d'une réponse différée).

· RTR

L'analyse de la signification de ce bit RTR (Remote Transmission Request = demande de transmission distante) ne peut pas être dissociée de la valeur du bit R/W.

Si R/W vaut 0 (opération d'écriture), le bit RTR ne joue aucun rôle puisqu'il ne concerne que les trames de requêtes (demandes de données). Dans ce cas, RTR vaut 0.

Si R/W vaut 1 et RTR vaut 1, alors l'initiateur demande au producteur de répondre dans la trame. Le producteur, qui rappelons-le, "voit" les différents bits au fur et à mesure de leur émission, prend connaissance de la demande (R/W=1).

· RTR=1 Premier scénario:

Les données qu'on lui demande sont disponibles et dès qu'il voit apparaître le bit RTR de niveau 1, il l'écrase en posant un niveau 0 (bit dominant dans le processus d'arbitrage) et poursuit en fournissant les champs "Data", "CTRL",

"EOD" et au moins le 1er bit du champ "ACK".

Un observateur extérieur (devant un oscilloscope par exemple) ne voit que le résultat de la transaction : R/W=1, RTR=0, puis le champ "Data" et les

champs suivants.

· RTR=1 Deuxième scénario:

Les données qu'on lui demande ne sont pas prêtes (pour des raisons diverses). Le bit RTR n'est pas modifié. Le producteur ne fournit pas les données.

On observe la séquence suivante : R/W=1, RTR=1, puis le champ "CTRL" et les champs suivants.

En résumé :

RAK Request AcKnowledge

0 L’acquittement n’est pas demandé.

1 L’acquittement est demandé

R/W Read/Write

1 Ecriture : transmission de données à la station désignée par le champ IDEN.

0 Lecture : demande (requête) de données à la station désignée RTR Remote Transmission Request

0 Si R/W=0, alors cela signifie qu'il n'y a pas de demande.

Si R/W=1 et que les données existent RTR a été mis à 0 par le producteur

1 R/W=1 cette demande est visible car la demande n'a pas été satisfaite : le champ "Data" est vide

Support matériel

Le support matériel le plus répandu est actuellement le cuivre. On voit apparaître, malgré les contraintes de carrosserie, des supports en fibre de verre (notamment pour des applications comme le transport du son).

(20)

Le van est composé de 2 signaux : Data et Data, son complément (attention ! appellations sans rapport avec le champ "Data").

A titre d'exemple, le signal ci-dessous est issu d'une manette Essuie-vitre/Lave-vitre de Citroën XM. Il a été émis à 62.5 KTS/s (62500 TS/s).

La base de temps est de 200µs et la sensibilité verticale de 2 Volts/carreau.

Ce signal est l'exemple type du mécanisme de réponse dans la trame. Du fait que les 2 stations (un PC équipé d'une carte VAN et la manette) ne partagent pas les mêmes potentiels de référence, on voit clairement les différents intervenants au sein d'une même trame.

En conclusion

Cette étude s'est limitée à la description et au comportement des couches physiques du réseau : le transcodage, l’acquittement et le mécanisme de réponse dans la trame sont traités par ces couches basses. L’électronique de ces couches permet d’effectuer :

• L’arbitrage

• Le timing

• Le contrôle

Les couches supérieures, qui sont les parties logicielles, interprètent le contenu des trames et forment la stratégie du constructeur. Cette stratégie s'appuie sur la

messagerie conçue par le constructeur qui permet de donner une signification au contenu des trames : le champ Iden et le champ Data

Leurs valeurs sont choisies en fonction des niveaux de priorités à accorder, des technologies mises en œuvre dans les stations (nature des composants, câblage...), des stratégies de fonctionnement et des choix commerciaux.

Data Data

Δ V

Initiateur Producteur Consommateur

(21)

Info Tech n°16

MULTIPLEXAGE 4- Le bus CAN

La société Robert BOSCH Gmbh est à l'origine de la conception du bus CAN. Le CAN est un réseau de terrain (ou réseau embarqué) qui occupe aujourd'hui une position de leader sur le marché automobile, surtout depuis que PSA a abandonné le VAN avec la sortie de la 407.

Le CAN est également très répandu dans les mondes du véhicule industriel ( « Trucks &

Buses ») et du matériel agricole.

Il existe également de nombreuses applications du CAN dans le domaine de la production industrielle soutenues et promues par différents consortiums (Can In Automation, Device Net, SDS, Can Open ...)

Dans l'automobile, on rencontre deux différentes « moutures » du CAN : le CAN HighSpeed (CAN HS) et le CAN LowSpeed (CAN LS).

Préambule : D'une manière générale, tout ce qui sera dit à propos du CAN s'appliquera indifféremment aux deux versions (HS et LS) sauf mentions. Les spécificités propres à la version LowSpeed viendront à la fin de cette Infotech.

Les principes de transcodage, d'arbitrage et d'évitement de collision ont été vus dans les Infotech n° 6 et n°8.

Format de la trame

Il existe deux formats de trame (HS uniquement) correspondant respectivement aux versions 2.0A et 2.0B du protocole. La version 2.0B utilise des identificateurs dont la taille est portée à 29 bits au lieu de 11 pour la version 2.0A

La version 2.0B accepte donc un nombre plus important d'identificateurs différents et elle est plutôt réservée aux marchés du type 'Buses & Trucks', agricoles où les messageries sont normalisées et partagées par de nombreux équipementiers. Ce n'est pas le cas dans le milieu automobile où chaque constructeur développe sa propre messagerie.

Ce document ne traitera que de la version standard : le CAN 2.0A.

Une trame CAN est composée de 8 champs.

IFS SOF Arbitrage Com Data Contrôle ACK EOD

(22)

IFS = Inter Frame Space. Champ inter-trame qui comprend un minimum de 3 bits récessifs1. Cette valeur peut être supérieure pour augmenter le temps de bus libre pour favoriser l'accès à des stations moins performantes, elle peut être également

augmentée par une station douteuse (voir plus loin le § Traitement des Erreurs) afin de la défavoriser dans son accès au bus.

SOF=Start Of Frame. Début de trame. Il est réduit à sa plus simple expression : 1 bit dominant qui peut apparaître dès la fin de l'IFS. Il sert de synchronisaton pour toutes les stations.

Arbitrage. Le champ d'arbitrage contient deux données :

l'identificateur sur 11 bits (CAN 2.0A)

le bit RTR(Remote Transmission Request)

Contrairement au VAN, l'arbitrage n'est pas effectué sur toute la trame. Il est limité aux 12 bits du champ arbitrage. Au delà de cette zone, l'évitement de collision n'est plus géré et, au cas peu probable où la collision survienne, elle devient destructive. La valeur de l'identificateur est donc stratégique dans la distribution des priorités entre les différents noeuds du réseau.

En général, l'identificateur ne sera pas assimilé à l'adresse physique d'un composant, mais plutôt à une fonction système dont la localisaion géographique (contrôle moteur, ABS, suspension...) n'est pas forcément connue. Cela permet d'instaurer des priorités au niveau des fonctions. Ceci s'accorde particulièrement bien avec le fait que le CAN est généralement organisé sur un modèle multi-maître par opposition au VAN qui était le plus souvent dans un schéma maître-esclave (ou question-réponse), ce qui induit davantage la notion de localisation physique du composant.

Si le bit RTR est dominant, alors il s'agit d'une trame de données et le champ Data existe.

Dans le cas contraire, il s'agit d'une trame de requête et le champ Data est inexistant. A même identificateur, la priorité sera naturellement accordée à la trame de données.

Contrairement au VAN, le bit RTR ne met pas en oeuvre de mécanisme de réponse dans la trame. Cette possibilité est inexistante en CAN.

Com. Ici aussi, bien que portant le même nom, ce champ n'a pas la même fonction que dans le VAN. Il ne participe pas à la gestion des échanges. Il comporte 6 bits dont les 2 premiers ne sont pas utilisés (toujours récessifs) en CAN 2.0A. Les 4 suivants représentent le DLC (Data Length Code) : nombre d'octets présents dans le champ Data.

Data. Champ de données limité à 8 octets. Remarque : le DLC est codé sur 4 bits qui autorisent 16 combinaisons [0,15] alors que 3 bits suffisent à coder 8 combinaisons [0,7]. Or les valeurs du DLC vont de 1 = 0001(2) à 8 =1000(2). Attention donc aux combinaisons supérieures à 1000(2) qui ne sont pas valides.

Contrôle. Le champ de contrôle est composé de 2 données :

le CRC

le délimiteur de CRC (1 bit récessif)

Le CRC (Contrôle de Redondance Cyclique) est en fait le reste de la division d'un polynôme binaire par un autre polynôme appellé générateur polynômial. Ce générateur est un polynôme de degré 15 qui a été choisi pour sa qualité puisque la probabilité de ne pas détecter 6 bits erronés serait de 2-15. Le générateur est connu de tous les noeuds du

1 Voir l'infotech n°8 page 4

(23)

réseau. Le polynôme à diviser,P(X), est de degré variable puisqu'il est composé de la suite des champs Arbitrage, Com et Data.

Le générateur G(X) : X15+X14+X10+X8+X7+X4+X3+1 soit : 1100010110011001(2)

ACK=ACKnowledge. C'est le champ d'acquittement et il est composé de 2 bits :

le bit d'acquittement proprement dit 1 : Non acquité

0 : Acquité

un délimiteur d'acquittement (1 bit récessif)

Contrairement au VAN, l'acquittement est obligatoire et tous les noeuds du réseau, qu'ils soient ou non destinataires du message, doivent acquitter la trame.

Un noeud, ou station, qui détecte une erreur (sur le CRC par ex.) n'acquittera pas la trame et déclenchera un mécanisme de traitement d'erreur qui conduit à la destruction de la trame.

Plusieurs remarques s'imposent immédiatement :

Si une station acquitte la trame, un bit ACK dominant est posé. Toute autre station qui serait en désaccord avec ce jugement ne peut en aucun cas forcer ce bit à 1 (impossibilité électrique), donc elle détruit la trame (en produisant une trame d'erreur)!

La présence d'un acquittement ne permet pas d'affirmer que le destinataire a bien reçu la trame car il peut être temporairement déconnecté du réseau (voir plus loin traitement des erreurs). Il se peut même qu'aucun noeud ne soit concerné par le message. L'acquittement est simplement la preuve que la trame qui circule est valide, et qu'au moins un noeud a validé cette structure physique.

Il ne s'agit plus d'une relation point à point (maître-esclave) comme pour le VAN, il faudra donc trouver une autre forme d'acquittement si l'on veut s'assurer que le destinataire a bien reçu le message et qu'il l'a compris.

EOD=End Of Data. C'est le délimiteur de fin de données. Il est composé de 7 bits récessifs.

Caractéristiques physiques

Les signaux

Bien que le support puisse être varié (fibre optique, monofilaire, modulation de fréquence, courant porteur, etc...), c'est le mode bifilaire sur paire torsadée qui a été retenu par l'industrie automobile. La trace d'oscilloscope ci-dessous met en évidence les caractéristiques électriques des signaux :

(24)

L'information est véhiculée sur deux lignes (CAN H et CAN L) symétriques autour d'une référence à 2.5 Volts. Les niveaux récessifs/dominants sont lus sur CAN L (la trace rouge). Les deux signaux vus ensemble permettent l'interprétation suivante :

un ventre = bit dominant

un noeud = bit récessif.

Les débits autorisés vont jusqu'à 1Mbit/s. On trouve couramment des valeurs de 250 Kbit/s et depuis peu des débits de 500 Kbit/s. Ces débits ont une répercussion évidente sur la longueur maximale du réseau2

Deux éléments ont une incidence directe sur la qualité du signal (réduction des perturbations émises et reçues) :

la lecture en mode différentiel : permet de s'affranchir de l'altération du signal par la superposition d'un parasite. Le même parasite apparaît nécessairement sur les deux lignes à la fois car elles se situent dans le même environnement. C'est la différence des signaux qui est prise en compte, donc le résultat n'est pas altéré.

les changements de niveau du signal sont des sources d'émissions électro magnétiques. Plus le changement de niveau (dominant vers récessif et

2 Infotech n°8 page 6

(25)

réciproquement) est rapide, plus la dissipation énergétique est importante. Chaque constructeur détermine les temps de montée et de descente en fonction des performances de CEM (Compatibilité Electro Magnétique) souhaitées. Du fait de la lecture en mode différentiel, les pentes introduites doivent être parfaitement symétriques. Valeurs courantes de t : de 20 à 80 ns.

l'utilisation de paires torsadées permet de s'affranchir des émissions du câble en inversant à chaque torsade les vecteurs induction produits, ce qui les annule deux à deux. Elle permet également de réduire les perturbations extérieures en annulant par opposition les courants induits dans chaque boucle par un champ perturbateur.

Des résistances de terminaison (typiquement 120 Ω) sont nécessaires pour éviter les 'rebonds'3 du signal en fin de câble

La topologie

Elle peut être qualifiée de 'rigide'. En effet, il faut respecter des dérivations très courtes sur le réseau (< 1m) sous peine de perturbations sévères (Attention aux branchements

d'appareils supplémentaires : mesure ou autres ...). Le minimum entre deux noeuds consécutifs doit être de 10cm. Certains appareils intègrent le raccordement au réseau et les résistances de terminaison pour ceux qui sont en extrémité.

Analyse d'une trame

La trame précédente, relevée à l'oscilloscope, a été émise à une vitesse de 250 Kbit/s, ce qui donne un temps de bit de 4μs. On isole le signal CAN Low qui donne une

représentation conforme des bits dominants et récessifs.

La première opération consiste à repérer, puis supprimer, les bits de 'stuff'4 (en gris sur la figure ci-dessous).

3 Voir « Bibliographie et ressources » à la fin de cette Infotech 4 Infotech n°6 page 4

(26)

On procède ensuite à l'identification des champs et à l'interprétation de leurs valeurs en hexadécimal.

Détermination du CRC

C'est une opération qui est plus aisée qu'en VAN, bien que fastidieuse. Il faut tout d'abord déterminer P(X). Il est composé des champs Identificateur, RTR, Com et Data mis bout à bout. Le bit de start (SOF) n'est pas pris dans le polynôme. On obtient ceci :

100011100000000011010101011111111100000000

On rajoute ensuite autant de 0 que le degré de G(X), donc 15. En fait, c'est comme si l'on rajoutait un CRC de valeur initiale à 0. On ajoutera ensuite le reste de la division à P(X) pour simplifier l'opération de décodage effectuée à la réception. En effet, si on divise P(X) +Reste par G(X), le reste vaudra 0, ce qui sera un indicateur commode de

validation.Dans ce type d'opération, on ne prend pas en compte la valeur du quotient.

Il faut ensuite 'poser' la division.

Au premier groupe de 15 bits rencontré (identificateur + RTR + 1 partie de Com (0000)) il faut soustraire G(X). C'est une soustraction qui ne propage pas les retenues. Donc :

0-0=0 1-0=1

0-1=1 avec une retenue de 1 sur le bit suivant, non prise en compte 1-1=0 avec une retenue de 1 sur le bit suivant, non prise en compte On remarque qu'il s'agit en fait d'appliquer un OU Exclusif entre les deux valeurs à soustraire.

Détails des opérations :

(27)

Polynôme P(X) - Générateur G(X)

=Reste partiel - Générateur G(X)

=Reste partiel etc...

CRC final, à comparer avec les valeurs trouvées sur l'image de la trame mesurée.

Traitement des erreurs

Les types d'erreurs rencontrées

L'erreur de bit : le bit relu n'est pas le bit posé sur le bus, sauf pendant le champ d'arbitrage et le champ d'acquittement lorsqu'un bit dominant est relu à la place d'un bit récessif (c'est peut-être une perte d'arbitrage). Dans la même catégorie, on trouve l'erreur de bit stuffing. On verra un plus loin que cela peut être une action volontaire.

L'erreur de CRC ou d'ACK. Le champ CRC n'est pas conforme à ce qu'il devrait être.

Un émetteur ne lit pas de bit dominant pour l'acquittement.

Viol de structure de trame, au niveau des différents délimiteurs (absence ou mauvaise valeur), au niveau des espaces inter-trame.

Dans tous les cas, ces évènements débouchent sur la production d'une trame d'erreur.

Les compteurs d'erreurs

Chaque noeud possède deux compteurs, un en réception (TEC : Transmission Error Counter) et un en émission (REC : Reception Error Counter).

Bits 'descendus' de P(X)

(28)

Lorsqu'un récepteur détecte une erreur, son REC est augmenté de 1.

Lorsqu'un transmetteur envoie une trame d'erreur, son TEC est augmenté de 8.

Après une transmission réussie, le TEC est diminué de 1.

Après une réception réussie, le REC est diminué de 1.

On note que l'erreur est davantage pénalisée que la réussite.

En fonction de la valeur de ces compteurs, on pourra minimiser l'influence d'un noeud, voire le déconnecter du réseau en fonction de son niveau de perturbation. Ce sont les règles de confinement.

Les règles de confinement

Elles sont dictées par les valeurs atteintes par les compteurs et définissent les trois modes qu'un noeud peut atteindre.

Lorsque les deux compteurs sont inférieurs à 128, les noeuds sont dits 'Error Active'. Ils sont en bonne santé et aptes à générer des trames 'erreur active'.

Entre 127 et 255 les noeuds sont en mode 'Error passiv'. Le niveau de confiance accordé est faible. Ils ne peuvent générer que des trames 'erreur passive'.

Arrivé à la valeur 255, le noeud est

déconnecté du bus. Il est 'Bus off'. Il reste dans cet état jusqu'à ce que sa partie

applicative (le programme qui gère ce noeud) décide de le remettre en service. Cette remise en service n'est pas immédiate. Il doit être capable de compter 128 zones de 11 bits récessifs (essentiellement des espaces inter- trames) avant d'être déclaré 'apte'. Dans ce cas ses compteurs sont remis à zéro.

Les trames d'erreurs

La trame d'erreur active est composée de 2 champs

le drapeau d'erreur ou erreur flag, 6 bits dominants

Le délimiteur d'erreur, 8 bits récessifs

Ces 6 bits dominants consécutifs constituent une violation flagrante du bit stuffing. Cette erreur est détectée par les autres stations qui génèrent d'autres trames d'erreur. C'est un phénomène de destruction en série des trames. Le protocole CAN limite cette 'avalanche' à 12 bits dominants dans le champ erreur flag.

(29)

La trame d'erreur passive est également composée de 2 champs

le drapeau d'erreur ou erreur flag, 6 bits récessifs

Le délimiteur d'erreur, 8 bits récessifs

La présence de bits récessifs dans l'erreur flag change le comportement des participants.

On peut l'interpréter de la manière suivante : le noeud 'douteux' est obligé d'attendre au moins 14 bits récessifs consécutifs avant de tenter une ré-émission de son message. Il a de fortes chances de perdre l'arbitrage de bus pendant cet intervale au profit d'un autre noeud. C'est une perte de confiance qui se traduit par une perte de priorité.

Les principales caractéristiques du CAN LowSpeed

Les principales différences

Comme son nom l'indique clairement, il s'agit d'une version basse vitesse du CAN. Son intérêt principal réside évidemment ailleurs. Là où le CAN HighSpeed n'a aucune

tolérance à la panne (toute coupure d'une ligne ou tout court-circuit met le réseau hors d'usage), le CAN LowSpeed est un système à tolérance de panne (Fault Tolerant). Ces caractéristiques le rapprochent du VAN.

Comme le VAN, il possède en plus des modes de veille et de réveil qui font également défaut à la version HighSpeed du CAN. Ces modes permettent de réduire sa

consommation en période d'inactivité (15μA env) et le rendent apte (du point de vue de PSA) à une utilisation sur des bus Confort ou Carrosserie en remplacement du VAN. La capacité du champ Data reste limitée à 8 octets, ce qui peut paraître faible pour de telles applications. La solution semble être dans la segmentation des messages en plusieurs trames. C'est quelque chose d'assez similaire à ce qui se passe sur un réseau local (Ethernet) où de grosses quantités de données sont réparties sur plusieurs trames.

Les débits vont de 40 à 125 Kbits/s La topologie est moins

restrictive, la distribution en étoile est possible sans les contraintes de longueurs de connexion de la version HighSpeed.

Les valeurs des résistances de terminaison sont moins

critiques (aux alentours de 2KΩ).

Les signaux Voir ci-contre :

(30)

Bibliographie et ressources

Pour terminer cette série sur les réseaux embarqués dans les automobiles, quelques références qui m'ont été précieuses :

En librairie :

Le Bus VAN de Joël Malville et Bruno Abou chez Dunod

Le Bus CAN de Dominique Paret chez Dunod (apparemment indisponible).

Pour le matériel qui permet de dialoguer avec les systèmes :

La société NSI Parc des Glaisins

6 avenue du pré de Challes BP 350

74943 Annecy le vieux Cedex

fournit tout le matériel nécessaire à la mise en oeuvre des bus CAN et VAN, que ce soit sur véhicules ou pour monter des TP. Ils distribuent également le 'CanAlyzer' un produit d'analyse et d'expérimentation très sophistiqué du constructeur allemand Vektor.

La sociéte Exxotest Z.A Les Marais 74410 Saint Jorioz

fournit également tout le matériel nécessaire à la mise en oeuvre des bus CAN et VAN.

Cette société fournit également des produits didactiques sur ces supports.

ATTENTION, dans tous les cas, l'utilisateur final doit se procurer les messageries constructeur pour pouvoir utiliser pleinement ces produits sur des véhicules. Cette acquisition n'est pas possible à ma connaissance. Toutefois, en effectuant quelques mesures, on peut assez facilement faire des corrélations entre les valeurs lues sur les trames et certains paramètres moteur faciles à faire évoluer (comme un régime moteur, une vitesse véhicule ou une température) ou d'autres paramètres disponibles sur les outils de diagnostic du constructeur (comme le couple moteur ou l'état de certains récepteurs).

Sur le Web :

http://www.ta-formation.com/cours-lignes/ligne-reflexion/reflexion.htm pour quelques explications très visuelles sur les rebonds de signaux.

http://www.dunod.com pour les livres.

http://www.nsi.fr pour la société NSI.

http://www.annecy-elec.fr pour la sociéte Exxotest.

http://www.can-cia.org/ le site de Can in Automation.

Pour plus d'informations sur les CRC : http://docs.sylvain-nahas.com/crc.html

http://www.cours-info.net/?page=cours&type=2&stype=0&article=7 Quelques travaux personnels très intéressants :

http://www.oberle.org/can-can.html#1363

http://www.enseirb.fr/~kadionik/formation/canbus/canbus.html#_Toc425501292 http://www.geea.org/article.php3?id_article=183&men=rub

Références

Documents relatifs

ƒ maintenir ou restaurer les liaisons favorables à la diffusion des espèces = créer / recréer un réseau d’espaces naturels ou semi-naturel continu : la trame verte et la trame

- Placer ce tableau en réseau avec d’autres images qui peuvent y être associées (même artiste, même sujet, similarité dans les techniques, les couleurs, la disposition, le nombre

- Construire des collections avec plus d’objets ou (et) moins d’objets qu’une collection de x objets ( ex : je veux plus de jetons que de pattes de girafe / je veux moins de

Les espèces présentes sur la liste de cohérence nationale ne sont pas dé- terminées pour l’ensemble du terri- toire national ou pour l’ensemble de leur aire de répartition,

Après avoir analysé, dans une première partie, les problèmes rencontrés/pouvant être rencontrés par mes élèves lors de ma situation de référence et les objectifs

- S’accompagner avec la voix, un objet sonore … - Intégrer dans sa danse un objet qui modifiera le rapport au temps (plume, ballon de baudruche, tissus léger…). LES AUTRES -

L'OBSERVATION : Pour aider le maître à repérer les indices pertinents de progrès, l'observation s'exercera dans 3 secteurs : moteur, affectif et social, cognitif.. Comportement

Différentes positions de la tête : redressée, alignée avec l’axe du corps, à la surface, sous l’eau. Différentes orientations du regard : vers le fond, vers le plafond, vers