Vous êtes sur la page 1sur 30

Introduction aux Protocoles

de communication :

Le bus CAN

(control Area Network)

Protocole CAN : Controller Area Network

Présentation

Le CAN a été lancé en 1990 pour répondre aux besoins de l'industrie automobile

devant la montée de l'électronique embarquée.

En 2005 une voiture moyenne comporte une centaine de microcontrôleurs.

Pour éviter les 2 kms de câblage d'une grosse voiture actuelle, soit 100 kg de

cuivre, il fallait définir un bus série simplifiant énormément l'intégration des fils dans le châssis.

Protocole CAN : Controller Area Network

Présentation

En pratique, il y a trois bus CAN différents dans une voiture, à des débits différents :

un bus très rapide pour gérer la sécurité (freinage, ABS, détection chocs, airbags

un bus à vitesse moyenne pour gérer le moteur (commandes et capteurs) ;

un bus lent pour gérer tous les accessoires (lampes, moteurs d’asservissements, boutons

pour gérer tous les accessoires (lampes, moteurs d’asservissements, boutons ) ; Division - Name - Date

)

;

Protocole CAN : Controller Area Network

Présentation

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 différenciés par leur débit :

le CAN Low Speed (jusqu’à 125 kbits/s);

le CAN High Speed. (jusqu’à 1Mbits/s)

Speed ( jusqu’à 125 kbits/s) ;  le CAN High Speed . ( jusqu’à 1Mbits/s) 4

4

Division - Name - Date - Language

Protocole CAN : Controller Area Network

Principe de l’arbitrage

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. Les stations de

priorité moins élevée perdront la compétition face à celle qui a la priorité la plus élevée.

Les stations sont câblées sur le bus par le principe du "ET câblé". En cas de conflit c'est à dire émission simultanée, la valeur 0 écrase la valeur 1.

de conflit c'est à dire émission simultanée, la valeur 0 écrase la valeur 1. Division -
de conflit c'est à dire émission simultanée, la valeur 0 écrase la valeur 1. Division -

Protocole CAN : Controller Area Network

Principe de l’arbitrage

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

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

Arbitrage bit à bit (niveaux Récessif / Dominant)

bit à 0 = Dominant

Un niveau Dominant l'emporte toujours sur un niveau Récessif

bit à 1 = Récessif

Protocole CAN : Controller Area Network

Principe de l’arbitrage

Dans l'exemple ci-dessus, trois stations émettent simultanément :

le nœud 2 perd la compétition puis le nœud 1 ;

seule le nœud (station) 3 pourra transmettre.

la compétition puis le nœud 1 ;  seule le nœud (station) 3 pourra transmettre. Division

Division - Name - Date - Language

la compétition puis le nœud 1 ;  seule le nœud (station) 3 pourra transmettre. Division

7

Protocole CAN : Controller Area Network

Les signaux du bus CAN

La transmission des données est effectuée sur une paire filaire différentielle. La ligne est donc constituée de deux fils. Et les niveaux logiques (récessifs et dominants) sont obtenus par la différence de potentiel entre les deux voies CAN L et CAN H.

sont obtenus par la différence de potentiel entre les deux voies CAN L et CAN H.

Division - Name - Date - Language

sont obtenus par la différence de potentiel entre les deux voies CAN L et CAN H.

8

Protocole CAN : Controller Area Network

Les signaux du bus CAN

La connexion sur le bus
La connexion sur le bus
Micro- Micro- Ports E/S contrôleur contrôleur avec et gestionnaire Gestionnaire gestionnaire de protocole de
Micro-
Micro-
Ports E/S
contrôleur
contrôleur
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 série est une paire différentielle connectée sur des résistances 120

ou des capacités de 30 pF résistant aux perturbations

Protocole CAN : Controller Area Network

Les signaux du bus CAN

Les niveaux de tension sur CANL et

CANH dépendent du type Low Speed ou High Speed du bus.

et CANH dépendent du type Low Speed ou High Speed du bus.  Ces niveaux de

Ces niveaux de tension correspondent à un codage dit NRZ (No Return to Zero : il

n’y a jamais de courant nul sur la ligne. La masse n’est plus utilisée et les niveaux

logiques correspondent à 2 niveaux de tensions distincts).

Division - Name - Date - Language

et les niveaux logiques correspondent à 2 niveaux de tensions distincts). Division - Name - Date

10

Protocole CAN : Controller Area Network

Les signaux du bus CAN

Les niveaux de tension sur CANL et

CANH dépendent du type Low Speed ou High Speed du bus.

et CANH dépendent du type Low Speed ou High Speed du bus.  Ces niveaux de

Ces niveaux de tension correspondent à un codage dit NRZ (No Return to Zero : il

n’y a jamais de courant nul sur la ligne. La masse n’est plus utilisée et les niveaux

logiques correspondent à 2 niveaux de tensions distincts).

Protocole CAN : Controller Area Network

Les signaux du bus CAN

Caractéristiques physiques du Bus : résumé

=
=

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Structure de trame

Début : symbole indiquant le début d'une trame ; les horloges internes des récepteurs se « calent » sur celle de l’émetteur

Identificateur : champ d'identification de la trame qui sert à identifier le contenu du message (ex : régime moteur) et parfois les destinataires

Com. : champ de commande qui annonce le nbre d’octets du champ de données pour le CAN

Informations : champ contenant les données à transmettre (exemple : INFORMATION REGIME MOTEUR envoyée par le boîtier gestion moteur)

(exemple : INFORMATION REGIME MOTEUR envoyée par le boîtier gestion moteur) Division - Name - Date

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Structure de trame

Contrôle : champ de contrôle de la cohérence de la trame (l’émetteur calcule un code en fonction des données transmises ; les récepteurs font le même calcul et comparent : si il y a une différence, la trame ne sera pas acquittée)

Ack : champ accusé de réception si aucune erreur détectée en contrôle

Fin : symbole indiquant la fin de la trame

Séparateur de trame : un certain nombre de bits constituent un espace entre 2 trames

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

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Structure de trame

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Principe de fonctionnement du bus : Synchronisation d’horloge

Pour que le message soit bien transmis, les horloges de l’émetteur et du récepteur ne

doivent pas avoir de décalage. Pour cela il suffit de re-synchroniser régulièrement l’horloge du récepteur sur celle de l’émetteur

Le principe consiste à effectuer un bourrage de bit inverse : méthode de bit stuffing

Après 5 bits de même niveau, un bit (sans signification) de niveau inverse est ajouté

Le récepteur reconnaît ces bits stuffing, cale son horloge, les supprime, et reconstitue le message initial

La vitesse de transmission CAN est exprimée en bits/s. Le débit réel des infos ne doit pas tenir compte de ces bits stuffing.

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Principe de fonctionnement du bus : Synchronisation d’horloge

Le bit stuffing 1 2 3 4 5 6 7 8 9 10 11 12
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
Données
à
transmettre
Données
transmise
sur le bus
"bit
de bourrage"

Division - Name - Date - Language

17

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Principe de fonctionnement du bus : Synchronisation d’horloge

Le bit stuffing
Le bit stuffing
Principe de fonctionnement du bus : Synchronisation d’horloge Le bit stuffing Division - Name - Date
Principe de fonctionnement du bus : Synchronisation d’horloge Le bit stuffing Division - Name - Date

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Principe de fonctionnement du bus : Structure de trame

Il existe plusieurs format de trames :

Trame de données (data frame)

Trame de requête (remote frame)

Trame de gestion d’erreur (error frame)

Trame de surcharge (overload frame)

Espace entre trame (inter-frame space)

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Principe de fonctionnement du bus : Trame de donnée

Une trame de données se décompose en 7 champs différents :

le début de trame SOF (Start Of Frame), 1 bit dominant.

le champ d’arbitrage, 12 bits (identificateur).

le champ de contrôle, 6 bits (Commandes).

le champ de données, 0 à 64 bits(informations).

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

le champ d’acquittement (Acknoledge), 2 bits.

le champ de fin de trame EOF (End Of Frame), 7 bits récessifs.

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Principe de fonctionnement du bus : Trame de donnée

Début de trame Champs de commande Champs de CRC Fin de trame Niveau récessif 1
Début de trame
Champs de commande
Champs de CRC
Fin de trame
Niveau récessif
1
11
1
1
1
4
0 - 64
15
1
1
1
7
Niveau dominant
Champs d ’arbitrage
Champs de données
Espace intertrame

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Principe de fonctionnement du bus : Trame de donnée

Principe de fonctionnement du bus : Trame de donnée  Le début de trame SOF (Start

Le début de trame SOF (Start Of Frame), 1 bit dominant ; la ligne étant précédemment au repos.

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Principe de fonctionnement du bus : Trame de donnée

Principe de fonctionnement du bus : Trame de donnée Composée de 12 bits (zone d'identification de

Composée de 12 bits (zone d'identification de la trame (11 bits + RTR) :

les 11 premiers indiquent l’identité du contenu du message, et servent également à l’arbitrage (gestion des priorités)

bit RTR (Remote Transmission Request) : détermine s'il s'agit d'une trame de données (ex :

régime moteur) ou d'une trame de demande de message (ex : demande de T° eau). Le bit à 0 (dominant) pour une trame de données et le bit à 1 (récessif) pour une trame de demande.

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Principe de fonctionnement du bus : Trame de donnée

Principe de fonctionnement du bus : Trame de donnée Champ de commande constitué de 6 bits

Champ de commande constitué de 6 bits :

les 2 premiers serviront pour une éventuelle évolution du protocole (bits de réserve) ;

les 4 derniers permettent de coder le nombre d’octets du champ de données .

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Principe de fonctionnement du bus : Trame de donnée

Principe de fonctionnement du bus : Trame de donnée  Ce champ contient de 0 à

Ce champ contient de 0 à 8 octets de données (64 bits maxi)

champ contient de 0 à 8 octets de données (64 bits maxi)  Zone CRC (Cyclic

Zone CRC (Cyclic Redundancy Code) de 15 bits : Ces bits sont recalculés à la réception et

comparés aux bits reçus. S'il y a une différence, une erreur CRC est déclarée.

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Principe de fonctionnement du bus : Trame de donnée

Principe de fonctionnement du bus : Trame de donnée  Zone d'acquittement (ACKnowledge) composé d'un

Zone d'acquittement (ACKnowledge) composé d'un bit à l'état récessif ainsi qu'un bit

séparateur ACK.

Le premier bit doit être forcé à l'état dominant par les stations ayant bien reçu cette trame.

dominant par les stations ayant bien reçu cette trame.  Zone de fin de trame EOF

Zone de fin de trame EOF (End Of Frame), 7 bits récessifs (à l’état 1).

Protocole CAN : Controller Area Network

Constitution d’une trame en format standard

Principe de fonctionnement du bus : Trame de donnée

Principe de fonctionnement du bus : Trame de donnée  Zone d'acquittement (ACKnowledge) composé d'un

Zone d'acquittement (ACKnowledge) composé d'un bit à l'état récessif ainsi qu'un bit

séparateur ACK.

Le premier bit doit être forcé à l'état dominant par les stations ayant bien reçu cette trame.

dominant par les stations ayant bien reçu cette trame.  Zone de fin de trame EOF

Zone de fin de trame EOF (End Of Frame), 7 bits récessifs (à l’état 1).

Remarque :

3 bits à l’état 1 séparent obligatoirement 2 trames consécutives

108 bits (sans les stuffing) sont nécessaires pour 64 bits de données

108 bits (sans les stuffing) sont nécessaires pour 64 bits de données Division - Name -

Division - Name - Date - Language

27

Protocole CAN : Controller Area Network

Constitution d’une trame au format étendu

Principe de fonctionnement du bus : Trame de donnée

Principe de fonctionnement du bus : Trame de donnée  Champ d’arbitrage :  SRR (Substitute

Champ d’arbitrage :

du bus : Trame de donnée  Champ d’arbitrage :  SRR (Substitute Remote Request). 

SRR (Substitute Remote Request).

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

RTR (Remote Transmission Request) détermine s'il s'agit d'une trame de données ou d'une d'une trame de demande de message.

Protocole CAN : Controller Area Network

Trame de requête (remote frame)

Principe de fonctionnement du bus : Trame de donnée

frame) Principe de fonctionnement du bus : Trame de donnée  Scénario : demande d’informations d’un

Scénario : demande d’informations d’un nœud à un autre.

Protocole CAN : Controller Area Network

Trame de requête (remote frame)

Principe de fonctionnement du bus : Trame de requête

Une trame de requête est constituée de la même manière qu’une trame de données sauf que le champ de données est vide.

Dans le champ d’arbitrage, le bit de RTR est récessif. Par conséquent si deux noeuds émettent chacun une trame possédant le même identificateur (c’est à dire qu’un noeud émet une trame de données et l’autre une trame de requête), l’arbitrage sur le bit de RTR va donner la priorité à la trame de données.

Les règles de construction des autres divers champs d’une trame de requête sont les mêmes que dans le cas d’une trame de données.