Sie sind auf Seite 1von 46

République Algérienne Démocratique et Populaire

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Ecole Nationale Supérieure de Technologie

Département

Génie Electrique et Informatique Industrielle

Master : Systèmes Embarqués et Transport

Support de cours

Responsable du cours : Mr. Abdelmalek BELLOULA

Pour toute remarque ou question relative au cours


E-mail : abdelmalek.belloula@enst.dz

Année scolaire 2017-2018


MULTIPLEXAGE

Objectifs du cours :

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 multiplexage, des différentes couches du protocole 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.

Version : 2.01

Volume Horaire 36 H

Prés requis :

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

AM.BELLOULA 1
MULTIPLEXAGE

Table des matières

1- Introduction……………………………………………………………………………………………….…………………………………………...….. 03

2- Multiplexage 04
2-1 Principe du multiplexage 04
2-2 Multiplexage dans l’industrie de l’automobile 06
3- Notion de bus de communication 07
3-1 Modes d'exploitation d'une voie de transmission 07
3-2 Transmission série et parallèle 08
3-3 Transmission synchrone et asynchrone 09
4- Le bus CAN 13
4-1 Vocabulaire et règles de fonctionnement 14
4-2 Principe de fonctionnement 16
4-3 Niveaux de tension 17
4-4 Résistances de terminaison 18
4-5 Le CAN dans le modèle ISO/OSI 19
4-6 Formats des trames 21
4-7 Bit-stuffing 26
4-8 Synchronisation des horloges 26
4-9 Notion d’arbitrage 27
4-10 Longueur du bus et débit 29
4-11 Notion de Nominal Bit Time 31
4-12 Le Time Quantum 31
4-13 Détection et gestion des erreurs 33
4-14 Support de transmission 38
14- Les Composants CAN 39

15- Applications et outils 42

AM.BELLOULA 2
MULTIPLEXAGE

1- Introduction
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 aucun « systè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 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 considé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 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’augmenter 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 et 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.

AM.BELLOULA 3
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).

2- Multiplexage
2-1 Principe du multiplexage
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.

Figure 1 : Principe du multiplexage

Il existe deux techniques principales de multiplexage :


- Temporelle ;
- Fréquentielle.

AM.BELLOULA 4
MULTIPLEXAGE

2-1-1 Le multiplexage fréquentiel :


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 vitesse
les signaux provenant des différentes voies basse vitesse.

Figure 2 : Principe du multiplexage fréquentiel

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 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 transmettre jusqu'à 600 voies téléphoniques multiplexées sur les
supports comme des fils torsadés ou des câbles coaxiaux, et jusqu'à 1800 canaux sur un lien micro-onde.

2-1-2 Le multiplexage temporel :


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.

Figure 3 : Principe du multiplexage temporel

AM.BELLOULA 5
MULTIPLEXAGE

2-2 Multiplexage dans l’industrie de l’automobile


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 Byteflight, 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 important équipementier
automobile Robert a pris la décision de développer en collaboration avec 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 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 entreprises se sont réunies pour 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 constructeurs ont pu réduire
la quantité de câble sur la voiture, tout en proposant toujours plus de fonction au véhicule.

Figure 04 (a) : Véhicule avec 3 ECU Figure 04 (b) : Véhicule avec 3 ECU et un système
de Bus

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, mais il est actuellement utilisé dans la plupart
des industries comme l'aéronautique via des protocoles standardisés.

AM.BELLOULA 6
MULTIPLEXAGE

3- Notion de bus de communication


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

3-1 Modes d'exploitation d'une voie de transmission


Selon le sens des échanges, on distingue 3 modes de transmission, (simplex, half-duplex et full-duplex)
figure 5 :
 La liaison simplex : 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.
 La liaison half-duplex : Caractérise une liaison bidirectionnelle dans 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.
 La liaison full-duplex : 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.

AM.BELLOULA 7
MULTIPLEXAGE

Figure 5 : Modes d'exploitation d'une voie de transmission

3-2 Transmission série et parallèle


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.

Liaison parallèle
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 autre support physique). La figure xx(a)
représente un exemple de liaison parallèle, généralement disponible sur l’ordinateur de bureau.

Figure 6 : Bus constituant le port parallèle d’un PC LPT

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

AM.BELLOULA 8
MULTIPLEXAGE

Liaison série
Dans une liaison série, les données sont envoyées bit par bit sur la voie de transmission. La figure xx montre
l’exemple d’une liaison série reliant un Ordinateur à un périphérique externe disposant du même type de liaison.

Figure 6 : Echange des données sur un port série d’un PC

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.

3-3 Transmission synchrone et asynchrone


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 synchrone, 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 asynchrone, ce qui suppose que la
synchronisation se fera sur la base d’autre mécanisme que nous détaillerons ci-après.

3-3-1 Transmission asynchrone


Cette première méthode consiste à transmettre 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 (synchronisation 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).

Figure 7 : Format de la donnée sérialisée

AM.BELLOULA 9
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 Start D7..D0 Stop ..… Start D7..D0 Stop Start D7..D0 Stop

Nb constant de bits Nb constant de bits Nb constant de bits Nb constant de bits


Espace fixe entre bits Espace fixe entre bits Espace fixe entre bits Espace fixe entre bits
Espace aléatoire entre blocs

Figure 8 : Intervalle de temps séparant les données

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 full-
duplex. 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).

Figure 9 : Echantillonnage des données.

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).

Exemple :
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.

AM.BELLOULA 10
MULTIPLEXAGE

Figure 10 : Exemple d’utilisation d’un Port RS232

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.

Figure 11 : Connecteurs standard RS232


3-3-2 La liaison synchrone
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 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 synchronisation au
niveau caractère.
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.

AM.BELLOULA 11
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 certain 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 de 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.

Exemple :
Une carte SD (« SD » étant le sigle de l'expression en anglais « Secure Digital ») est une carte mémoire
amovible de stockage de données numériques créée en janvier 2000 par une alliance formée entre les industriels
Panasonic, SanDisk et Toshiba.[wikipedia]
Les cartes SD sont utilisées pour le stockage de fichiers dans les appareils photo numériques, les
caméscopes numériques, les systèmes de navigation GPS, les consoles de jeux vidéo, les téléphones mobiles dont
les smartphones, ou encore 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 Stick de Sony. On parle de carte SDHC pour des capacités entre 4 et 32 Go1, et
de carte SDXC au-delà de 32 Go. En 2014, leur capacité s'échelonne jusqu'à 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.

Figure 12 : trame de commande d’une mémoire SD via une SPI

AM.BELLOULA 12
MULTIPLEXAGE

La trame de commande est constituée de 6 octets.

Premier octet : - 2 bits de start «01»


- 6 bits correspondant au numéro de la commande
Les octets 2 à 5 : - Sont les octets qui correspondent à l’argument de la commande si celle-ci en possède.
Dernier octet : - 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

Figure 13 : Interfaçage d’une mémoire SD via le port SPI d’un microcontrôleur

4- Le bus CAN.
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.

AM.BELLOULA 13
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
(Carrier Sense Multiple Acces with Collision Detection and Arbitration Message Priority).

4-1 Vocabulaire et règles de fonctionnement.


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
selon un protocole de communication ;
Valeurs du bus : Le bus peut avoir l’une des deux valeurs logiques complémentaires définies, non pas en
0 et 1 comme d’habitude, mais sous les formes dites de dominante et récessive. Dans le cas d’une
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 information est véhiculée sur le bus à l’aide d’un message (trame de bits) de format
défini mais de longueur variable (et limitée). Dès que le bus est libre (Bus Idle), n’importe quel nœud relié
au réseau peut émettre un nouveau message.
 Routage des informations : Des nœuds peuvent être ajoutés au réseau sans qu’il n’y ait rien à modifier
tant au niveau logiciel que matériel. Chaque message possède un identificateur (Identifier) qui n’indique
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 : Une trame de données (Data Frame) est une trame qui transporte
des données. Une trame de requête (Remote Frame) est émise 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.

AM.BELLOULA 14
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 est qualifié de CSMA/CA (Carrier Sense Multiple Access - Collision
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
(Cyclic Redundancy Check), 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 perturbations
de courtes durées et des dysfonctionnements permanents. Les nœuds considérés comme défectueux
doivent passer en mode Switched Off 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 Sleep mode. 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.

AM.BELLOULA 15
MULTIPLEXAGE

Le tableau 1 résume les principales différences entre les deux types de bus notamment sur les débits
supportés.
Paramètre CAN low speed CAN hight speed
Débit 125 Kb/s 125 /s à 1 Mb/s
Courant de sortie (mode émission) > 1 mA sur 2.2 KΩ 25 à 50 mA sur 60 Ω
CAN H = 4v CAN H - CAN L = 2 V
Niveau dominant
CAN L = 1V
CAN H = 1.75v CAN H - CAN L = 2.5V
Niveau récessif
CAN L = 3.25V
Caractéristique du câble 30 pF entre câbles de ligne 2 x 120 Ω
Tension d’alimentation 5v 5v

Tableau 1 : Principales différences entre les bus CNA H-Speed et CAN L-speed.

4-2 Principe de fonctionnement :


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 :

Figure 14 : 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.

AM.BELLOULA 16
MULTIPLEXAGE

Figure 15 : principe de l’arbitrage bit à bit "ET câblé".

4-3 Niveaux de tension.


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.

Figure 16(a): Low Speed CAN < 125Kbps Figure 16(b): High Speed CAN 125Kbps - 1Mbps

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.

Figure 17 : Altération de la transmission : limitation des effets

AM.BELLOULA 17
MULTIPLEXAGE

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 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 Source parasite


engendré

Signal original

Emetteur Récepteur

Figure 18 : CEM câblage pour bus CAN

4-4 Résistances de terminaison.


Si l’on fait circuler des signaux de tension sur le bus, sans résistance de terminaison de ligne, les signaux
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).

Figure 19(a): Terminaison CAN Low Speed Figure 19(b): Terminaison CAN Hight Speed

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 haute vitesse, une terminaison doit être disposé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 extrémités de la ligne du bus.

AM.BELLOULA 18
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 L -Longueur du bus


Nœud Nœud Nœud l - Longueur de la branche du câble
2 3 n-1 d -Distance entre les nœuds

l
CAN CAN
Nœud Nœud
1 d n
L

Figure 20 : Contraintes sur le câblage pour bus CAN

Longueur maximale du bus CAN


Vitesse du bus Longueur du Longueur de la branche Distance entre
bus (L) du câble (l) les nœuds (d)
1 Mbit/s 40 m 0,3 m 40 m
500 kbits/s 100 m 0,3 m 100 m
100 kbits/s 500 m 0,3 m 500 m
50 kbits/s 1000 m 0,3 m 1000 m

Tableau 2 : longueur maximale et vitesse bus.


Pour plus de détails techniques sur la couche physique CAN, voir l'article de Texas Instruments, Controller
Area Network Physical Layer Requirements.

4-5 Le CAN dans le modèle ISO/OSI.


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 !

Model ISO CAN


7 Application Utilisateur
Donnée 6 Présentation
Couches hautes
5 Session
Vide
Datagramme 4 Transport
Paquet 3 Réseau
Couches matérielles Trame 2 Liaison Protocol
CAN
Bit 1 Physique

Figure 8 : Couches OSI appliquées au CAN

AM.BELLOULA 19
MULTIPLEXAGE

4-5-1 La couche physique :


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.

4-5-2 La couche liaison :


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. La sous-couche LLC (Logical Link Control) et la sous-
couche MAC (Medium Access Control), qui est le cœur du protocole CAN.

La sous-couche LLC effectue :

o le filtrage des messages,


o la notification des surcharges (Overload),
o la procédure de recouvrement des erreurs.

La sous-couche MAC :

o la mise en trame du message,


o l'arbitrage,
o l'acquittement,
o la détection des erreurs,
o la signalisation des erreurs.

4-5-3 La couche réseau :


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'émetteur
vis-à-vis du récepteur.
Cette couche est vide dans le protocole CAN.

AM.BELLOULA 20
MULTIPLEXAGE

4-5-4 La couche transport :


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.

4-5-5 La couche session :


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.

4-5-6 La couche présentation :


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.

4-5-7 La couche application :


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.

4-6- Formats des trames


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 message.

AM.BELLOULA 21
MULTIPLEXAGE

Arbitration Field Control Field Data Field CRC Ac End of Frame Int Bus Idle
k
Identifier ID

11 bits DLC 0-8 Octets CRC

SOF

RTR

IDE

r0
Figure 21 : Format de la trame au Standard (Version2.0 A)

Arbitration Field Control Field Data Field CRC Ac End of Frame Int Bus Idle
k
Identifier ID
SOF

RTR
SRR

IDE

11 bits 18 bits r1 r0 DLC 0-8 Octets CRC

Figure 22 : Format de la trame au Standard (Version2.0 B)

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 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).

4-6-1 Trame de données (Data Frame) :


Les trames de données (Data Frames) sont composées de 7 champs différents détaillées ci-après :
1- le début de trame SOF (Start Of Frame), 1 bit dominant.
2- le champ d’arbitrage (Arbitration Field), 12 bits.
3- le champ de contrôle (Control Field), 6 bits.
4- le champ de données (Data Field), 0 à 64 bits.
5- le champ de CRC (Cyclic Redundancy Code), 16 bits.
6- le champ d’acquittement (Acknoledge), 2 bits.
7- le champ de fin de trame EOF (End Of Frame), 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.

AM.BELLOULA 22
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 dominant dans les Data
Frames et récessif dans les Remote Frames.
- Control Field : Ce champ est composé de 6 bits. Les 2 premiers 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 bits 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.
4-6-Trame de requête (Remote Frame)
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’arbitrage, 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 champ 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).

Remarque :

- 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 :
1- le début de trame SOF (Start Of Frame), 1 bit dominant.
2- le champ d’arbitrage (Arbitration Field), 12 bits.
3- le champ de contrôle (Control Field), 6 bits.
4- le champ de CRC (Cyclic Redundancy Code), 16 bits.
5- le champ d’acquittement (Acknoledge), 2 bits.
6- le champ de fin de trame EOF (EndOf Frame), 7 bits récessifs.

AM.BELLOULA 23
MULTIPLEXAGE

Arbitration Field Control Field Data Field CRC Ac End of Frame Int Bus Idle
k
Identifier ID

11 bits DLC 0 CRC

SOF

RTR

IDE

r0
Figure 27 : Format trame de requête au Standard (Version2.0 A)

- 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 Remote Frames.
- 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ées 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.

4-6-3 Trame de surcharge (Overload Frame) :


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 supplé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 trame 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 un champ contenant des drapeaux de surcharge constitué de 6 bits
o 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.
Trame de surcharge
Trame de données flags de surcharge Inter trame de surcharge

Superposition maximale Délimiteur de


Des flags de surcharge surcharge

Figure 28 : Format d’une trame de surcharge

AM.BELLOULA 24
MULTIPLEXAGE

4-6-4 Trames d’erreurs (Error Frame) :


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 signale 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 Active Error Flag : 6 bits dominants consécutifs, figure 29.
o 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.

Trame d’erreur type (Active Error Flag ) Inter trame


Trame de données Error flags ou trame de surcharge

Superposition maximale Délimiteur


Des flags d’erreur d’erreur

Figure 29 : Format trame d’erreur type Active Error Flag

Trame d’erreur type (Passive Error Flag ) Inter trame


Trame de données Error flags ou trame de surcharge

Superposition maximale Délimiteur


des flags d’erreur d’erreur

Figure 30 : Format trame d’erreur type passive Error Flag

4-6-5 Période de l'inter trame (Inter Frame)


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 pas autorisée. Les gestionnaires de protocole ne
sont autorisés à signaler que les conditions de surcharge.

AM.BELLOULA 25
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).

Trame Espace inter trame Trame

---
Intermission Bus libre

Figure 31 : Format d’inter trame sans trame d’erreur

Trame Espace inter trame Trame

Intermission Suspension transmission Bus libre

Figure 32 : Format d’inter trame avec trame d’erreur

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

Figure 23 : Technique de Bit-Stuffing

AM.BELLOULA 26
MULTIPLEXAGE

4-8 Synchronisation des horloges :


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

Figure 24 : Effet Bit Time sur la synchronisation et la lecture des données

Ce sont les récepteurs qui se calent régulièrement sur l’horloge de l’émetteur pour synchroniser les
horloges :

o En début d’émission de trame sur le bus (le bus passe de l’état de repos à celui d’activité)
o 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.

4-9 Notion d’arbitrage


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.

AM.BELLOULA 27
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).

TX  Dominant Transfer durant TX  Récessif Arbitrage perdu


l’arbitrage
RX  Dominant RX  Dominant

TX  Récessif Transfer durant TX  Dominant Erreur bit


l’arbitrage
RX  Récessif RX  Récessif

Figure 25 : Procédé d’attribution bit à 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

Champ d’arbitrage
Identificateur
SOF

RTR

10 09 08 07 06 05 04 03 02 01 00 Control Field Data Field

Nœud 1

Nœud 2

Nœud 3

Signal sur le Bus

La station 2 perd l’arbitrage La station 1 perd l’arbitrage


d'échantillonnage d'échantillonnage
Figure 26 : Exemple d’arbitrage

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 :

AM.BELLOULA 28
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
4-10 Longueur du bus et débit
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 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 :
l
2𝑡_𝑏𝑢𝑠 = 2 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,

Figure 33 : Evaluation du bit time minimal

AM.BELLOULA 29
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 pour 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.

Figure 34 : Ratio Longueur/Vitesse

Débit Longueur Longueur d'un bit


1 Mbit/s 30 m 1μs
800 kbit/s 50 m 1,25 μ s
500 kbit/s 100 m 2 μs
250 kbit/s 250 m 4 μs
125 kbit/s 500 m 8 μs
62,5 kbit/s 1000 m 16 μs
20 kbit/s 2500 m 50 μ s
10 kbit/s 5000 m 100 μ s

Tableau 3 : Vitesse bus – Longueur – Bit time

AM.BELLOULA 30
MULTIPLEXAGE

4-11 Notion de Nominal Bit Time

La durée d'un bit sur le bus est appelée Nominal Bit Time.

Figure 35: Nominal Bit Time

Composition Nominal Bit Time:


o SYNC_SEG pour Segment de synchronisation : assure la synchronisation des différents
nœuds du bus ; par une transition 0 -> 1 ou 1 ->0
o PROP_SEG pour Segment de propagation : sert à compenser les retards dus à la
propagation du signal sur la ligne.
o PHASE_SEG 1 et 2 pour Segments buffer phase 1 et phase 2 : servent à compenser les
erreurs de phases détectées lors des transitions
o Sample Point pour point d'échantillonnage : position où le nœud échantionne la valeur
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.

4-12 Le Time 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’oscillateur. La période
d’horloge de l’oscillateur est appelée minimum Time Quantum. La valeur du pré-diviseur m 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).

AM.BELLOULA 31
MULTIPLEXAGE

Oscillateur ou horloge MCU


Prédiviseur
- Bud Rate

CAN horloge

tq

CAN bit période

Lecture du bit
Figure 36 : Construction du Time Quantum

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.

Segment Durée en Time Quantum


Synchronisation- SYNC_SEG 1
Propagation - PROP_SEG 1à8
Buffer phase1 - PHASE_SEG1 1à8
Buffer phase1 - PHASE_SEG2 1à8

Tableau 4 : Nombre de Time Quantum possible par segment


de Nominal Bit Time

Figure 37: Time Quantum / segments Nominal Bit Time

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.

AM.BELLOULA 32
MULTIPLEXAGE

4-13 Détection et gestion des erreurs.


Le CAN a été développé pour fonctionner dans des environnements difficiles/agressifs (l’automobile, 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 sont prévues par le
protocole CAN.

4-13 -1 Types d'erreurs


Erreurs au niveau de la couche physique :
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 temps 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.

Au niveau de la couche de la Trame :


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 erreur de CRC Delimiter
o erreur de ACKnowledge Delimiter,
o erreur de End of Frame,
o erreur de Error Delimiter,
o erreur de Overload Delimiter.

AM.BELLOULA 33
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

Figure 38 : Résumé des procédures de détection des erreurs (mode émission/réception)

4-13 -2 Gestion des erreurs


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 Présence d’un bit dominant à la place d’un bit récessif dans le champ d’arbitrage (perte
d’arbitrage) ;
o 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 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. Des recherches ont montré que le taux d’erreurs non détectées par le
protocole CAN est très faible : 1 erreur non détectée pour 1000 années de fonctionnement.

AM.BELLOULA 34
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.

4-13 -3 Détermination du CRC


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. La
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)

4-13 -4 Confinement des erreurs


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 :

AM.BELLOULA 35
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 un nœud reçoit un bit dominant juste après un flag d’erreur.


o un nœud voit un Bit Error tandis qu’il reçoit un flag d’erreur active ou un flag de
surcharge.

o Le compteur de transmission est incrémenté de 8 si :

o un nœud envoie un flag d’erreur, son compteur d’émission s’incrémente de 8, sauf si le


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).
o un nœud détecte un Bit Error tandis qu’il émet un flag d’erreur active ou un flag de
surcharge.

o 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 du 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.

AM.BELLOULA 36
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.

TEC : Transmit Error Counter


Reset
REC : Receive Error Counter

Error 128 occurrences de


- REC >127
Active 11 bits récessifs
- TEC >127
REC < 128
TEC < 128
Bus
Error Off
Passive Active
TEC > 255

Figure 39 : Compteur d'erreur et état d'un nœud

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).

4-13 -5 Recouvrement des erreurs


Le recouvrement des erreurs est assuré par la retransmission automatique de la trame incriminée jusqu'à
ce que l’émission de cette trame s’effectue 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 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 le moment où une erreur est 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.

AM.BELLOULA 37
MULTIPLEXAGE

4-14 Support de transmission


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.

4-14-1 Le cuivre
Il s'agit d'un des supports de transmission 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 (le CAN est limité à 1 Mbit/s).
4-14- La fibre optique
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 maté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 (le CAN est limité à 1 Mbit/s). 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.

AM.BELLOULA 38
MULTIPLEXAGE

4-14- Comparaison entre la fibre optique et le fil de Cuivre

Avantages de la fibre :
o Bande passante bien plus large
o Faible atténuation, un répéteur tous les 50 Km environ (un répéteur tous les 5 Km pour le
Cuivre)
o Elle n'est pas affectée par les surtensions électriques, les interférences électromagnétiques,
les pannes de courant
o Insensible à la corrosion chimique due à l'air ambiant. Elle peut convenir à l’environnement
industriel agressif
o 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

Inconvénients de la fibre :
o Elle ne supporte pas d'être pliée
o Elle peut être facilement endommagée
o Les communications bidirectionnelles nécessitent l'usage de deux fibres, ou de deux bandes
de fréquences dans une fibre
o Les interfaces de couplage avec la fibre sont plus chères que celle pour le câble électrique
4-14-4 Faisceaux hertziens,
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 être 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.

5- Les Composants CAN.


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 ;

AM.BELLOULA 39
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é.

2 Modules CAN

Figure 40 : Microcontrôleur intégrant deux modules CAN

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 » 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.

Type Constructeur CAN Boîtier Boîtier


82526 2A Plcc44
Intel
82527 2B Plcc44
81C90 Siemens 2A Plcc44
82C200 2A
NXP (Philips) Dil/so28
SJA 1000 2B

81C91 Siemens 2A Plcc28

Tableau 5 : Exemple de contrôleur CAN

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 besoins 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.

AM.BELLOULA 40
MULTIPLEXAGE

Figure 41 : Câblage de deux nœuds CAN via deux interfaces de lignes.

Type Constructeur Boîtier


82C 250 Philips dip/so8
82C 251 Philips dip/so8
82C 252 Philips dip 16
SI 9200 Temic Siliconix so 8
75LBC 031 Texas Inst dip/so8

Tableau 6 : Exemple de driver de ligne CAN pour paires différentielles


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.

Type Constructeur CAN Boîtier


MM 57C36x NS 2BP so 20/28
82C 150 Philips 2BP so 28

Tableau 7 : Exemple de CAN de type Serial Linked IO

AM.BELLOULA 41
MULTIPLEXAGE

6- Applications et outils.

Figure 42 : Application et outils pour bus CAN.

Récupération des données internes d’un véhicule


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 OBD (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.
Présentation de l'OBD
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 L'OBD ou OBDI qui standardise le connecteur afin qu'il soit identique pour tous les véhicules.
o Le protocole de communication lui reste plus ou moins spécifique suivant les marques.
o L'OBDII est venu en 1996 aux Etats Unis pour spécifier des protocoles communs.
o L'EOBD pour European OBD reprenant l'OBDII est spécifique pour les véhicules européens.
Connexion au bus CAN
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 :
o 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.

AM.BELLOULA 42
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 contrario 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.

Prise OBD :
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.

Il faudra ensuite utiliser une application informatique pour récupérer les données émises par l’OBD. A noter
que la connexion d’un outil de diagnostic OBD est non-intrusive et qu’il n’y a aucun risque à l’utiliser.

Figure 43 : Prise OBD.

N° de broche Description N° de broche Description


1 9
2 J1850 BUS+ (SAE) 10 J1850 BUS- (SAE)
3 11
4 Masse châssis 12
5 Masse signal 13
6 CAN High 14 CAN Low
7 Ligne K (ISO) 15 Ligne L (ISO)
8 16 + Batterie

Tableau 8 : Correspondance des pins sur la prise OBD-II

AM.BELLOULA 43
MULTIPLEXAGE

Outils
Busmaster
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 dans 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
CANopen est une couche applicative (couche 7 du modèle OSI), originellement développé pour les Bus de
terrain du type CAN (Controller area 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 ->CANopen :


http://www.agilicom.fr/tutorial_zoom.php?id=CANopen#Historique.

AM.BELLOULA 44
MULTIPLEXAGE

Référence :

- 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 Edition –DUNOD- 2014
- Le bus CAN (Controller Area Network), [Dominique Paret] Edition –DUNOD- 1996
- Réseaux Multiplexés pour systèmes embarqués, [Dominique Paret] Editions DUNOD. 2005.

Liens utiles :

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.
https://learn.sparkfun.com/tutorials/getting-started-with-obd-ii?_ga=1.41995043.78040503.1475082696
https://x0r.fr/blog/39

AM.BELLOULA 45