Vous êtes sur la page 1sur 52

Réalisé Par: EL KHAZRAJI NABIL Encadré Par Mr : A.

MOUHSEN

TIGHAZOUANE YASSINE
Depuis les années 1960 la longueur des câbles utilisés
dans l’automobile ne cesse de croître ainsi que Le nombre des
connexions. La fiabilité et la sécurité sont menacés.

La société BOSCH développe dès le début des années 1980


une solution de multiplexage des informations circulant à bord de la
voiture. Le bus CAN apparaîtra et sera normalisé dans les années
qui suivent (dès 1983).
Les composants CAN se démocratisent et investissent d’autres
secteurs de l’industrie (médical, produits numériques, systèmes
électrotechnique…).
Il met en application une approche connue sous le nom de
multiplexage, et qui consiste à raccorder à un même câble (un
bus) un grand nombre de calculateurs 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). 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).
Le modèle OSI :

Afin de normaliser les protocoles, l’International


Standard Organisation (ISO) a développé le modèle
Open System Interconnections (OSI), qui permet
d’identifier et de séparer les différentes fonctions
d’un système de communication.

Ce modèle divise en sept couches les fonctions d’un


système de communication. Cependant il n’est pas
indispensable de disposer de toutes les couches dans
un système : selon les fonctionnalités requises,
certaines couches intermédiaires sont inutiles.
UTILISATEUR La couche physique ou transmission
SE
des bits
7 application Réalise la transmission des éléments
6 présentation binaires constitutifs des trames sur le
5 session support suivant des caractéristiques
physiques, électriques, optiques et
mécaniques définies par des normes.
4 transport On lui associe les notions de
3 réseau directionnalité (mono- ou bi-), de
2 liaison temps de propagation, de valeurs pour
1 physique l’état haut, l’état bas.
La couche de liaison des données ou
niveau trame

UTILISATEUR La couche liaison est subdivisée en deux


SE sous-couches. La sous-couche LLC
(Logical Link Control) effectue :
7 application le filtrage des messages,
6 présentation la notification des surcharges
(overload),
5 session la procédure de recouvrement des
erreurs.
La sous-couche MAC (Medium Access
4 transport Control), qui est le cœur du protocole CAN,
3 réseau effectue :
2 liaison la mise en trame du message,
l'arbitrage,
1 physique
l'acquittement,
la détection des erreurs,
la signalisation des erreurs.
Le bus CAN (Control Area Network) est un bus de communication série,
principalement conçu pour mettre en réseau diverses cartes électroniques.
Il est utilisé dans l’automobile pour faire dialoguer les divers systèmes de
contrôle ou de commande : ABS, système de freinage, de suspension etc...
La Diffusion d’information

Dans un protocole CAN, tout les périphériques sont


au même niveau (pas de relation maitre-esclave).

Chaque station connectée au réseau écoute les


trames transmises par les stations émettrices et
ensuite chaque nœud décide quoi faire du
message, s’il doit y répondre ou non.
Le NRZ : bits dominants et récessifs

La succession de bits transitant sur le bus est codé


avec la méthode du NRZ (Non Return To Zéro).

Pendant la durée totale du bit, le niveau de tension de


la ligne est maintenu, c’est à dire que pendant toute
la durée durant laquelle un bit est généré, sa valeur
reste constante qu’elle soit dominante ou récessive.

0 1 1 0 1 0 0
dominant récessif récessif dominant récessif dominant dominant
Longueur du Bus et Débit

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
Le bit stuffing

Une des caractéristiques du codage NRZ est que le niveau


du bit est maintenu pendant toute sa durée.
Cela pose des problèmes de fiabilité si un grand nombre de
bits identiques se succèdent.
La technique du Bit Stuffing impose au transmetteur
d’ajouter automatiquement un bit de valeur opposée lorsqu’il
détecte 5 bits consécutifs dans les valeurs à transmettre.
Trame à l'émission avant la mise en place des bits de stuffing

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Trame avec bits de stuffing (S)

1 2 3 4 5 6 7 S 8 9 10 11 12 13 14 15 16 17 18 19 S 20 21 22 23 24
Le bit timing

On définit la plus petite base de temps reconnue sur


un bus CAN comme étant le Time Quantum.

Cette base de temps est une fraction de l’horloge de


l’oscillateur du bus. Un bit dure entre 8 et 25
quantum.

Horloge

Quantum

Horloge drédivisée

Durée d'un bit (bit time)


Une trame de données se compose de 7 champs différents :
Le début de trame ou SOF (Start Of Frame) matérialisé par 1 bit
dominant.
Le champ d'arbitrage (identificateur) composé de 12 ou 30 bits.
Le champ de commande (ou de contrôle) composé de 6 bits.
Le champ de données composé de 0 à 64 bits (de 0 à 8 octets).
Le champ de CRC composé de 16 bits.
Le champ d'acquittement composé de 2 bits.
La fin de trame ou EOF (End of Frame) matérialisée par 7 bits
récessifs.
Dans un système typique, certains paramètres vont
changer plus rapidement que d'autres.
Ce sera par exemple la vitesse d'un moteur, tandis qu'un
paramètre plus lent pourra être la température de
l'habitacle.
Il est donc naturel que les paramètres qui varient le plus
soient transmis le plus souvent et par conséquent doivent
avoir une plus grande priorité.
Le protocole CAN 2.0 comporte deux spécifications
qui diffèrent uniquement au niveau de la longueur de
l’identificateur.

La version 2.0A définit des identificateurs de 11 bits


(on parle dans ce cas de trame de format standard) et
la version 2.0B des identificateurs de 29 bits (on
parle dans ce cas de trame de format étendu).
Le bit SOF (début de trame de données) est
dominant il 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 flanc avant la
transition du bit de départ.

Identificateur : La longueur de l'identificateur est de


11 bits, les bits sont transmis dans l'ordre de ID_10 à
ID_0 (le moins significatif est ID_0).

Le bit RTR : Lors d'une trame de requète, le bit de


remote transmission request (RTR) doit être
dominant.
Champ de
Champ d'arbitrage Champ de commande
données

Bits de Data Lengh Code


réserve
DL DL DL DL
R0 R1
C3 C2 C1 C0

Le bit de poids fort est utilisé pour différencier le type de


trame :
Dans le cas d'une trame standard (sur 11 bits), le bit de poids
fort est dominant.

Dans le cas d'une trame étendue (sur 29 bits), le bit de poids


fort est récessif.
Bits DLC :
Les 4 derniers bits du champ de commande (champ DLC -
Data Length Code) indiquent le nombre d'octets qui seront
contenus dans le champ de données.

Nombre DLC DLC DLC DLC


d'octet 3 2 1 0
0 d d d d
1 d d d r
2 d d r d
3 d d r r
4 d r d d
5 d r d r
6 d r r d
7 d r r r
8 r d d d
Le champ de données est l'endroit où se trouvent les
données utiles transmises.

Il peut être composé de 0 octet minimum à 8 octets


maximum transmis avec le MSB (Most Significant Bit) en
tête.

Champ de Champ de données Champ de


commande 0 à 8 octets CRC

M L
S S
B B

1 octet
Le CRC est calculé à partir de l'ensemble des
champs transmis jusque là (c'est-à-dire le SOF, le
champ d'arbitrage, le champ de commande et le
champ de données)

Il permet de vérifier l'intégrité des données


transmises.

Champ de Champ
Champ de CRC d'acquittement
données ou de
commande

Séquence de CRC 15 bits Délimiteur


de CRC
Il est composé de 2 bits, l'ACK Slot et le ACK Délimiter (1 bit récessif).
Un nœud en train de transmettre envoie un bit récessif pour le ACK
Slot.
Un nœud ayant reçu correctement un message en informe le
transmetteur en envoyant un bit dominant pendant le ACK Slot : il
acquitte le message.

Champ
Champ de CRC d'acquittement Fin de trame

Délimiteur de
ACK-Slot ACK
La trame de donnée se termine par un drapeau formé
par une séquence de 7 bits récessifs, ce qui, dépasse
de deux bits la largeur de la norme de bit stuffing.

Ce champ a une structure fixe et les logiques de codage


(à l'émission) et de décodage (aux réceptions) le bit
stuffing est désactivé pendant la séquence du champ de
fin de trame.
Il se peut aussi qu'un nœud ait besoin
d'information d'un certain type dont il ne dispose
pas .
dans ce cas il demande une donnée à un
autre nœud en envoyant à celui-ci une trame de
requête .

Espace Espace
inter Trame de requête de données inter
trame trame
Nb de bits 1 11 1 6 0à8 15 111 7 3
octets
Fin de
Identificateur Données (optionnel) Séquence de CRC trame
Commande Délimiteur ACK
Début de
Bit de RTR Délimiteur CRC
trame Slot ACK
Comparaison de deux trames avec le même
identificateur, l’une de données l’autre de requête :
la trame de donnée est prioritaire sur la trame de
requête.

Trame standard (donnée/requête), avec des identificateurs identiques


Récessif
Noeud A SOF ID10 ID9 ID8 ID7 ID6 ID5 ID4 ID3 ID2 ID1 ID0 RTR
(trame de
donnée) Dominant

Récessif
Noeud B SOF ID10 ID9 ID8 ID7 ID6 ID4 ID3 ID2 ID1 ID0 RTR
ID5
(trame de
requête) Dominant

Le noeud B perd l'arbitrage, le noeud A prend le bus


Les trames de requête et de donnée sont séparées des trames
précédentes de quelques types qu'elles soient par un champ de bits
appelé interframe space.
L'interframe space se compose de deux ou trois champs selon les
cas. Ce sont :
le champ de bits intermission
le champ de bits de bus idle (bus libre),
d'un champ de bits de suspend transmission, pour les stations en
error passive qui ont envoyé un message d’erreur.
Trame Espace intertrame Trame

Intermission Bus libre


Intertrame "erreur active"

Trame Espace intertrame Trame

Suspension
Intermission transmission Bus libre
Intertrame "erreur passive"
La trame de surcharge peut être utilisée dans 2 cas :
Lorsque le nœud demande un délai avec la réception d'une nouvelle
trame,

Lorsque le nœud détecte un bit dominant pendant une période


d'intertrame (3 bits récessifs entre les trames).

Lorsqu'un nœud émet une trame de surcharge pour demander un délai


(condition n°1), il écrase les 3 bits récessifs de la période d'intertrame, les
autres nœuds détectent la surcharge, et elles émettent elles-mêmes des
trames de surcharge (condition n°2)
Trame de surcharge Intertrame ou
Trame de Flag de surcharge trame de
donnée surcharge

Superposition maximale des Délimiteur de


flags de surcharge surcharge
Types d'erreurs

Erreur de bit :
Chaque fois qu'un nœud émet un bit sur le bus, il relit le bus et
doit retrouver le bit qu'il a écrit.
Si sur l'envoi d'un bit récessif, il relit un bit dominant, c'est que celui-ci
a été altéré.

Erreur de stuffing :

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.
Erreur De CRC :
Si la valeur de CRC calculée par le nœud récepteur est
différente du CRC codé dans la trame par le nœud émetteur, c'est
que la trame a été altérée.

Erreur D’acquittement :
Le transmetteur détecte une erreur d'acquittement lorsqu'il ne reçoit
pas de bit dominant pendant le ACK Slot.

Erreur De Forme :
Une Erreur De Forme est détectée lorsqu'un bit qui devrait être à
une certaine valeur est à une valeur différente (un délimiteur par
exemple).
La trame d’erreur

Les 8 bits du Délimiteur d’erreur donnent l’autorisation aux


nœuds du réseau de reprendre leurs communications.

Trame d'erreur ACTIVE ERROR FLAG


Intertrame ou
Trame de trame de
Flag d'erreur
données surcharge

Superposition maximale des Délimiteur d'erreur


flags d'erreur
Le Confinement d’erreurs est un mécanisme ayant pour but d'être
apte à déterminer si un nœud :
 n'est pas perturbé du tout,
 est peu perturbé,
 est un peu plus gravement perturbé,
 est tellement perturbé qu'il doit passer en bus off

L'une des finalités de ce mécanisme consiste à permettre la


détection des défauts et perturbations du hardware, mais aussi et
surtout à procéder à leur localisation afin de pouvoir intervenir avec
précision.
Chaque nœud possède deux compteurs d'erreur :
un compteur d'erreur de transmission ou « Transmit Error
Counter » (TEC),
un compteur d'erreur de réception ou « Receive Error Counter »
(REC).

Les Compteurs auront pour mission d'enregistrer (compter)


les erreurs se produisant lors de transmissions et de
réceptions.
Mode d'erreur active :
Le Nœud continuera de recevoir et d'émettre normalement dans le
cas où une erreur est détectée, il transmettra un active error flag
pendant la trame d'erreur.

Mode d'erreur passive :

Le Nœud continuera de recevoir et d'émettre normalement mais aussi,


qu'en cas de détection d'erreur, il continuera de transmettre
uniquement des passive error flag pendant la trame d'erreur.

Mode « Bus Off » :

Le Nœud se déconnecte du bus, ses étages de commande (les


drivers) doivent être électroniquement déconnectés du bus.
"Normal Mode Request" et 128 occurences de
11 bits successifs/recessifs
REC > 127 ou
TEC > 127
Erreur Erreur TEC > 255
Reset et Bus "OFF"
configuration active passive
REC < 128
ou TEC < 128

Le protocole autorise un nœud bus off à redevenir error active (en


ayant remis tous ses compteurs d'erreurs à zéro) après que celui-
ci ait observé, sans erreur sur le bus, 128 occurrences de 11 bits
récessifs .
Pour réaliser un périphérique CAN nous avons donc besoin
d’un :
Transceiver CAN pour adapter les signaux sur le bus
Un contrôleur CAN pour gérer les règles d’émission et
de la réception
un microcontrôleur
l’application est un système permettant à
un microcontrôleur PIC18F458 de
récupérer les images de la tension et du
courant fournis par des panneaux
solaires.

Les panneaux étant au préalable


raccordés à deux modules MPPT, le
microcontrôleur récupère les informations
sur ceux-ci via une communication par
bus CAN.
Un MPPT, de l'anglais Maximum
Power Point Tracking est Un
contrôleur qui permet de piloter le
convertisseur statique reliant la charge
(une batterie par exemple) et le
panneau photovoltaïque de manière à
fournir en permanence le maximum de
puissance à la charge , il peut la
recharger beaucoup plus vite en
optimisant les caractéristiques de
tension et de courant du module et de
la batterie.