Vous êtes sur la page 1sur 30

Introduction aux Protocoles

de communication :
Le bus CAN
(control Area Network)

Division - Name - Date - Language 1


Protocole CAN : Controller Area Network
Prsentation

Le CAN a t lanc en 1990 pour rpondre aux besoins de l'industrie automobile


devant la monte de l'lectronique embarque.

En 2005 une voiture moyenne comporte une centaine de microcontrleurs.

Pour viter les 2 kms de cblage d'une grosse voiture actuelle, soit 100 kg de
cuivre, il fallait dfinir un bus srie simplifiant normment l'intgration des fils dans
le chssis.

Division - Name - Date - Language 2


Protocole CAN : Controller Area Network
Prsentation

En pratique, il y a trois bus CAN diffrents dans une voiture, des dbits diffrents :

un bus trs rapide pour grer la scurit (freinage, ABS, dtection chocs, airbags...) ;

un bus vitesse moyenne pour grer le moteur (commandes et capteurs) ;

un bus lent pour grer tous les accessoires (lampes, moteurs dasservissements,
boutons...).

Division - Name - Date - Language 3


Protocole CAN : Controller Area Network
Prsentation

Il existe sous deux versions :

CAN2.0A : trame standard identificateur de 11 bits (CAN standard) ;

CAN2.0B : trame plus longue avec identificateur sur 29 bits (CAN tendu).

Il existe galement deux types diffrencis par leur dbit :


le CAN Low Speed (jusqu 125 kbits/s);
le CAN High Speed. (jusqu 1Mbits/s)

Division - Name - Date - Language 4


Protocole CAN : Controller Area Network
Principe de larbitrage

Le procd d'attribution du bus est bas sur le principe de "l'arbitrage bit bit", selon
lequel les nuds en comptition, mettant simultanment sur le bus, comparent bit bit
l'identificateur de leur message avec celui des messages concurrents. Les stations de
priorit moins leve perdront la comptition face celle qui a la priorit la plus leve.
Les stations sont cbles sur le bus par le principe du "ET cbl". En cas de conflit c'est
dire mission simultane, la valeur 0 crase la valeur 1.

Division - Name - Date - Language 5


Protocole CAN : Controller Area Network
Principe de larbitrage
notion darbitrage
Il peut arriver que 2 nuds (ou plus) mettent simultanment une trame sur
le bus

Au dbut dmission pas de conflit, car le champ de dbut de trame est


identique

Mais ensuite il va falloir dterminer laquelle des trames est prioritaire sur
les autres, elle sera la seule transmise.

Arbitrage bit bit (niveaux Rcessif / Dominant)

bit 0 = Dominant bit 1 = Rcessif

Un niveau Dominant l'emporte toujours sur un niveau Rcessif

Division - Name - Date - Language 6


Protocole CAN : Controller Area Network
Principe de larbitrage
Dans l'exemple ci-dessus, trois stations mettent simultanment :
le nud 2 perd la comptition puis le nud 1 ;
seule le nud (station) 3 pourra transmettre.

Division - Name - Date - Language 7


Protocole CAN : Controller Area Network
Les signaux du bus CAN

La transmission des donnes est effectue sur une paire filaire diffrentielle. La ligne est
donc constitue de deux fils. Et les niveaux logiques (rcessifs et dominants) sont
obtenus par la diffrence de potentiel entre les deux voies CAN L et CAN H.

Division - Name - Date - Language 8


Protocole CAN : Controller Area Network
Les signaux du bus CAN
La connexion sur le bus

Micro- Micro-
Ports E/S
contrleur contrleur
avec
et
gestionnaire
Gestionnaire gestionnaire
de protocole
de protocole de protocole
Rx Tx Rx Tx Rx Tx
Interface Interface Interface
CAN - H

120 Bus physique 120


CAN - L

Le bus srie est une paire diffrentielle connecte sur des rsistances 120
ou des capacits de 30 pF rsistant aux perturbations

Division - Name - Date - Language 9


Protocole CAN : Controller Area Network
Les signaux du bus CAN
Les niveaux de tension sur CANL et
CANH dpendent du type Low Speed ou
High Speed du bus.

Ces niveaux de tension correspondent un codage dit NRZ (No Return to Zero : il
ny a jamais de courant nul sur la ligne. La masse nest plus utilise et les niveaux
logiques correspondent 2 niveaux de tensions distincts).

Division - Name - Date - Language 10


Protocole CAN : Controller Area Network
Les signaux du bus CAN
Les niveaux de tension sur CANL et
CANH dpendent du type Low Speed ou
High Speed du bus.

Ces niveaux de tension correspondent un codage dit NRZ (No Return to Zero : il
ny a jamais de courant nul sur la ligne. La masse nest plus utilise et les niveaux
logiques correspondent 2 niveaux de tensions distincts).

Division - Name - Date - Language 11


Protocole CAN : Controller Area Network
Les signaux du bus CAN
Caractristiques physiques du Bus : rsum

Division - Name - Date - Language 12


Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Structure de trame
Dbut : symbole indiquant le dbut d'une trame ; les horloges internes des rcepteurs se
calent sur celle de lmetteur

Identificateur : champ d'identification de la trame qui sert identifier le contenu du message


(ex : rgime moteur) et parfois les destinataires

Com. : champ de commande qui annonce le nbre doctets du champ de donnes pour le CAN

Informations : champ contenant les donnes transmettre (exemple : INFORMATION


REGIME MOTEUR envoye par le botier gestion moteur)

Division - Name - Date - Language 13


Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Structure de trame
Contrle : champ de contrle de la cohrence de la trame (lmetteur calcule un code en
fonction des donnes transmises ; les rcepteurs font le mme calcul et comparent : si il y a
une diffrence, la trame ne sera pas acquitte)

Ack : champ accus de rception si aucune erreur dtecte en contrle

Fin : symbole indiquant la fin de la trame

Sparateur de trame : un certain nombre de bits constituent un espace entre 2 trames

Division - Name - Date - Language 14


Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Structure de trame

Division - Name - Date - Language 15


Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Principe de fonctionnement du bus : Synchronisation dhorloge

Pour que le message soit bien transmis, les horloges de lmetteur et du rcepteur ne
doivent pas avoir de dcalage. Pour cela il suffit de re-synchroniser rgulirement
lhorloge du rcepteur sur celle de lmetteur

Le principe consiste effectuer un bourrage de bit inverse : mthode de bit stuffing

Aprs 5 bits de mme niveau, un bit (sans signification) de niveau inverse est ajout

Le rcepteur reconnat ces bits stuffing, cale son horloge, les supprime, et reconstitue
le message initial

La vitesse de transmission CAN est exprime en bits/s. Le dbit rel des infos ne doit
pas tenir compte de ces bits stuffing.

Division - Name - Date - Language 16


Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Principe de fonctionnement du bus : Synchronisation dhorloge

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

Donnes

transmettre
Donnes
transmise
sur le bus

"bit de bourrage"
Division - Name - Date - Language 17
Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Principe de fonctionnement du bus : Synchronisation dhorloge

Le bit stuffing

Division - Name - Date - Language 18


Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Principe de fonctionnement du bus : Structure de trame

Il existe plusieurs format de trames :


Trame de donnes (data frame)

Trame de requte (remote frame)

Trame de gestion derreur (error frame)

Trame de surcharge (overload frame)

Espace entre trame (inter-frame space)

Division - Name - Date - Language 19


Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Principe de fonctionnement du bus : Trame de donne
Une trame de donnes se dcompose en 7 champs diffrents :
le dbut de trame SOF (Start Of Frame), 1 bit dominant.

le champ darbitrage, 12 bits (identificateur).

le champ de contrle, 6 bits (Commandes).

le champ de donnes, 0 64 bits(informations).

le champ de CRC (Cyclic Redundancy Code), 16 bits (contrle).

le champ dacquittement (Acknoledge), 2 bits.

le champ de fin de trame EOF (End Of Frame), 7 bits rcessifs.

Division - Name - Date - Language 20


Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Principe de fonctionnement du bus : Trame de donne

Dbut de trame Champs de commande Champs de CRC Fin de trame

Niveau rcessif

1 11 1 1 1 4 0 - 64 15 1 1 1 7

Niveau dominant

Champs d arbitrage Champs de donnes

Espace intertrame

Division - Name - Date - Language 21


Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Principe de fonctionnement du bus : Trame de donne

Le dbut de trame SOF (Start Of Frame), 1 bit dominant ; la ligne tant prcdemment
au repos.

Division - Name - Date - Language 22


Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Principe de fonctionnement du bus : Trame de donne

Compose de 12 bits (zone d'identification de la trame (11 bits + RTR) :

les 11 premiers indiquent lidentit du contenu du message, et servent galement


larbitrage (gestion des priorits)

bit RTR (Remote Transmission Request) : dtermine s'il s'agit d'une trame de donnes (ex :
rgime moteur) ou d'une trame de demande de message (ex : demande de T eau). Le bit
0 (dominant) pour une trame de donnes et le bit 1 (rcessif) pour une trame de demande.

Division - Name - Date - Language 23


Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Principe de fonctionnement du bus : Trame de donne

Champ de commande constitu de 6 bits :


les 2 premiers serviront pour une ventuelle volution du protocole (bits de rserve) ;

les 4 derniers permettent de coder le nombre doctets du champ de donnes .

Division - Name - Date - Language 24


Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Principe de fonctionnement du bus : Trame de donne

Ce champ contient de 0 8 octets de donnes (64 bits maxi)

Zone CRC (Cyclic Redundancy Code) de 15 bits : Ces bits sont recalculs la rception et
compars aux bits reus. S'il y a une diffrence, une erreur CRC est dclare.

Division - Name - Date - Language 25


Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Principe de fonctionnement du bus : Trame de donne

Zone d'acquittement (ACKnowledge) compos d'un bit l'tat rcessif ainsi qu'un bit
sparateur ACK.

Le premier bit doit tre forc l'tat dominant par les stations ayant bien reu cette trame.

Zone de fin de trame EOF (End Of Frame), 7 bits rcessifs ( ltat 1).

Division - Name - Date - Language 26


Protocole CAN : Controller Area Network
Constitution dune trame en format standard
Principe de fonctionnement du bus : Trame de donne

Zone d'acquittement (ACKnowledge) compos d'un bit l'tat rcessif ainsi qu'un bit
sparateur ACK.

Le premier bit doit tre forc l'tat dominant par les stations ayant bien reu cette trame.

Zone de fin de trame EOF (End Of Frame), 7 bits rcessifs ( ltat 1).

Remarque :
3 bits ltat 1 sparent obligatoirement 2 trames conscutives
108 bits (sans les stuffing) sont ncessaires pour 64 bits de donnes
Division - Name - Date - Language 27
Protocole CAN : Controller Area Network
Constitution dune trame au format tendu
Principe de fonctionnement du bus : Trame de donne

Champ darbitrage :

SRR (Substitute Remote Request).

IDE (Identifier Extension bit) qui tablit la distinction entre format standard (tat dominant) et
format tendu (tat rcessif).

RTR (Remote Transmission Request) dtermine s'il s'agit d'une trame de donnes ou d'une d'une
trame de demande de message.

Division - Name - Date - Language 28


Protocole CAN : Controller Area Network
Trame de requte (remote frame)

Principe de fonctionnement du bus : Trame de donne

Scnario : demande dinformations dun nud un autre.

Division - Name - Date - Language 29


Protocole CAN : Controller Area Network
Trame de requte (remote frame)

Principe de fonctionnement du bus : Trame de requte

Une trame de requte est constitue de la mme manire quune trame de donnes sauf
que le champ de donnes est vide.

Dans le champ darbitrage, le bit de RTR est rcessif. Par consquent si deux noeuds
mettent chacun une trame possdant le mme identificateur (cest dire quun noeud
met une trame de donnes et lautre une trame de requte), larbitrage sur le bit de RTR
va donner la priorit la trame de donnes.

Les rgles de construction des autres divers champs dune trame de requte sont les
mmes que dans le cas dune trame de donnes.

Division - Name - Date - Language 30

Vous aimerez peut-être aussi