République Algérienne Démocratique et Populaire Ministère Ministèr e de l’Enseignement Supérieur et de la Recherche Scientifique Ecole Nationale Supérieure Sup érieure de Technologie Département Dép artement Génie Electrique et Informatique et Informatique Industrielle
Abdelmalek ek BELLOULA Responsable du cours : Mr. Abdelmal Pour toute remarque ou question relative relative au cours E-mail :
[email protected]
Année Année scolaire scolair e 2017-20 201 7-2018 18
MULTIPLEXAGE
Au terme de cet enseignement, les étudiants disposeront des connaissances nécessaires pour le développement d'applications et la gestion en exploitation du bus CAN. Cela passe par une compréhension des principes de base du mul multiplexage, tiplexage, des différentes couches du protocole pr otocole CAN, les mécanismes de détection et de gestion des erreurs et les dispositifs d’échanges de données.
Ce document et accompagné de la présentation du cours au format PowerPoint.
Les bases de l’électronique analogique et de l’électronique numérique. La maîtrise du domaine lié aux capteurs et des techniques de conversion
MULTIPLEXAGE
1 Principe du multiplexage 2-2 Multiplexage dans l’industrie de l’automobile 3-1 Modes d'exploitation d'une voie de transmission 3-2 Transmission série et parallèle 3-3 Transmission synchrone et asynchrone 4-1 Vocabulaire et règles de fonctionnement 4-2 Principe de fonctionnement 4-3 Niveaux de tension 4-4 Résistances de terminaison 4-5 Le CAN dans le modèle ISO/OSI 4-6 Formats des trames 4-7 Bit-stuffing 4-8 Synchronisation des horloges 4-9 Notion d’arbitrage 4-10 Longueur du bus et débit 4-11 Notion de Nominal Bit Time 4-12 Le Time Quantum 4-13 Détection et gestion des erreurs 4-14 Support de transmission
MULTIPLEXAGE
Jusqu’aux années 1960, la radio constituait le seul élément électronique notoire à bord d’une automobile.
Toutes les autres fonctions étaient entièrement mécaniques ou électriques, comme le démarreur et le système de charge de la batterie. Il n’existait n’exist ait aucun « sy stème de sécurité intelligent ». Le conducteur ou d’autres systèmes de contrôle mécaniques contrôlaient tous les systèmes du moteur. Par exemple, avant l’avènement des capteurs et des microcontrôleurs, la sélection de la bougie spécifique à allumer après compression du mélange air-carburant s’effectuait par un distributeur m écanique. Le calage de l’allumage constituait la variable de contrôle.
En ce qui concerne le rendement du carburant, la commande mécanique du processus de combustion n’était pas optimale. La modélisation du processus de combustion a montré que, pour accroître l’efficacité
énergétique, il existe un moment optimal où enflammer le carburant. Le calage dépend de la charge, de la vitesse et d’autres grandeurs mesurables. Le système d’allumage électronique a été l’un des premiers systèmes mécatroniques à arriver dans l’automobile à la fin des années 1970. Les applications qui ont suivi ont complètement éliminé le distributeur. Elles contrôlaient directement l’allumage grâce à un microprocesseur. Le système d’ antiblocage des roues (ABS) a également été introduit dans les voitures à la fin des années 1970. L’ABS fonctionne par détection du blocage de l’une des roues, puis par modulation de la pression
hydraulique selon les besoins pour réduire ou supprimer suppr imer le patinage. Le système de contrôle de traction (TCS) est rentré dans les automobiles au milieu des années 1990. Ce processus garantit que le véhicule accélère au maximum dans des conditions données de chaussée et de véhicule. L’installation du système de contrôle de la dynamique des véhicules (VDC) dans les automobiles s’est
produite à la fin des années 1990. Le VDC fonctionne comme le TCS et comprend en outre un capteur de vitesse angulaire de lacet et un accéléromètre latéral. La position du volant détermine l’intention du conducteur qui est
comparée à la direction effective du déplacement. Le système TCS est alors activé pour contrôler la puissance appliquée aux roues et la vitesse du véhicule ainsi que pour réduire au minimum l’écart entre les directions du
volant et du déplacement du véhicule. L’électronique est devenue une composante à part entière de l'industrie automobile, les voitures sont de plus en plus sûres grâce à des équipements de sécurité qui mettent en œuvre des systèmes embarqués tels que l’ABS ou l’ESP. Le confort des occupants s’est lui aussi c onsidérablement amélioré. Dans les garages aussi l’électronique est utile : en branchant un ordinateur, le mécanicien peut directement savoir d’où vient le
problème mécanique Les systèmes électroniques ont fait leur apparition dans le domaine de l'automobile, selon trois grandes étapes successives : Etape 1 : Chaque système était totalement indépendant des autres ; Etape 2 : Début : Début 1980, quelques systèmes commençaient à communiquer entre eux ; Etape 2 : Tous les systèmes communiquent entre eux et en temps réel. Les spécialistes de l’industrie automobile estiment que l’électronique devrait représenter 50 % de la valeur ajoutée d’une voiture d’ici à 2020 (contre 30 % actuellement. L’électronique est entrée de façon marquante dans l’automobile dans le but d’aug menter les performances de systèmes initialement mécaniques. Pour mettre en œuvre les différents systèmes de contrôle on utilise, en général des microcontrôleurs 8, 16
ou 32 bits. Le processeur 32 bits est utilisé pour la gestion du moteur, le contrôle de la transmission et des airbags; le processeur 16 bits sert à gérer l’ABS, le TCS, le VDC, le groupe d’instrumentation e t les systèmes de climatisation; le processeur 8 bits est employé pour le siège, le réglage des rétroviseurs et les systèmes de levage des vitres.
MULTIPLEXAGE
Aujourd’hui, une voiture comprend environ 30 à 60 microcontrôleurs. Ce chiffre devrait augmenter avec la
tendance au développement de sous-systèmes mécatroniques plug-and-play modulaires. La complexité de ces systèmes et la nécessité d’échanger des données entre eux signifient de plus en plus
de câbles. A côté du coût très important de ce câblage, la place qui lui est nécessaire pouvait le rendre tout simplement impossible à installer. Enfin, le nombre croissant de connexions et de câbles posait de sérieux problèmes de fiabilité et de réparation. Dès qu'un système (voiture, avion, réseau téléphonique...) atteint un certain niveau de complexité, l'approche point-à-point devient impossible du fait de l'immense quantité de câblage à installer et de son coût (en masse, matériaux, main d'œuvre, maintenance) figure 1(a). Deux réponses techniques pour limiter « l’inflation » des composants et du volume des câblages : L’intégration : regrouper plusieurs fonctions dans un seul boîtier (ex : gestion moteur et Boîtier de
Servitude Intelligent de PSA) Gestion moteur : injection, allumage, dépollution, refroidissement moteur BSI : fermeture centralisée des portes, alarme, éclairage intérieur, anti-démarrage, essuyage des vitres, gestion des clignotants, … ESP ( contrôle dynamique du véhicule) : ABS, REF, MSR, ASR, ESP Le multiplexage : faire circuler une multitude d’informations entre divers calculateurs sur un seul canal de transmission appelé le bus (2 fils) qui communiqueront donc à tour de rôle. Cette technique élimine le besoin de câbler des lignes dédiées pour chaque information à faire transiter (connexion point-à-point).
Le multiplexage est une technique qui consiste à faire passer plusieures informations à travers un seul support de transmission. Elle permet de partager une même ressource entre plusieurs utilisateurs.
Il existe deux techniques principales de multiplexage : Temporelle ; Fréquentielle.
MULTIPLEXAGE
Le multiplexage fréquentiel, appelé aussi MRF (Multiplexage par répartition de fréquence ou en anglais FDM, Frequency Division Multiplexing) permet de partager la bande de fréquence disponible sur la voie haute vitesse en une série de canaux de plus faible largeur afin de faire circuler en permanence sur la voie haute vitess e les signaux provenant des différentes voies basse vitesse.
Ce procédé est notamment utilisé sur les lignes téléphoniques et les liaisons physiques en paires torsadées afin d'en accroître le débit. Le système téléphonique utilise le principe prin cipe du multiplexage en fréquence pour transmettre simultanément plusieurs signaux. Une hiérarchie FDM téléphonique a été définie dans laquelle la technique de modulation utilisée est la BLU (Bande Latérale Unique) pour p our transmettre jusqu'à 600 voies téléphoniques multiplexées mult iplexées sur les supports comme des fils torsadés ou des câbles coaxiaux, et jusqu'à 1800 canaux sur un lien micro-onde.
Plus moderne et mieux adaptée à la transmission numérique, cette technique permet de transmettre à grande vitesse plusieurs signaux numériques en série sur un seul canal de transmission. Le multiplexage temporel, appelé aussi MRT (Multiplexage par répartition dans le temps ou en anglais TDM, Time Division Multiplexing) permet d'échantillonner les signaux des différentes voies basse vitesse et de les transmettre successivement sur la voie haute vitesse en leur allouant la totalité de la bande passante, et ce, même si celles-ci ne possèdent pas de données à émettre.
MULTIPLEXAGE
L’adoption quasi universelle du multiplexage dans l’industrie de l’automobile a forcé les manufacturiers à
utiliser des bus de communication de plus en plus sophistiqués en termes de robustesse et de rapidité. Afin de répondre à ces besoins, plusieurs protocoles et bus ont été conçus. Qu’il s’agisse des bus Bytefl ight, Flexray, MOST, SCP, ou CAN (sous toutes ses formes), pour ne nommer que ceux-ci, ils ont tous la même fonction: faire circuler de l’information rapidement et de façon fiable. C’est ainsi qu’en 1983, La société Robert Bosch GmbH (Allemagne), un import ant équipementier
automobile Robert a pris la décision de développer en collaboration avec l'Université l'Université de Karlsruhe un protocole de communication CAN (Controller Area Network) orienté vers des systèmes distribués fonctionnant en temps réel et satisfaisant à toutes ses propres exigences. Le bus CAN est pensé et réalisé pour répondre à des impératifs de robustesse, de fiabilité, de simplicité et d’économie liés aux productions de masse de l’industrie automobile, La société Robert Bosch a défini le protocole
et a autorisé de nombreux autres fabricants à développer des composants compatibles, comme Intel comme Intel en 1985, en 1985, puis Philips et Siemens. Enfin, au milieu de l'année 1987, la réalité prit la forme des premiers siliciums fonctionnels, puis, en 1991, une première voiture (allemande) haut de gamme équipée de cinq Electronic Central Units (ECU) et d'un bus CAN fonctionnant à 500 kb/s sortit des chaînes de production. En 1992 plusieurs plus ieurs entreprises se sont réunies pour p our créer le CAN in Automation, une association qui a pour but de promouvoir le bus CAN. Sur un véhicule multiplexé figure 4(b), un système de contrôle fournit l’information sur le réseau multiplexé aux différents calculateurs qui en ont besoin, Moins de liaisons filaires toutes les informations des différents capteurs sont fournies sur le réseau multiplexé sur 1 paire de fils croisés que l’on appelle le Bus et tous les calculateurs ont accès aux informations dont ils ont besoin. Avec le multiplexage les l es constructeurs ont pu réduire la quantité de câble sur la voiture, tout en proposant toujours plus de fonction au véhicule.
Image : http://www.forum-audi.com/topic-821-bus-can-controller-area-network-partie-1.html
Le bus CAN fut d'abord utilisé dans le secteur de l'automobile, l'automobile, mais mais il est actuellement utilisé dans la plupart pl upart des industries des industries comme l'aéronautique l'aéronautique via des protocoles standardisés.
MULTIPLEXAGE
On désigne par BUS un conducteur servant de canal de transmission commun entre plusieurs circuits qui peuvent s'y connecter à la demande, soit en tant qu'émetteurs, soit en tant que récepteur ou les deux. Dans le cas ou plusieurs organes communiquent, il faudra gérer (avec des règles) cette communication. En plus d’avoir une architecture et une connectique particulière, il est nécessaire d’y associer un protocole d’échange.
Un bus est souvent caractérisé par une fréquence et le nombre de bits d'informations qu'il peut transmettre simultanément. Lorsqu'un bus peut transmettre plus d'un bit d'information simultanément on parlera d'un bus parallèle, sinon d'un bus série. La fréquence donnée est tantôt la fréquence du signal électrique sur le bus, tantôt la cadence de transmission des informations, qui peut être un multiple de la fréquence du signal. Les technologies utilisées pour fabriquer les bus sont variées, conducteurs électriques gravés sur un circuit imprimé, câble, fibre câble, fibre optique etc On désigne par BUS un conducteur servant de canal de transmission commun entre plusieurs circuits qui peuvent s'y connecter à la demande, soit en tant qu'émetteurs, soit en tant que récepteur ou les deux. Dans le cas ou plusieurs organes communiquent, il faudra gérer (avec des règles) cette communication. En plus d’avoir une architecture et une connectique particulière, il est nécessaire d’y associer un protocole d’échange.
Un BUS est constitué de plusieurs lignes : ligne de données : liaison souvent bidirectionnelle qui assure le transfert des informations entre un élément et un autre. ligne d’adresses : liaison, qui peut être bidirectionnelle dans certains cas, qui permet la sélection des
informations à traiter dans un emplacement mémoire. lignes de commandes : liaison pour assurer la synchronisation des flux d’informations sur les bus de données et d’adresses. Les signaux de commandes que l’on peut rencontrer sont l’horloge (« clock »), les signaux de demandes d’interruption et d’accord (« acknowledge »), les signaux d’arbitrage des échanges,
le contrôle des échanges (read/write, type de transfert, types des données, etc...). Pour une transmission donnée sur une voie de communication entre deux machines, la communication peut s'effectuer de différentes manières. La transmission est caractérisée par : le mode d'exploitation d'une voie de transmission, qui définit le sens des échanges, (simplex, half-duplex et full-duplex) le mode de transmission : il s'agit du nombre de bits envoyés simultanément (série ou parallèle) la synchronisation : il s'agit de la synchronisation entre émetteur et récepteur
Selon le sens des échanges, on distingue 3 modes de transmission, (simplex, half-duplex et full-duplex) figure 5 : Caractérise une liaison dans laquelle le sens de circulation des données est unilatéral, c'est-à-dire de l'émetteur vers le récepteur. Caractérise une liaison bidirectionnelle dans dan s laquelle les données circulent dans un sens ou l'autre, mais pas les deux simultanément. Ainsi, le temps d’utilisation du support de communication est partagé entre les deux extrémités c’est -à-dire que chaque extrémité de la liaison émet pendant que l’autre écoute.
Caractérise une liaison dans laquelle les données circulent de façon bidirectionnelle et simultanément. Ainsi, chaque extrémité de la ligne peut émettre et recevoir en même temps.
MULTIPLEXAGE
Le mode de transmission désigne le nombre d'unités élémentaires d’informations (bits) pouvant être
simultanément transmises par le canal de communication.
On désigne par liaison parallèle la transmission simultanée de N bits. Ces bits sont envoyés simultanément sur N voies différentes (une voie étant par exemple un fil, un câble ou tout aut re support physique). La figure xx(a) représente un exemple de liaison parallèle, généralement disponible sur l’ordinateur de bureau.
La transmission parallèle autorise une grande vitesse de transmission (débit) au détriment d’un Un coût
élevé (nombre de conducteurs) et une distance franchissable limitée réservent la transmission parallèle aux liaisons de processeur à processeur ou d’hôte à hôte.
Dans une transmission parallèle les voies peuvent être :
- Des lignes physiques : chaque bit est envoyé sur une ligne physique (c'est la raison pour laquelle les câbles parallèles sont composés de plusieurs fils en nappe) figure 6. - Une même ligne physique ou chaque bit est transmis sur une fréquence différente...
MULTIPLEXAGE
Dans une liaison série, les données sont s ont envoyées bit par bit sur la voie de transmission. La f igure xx montre l’exemple d’une liaison série reliant un Ordinateur à un périphérique externe disposant du même type de liaison.
L’utilisation du mode série suppose l’utilisation de circuits et composants spécialisés assurant la
sérialisation des données (conversion parallèle/série) et désérialiser à la réception (conversion série/parallèle), la plupart du temps une puce type UART, Universal Asynchronous ReceiverT ransmitte.
En transmission série, tous les bits d’un mot ou d’un message sont transmis successivement sur une même
ligne. A la réception, le récepteur doit être capable de se positionner correctement pour la lecture des bits, pour cela il est nécessaire d’implémenter des mécanismes qui permettent au récepteur de faire la distinction entre chaque bit reçu, ou plus générale les séquences de bits. Cette opération de synchronisation peut être faite de deux manière, selon que l’en utilise ou pas un signal de référence ou plus précisaient une horloge de synchronisation : Dans le premier mode la transmission est dite , c’est -à-dire que l’émetteur et le récepteur sont calé sur le même signal horloge, dans le deuxième cas la transmission est dite , ce qui suppose que la synchronisation se fera sur la base d’autre m écanisme que nous détaillerons ci-après.
Cette première méthode consiste à transmettre transme ttre les bits par groupes, appelés caractères, de 5 à 8 ou 9 bits, ce qui permet au récepteur de se synchroniser au début de chaque caractère, une première synchronisation est réalisée à l’aide d’une séquence de bits contenant un grand nombre de transitions (synchro nisation bit). Les caractères sont délimités par un bit, dit bit de Start de valeur binaire 0, et un ou plusieurs bits, dits bits de Stop. Le ou les bits de stop correspondent à un temps minimal de repos du système entre l’émission ou la réception de
deux caractères successifs (période de discernement).
MULTIPLEXAGE
L'intervalle de temps qui sépare l'envoi de chaque mot est aléatoire et dépend de l'émetteur figure 8. Quand aucun caractère n'est transmis, la ligne est en état d'attente. Cet état est représenté par un signal continu de valeur 1, c'est-à-dire une tension négative. Start
D7..D0
Stop
Nb constant de bits Espace fixe entre bits
Start
D7..D0
Stop
Nb constant de bits Espace fixe entre bits
..…
Start
D7..D0
Stop
Nb constant de bits Espace fixe entre bits
Start
D7..D0
Stop
Nb constant de bits Espace fixe entre bits
Des bits supplémentaires peuvent être insérées afin de garantir l'absence d'erreurs lors de la transmission comme l’ajout d’un bit, dit de parité, positionné par l'émetteur, ce bit est à 1 si le nombre total de valeurs binaires
1 présentes dans le caractère (et y compris le bit de parité lui-même) est paire . Une autre convention positionne ce bit si le même nombre total est impaire. On distingue alors la parité paire et la parité impaire. Dans une liaison asynchrone, la communication peut avoir lieu dans chaque sens, c'est-à-dire en mode fullduplex. La ligne des données véhicule des informations binaires à une cadence prédéfinie appelée vitesse de transmission. Le récepteur utilise une horloge de même période qu’il synchronise en utilisant le front descendant
du bit Start. Pour pallier un léger décalage des périodes, le récepteur effectue chaque lecture au milieu du bit reçu (ce qui nécessite un décalage d’une demi -période après le front descendant du Start).
Parmi les avantages des liaisons séries, citons les plus importants :
- le nombre réduits de fils de liaison. Dans le cas le plus simple, la liaison nécessite trois 3 fils (Tx, Rx et la masse) ; - ceci est particulièrement intéressant dans les communications sur de grandes distances au travers le réseau téléphonique commuté, par utilisation d'un MODEM (MODulateur-DEModulateur).
L'interface RS-232, appelée aussi port série (ou port "COM") est relativement universelle et permet d'interconnecter 2 équipements afin d'établir un dialogue. Le standard RS232 comporte plusieurs normes, protocoles ou standards de connexion qui fixent le type de connecteur utilisé, le rôle et le nom de chaque broche, les niveaux de tension sur les fils du câble de liaison.
MULTIPLEXAGE
Sans trop entrer dans les détails des protocoles de communications, la RS-232 fonctionne généralement de 75 à 1 000 000 Bauds (Bits par secondes). Plusieurs paramètres sont configurables :
- Vitesse de dialogue (en Bauds). - Nombre de bits de données/data (4 à 8). - Nombre de bits d'arrêt/Stop (1, 1.5 ou 2). - La parité (aucune / paire / impaire / marque / espace). - Le contrôle de flux (aucun, Xon/Xoff, matériel). Les tensions de fonctionnement sont positives (niveau logique "0") et négatives (niveau logique "1"). La plage de tensions utilisables est d'environ +/-3V à +/-25V.
Dans ce mode de transmission l’émetteur et récepteur sont cadencés à la même horloge. Le récepteur
reçoit de façon continue (même lorsque aucun bit n'est transmis) les informations au rythme où l'émetteur les envoie. C'est pourquoi il est nécessaire que l'émetteur et le récepteur soient cadencés à la même vitesse. De plus, des informations supplémentaires sont insérées afin de garantir l'absence d'erreurs lors de la transmission. Lors d'une transmission synchrone, les bits sont envoyés en voyés de façon successive sans séparation entre chaque caractère, il est donc nécessaire d'insérer des éléments de synchronisation, on parle alors de . Le principal inconvénient de la transmission synchrone est la reconnaissance des informations au niveau du récepteur, car il peut exister des différences entre les horloges de l'émetteur et du récepteur. C'est pourquoi chaque envoi de données doit se faire sur une période assez longue pour que le récepteur la distingue. Ainsi, la vitesse de transmission ne peut pas être très élevée dans une liaison synchrone.
MULTIPLEXAGE
En pratique l’horloge de synchronisation du récepteur peut être obtenue :
- A partir de l’horloge de l’émetteur ; - Par reconstitution de l’horloge d’émission à partir des instants de transitions du signal suivant le type de modulation ; - En utilisant des caractères de synchronisation situés au début des trames de données. La langueur des trames n’est plus limitée à un caractère comme pour la liaison asynchrone, le début d’une
trame est annoncé par un ou plusieurs caractères suivent ensuite Le début d’une trame est annoncé par un certai n nombre de bits de synchronisation codés suivant le protocole utilisé. Suivi d’un champ de service pouvant contenir par exemple l’adresse de l’émetteur et du récepteur ou d’autres informations comme le type de trame ou la structure de la trame un champ d e données
correspondant au message, un champ de contrôle permettant la détection des erreurs de transmission suivi éventuellement d’un ou plusieurs caractères de fin de trame.
: Une carte SD (« SD » étant le le sigle de l'expression en anglais « Secure Digital ») est une carte une carte mémoire amovible de stockage de données numériques créée en janvier 2 000 par une alliance formée entre les industriels Panasonic, SanDisk Panasonic, SanDisk et Toshiba. et Toshiba.[wikipedia] [wikipedia] Les cartes SD sont utilisées pour le stockage de fichiers dans les appareils photo numériques, numériques, les caméscopes numériques, les systèmes de navigation GPS, navigation GPS, les les consoles consoles de jeux vidéo, les vidéo, les téléphones téléphones mobiles dont les smartphones, les smartphones, ou ou encore les systèmes les systèmes embarqués. Depuis 2010, les cartes SD font office de standard de stockage, à la suite de l'abandon progressif des autres formats, notamment du Memory du Memory Stick de Sony. On parle de carte SDHC pour des capacités entre 4 et 32 Go1, Go1, et et de carte SDXC au-delà de 32 Go. En 2014, leur capacité s'échelonne jusqu'à 512 Go2. 512 Go2. La carte en elle-même est constituée de la partie stockage à proprement parlé, et un microcontrôleur qui gère la partie mémoire de la carte. Donc afin de communiquer avec cette carte, il faut utiliser l’un des deux modes
de communication :
- le mode SDC (Secure Digital Memory Card) - le mode MMC (Multi Media Card). Dans notre exemple, nous allons utiliser le mode MMC qui fait appel au bus SPI. Le SPI (Serial Peripheral Interface) est un bus de communication série synchrone qui opère en full-duplex. Il est utilisé pour le transfert rapide de données entre périphériques d'un appareil comme par exemple les mémoires, les systèmes d'affichage, carte SD, etc. La communication avec la carte via le mode SPI se fait en utilisant des commandes particulières.
MULTIPLEXAGE
La trame de commande est constituée de 6 octets.
- 2 bits de start «01» - 6 bits correspondant au numéro de la commande - Sont les octets qui correspondent à l’argument de la commande si celle -ci en possède. - 7 bits de CRC - 1 bit de stop qui est à «1» Il existe plusieurs commande que la carte peut interpréter afin de faire certaines choses comme l’initialisation de la carte ou encore l’écriture et la lecture
Le CAN est un réseau de communication série temps réel conçu pour les systèmes de contrôle distribués. Le CAN permet des échanges de données avec des vitesses pouvant aller jusqu’à 1 Mbits/s et ceci avec un très haut niveau d’intégrité au niveau des données. La transmission des données est effectuée sur une paire filaire différentielle respectant un certain protocole. Principales propriétés de la structure du protocole CAN : Fonctionnement multimaître. Hiérarchisation des messages. Temps de latence garanti. Souplesse de configuration. Réception de multiples sources avec synchronisation temporelle. Détections et signalisations d’ erreurs. Retransmission automatique des messages altérés. Distinction d’erreurs : d’ordre temporaire ou de non -fonctionnalité au niveau d’un nœud, Déconnexion automatique des nœuds défectueux. Le concept de communication du bus CAN est celui de la diffusion d’information ( Broadcast), chaque station connectée (nœud) au réseau écoute les trames transmises par les stations émettrices.
MULTIPLEXAGE
Les stations, qui sont en permanence à l'écoute du réseau, reconnaissent et traitent les messages qui les concernent et décide quoi faire du message reçu, si elles doivent y répondre ou non, si elles doivent agir ou non ; elles ignorent simplement les autres. Le protocole CAN autorise différentes stations à accéder simultanément au bus, l’accès au bus est donc aléatoire et doit par conséquence se faire par priorité, ce mode de fonctionnement est appelée CSMA CD/AMP ( ).
Nous allons définir un certain nombre de termes et de règles de fonctionnement concernant le protocole CAN.
Noeud: Sous-ensemble relié à un réseau de communication et capable de communiquer sur le réseau Noeud: Sous-ensemble selon un protocole de communication ; Valeurs du bus : Le bus peut avoir l’un e des deux valeurs logiques complémentaires définies, non pas en 0 et 1 comme d’habitude, mais sous les formes dites de . Dans le cas d’une et transmission simultanée de bits récessifs et dominants, la valeur résultante du bus sera dominante (équivalence avec un OU câblé).
Message : Chaque : Chaque information est véhiculée sur le bus à l’aide d’un message (trame de bits) de format dle), n’importe quel nœud relié défini mais de longueur variable (et limitée). Dès que le bu s est libre (Bus Idle), au réseau peut émettre un nouveau message. Routage des informations : Des : Des nœuds peuvent être ajoutés au réseau sans qu’il n’y ait rien à modifier dentifier) qui n’indique tant au niveau logiciel que matériel. Chaque message possède un identificateur (Identifier) pas la destination du message mais la signification des données du message. Ainsi tous les nœuds reçoivent le message, et chacun est capable de savoir grâce au système de filtrage de message si ce dernier lui est destiné ou non. Chaque nœud peut également détecter des erreurs sur un message qui ne lui est pas destiné et en informer les autres nœuds.
Trame de données, trame de requête : requête : Une trame de données (Data Frame) est une trame qui transporte des données. Une trame de requête (Remote Frame) est émise émis e par un nœud désirant recevoir une trame de données (l’identificateur est le même pour les deux trames dans ce cas).
Débit bit : Le débit bit peut varier entre différents systèmes, mais il doit être fixe et uniforme au sein d’un même système. Priorités : Les identificateurs de chaque message permettent de définir quel message est prioritaire sur tel autre. Demande d’une trame de données : Un nœud peut demander à un autre nœud d’envoyer une trame de
données, et pour cela il envoie lui-même une trame de requête (Remote Frame). La trame de données correspondant à la trame de requête initiale possède le même identificateur.
Fonctionnement multimaître Lorsque le bus est libre, chaque nœud peut décider d’envoyer un message. Seul le message de plus haute priorité prend possession du bus. Arbitrage Le problème de l’arbitrage résulte du fonctionnement multimaître. Si deux nœuds ou plus tentent d’émettre un message sur un bus libre il faut régler les conflits d’accès. On effectue alors un arbitrage bit à bit (non destructif) tout au long du contenu de l’identificateur. Ce mécanisme garantit qu’il n’y aura ni perte de temps, ni perte d’informations.
MULTIPLEXAGE
Dans le cas de deux identificateurs identiques, la trame de données gagne le bus. Lorsqu’un bit récessif est envoyé et qu’un bit dominant est observé sur le bus, l’unité considérée perd l’arbitrage, doit se taire et ne plus envoyer aucun bit. L'arbitrage L'arbi trage est qualifié de CSMA/CA (CarrierSenseMultipleAccess-Collision Avoidance Avoidance).
Sécurité de transmission : Dans le but d’obtenir la plus grande sécurité lors de transferts sur le bus, des dispositifs de signalisation, de détection d’erreurs, et d’autotests ont été implémentés sur chaque nœud d’un réseau CAN. On dispose ainsi d’un monitoring bus (vérification du bit émis sur le bus), d’ un CRC (CyclicRedundancyCheck), d’une procédure de contrôle de l’architecture du message, d’une méthode de Bit-Stuffing . On détecte alors toutes les erreurs globales, toutes les erreurs locales au niveau des émetteurs, jusqu’à
5 erreurs aléatoires réparties dans un message. La probabilité totale résiduelle de messages entachés d’erreurs est inférieure à 4.7*10 -11.
Signalement des erreurs et temps de recouvrement des erreurs : Tous les messages entachés d’erreur(s) sont signalés au niveau de chaque nœud par un flag. Les messages erronés ne sont pas pris en compte, et doivent être retransmis automatiquement. Erreurs de confinement : Un nœud CAN doit être capable de faire les distinctions entre des perturb ations de courtes durées et des dysfonctionnements permanents. Les nœuds considérés comme défectueux doivent passer en mode SwitchedOff en se déconnectant (électriquement) du réseau. Points de connexion : La liaison de communication série CAN est un bus sur lequel un nombre important d’unités peuvent être raccordées. En pratique le nombre total d’unités sera déterminé par les temps de
retard (dus aux phénomènes de propagation) et/ou les valeurs des charges électriques que ces unités présentent sur le bus.
Canal de liaison simple : Le bus consiste en un simple canal bidirectionnel qui transporte les bits. A partir des données transportées, il est possible de récupérer des informations de resynchronisation. La façon dont le canal est implémenté (fil standard, liaison optique, paire différentielle…) n’est pas
déterminée dans la norme officielle BOSCH.
Acquittement Tous les récepteurs vérifient la validité d’un message reçu, et dans le cas d’un message correct ils doivent acquitter en émettant un flag. Mode ‘Sleep’ (sommeil), Mode ‘Wake -up' (réveil) : Afin de réduire la consommation d’énergie, chaque élément CAN peut se mettre en Sleepmode . Dans ce mode il n’y a aucune activité interne au nœud CAN considéré et ses drivers sont déconnectés du bus. La reprise de fonctionnement (mode Wake-up) s’effectue lorsqu’il y a une activité sur le bus ou par décision interne à l’élément CAN. On observe une attente due à une resynchronisation de l’oscillateur local qui teste la présence de 11 bits consécutifs sur le bus (l’activité interne au nœud CAN a cependant repris).
Par suite les drivers se reconnectent au bus. Afin d’obtenir les meilleures performances en débit sur un réseau de type CAN, il est nécessaire d’utiliser des oscillateurs à quartz.
Le CAN est un réseau à part entière respectant le modèle d'interconnexion des systèmes ouverts OSI de l'ISO il a été standardisé par l’ISO dans les normes 11898 pour les applications à hauts débits (1Mbit/s) et ISO 11519 (débit<125 kbit/s) pour les applications à bas débits.
MULTIPLEXAGE
Le tableau 1 résume les principales différences entre les deux types de bus notamment sur les débits supportés. Débit Courant de sortie (mode émission) Niveau dominant Niveau récessif Caractéristique du câble Tension d’alimentation
125 Kb/s > 1 mA sur 2.2 KΩ CAN H = 4v CAN L = 1V CAN H = 1.75v CAN L = 3.25V 30 pF entre câbles de ligne 5v
125 /s à 1 Mb/s 25 à 50 mA sur 60 Ω
CAN H - CAN L = 2 V CAN H - CAN L = 2.5V 2 x 120 Ω
5v
La transmission des données entre les différents nœuds d’un réseau CAN est effectuée en mode série sur une paire filaire différentielle, Il s'agit d'une topologie en BUS. Cela permet d'insérer un nœud dans l'architecture sans avoir à déclarer celui-ci. Le principal désavantage de cette technologie est la défaillance de l'ensemble des nœuds en cas de rupture d'un câble. Un nœud requiert pour son fonctionnement au sein du réseau un microcontrôleur un contrôleur CAN et un driver de ligne la figure 14 montre l’architecture d’un réseau CAN :
Les niveaux logiques sur le bus sont obtenus par la différence de potentiel entre les deux lignes CAN-L et CAN-H. Les niveaux de tension sur CAN-L et CAN-H dépendent de la configuration du bus selon qu’il soit en Low Speed ou High Speed. Les signaux au niveau du bus correspondent à un codage dit NRZ (No Return to Zero: c’est à-dire qu’il n’y a jamais de courant nul sur la ligne. La masse n’est pas utilisée et les niveaux logiques correspondent à 2 niveaux de tensions distincts). Les stations ou nœuds sont câblées sur le bus par le principe du "ET câblé" figure 15. En cas de conflit c’est à-dire émission simultanée, la valeur 0 écrase la valeur 1. On appelle donc "état dominant" l'état logique 0, et "état récessif" l'état logique 1. Lors de l'arbitrage bit à bit, dès qu'une station émettrice se trouve en état récessif et détecte un état dominant, elle perd la compétition et arrête d'émettre. Tous les perdants deviennent automatiquement des récepteurs du message, et ne tentent à nouveau d'émettre que si le bus est à nouveau libre.
MULTIPLEXAGE
L'information est véhiculée sur deux lignes (CAN-H et CAN-L) symétriques autour d'une tension de référence à 2.5 Volts figures 16 (a) et 16(b). Il existe deux versions normalisées du bus CAN différenciés par leur débit : le CAN Low Speed ; Le CAN High Speed.
Les changements de niveau du signal sont des sources d'émissions électromagnétiques. Plus le changement de niveau (dominant vers récessif et 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 à 80ns.
MULTIPLEXAGE
L’utilisation de paires tor sadées permet de s'affranchir des émissions du câble en inversant à chaque
torsade les vecteurs induction produits, ce qui les l es annule deux à deux figure 17. Elle permet également de réduire les perturbations extérieures en annulant par opposition les courants induits dans chaque boucle par un champ perturbateur figure 18.
Signal parasite engendré
Source parasite
Signal original Emetteur
Récepteur
Si l’on fait circuler des signaux de tension sur le bus, sans résistance de terminaison de ligne, les signa ux
vont se réfléchir sur les extrémités et vont créer des parasites qui risquent de perturber les émissions suivantes sur le bus (identique à une onde qui rebondirait contre un mur). Pour éviter ces phénomènes de signal réfléchit en bout de câble, on place à l’extrémité une impédance identique à celle du câble. On trouvera donc à chaque extrémité du réseau deux résistances de 120 Ω. Ces
résistances de fin de ligne sont intégrées aux extrémités du réseau CAN dans deux participants, en fonction de la topologie et l’architecture du réseau CAN Low Speed/Hight Speed, respectivement Figure 19(a) et 19(b).
Un contrôle rapide de la continuité du réseau peut être fait en mesurant la résistance entre CAN –H et CAN – L (hors tension et tous les calculateurs branchés). On mesure deux résistances de 120 Ω en parallèles, soit 60. La
mesure de toute autre valeur indique une anomalie : R > 60 → coupure de ligne ou si R =120 absence d’une des deux résistances de terminaison. R < 60 → ligne en court -circuit, ou plus de deux résistances de terminaison dans le réseau. Si le bus est utilisé en mode basse vitesse ou à tolérance de panne, une terminaison doit être disposée à chaque nœud. En mode hau te vitesse, une terminaison doit être disposée d isposée aux deux extrémités du bus. En général, le maître est placé à une des extrémités du bus (nœud 1), mais il est possible de le connecter au milieu sans terminaison en fournissant une terminaison aux nœuds aux ex trémités de la ligne du bus.
MULTIPLEXAGE
Le bus CAN est conçu pour être configuré avec une topologie de réseau en bus. Les spécifications CAN limitent la distance entre un périphérique et sa jonction au bus. La figure 20 montre comment le bus devrait être configuré.
CAN
CAN
CAN
Nœud
Nœud
Nœud
2
3
n-1
l
CAN
L -Longueur du bus l - Longueur de la branche du câble d -Distance entre les nœuds
CAN Nœud
Nœud
1
n
d L
1 Mbit/s 500 kbits/s 100 kbits/s 50 kbits/s
40 m 100 m 500 m 1000 m
0,3 m 0,3 m 0,3 m 0,3 m
40 m 100 m 500 m 1000 m
Pour plus de détails de détails techniques sur la couche physique CAN, voir l'article de Texas Instruments, Controller Area Network Physical Layer Requirements.
Le CAN définit 7 couches permettant de couvrir la totalité d’un protocole. La figure 9 résume les couches utilisées par le protocole CAN. CAN ne normalise que les couches LDD et physique !
Couches hautes
Couches matérielles
7
Application
6
Présentation
5
Session
Datagramme
4
Transport
Paquet
3
Réseau
Trame
2
Liaison
Bit
1
Physique
Donnée
Utilisateur
Vide
Protocol CAN
MULTIPLEXAGE
La première couche du modèle a pour but de conduire les éléments binaires jusqu'à leur destination sur le support physique. Elle fournit les moyens matériels nécessaires à l'activation, au maintien et à la désactivation de ces connections physiques. Cette couche gère la représentation du bit (codage, timing, synchronisation), et définit les niveaux électriques, optiques,... des signaux ainsi que le support de transmission. Le protocole CAN ne décrit que la représentation détaillée du bit (Physical Signalling), mais pas le moyen de transport et les niveaux des signaux de telle sorte qu'ils puissent être optimisés selon l'application.
Elle fournit les moyens fonctionnels nécessaires à l'établissement, au maintien et à la libération des connexions entres les entités du réseau. Cette couche (aussi appelée couche de communication de donnée, Data Link Layer) devra notamment corriger les erreurs qui ont pu se produire au premier niveau (même s'il est impossible de corriger toutes les erreurs). Cette couche et entièrement décrite par le protocole. La couche liaison est subdivisée en deux sous-couches. sous -couches. La sous-couche LLC (Logical Link Control) et la souscouche MAC (Medium Access Control), qui est le cœur du protocole CAN.
o o o
o o o o o
le filtrage des messages, la notification des surcharges (Overload), la procédure de recouvrement des erreurs.
la mise en trame du message, l'arbitrage, l'acquittement, la détection des erreurs, la signalisation des erreurs.
La couche réseau doit permettre d'acheminer correctement les paquets d'informations jusqu'à l'utilisateur final, en passant par des passerelles qui interconnectent plusieurs réseaux entre eux. Elle assure le contrôle des flux (pour garantir des temps de réponse acceptables), le routage des paquets, et l'adressage. C'est aussi ici qu'interviennent les deux philosophies concurrentes des réseaux : Le mode connecté, à la base du protocole X.25, où l'émetteur et le récepteur se mettent d 'accord sur un comportement commun. Le mode non connecté, à la base du protocole IP (Internet Protocol), sans contraintes pour l'ém etteur vis-à-vis du récepteur. Cette couche est vide dans le protocole CAN.
MULTIPLEXAGE
La couche transport est le dernier niveau qui s'occupe de l'acheminement des informations. Elle doit optimiser la qualité de la transmission, notamment avec des outils de détection d'erreurs et des algorithmes de renvoi des messages perdus. Cette couche est vide dans le protocole CAN.
La couche session permet aux différents éléments du réseau d'organiser et de synchroniser leur dialogue. Il faut en effet s'assurer si l'on veut émettre de l'information qu'un récepteur est là pour récupérer ce qui a été envoyé. Cette couche est vide dans le protocole CAN.
Cette couche se charge de la syntaxe des informations que se communiquent les éléments du réseau, c'està-dire que ces éléments utilisent bien un langage commun pour transférer des données. Cette couche est vide dans le protocole CAN.
C'est la dernière couche du modèle OSI. Elle donne aux applications le moyen d'accéder aux couches inférieures. Cette couche a été normalisée en 1987 au sein d'une structure globale : la structure de la couche application, ou ALS (Application Layer Structure). Elle détermine comment différentes applications vont pouvoir coexister et utiliser des modules communs. De très nombreuses normes ont été définies sur cette base. Cette couche n'est bien sûr pas vide pour le protocole CAN, mais sa spécification est laissée à l'utilisateur.
L’objectif du bus système série CAN (Controller Area Network) est de réduire le câblage électrique des
véhicules en faisant communiquer les différents organes de commande sur un bus unique et non plus sur des lignes dédiées, permettant ainsi de réduire le poids de l’électronique embarquée. Sur le bus peut être branché tout appareil respectant les spécifications du bus. Il existe pour le moment 2 normes couvrant les couches 1 et 2 du modèle OSI: Le CAN standard ou CAN 2.0 A : avec un identifiant d’objet codé sur 11 bits, qui permet d’accepter théoriquement jusqu’à 2 048 types de messages figure 21. Le CAN étendu ou CAN 2.0 B : avec un identifiant d’objet codé sur 29 bits, qui permet d’accepter théoriquement jusqu’à 536 870 912 types de messages figure 22.
Il s'agit donc d'une topologie en BUS. C'est à dire que tous les nœuds sont connectés au même câble, L’information sur le bus est envoyée sous la forme de messages au format fixe. Quand le bus est libre, n’importe quel nœud peut commencer à envoyer un messa ge.
MULTIPLEXAGE
Arbitration Field
Control Field
Data Field
CRC
0-8 Octets
CRC
Ac k
End of Frame
Int
Bus Idle
Identifier ID 11 bits F O
R E T
S
R
DLC 0
DI
Arbitration Field
r
Control Field
Data Field
CRC
0-8 Octets
CRC
Ac k
End of Frame
Int
Bus Idle
Identifier ID F O S
11 bits
R E S
R DI
18 bits R
T
R
r1
r0
DLC
Le transfert des messages se manifeste et est commandé à l’aide de quatre types de trames spécifiques séparées par un intervalle de temps. De plus afin de sécuriser la transmission des messages on utilise la méthode dite de Bit-Stuffing (bit de transparence). Cette méthode consiste, dès que l’on a émis 5 bits de même polarité sur le bus, à insérer ins érer un bit de polarité
contraire pour casser des chaînes 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 réception pat les nœuds.
Cette technique est uniquement active sur les champs de SOF, d’arbitrage, de contrôle, de CRC. Les
différentes trames qui circulent sur le bus sont : Trame de données (Data Frame) ; Trame de requête (Remote Frame) ; Trame de surcharge (Overload Frame) ; Période d'inter trame (Inter Frame) ; Trame d’erreur ( Error Frame).
Les trames de données (Data Frames) sont composées de 7 champs différents détaillées ci-après : 1234567-
le début de trame SOF ( le champ d’arbitrage ( le champ de contrôle ( le champ de données ( le champ de CRC (
), 1 bit dominant. ), 12 bits. ), 6 bits. ), 0 à 64 bits. ), 16 bits. ), 2 bits. le champ d’acquittement ( le champ de fin de trame EOF ( ), 7 bits récessifs.
Le format est indiqué pour des trames respectant le protocole 2.0A. Start of frame : Le bit Start of frame (SOF) marque le début d'une Data Frame ou d'une Remote frame. C'est un unique bit dominant. Tous les nœuds se synchronisent sur le bit SOF du nœud ayant commencé une transmission.
MULTIPLEXAGE
Arbitration Field : Ce champ est constitué de l'identifieur et du bit RTR. L'identificateur (ID) permet d'identifier le message. Il est transmis dans l'ordre ID10 à ID0, où ID0 est le bit le moins significatif. Le bit RTR (Remote Transmission Request) caractérise les Remote Frames. Il est et . Control Field : Ce champ est composé de 6 bits. Les 2 premiers p remiers sont des bits réservés et les 4 suivants constituent le Data Length Code (DLC). Le DLC indique le nombre d'octets du Data Field. La valeur du DLC est forcément comprise entre 0 et 8, soit 9 valeurs. 4 bits dominants (0000) correspondent à la valeur 0 pour le DLC, tandis que (1000) correspond à la valeur 8. Data Field : Ce champ représente les données transmises par la Data Frame. Il peut contenir de 0 à 8 octets, où chaque octet est transmis avec le bit de poids fort en premier. CRC Field : Le CRC Field (Cyclic Redundancy Code) est composé 15 b its suivi d’un CRC Delimiter (1 bit récessif). Le CRC permet de vérifier l'intégrité des données transmises. Les bits utilisés dans le calcul du CRC sont ceux du SOF, de l'Arbitration Field, du Control Field et du Data Field. ACK Field : Le ACK Field est composé de 2 bits, l'ACK Slot et le ACK Delimiter (1 bit récessif). Le nœud en train de transmettre envoie un bit récessif pour l’ACK Slot. Un nœud ayant reçu correctement le message en informe le transmetteur en envoyant un bit dominant pendant l’ACK Slot : il acquitte le message. End of frame : Chaque Data Frame et Remote Frame est terminée par une séquence de 7 bits récessifs. Une trame de requête, figure 27, permet une coopération de type Client Serveur, elle est constituée de la même manière qu’une trame de donnée à deux différences près : Ne contient pas de données, donc champ de données est vide. Dans le champ d’arbitr age, le bit de RTR est récessif, c’est-à-dire : RTR à 1, d’où une priorité inférieure à la trame de données ! Si un nœud a besoin d’un certain nombre de données, il peut initier une demande de transmission de données d’un autre nœud en envoyant une trame de requête, en prenant soin d’indiquer dans le cham p de contrôle (DLC) le nombre d’octets de données dont il a besoin. Cette demande ne peut être faite que si le bus est libre (Idle).
La réponse n’est pas « écrite » dans la trame
Induit une surcharge sur le réseau Aucune garantie sur le délai de la réponse ! La Trame de requête ce compose de 6 champs au lieu de 7 pour la trame de données (Data Frame), détaillées ci-après : 123456-
le début de trame SOF ( le champ d’arbitrage (
le champ de contrôle ( le champ de CRC ( le champ d’acquittement (
le champ de fin de trame EOF (
), 1 bit dominant. ), 12 bits. ), 6 bits. ), 16 bits. ), 2 bits. ), 7 bits récessifs.
MULTIPLEXAGE
Arbitration Field
Control Field
Data Field
CRC
0
CRC
Ac k
End of Frame
Int
Bus Idle
Identifier ID 11 bits F O S
R E T R
DI
0 r
DLC
Start of frame : comme pour la Data Frame, ce bit indique le début d'une nouvelle trame. Arbitration field : L'Arbitration Field est constituée de l'identificateur et du bit RTR. L'identificateur (ID) permet d'identifier le message. Il est transmis dans l'ordre ID10 à ID0, où ID0 est le bit le moins significatif. Le bit RTR et récessif dans le cas de la . Control Field : Le Control Field est composé de 6 bits. Les 2 premiers sont des bits réservés et les 4 suivants indiquent le nombre d’octet dans le champ de donnée s que la data frame aura pour mission de ramener par la suite. CRC Field : Le CRC Field (Cyclic Redundancy Code) est composé 15 bits suivi d’un CRC Delimiter (1 bit récessif). ACK Field : Le ACK Field est composé de 2 bits, l'ACK Slot et le ACK Delimiter (1 bit récessif). End of frame : Chaque Remote Frame est terminée par une séquence de 7 bits récessifs.
Rarement utilisé en pratique, cette trame indique qu'une station est surchargée pendant un certain laps de temps. Les conditions internes d’un nœud peuvent le conduire à demander un temps sup plémentaire pour accepter la prochaine trame en provenance des autres nœuds. Cette demande est faite en envoyant une trame de surcharge (6 bits dominants) pour signaler qu’elle ne peut recevoir la prochaine trame. L’émission automatique de trames de surcharge par les nœuds saturés assure
en quelque sorte le contrôle de flux. Une trame de surcharge, figure 28, ne peut se produire qu’à la fin d’une tr ame normale, d’erreur ou d’une autre trame de surcharge. Elle remplace l’inter trame. Afin de ne pas bloquer indéfiniment le bus, la norme CAN autorise deux (au maximum) trames de surcharge consécutives. Une trame de surcharge ne contient que deux champs : o o
un champ contenant des drapeaux de surcharge constitué de 6 bits un délimiteur de champ constitué de 8 bits récessifs.
La détection d'un bit dominant durant la phase intermission peut aussi être une condition qui mène à la transmission d'un Overload Flag. Dans ce cas le démarrage de l'Overload Frame a lieu juste après la détection du bit dominant.
MULTIPLEXAGE
Lorsqu’un nœud détecte une erreur (et s’il est dans un état lui permettant d’agir sur le bus), il interrompt immédiatement la trame en cours et envoie un drapeau d’erreur (un drapeau actif ou passif selon son état) pour signaler la situation aux autres nœuds.
Une trame d'erreur est constituée de deux parties. La première est formée par la superposition des différents "Error Flags" mis par les nœuds du bus. La seconde partie est un délimiteur. Un nœud qui détecte une erreur la signa le en envoyant un Error Flag. Celui-ci viole la règle du bit Stuffing (6 bits dominants consécutifs) et par conséquent, tous les autres nœuds détectent aussi une erreur et
commencent à envoyer un Error Flag. La séquence de bits dominants qui existe alors sur le bus est le résultat de la superposition de plusieurs Error Flags, et sa longueur varie entre 6 et 12 bits. Il existe deux types d'Error flags : o
o
Active Error Flag : 6 bits dominants consécutifs, figure 29. Passive Error Flag : 6 bits récessifs consécutifs, jusqu'à ce qu'ils soient écrasés par des bits dominants, figure 30.
L'Error Delimiter est composé de 8 bits récessifs. En fait, après avoir transmis son Error Flag, chaque nœuds
envoie des bits récessifs et observe le bus jusqu'à ce qu'il détecte un bit récessif, après quoi il envoie encore 7 bits récessifs supplémentaires.
La trame Inter Frame sépare les trames de données ou de requêtes entre-elle par un champ de bits récessifs appelé Inter Frame Space. Elle se compose de deux ou trois champs selon les cas : o
Le champ d’intermission est une suite de 3 bits récessifs consécutifs. Durant la période d’intermission, l’émission de trame n’est pa s autorisée. Les gestionnaires de protocole ne
sont autorisés à signaler que les conditions de surcharge.
MULTIPLEXAGE
o
Le champ de suspension de transmission est émis par un nœud lorsque celui-ci envoie une trame d’erreur passive.
o
Le champ de Bus Idle est celui du bus quand il est au repos. Le niveau de repos est le niveau récessif et aucune trame ne circule sur le bus.
Voici un exemple de 2 zones d’inter trame l’une sans trame d’erreur (Figure 31), l’autre à la suite d’une trame d’erreur (inter trame « erreur ») (Figure 32).
---
Pour les Data Frames et les Remote Frames, les bits depuis le Start of frame jusqu'à la séquence de CRC sont codés selon la méthode du bit stuffing. Quand un transmetteur détecte 5 bits consécutifs de même valeur dans les bits à transmettre, il ajoute automatiquement un bit de valeur opposée figure 23. On obtient ainsi dans le message un plus grand nombre de transitions ce qui permet de faciliter la synchronisation en réception par les nœuds. Cette technique est uniquement active sur les champs de SOF, d’arbitrage, de contrôle, de CRC (délimiteur exclu).
Trame à stuffer
Trame stuffée
Trame à stuffer Trame stuffée
MULTIPLEXAGE
Chaque nœud doit produire un nominal Bit Time pour pouvoir recevoir et émettre les données circulant sur le bus en synchronisme avec les autres circuits. En effet, si les Nominal Bit Time de chaque nœud ne sont pas synchronisés, la valeur lue sur le bus au moment de l’échantillonnage peut être erronée, comme le représente la figure 24. Ces retards peuvent être gênants, dans la phase d’acquittement de la tr ame où il y a peu de temps pour finir de calculer le CRC et envoyer un bit à l’état dominant lors de l’Acknowledge Slot pour confirmer que la trame
a bien été reçue.
Nominal Bit Time Nœud 1
Bit Emis Nominal Bit Time Nœud 2
Bit re u
Points d'échantillonnage
Ce sont les récepteurs qui se calent régulièrement sur l’horloge de l’émetteur pour synchroniser les horloges : o o
En début d’émission de trame sur le bus (le bus passe de l’état de repos à celui d’activité) Pendant l’émission de la trame : Le récepteur reconnaît les bits stuffing, cale son horloge,
les supprime, et reconstitue le message initial Le récepteur compare sa durée de transmission d’un bit avec celle de la trame en cours de lecture. La synchronisation consiste à allonger ou raccourcir la durée de transmission d’un bit du nœud récepteur, pour l’ajuster avec celle d’un bit d’un nœud émetteur.
Il peut arriver que 2 nœuds (ou plus) émettent simultanément une trame sur le bus. Au début d’émission
pas de conflit, car le champ de début de trame SOF est identique pour tous les boîtiers, IL est dominant et signale à toutes les stations le début d'un échange. Cet échange ne peut démarrer que si le bus était précédemment au repos. Toutes les stations doivent se synchroniser sur le front avant la transition du bit de départ. Mais ensuite il va falloir déterminer laquelle des trames est prioritaire sur les autres, elle sera la seule transmise. Dans une trame standard, le champ d’arbitrage est composé des 11 bits (Id0 à Id10) de l’identificateur plus
un bit de RTR (Remote Transmission Request), qui est dominant pour une trame de données et récessif pour une trame de requête. L’identificateur permet de router le message vers le bon nœud mais indique également la
priorité du message, qui détermine l'assignation du bus lorsque plusieurs stations émettrices qui sont en concurrences.
MULTIPLEXAGE
Le procédé d’attribution du bus est basé sur le principe de l'arbitrage bit à bit, selon lequel les nœuds en
compétition, émettant simultanément sur le bus, comparent bit à bit l'identificateur de leur message avec celui des messages concurrents, c’est -à-dire chaque émetteur compare le bit qu’il reçoit avec celui qu’il émet figure 25, tant que ces 2 bits sont identiques les 2 transmissions continuent dans le cas contraire, le boîtier ayant émis un bit à l’état récessif, cesse d’émettre. Ainsi les stations de priorité moins élevées perdront la compétition face à celles qui ont la priorité la plus élevée. Les bits de l’identificateur sont transmis dans l’ordre, de ID_10 à ID _0
(du MSB vers LSB).
Dominant
Dominant
Récessif
Récessif
Transfer durant
Récessif
Dominant
Dominant
Récessif
l’arbitrage
Transfer durant l’arbitrage
Arbitrage perdu
Erreur bit
Dans l’exemple ci -dessous, les stations 1, 2 et 3 demandent le bus en même temps. Pour les départager, on applique la méthode d’arbitrage et les premières stations à émettre un bit récessif sont exclues et devront
attendre que la station qui a pris le bus (la station avec la priorité la plus haute) libère la ligne
Dans l’exemple de la figure 26 la station 1 est exclue en premier puis la station 3. La station 2 a donc la plus
haute priorité. Rappelons que le bus CAN utilise la méthode d'accès CSMA/CR (Carrier Sense Multiple Access /Collision Resolution) dont les principes généraux sont les suivants :
MULTIPLEXAGE
Toutes les stations sont égales Chaque station émet quand elle veut (bus libre) Les collisions sont acceptées Les collisions sont détectées par les stations Les collisions sont gérées par le protocole Il y a une stratégie d'arbitrage des collisions La station qui remporte l'arbitrage continue sa transmission En informatique, quand on parle de débit, on fait référence au "débit binaire", on l'associe parfois pour caractériser les performances d'un réseau informatique, le débit binaire est une mesure de la quantité de données numériques transmises par unité de temps. Le débit est le plus souvent exprimé en bits par seconde (bit/s, b/s ou bps) ou un de ses multiples en employant les préfixes du système international (SI) : kb/s (kilobits par seconde, kbit/s, kbps pour 1 000 b/s), Mb/s (mégabits par seconde, Mbit/s, mbps pour 1 000 kbit/s soit 1 000 000 b/s), Gb/s (gigabit par seconde, Gbit/s, Gbps pour 1 000 Mbit/s soit 1 000 000 000 b/s) et ainsi de suite. La représentation des bits (c’est -à-dire le type de signal) dépend du type de support. Pour un support à câble de cuivre, les signaux sont des variations d’impulsions électriques. Pour la fibre optique, les signaux sont
des variations lumineuses. Pour les supports sans fil, les signaux sont des variations de transmissions radio. La vitesse de propagation des ondes électromagnétiques est de l’ordre de 200000 km/s dans les lignes électriques filaires et les fibres optiques, c’est-à-dire que les ondes mettent environ 5 ns pour parcourir 1 m, ou encore parcourent 200 m/µs). Si l’on appelle t -bus le temps que met le signal signa l pour parcourir la longueur maximale du réseau(l), la somme globale des temps d’aller et de retour dus à la propagation des signaux sur le bus est de :
2_ = 2
l Vprop
Avec Vprop = vitesse de propagations
Par exemple, avec l = 40 m, on obtient t-bus = 200 ns. Afin que la station ayant émis le bit initial soit apte à gérer les conflits, le temps que doit durer le bit, le bit time t-bit, doit être supérieur à t-bus. De plus, pour être complet, il est obligatoire de tenir compte des temps pris (ou nécessaire) pour échantillonner et traiter le bit dans la station où il arrive. Pour évaluer le bit time minimal t-bit-min du réseau envisagé, il sera nécessaire de tenir compte des (figure 33):
Retards de sortie de propagation t-out, Retards d’entrée de propagation t -in, Retards dus à la synchronisation t-sync, Ecarts de phases dus aux tolérances d’horloge t -clock,
MULTIPLEXAGE
Ce qui donne au total un t-bit-min de : t-bit = 2 t-bus + 2 t-out + 2 t-in + t-sync + t-clock Exemple : avec un débit binaire de 100 kbit/s, soit un bit time de 10 µs, on peut atteindre une longueur de réseau d’environ 900 m.
Il est important de noter que n’importe quel nœud connecté sur un bus CAN doit pouvoir supporter un débit d’au moins 20 kbit/s
Le débit augmente lorsque la longueur du bus diminue. Pour les longueurs de bus supérieure à 200 mètres il est nécessaire d’utiliser un optocoupleur, et po ur une longueur de bus supérieure à 1 kilomètre il est nécessaire d’utiliser des systèmes d’interconnexion tels que des répéteurs ou des ponts.
1 Mbit/s 800 kbit/s 500 kbit/s 250 kbit/s 125 kbit/s 62,5 kbit/s 20 kbit/s
30 m 50 m 100 m 250 m 500 m 1000 m 2500 m
1 μ s 1,25 μ s 2 μs 4 μs 8 μs 16 μs 50 μ s
10 kbit/s
5000 m
100 μ s
MULTIPLEXAGE
La durée d'un bit sur le bus est appelée Nominal Bit Time.
Composition Nominal Bit Time: o
: assure la synchronisation des différents nœuds du bus ; par une transition 0 -> 1 ou 1 ->0 : sert à compenser les retards dus à la
o
propagation du signal sur la ligne. servent à compenser les
o
erreurs de phases détectées lors des transitions position où le nœud échantionne la valeur
o
du bit sur la ligne On définit la plus petite base de temps reconnue sur un bus CAN comme étant le Time Quantum tq. Cette base de temps est une fraction de l’horloge de l’oscillateur du bus. Un bit dure entre 8 et 25 quantum.
Les fréquences de fonctionnement du bus CAN s’étendant de 125 KHz à 1 MHz et celle des oscillateurs étant de plusieurs MHz, le Time Quantum représente plusieurs périodes d’une horloge d’osci llateur. La période d’horloge de l’oscillateur est appelée minimum Time Quantum. La valeur du pré -diviseur détermine le rapport
entre le Time Quantum et le Minimum Time Quantum : TIME_QUANTUM = m * MINIMUM_TIME_QUANTUM La valeur de m peut varier de 1 à 32. La figure 36 représente la construction d’un Time Quantum à partir d’une période d’horloge interne d’un microcontrôleur (MCU).
MULTIPLEXAGE
Oscillateur ou horloge MCU Prédiviseur - Bud Rate CAN horloge
CAN bit période
Lecture du bit
Pour le calcul du TIME_QUANTUM voir l’application CAN Bit Time Calculation disponible en ligne et pour
différents fabriquant de composant CAN : CAN Bit Time Calculation : http://www.bittiming.can-wiki.info/ Le nombre de Time Quantum dans un Nominal Bit Time peut ainsi varier de 8 à 25. Le tableau 4 donne le nombre de Time Quantum possible par segment de Nominal Bit Time.
Synchronisation- SYNC_SEG Propagation - PROP_SEG Buffer phase1 - PHASE_SEG1 Buffer phase1 - PHASE_SEG2
1 1à8 1à8 1à8
Le choix du nombre de Time Quanta pour chaque segment dépend de la fréquence de l’oscillateur. Un
nombre important de Time Quanta par segment augmente la précision de la synchronisation des différents nœuds sur le bus.
MULTIPLEXAGE
Le CAN a été développé pour fonctionner dans des environnements difficiles/agressifs (l’autom obile, les procédés industriels, etc.) et c'est pourquoi il comprend de nombreux mécanismes très performants de détection d'erreur. Ainsi, Lors de l’émission d’une trame sur le bus, des erreurs de transmission peuvent venir perturber le bon fonctionnement des différents utilisateurs du bus. L’erreur peut venir d’un nœud, et empêcher le réseau de fonctionner correctement. Pour cela, des méthodes de détection d’erreurs de transmissions so nt prévues par le protocole CAN.
Le bit lui-même est entaché d'erreurs (parasité, par exemple), une erreur de Bit Stuffing pour des raisons quelconques involontaires (parasites, transmissions, oublis, etc.) ou parfois volontaires comme dans la trame d'erreur, du fait aussi que a trame émise nu soit pas acquittée provoquant un ACKnowledge Error :
Bit-Error : dominant + récessif = récessif ! Bit-Stuffing : 6 bits consécutifs même niveau.
Bit Error : Un nœud envoyant un bit sur le bus regarde aussi en même t emps les bits qu'il reçoit (Bit monitoring). Il considère comme une erreur de bit lorsque le bit envoyé est différent du bit reçu, à l'exception de l'envoi d'un bit récessif durant l'arbitrage (cas de la perte d'arbitrage) ou pendant l’ACK
Slot (trame acquittée). Stuff Error : Le nœud détecte une erreur de Stuffing lorsqu'il reçoit 6 bits consécutifs de même valeur dans une partie d'un message qui devrait être codé avec la méthode du Bit Stuffing.
Dans le cas où la structure de la trame est modifiée durant sa transmission sur le bus, une trame de type Error Frame sera générée pour en informer l’ensemble des nœuds sur le réseau. Les sources d’erreur possible sur la trame sont : o o o o o
erreur de CRC Delimiter erreur de ACKnowledge Delimiter, erreur de End of Frame, erreur de Error Delimiter, erreur de Overload Delimiter.
MULTIPLEXAGE
Erreur bit Erreur Stuff-bit Erreur de format Erreur d’ACK
Emetteur
Récepteur Erreur bit Erreur Stuff-bit Erreur de format Erreur CRC
Pour différentes raisons, comme l’existence de fortes perturbations ou de pertes importantes lors de la transmission, le protocole CAN dispose d’un système de gestion des erreurs locales. Chaque fois qu’un émetteur envoie un bit sur le bus, il vérifie en même temps si le niveau émis sur le bus correspond à celui qu’il désire envoyer en faisant une surveillance du bus. Si le niveau ne correspond pas, il le
signale par un Bit Error. Sauf dans les cas suivant : o
o
Présence d’un bit dominant à la place d’un bit récessif dans le champ d’arbit rage (perte d’arbitrage) ; Présence d’un bit dominant à la place d’un bit récessif dans le champ d’acquittement (signalisation d’erreur par un récepteur).
Le principe du Bit Stuffing, par exemple, vu précédemment permet de localiser une erreur et un nœud qui détecte ce type d’erreur transmettra aux autres nœuds un message dit « Error Flag » contenant cont enant six bits de même polarité. Après avoir transmis le message Error Flag, le nœud essaiera à nouveau de transmettre le message, et si
aucun message de priorité supérieure ne prend la main sur le réseau ce nouveau message est transmis 23 bits au plus après. Les bits formant l’Error Flag sont dominants et écrasent donc les données contenues dans la Data Frame. Ils provoquent la retransmission de cette dernière. Dans le cas d’erreurs successives, il y aura superposition d’Error Flags. Les 8 bits de l’Error Délimiter au niveau de la trame d’erreur donnent l’autorisation aux nœuds du réseau de reprendre leurs communications. communications. Des recherches ont montré que le taux d’e rreurs non détectées par le
protocole CAN est très faible : 1 erreur non détectée pour 1000 années de fonctionnement.
MULTIPLEXAGE
Toutefois : o
Une erreur de Stuffing ne doit être signalée que dans les champs d’identificateurs, de
commande et de CRC. o
La règle du Bit-Stuffing ne s’appliquant plus après la fin du CRC. En aucun cas, une erreur de Bit-Stuffing ne doit être signalée dans le champ de fin de trame ou dans le champ d’acquittement.
Le champ de CRC est composé de 16 bits, La séquence CRC calculée est contenue dans les 15 premiers bits tandis que le dernier bit est un délimiteur de fin de champ de CRC (bit toujours récessif). Ce champ de CRC permet de s’assurer de la validité du message transmis, et tous les récepteurs doivent s’astreindre à ce procédé de vérification. Seuls les champs de SOF, d’arbitrage, de contrôle et de données sont
utilisés pour le calcul de la séquence de CRC. La réalisation du module de calcul de CRC est particulièrement aisée à l’aide de registres à décalages. L a norme BOSCH propose le programme informatique correspondant à l’algorithme précédemment décrit :
CRC_REG=0 ; REPEAT CRC_NXT_BIT=(NXT_BIT) XOR (CRC_REG(14)) ; CRC_REG(14:1)=CRC_REG(13:0) ; CRC_REG(0)=0 ; IF CRC_NXT_BIT THEN CRC_REG(14:0)=CRC_REG(14:0) XOR (4599hex) ; ENDIF UNTIL(CRC SEQUENCE starts or there is an ERROR condition)
Le confinement des erreurs est un mécanisme permettant de faire la différence entre des erreurs temporaires ou permanentes. Les erreurs temporaires peuvent être causées par des bruits parasite par exemple, tandis que des erreurs permanentes sont en général due à de mauvaises connections ou à des composants défaillants. Ce système va permettre d’enlever un nœud défaillant du bus qui sinon aurait pu perturber les autres nœuds. Un nœud peut être dans trois ´états : Error-Active, Error-Passive ou Bus-Off. 1. Un nœud en mode d’erreur actif ( Error-Active) peut prendre part normalement dans la communication sur le bus. Il transmettra un Active Error Flag s’il détecte une condition d’erreur ; 2. Un nœud en mode d’erreur passif ( Error-Passive) peut prendre part dans la communication, mais s’il détecte une condition d’erreur sur le bus, il transmettra un Passive Error Flag. Ce mode indique un nœud à problèmes. 3. Un nœud en mode bus-off n’est pas autorisé à avoir une quelconque influence sur le bus.
Deux compteurs d’erreurs sont implémentés dans chaque nœud : celui des erreurs en transmission (Transmit Error Count) et celui des erreurs en réception (Receive Error Count). Le compteur s’incrémente plus vite lorsqu'il y a une erreur qu’il ne se décrémente lorsque la trame reçue est correcte, l’incrémentation et la
décrémentation des compteurs ne se fait pas avec le même rapport, elle est soumise aux règles suivantes :
MULTIPLEXAGE
Les règles d’incrémentation et de décrémentation des compteurs sont les suivantes : o
Le compteur de réception est incrémenté de 1 si : o
Dès qu’un récepteur détecte une erreur, il incrémente de 1 son compteur d’erreur de réception, sauf si l’erreur est un Bit Error durant un flag d’erreur active ou un flag de
surcharge. o
Le compteur de réception est incrémenté de 8 si : o
o
o
un nœud voit un Bit Error tandis qu’il reçoit un flag d’erreur active ou un flag de surcharge.
Le compteur de transmission est incrémenté de 8 si : o
o
o
un nœud reçoit un bit dominant juste après un flag d’erreur.
un nœud envoie un flag d’erreur, son compteur d’émission s’incrémente de 8, sauf si l e nœud est en dans l’état erreur passive et voit un Acknowledgment Error (il ne détecte aucun bit dominant sur le champ d’acknowledge ou lors de l’envoie de la trame d’erreur passive) et également si le noeud envoie un flag d’erreur lors d’une erreur de Bit -Stuffing durant la période d’arbitrage (détection d’un bit dominant au lieu d’un bit récessif situé après le RTR). un nœud détecte un Bit Error tandis qu’il émet un flag d’erreur active ou un flag de surcharge.
Les compteurs d’émission et de réception s’incrémentent de 8 si : o
chaque nœud recevant sept bits dominants consécutifs après réception d’un Active Error Flag, d’un Passive Error Flag ou d’un Overload Flag. Après détection d u quatorzième bit dominant consécutif (pour l’Active Error Flag ou l’Overload Flag) ou du huitième bit
dominant consécutif suivant le Passive Error Flag, et après toutes les suites de huit bits dominants consécutifs. o
Le compteur de réception est décrémenté de 1 si : o
le nœud reçoit une trame sans erreur (jusqu’au champ d’Acknowledge Slot) et si la valeur du compteur est comprise entre 1 et 127. Si le compteur est à 0, sa valeur ne change pas (pas d’incrémentation). S'il est supérieur à 127, sa valeur est ramenée entre 119 et 127.
o
Le compteur d’émission est décrémenté de 1 si : o
la transmission d’une trame se déroule sans erreur (jusqu’au champ d’Acknowledge Slot). Si la valeur du compteur est à 0, le compteur ne s’incrémente pas.
L'état de la machine est défini par l'état de ses deux compteurs. Si les deux compteurs sont strictement inférieurs à 128, la machine est en mode actif. Si par contre l'un de ses deux compteurs atteint ou dépasse la valeur de 128, la machine passe en mode passif. Enfin, si le compteur d'erreur de transmission dépasse 255, la machine passe à l'état Off.
MULTIPLEXAGE
La seule différence entre le mode actif et le mode passif réside dans la différence de trame d'erreur. Cela sous-entend qu'une machine passive ne peut interrompre les transmissions par l'émission de sa trame d'erreur, donc, seule, une machine passive ne peut déclencher d'erreur sur les autres machines du bus. Lorsque le nombre d’erreur devient trop important et que le gestionnaire est déjà en erreur passive, le nœud se met en Bus Off et se déconnecte du bus. Il ne reçoit ni émet à ce moment -là aucune trame circulant sur le bus CAN. Le passage dans les différents modes s’effectue suivant la valeur des compteurs comme le montre la
figure 39.
Un nœud en mode Bus -Off ne pourra se reconnecter qu’après 128 occurrences de 11 bits récessifs sans
erreur. (Une occurrence de 11 bits récessifs : ACK Delimiter + Fin de trame + Inter trame).
Le recouvrement des erreurs est assuré par la retransmission automatique de la trame incriminée jusqu'à ce que l’émission de cette trame s’effec tue sans erreur. La validité du message est acquise s’il n’y a aucune erreur depuis le SOF (Start Of Frame) jusqu'à la fin de d e trame. Si l’émetteur n’arrive pas à émettre sa trame correctement, il essaye de nouveau de l’émettre jusqu'à ce que son compteur d’erreur passe en mode d’erreur passive. Le temps de recouvrement (temps entre en tre le moment où une erreur est détectée d étectée et le moment où redémarre la transmission d’une nouvelle trame) est au maximum égal au temps de transmission de 29 bits pour CAN 2.0A et 31 bits pour CAN 2.0B, dans le cas où il n’y a pas d’autres erreurs détectées. Si l’émetteur n’arrive pas à émettre sa trame correctement, il essaye de nouveau de l’émettre jusqu'à ce que son compteur d’erreur passe en mode d’erreur passive.
Par construction, la trame d'erreur brise la règle du bit-stuffing puisque l'on a quoi qu'il arrive les 6 bits du drapeau d'erreur sont identiques. Lorsqu'un nœud émet une trame d'erreur, tous les autres nœuds détectent
donc une erreur de type « Stuff error » et se mettent à envoyer également une trame d'erreur. Dans le cas de trames d'erreurs actives, le nombre de bits dominants d'affilée ne doit pas dépasser 12 bits. Au-delà les nœuds n'ayant pas émis leur trame d'erreur ne doivent pas le faire. Le dernier nœud à émettre fournit le délimiteur (8 bits récessifs) et met fin à la cacophonie. Le nœud ayant émis la trame incriminée retente alors sa chance. Et ainsi de suite, jusqu'à ce que la trame passe ou qu'un de ses compteurs d'erreur fasse changer de mode d'erreur au nœud.
MULTIPLEXAGE
La couche physique transmet tout élément binaire en provenance de la couche liaison sur un support physique, le médium de communication. La nature du médium peut être : o
le cuivre (paire torsadée blindée ou non, câble coaxial, câble d’alimentation),
o
La fibre optique,
o
Faisceaux hertziens, rayons infrarouges, rayons laser....
Rappelons que le protocole CAN ne définit et n’impose en rien le support physique sur lequel la couche physique CAN peut être implémentée.
Il s'agit d'un des supports de transmission transmiss ion les plus anciens et qui est toujours d'actualité. Une paire torsadé e est composée de deux fils de cuivre mutuellement isolés et enroulés l’un autour de l’autre de façon hélicoïdale afin de limiter les interférences extérieures, en particulier les radiations électromagnétiques perturbatrices, car les ondes rayonnées de chaque torsade s'annulent (alors que deux fils parallèles constituent une antenne rayonnante). Les paires torsadées peuvent servir à transmettre des signaux analogiques ou numériques. La bande passante dépend de l'épaisseur du câble et de la distance à parcourir, mais il est possible dans la plupart des cas d'atteindre plusieurs Mbit/s sur quelques kilomètres. En raison de ses performances satisfaisantes et de son faible coût, la paire torsadée est largement utilisée . La technologie actuelle des fibres optiques permet d'envisager une bande passante dépassant largement 50 000 Gbit/s (50Tbit/s). La recherche s'oriente naturellement vers des ma tériaux et des technologies encore plus performants. La limitation actuelle, d'environ 10 Gbit/s est due à notre incapacité à effectuer plus rapidement la conversion entre les signaux électriques et optiques, bien qu'en laboratoire on atteigne un débit de l'ordre de 100 Gbit/s sur une seule fibre . Un système de transmission optique possède 3 composants : o
Une source de lumière (l'émetteur)
o
Un support de transmission (la fibre)
o
Un détecteur de lumière (le récepteur)
Par convention, une impulsion de lumière indique un bit à 1 et l'absence de lumière, un bit à 0. Le signal lumineux est produit par deux types de sources : o
Les diodes électroluminescentes (LED, Light Emitting Diode)
o
Les diodes Laser.
Des convertisseurs sont nécessaires pour convertir le signal CAN d'un circuit en cuivre vers un conducteur en fibre optique et vice versa. On obtient ainsi une isolation galvanique totale et une protection contre les effets électromagnétiques.
MULTIPLEXAGE
o
o
o
o
o
Bande passante bien plus large Faible atténuation, un répéteur tous les 50 Km environ (un répéteur tous les 5 Km pour le Cuivre) Elle n'est pas affectée par les surtensions électriques, les interférences électromagnétiques, les pannes de courant Insensible à la corrosion chimique due à l'air ambiant. Elle peut convenir à l’environnement industriel agressif Elle est fine et légère (1 000 câbles à paires torsadés d'1 Km de long pèsent environ 8 000 Kg. Deux fibres de même longueur pèsent 100 Kg et offrent une plus grande capacité
o
Coût à l'installation inférieur au final
o
Elle ne supporte pas d'être pliée
o
Elle peut être facilement endommagée
o
o
Les communications bidirectionnelles nécessitent l'usage de deux fibres, ou de deux bandes de fréquences dans une fibre Les interfaces de couplage avec la fibre sont plus chères que celle pour le câble électrique
Techniquement ce sont des systèmes extrêmement compliqués à mettre en œuvre . En effet, le CAN a pour particularité d'imposer l'utilisation d'un lien full duplex car les conditions de transmission sont assez exigeantes ; notamment, le protocole prévoit, lors d'une transmission, des accusés de réception qui doivent êt re intercalés au niveau bit dans la trame en cours. Les time-out sur ces accusés en retour sont très courts. La très grande majorité des liens RF bi directionnels sont Half Duplex par impossibilité d'émettre en même temps qu'une réception. De fait, soit l'on transmet, soit l'on écoute, avec des temps de basculement d'un mode à l'autre non négligeables et supérieurs aux times out CAN. Dès lors, il est très difficile de gérer l'entrelacement d'une trame avec des accusés de réception intermédiaires tel qu'exigé par le CAN. Les problèmes conventionnels de ce genre de transmission sont connus. Il faut que l’ensemble ainsi
constitué soit simultanément émetteur et récepteur, et que les temps de retard pris pour gérer les réceptions, la démodulation, et la détection du coté récepteur, pour la modulation et l’émission du coté émetteur soient compatible avec la durée du bit et ces différents segment temporels, afin de garantir la séquence d’ arbitrage.
Le CAN est un système très ouvert en ce sens que plusieurs produits issus de différents fabricants peuvent cohabiter sur le même réseau. À ce jour, il existe de nombreux composants permettant de réaliser des solutions fonctionnant sous le protocole CAN et capables de véhiculer des trames sur différents média. Les composants CAN peuvent être classés en plusieurs catégories : microcontrôleur « Single Chip Solution » : il s'agit d'un microcontrôleur intégrant (fondu) avec un contrôleur CAN ; contrôleur CAN « Stand Alone » : composant assurant la gestion du protocole CAN destiné à s'interfacer avec un système programmable de type microcontrôleur ;
MULTIPLEXAGE
SLIO (Serial Link Input/Output) : composant autonome intégrant un contrôleur CAN, prévu pour des entrées/sorties déportées, et conçu pour réaliser des fonctions de contrôle à distance de capteurs et d'actionneurs ; « Gate array » ou prédiffusé : il s'agit de circuits intégrés sur mesure incorporant un contrôleur CAN. De nombreux circuits intégrés supportant le protocole CAN sont disponibles sur le marché. La figure 40 représente l’architecture d’un microcontrôleur gèrent tout le protocole CAN à l'aide de deux contrôleur intégré. Pour assurer un environnement Temps réel aux applications évoluant sur ce type de microcontrôleurs, un transfert DMA (Direct Memory Access) y est implanté.
Contrôleur CAN « Stand Alone» ou gestionnaire du protocole (Protocol handler) est l'exemple type du circuit d'interfaçage entre un microcontrôleur avec le bus CAN (hormis le driver de ligne). Sa fonction consiste à gérer les couches dites de « Communication » et « Physique P hysique » du protocole du bus CAN en tant que « Stand Alone Controller ». Ceci comprend les tâches telles que les mécanismes de synchronisation, le traitement des erreurs, l'arbitrage, les conversions parallèles/séries et séries/parallèles. Dans ce cas de figure, le microcontrôleur externe a pour mission d'assurer la couche « applicative » de l’ensemble après la programmation et la configuration du module.
82526 82527 81C90 82C200 SJA 1000 81C91
Intel Siemens NXP (Philips) Siemens
2A 2B 2A 2A 2B 2A
Plcc44 Plcc44 Plcc44 Dil/so28 Plcc28
Les interfaces de lignes «Transceivers » sont nécessaires pour s'adapter aux paramètres physiques pour se connecter aux différents médias de transmission ainsi qu'aux be soins de fiabilité. La figure 41 montre un exemple de câblage reliant deux microcontrôleurs intégrant un contrôleur CAN via deux modules interfaces de lignes.
MULTIPLEXAGE
82C 250 82C 251 82C 252 SI 9200 75LBC 031
Philips Philips Philips Temic Siliconix Texas Inst
dip/so8 dip/so8 dip 16 so 8 dip/so8
Actuellement de nombreux circuits intégrés supportant le protocole CAN de type Serial Linked Input Output (SLIO) sont disponibles sur le marché... Ce type de composant intègre un contrôleur CAN, des pins d’E/S individuellement configurables en mode analogique ou digital. Il est ainsi possible d’avoir des entrées digitales, avec la possibilité d’une transmission automatique d’un message au changement d’état d’une des entrées. La partie intelligente n’est pas intégré e ce qui veut dire que l’on doit prévoir l’ajout d’une unité de traitement externe pour supporter la couche application.
MM 57C36x NS 82C 150 Philips
2BP 2BP
so 20/28 so 28
MULTIPLEXAGE
Dans un véhicule moderne, pratiquement tous les équipements communiquent entre eux, via le CAN. En plus du bus CAN, les véhicules récents sont équipés d’une prise diagnostic, ou prise OB D (On-Board Diagnostics), permettant d’obtenir des informations sur le véhicule, comprenant, entres autres, sa vitesse, son régime moteur, son accélération, mais aussi la position des commandes ou la pression de la rampe d’injection.
La norme OBD (pour On Board Diagnostic) a été mise en place au départ par la CARB (Californian Air Resources Board) pour contrôler les émissions de gaz à effet de serre notamment des véhicules afin d'être en règle avec les lois sur les émissions polluantes. L'arrivée des calculateurs électroniques de gestion du moteur et des capteurs associés a permis aux véhicules de diminuer leurs rejets polluants de s'auto-diagnostiquer et d'en retourner les résultats. Il existe plusieurs normes de l'OBD : o o o o
L'OBD ou OBDI qui standardise le connecteur afin qu'il soit identique pour tous les véhicules. Le protocole de communication lui reste plus ou moins spécifique suivant les marques. L'OBDII est venu en 1996 aux Etats Unis pour spécifier des protocoles communs. L'EOBD pour European OBD reprenant l'OBDII est spécifique pour les véhicules européens.
L’accès direct au bus CAN d’un véhicule n’est généralement pas prévu par le constructeur automobile. En effet, ce bus ne sert pas qu’à des fins de diagnostic, et contrairement à l’OBD, l’accès ne s’y fait pas qu’en lecture. Cela signifie qu’en envoyant nos propres messages dans le bus CAN, il est possible de contrôler tous les périphériques du véhicules qui réagissent à l’émission de messages CAN. Exemple : aujourd’hui, depuis l’introduction des régulateurs/limiteurs de vitesse, la pression sur la pédale d’accélération ne tire plus un câble agissant sur l’injection, mais est encodée sous forme numérique, émise sur le bus CAN, puis reçue par le calculateur qui décidera de l’injection en fonction de la pression reçue. Cela signifie qu’en envoyant nos propres messages CAN sur le bus, nous pouvons leurrer la pression de la pédale d’accélération et faire croire au calculateur d’injection qu’il y a pression sur la pédale d’accélération alors que ce n’est pas le cas. On comprend alors qu’agir sur le CAN n’est pas une opération anodine.
Une voiture comporte généralement plusieurs bus CAN : le bus CAN combiné pour l’affichage de la vitesse, régime moteur, etc. o le bus CAN moteur pour la commande moteur, l’électronique de la colonne de direction, etc. o
MULTIPLEXAGE
o
le bus CAN confort pour le contrôle de la climatisation, du chauffage, de la commande des portes, etc.
Pour accéder à ces bus il faut trouver les connecteurs CAN_H et CAN_L correspondant au bus CAN ciblé. On trouve généralement au moins ces connecteurs derrière l’autoradio (puisque dans les voitures récentes l’autoradio a parfois besoin d’accéder au bus CAN pour, par exemple, permettre le contrôle de la climatisation, ou plus souvent pour afficher des informations de diagnostic). On pourra alors s’y connecter en utilisant par exemple un microcontrôleur équipé d’un contrôleur CAN. Pour le reste, il faut savoir qu’il n’y a rien de standard sur le bus CAN (couche application) a c ontrario de l’OBD, donc on ne saura pas a priori comment interpréter les messages reçus, chaque constructeur définissant
de manière propriétaire chacun de ses messages. Il ne reste plus qu’à faire une phase de reverse engineering pour identifier le rôle de chaque message : par
exemple, ouvrir les portes et voir les trames émises, puis allumer les feux de croisement et voir ce qui passe sur le bus, etc. A terme vous devriez avoir un dictionnaire complet des messages CAN correspondant au modèle de véhicule. CAN est l'un des protocoles de transport de la spécification OBD-II et pris en charge par la plupart des scanners OBD-II.
La prise OBD est celle qui est utilisée par le garagiste lorsqu’il réalise un diagnostic électronique du véhicule. C’est une prise informatique reliée à l’ordinateur de bord, indiquant les codes d’erreurs que le véhicule a éventuellement générés. Chaque voiture est équipée d’une prise OBD, généralement située sous le volant. donn ées émises par l’OBD. A noter Il faudra ensuite utiliser une application informatique pour récupérer les données que la connexion d’un outil de diagnostic OBD est non -intrusive et qu’il n’y a aucun risque à l’utiliser.
J1850 BUS+ (SAE) Masse châssis Masse signal CAN High Ligne K (ISO)
J1850 BUS- (SAE)
CAN Low Ligne L (ISO) + Batterie
MULTIPLEXAGE
Busmaster, est un logiciel mis à disposition librement auprès des utilisateurs par les sociétés Robert Bosch Engineering et Etas, est un outil de conception, de surveillance, d'analyse et de simulation d'un bus CAN, mis en œuvre dans les automobiles mais aussi da ns les systèmes d'automatismes. Ce projet informatique est ouvert aux contributions issues du monde de la recherche ou des industriels pour le faire évoluer. Il est utilisable et modifiable selon les usages traditionnels de la communauté du logiciel libre. Le développement et l'administration du logiciel peuvent donc se faire via des outils libres de droits. Parmi les fonctions présentes au sein de Busmaster, on peut citer :
la création et l'édition de bases de données CAN, le filtrage des messages par matériel ou logiciel, la journalisation et lecture des messages CAN, la création de nœuds programmables au moyen d’un éditeur de fonctions ANSI C et des filtres d’importation pour fichiers de bases de données DBC et programmes CAPL.
affichage de la trace du trafic sur le bus ; affichage du contenu des messages ; report des statistiques et de la charge du bus ; enregistrement des informations pour des évaluations ultérieures ; génération de trames (messages) périodiques ou sur événements ; programmation en langage CAPL (CAN Access Program Language).
La programmation en CAPL (langage compilé) permet d’écrire des scripts. C’est un langage assez proche du « C ». L’évaluation temporelle reste le point fort de l’outil.
CANopen est une couche applicative (couche 7 du modèle du modèle OSI), OSI), originellement développé pour les Bus les Bus de terrain du type CAN (Controller area network) network) fonctionnant en temps réel. Il est utilisé dans de nombreux domaines : automobile, agricole, industriel (ascenseurs, escaliers roulants, motion control) et médical (rayons X, salles d'opérations. CANopen est normalisé EN 50325-4. Il est également publié par l'organisation CAN In Automation sous le nom de CiA DS301. CANopen est une reprise de la couche applicative CAL développée par Philips Medical Systems ; il reprend les services et protocoles de gestion de bus et de messages de la couche CAL tout en définissant le contenu des messages et en intégrant la notion de système distribué. Un élément maître du réseau coordonne les éléments esclaves. La vitesse de transmission peut atteindre 1 Mbit/s. Un équipement CANopen est vu de l’extérieur comme un dictionnaire d’objets structurés, qui fait l’interface entre le réseau et les données internes de l’équipement.
Chaque équipement CANopen connecté sur le réseau doit avoir une adresse unique (NodeId), comprise entre 1 et 127. Chaque équipement doit également être configuré pour dialoguer au même débit. Ces réglages sont faits soit par l’intermédiaire de roues codeuses ou par DIP switches sur l’équipement, soit par l’intermédiaire d’un logiciel, ou encore, si l’équipement le permet, via le réseau grâce aux services LSS (Layer Setting Services).
Pour plus de détail voir : Tutorial : Tutorial -> ->
:
http://www.agilicom.fr/tutorial_zoom.php?id=CANopen#Historique.. http://www.agilicom.fr/tutorial_zoom.php?id=CANopen#Historique
MULTIPLEXAGE
- Réseaux et télécoms Cours et exercices corrigés [Claude Servin] – DUNOD -2003 - Réseaux de communication pour système embarqués [Dominique Paret] 2 Paret] 2 Edition –DUNOD- 2014 - Le bus CAN (Controller Area Network), [Dominique Paret] Edition Paret] Edition –DUNOD- 1996 - Réseaux Multiplexés pour systèmes embarqués, [Dominique Paret] Editions Paret] Editions DUNOD. 2005.
http://www.abmecatronique.com/automobile-et-mecatronique-evolution-parallele_6214/ http://www.agilicom.fr/tutorial_zoom.php?id=CANopen#Historique.. http://www.agilicom.fr/tutorial_zoom.php?id=CANopen#Historique http://www.agilicom.fr/tutorial_zoom.php?id=CANopen#Historique.. http://www.agilicom.fr/tutorial_zoom.php?id=CANopen#Historique https://learn.sparkfun.com/tutorials/getting-started-with-obd-ii?_ga=1.41995043.78040503.1475082696 https://x0r.fr/blog/39