20/02/2020 Souhail Rachid 1
20/02/2020 Souhail Rachid 2
• 1983: Début des développements de CAN chez Robert Bosch
• 1985: Spécification V1.0. Premières relations entre Bosch et les fondeurs de
silicium
• 1986: Démarrage des travaux de normalisation ISO
• 1987: Introduction du premier échantillon de circuit intégré CAN
• 1989: Démarrage des premières applications industrielles
• 1991: Spécifications du protocole étendu CAN 2.0 B
• 1991: Premiers véhicules équipés (500 Kb/s) – Mercedes Classe S
• 1992: Création du groupement utilisateur CiA – CAN in Automation
• 1993: Création du groupe OSEK
20/02/2020 Souhail Rachid 3
• 1993: Parution de la première couche applicative (CAL) du CiA
• 1994: Standardisations ISO terminées
• 1994: PSA (Peugeot - Citroën) et Renault entrent à l’OSEK
• 1995: Task Force aux USA avec le SAE-Society of Automotive Engineers
• 1996: CAN est appliqué à la plupart des « contrôles moteurs » automobiles
• 1997: 300 sociétés adhérentes au CiA
• 1997: Tous les grands fondeurs proposent des composants CAN
• 2000: Forte implantation de CAN dans l'automobile avec la couche OSEK
20/02/2020 Souhail Rachid 4
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.
20/02/2020 Souhail Rachid 5
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…).
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).
20/02/2020 Souhail Rachid 6
20/02/2020 Souhail Rachid 7
20/02/2020 Souhail Rachid 8
Il existe deux normes pour la couche physique :
• ISO 11898-2 (2003) : CAN « high-speed » (jusqu'à 1Mbits/s).
• ISO 11898-3 (2006) : CAN « low-speed » (jusqu'à 125kbits/s).
a. Topologie
CAN est un bus de données série bidirectionnel half-duplex dans le
domaine automobile, mais est utilisée en unidirectionnel -simplex- dans
l'aéronautique, pour obtenir un comportement déterministe.
Chaque équipement connecté, appelé « nœud », peut communiquer avec
tous les autres.
20/02/2020 Souhail Rachid 9
Pour un bus de données CAN
« basse vitesse », le nombre de nœuds
est limité à 20. Pour un bus de données
CAN « haute vitesse », il est limité à
30.
b. Support
Chaque nœud est connecté au bus par
l'intermédiaire d'une paire torsadée (blindée
ou non).
Les deux extrémités du bus doivent être
rebouclées par des résistances de 120 Ω
(tolérance entre 108 Ω et 132 Ω).
20/02/2020 Souhail Rachid 10
L'accès au bus de données CAN suit la
technique CSMA/CR (Carrier Sense Multiple Access With Collision Resolution).
La longueur maximale du bus est déterminée par la vitesse utilisée :
Vitesse (Kbits/s) Longeur(m)
1000 30
800 50
500 100
250 250
125 500
62,5 1000
20 2500
10 5000
20/02/2020 Souhail Rachid 11
c. Codage bit - principes
Comment transporter l’horloge et les données sur le même support ?
Horloge
Données
Signal horloge + données
Les 2 grands principes de codage, NRZ et Manchester, permettent de
transporter l’horloge avec les données
NRZ
NRZ : Non Return to Zero
NRZI
NRZI : Non Return to Zero Inverted
Manchester
20/02/2020 Souhail Rachid 12
d. Contraintes du codage
Le codage Manchester transmet l’horloge en permanence mais nécessite une
bande passante double.
C’est le codage NRZ qui est choisi pour CAN.
Le codage NRZ / NRZI est simple, mais attention, il n’y a pas de front de
synchronisation si le code reste constamment à 0 ou à 1.
La station émettrice impose La station réceptrice doit se
l’horloge du signal cale sur l’horloge de l’émetteur
20/02/2020 Souhail Rachid 13
e. Codage bit - Bit Stuffing
20/02/2020 Souhail Rachid 14
f. 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.
20/02/2020 Souhail Rachid 15
Exemple
• La station 2 perd la compétition puis la station 1 ;
• seule la station 3 pourra transmettre.
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 lorsque le bus se libère.
20/02/2020 Souhail Rachid 16
g. Les signaux du bus CAN
Les états logiques et les niveaux électriques utilisés entre les deux lignes de
la paire différentielle pour le CAN L (Low-speed) et le CAN H (High-speed) sont
les suivants :
Etat Etat VCANH- VCANL- VCANH-
VCANH-GND VCANL-GND VCANH-CANL
logique logique GND GND CANL
Récessif ou Récessif ou
1,75 V 3,25 V -1,5 V 2,5 V 2,5 V de 0 à 0,5 V
«1» «1»
Dominant Dominant
4V 1V 3V 3,5 V 1,5 V de 0,9 à 2 V
ou « 0 » ou « 0 »
20/02/2020 Souhail Rachid 17
h. Connecteur
Le brochage sur le bus de données CAN est normalisé et utilise un
connecteur DB-9:
Broche Description
1 (Réservé)
2 CANL
3 Masse
4 (Réservé)
5 Blindage (optionnel)
6 Masse
7 CANH
8 (Réservé)
Alimentation externe
9
(optionnel)
20/02/2020 Souhail Rachid 18
Il existe également 2 standards pour la couche de liaison de données :
• ISO 11898 part A → CAN 2.0A « standard frame format » (identification sur
11bits),
• ISO 11898 part B → CAN 2.0B « extended frame format » (identification sur
29bits).
Il existe plusieurs types de trame :
• Trame de données( data)
• Trame de requête( Remote)
• Trame d'erreur( Error)
• Trame de surcharge( Overload)
20/02/2020 Souhail Rachid 19
a. Trame de données
20/02/2020 Souhail Rachid 20
20/02/2020 Souhail Rachid 21
• Le début de trame SOF (Start Of Frame), 1 bit dominant ; la ligne étant
précédemment au repos.
L’identificateur 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 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.
Champ de commande constitué de 6 bits :
• Les 2 premiers serviront pour une éventuelle évolution du protocole (bits
de réserve) ;
20/02/2020 Souhail Rachid 22
• Les 4 derniers permettent de coder le nombre d’octets du champ de données .
Les données contient de 0 à 8 octets de données (64 bits maxi)
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.
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.
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
20/02/2020 Souhail Rachid 23
b. Trame de requête
• Identique Trame de données sauf RTR
• RTR mis à Récessif
• Longueur données à 0
• DLC ajusté sur le nombre d’octets de données à retourner
• La trame de donnée est prioritaire sur la trame de requête de même identificateur
20/02/2020 Souhail Rachid 24