Protocoles de communication automobile: CAN
Protocoles de communication automobile: CAN
communication POUR
AUTOMOBILE: BUS CAN
Année Universitaire : 2022/2023
[Link]@[Link]
1
INTRODUCTION GENERALE
Les fonctions embarquées dans les véhicules incluent des fonctions
critiques pour la sécurité:
l'assistance au freinage, la suspension active, les fonctionnalités de
direction, les sacs gonflables, ….etc.
2
INTRODUCTION GENERALE
Dans l’industrie automobile, une unité de contrôle électronique (ECU)
est un dispositif électronique intégré, essentiellement un ordinateur
numérique, qui lit les signaux provenant de capteurs placés dans
différents endroits et dans différents composants de la voiture et, en
fonction de ces informations, contrôlent diverses unités importantes
du véhicule telles que:
Injection du carburant
3
INTRODUCTION GENERALE
Différents types d’ECU:
ECM (Engine Control Module): L’ECM régule quatre parties
principales des systèmes d’exploitation de votre véhicule : le
rapport air-carburant, le régime au ralenti, le calage variable des
soupapes et le calage de l’allumage.
EBCM (Electronic Brake Control Module) Système doté d’un
moniteur à chaque roue pour détecter les conditions et alimenter
une impulsion électrique dans un ordinateur de bord afin de réduire
le dérapage incontrôlable lors d’une action de freinage rapide.
PCM (Powertrain Control Module) Il s’agit d’une unité de
commande combinée du moteur et de la transmission qui assurera
la gestion et le fonctionnement correct du moteur et de la
transmission à partir d’une seule unité de commande.
VCM (Vehicle Control Module)
BCM (Body Control Module)
4
INTRODUCTION GENERALE
Différents types d’ECU:
ECM (Engine Control Module): L’ECM régule quatre parties
principales des systèmes d’exploitation de votre véhicule : le
rapport air-carburant, le régime au ralenti, le calage variable des
soupapes et le calage de l’allumage.
EBCM (Electronic Brake Control Module) Système doté d’un
moniteur à chaque roue pour détecter les conditions et alimenter
une impulsion électrique dans un ordinateur de bord afin de réduire
le dérapage incontrôlable lors d’une action de freinage rapide.
PCM (Powertrain Control Module) Il s’agit d’une unité de
commande combinée du moteur et de la transmission qui assurera
la gestion et le fonctionnement correct du moteur et de la
transmission à partir d’une seule unité de commande.
VCM (Vehicle Control Module)
BCM (Body Control Module)
5
INTRODUCTION GENERALE
Différents types d’ECU:
6
INTRODUCTION GENERALE
Dans un système automobile, on trouve plusieurs sous-systèmes. On
distingue ici 5 types de tels sous-systèmes automobiles :
systèmes de châssis
systèmes d’airbag
groupe motopropulseur
7
INTRODUCTION GENERALE
Tous les sous-systèmes automobiles étaient initialement connectés par
des câbles dédiés. La direction et le freinage ont été effectués à l'aide
de systèmes hydrauliques et mécaniques. Cependant, à mesure que les
systèmes automobiles se complexifiaient, de nouvelles solutions
d'ingénierie devaient être trouvées. L’augmentation du nombre de sous
systèmes automobiles a conduit à une augmentation considérable de
câblage nécessaire à leur interconnexion. Afin de réduire la quantité de
câblage, le concept de bus de terrain a été introduit (Notion du
multiplexage).
8
INTRODUCTION GENERALE
Un bus de terrain est un bus série permettant l'échange de messages
entre des nœuds connectés au bus. À l'aide d'un bus de terrain,
plusieurs câbles précédemment dédiés sont remplacés par un bus
série interconnectant les calculateurs, ce qui réduit le poids, la
complexité et le coût du système automobile.
Pour intégrer les bus de terrain dans les sous systèmes automobiles,
les constructeurs automobiles ont initialement développé leurs
propres technologies de bus de terrain. Cependant, comme de
nombreux vendeurs d'automobiles partagent des sous traitants, il était
nécessaire de convenir d’un bus de terrain normalisé. L'une des
technologies normalisées au début des années 90 était le Controller
Area Network (CAN), qui devient rapidement le bus de terrain le plus
utilisé dans l'industrie automobile.
9
INTRODUCTION GENERALE
Les véhicules modernes utilisent différents protocoles de réseau dans
différents domaines, le choix étant déterminé par des facteurs tels que
les exigences fonctionnelles du domaine, la criticité, le coût, etc.
10
INTRODUCTION GENERALE
Les véhicules modernes utilisent différents protocoles de réseau dans
différents domaines, le choix étant déterminé par des facteurs tels que
les exigences fonctionnelles du domaine, la criticité, le coût, etc.
11
INTRODUCTION GENERALE
12
BUS CAN
(control Area Network)
13
INTRODUCTION BUS CAN
Depuis les années 1960 la longueur de câble utilisée dans l'automobile
ne cesse de croître pour dépasser 2000 m en 1995. Le nombre des
connexions atteint 1800 à cette même date. La fiabilité et la sécurité
sont menacés.
Les normes en matière de pollution et de consommation d'énergie
obligent les constructeurs à multiplier les capteurs et actionneurs
intelligents dans leur véhicules accélérant ce processus de
multiplication des câbles et connexion depuis une vingtaine d 'années.
Le besoin de sécurité accrue (ABS, ESP, AIR-BAG…) et la demande
de confort (mémorisation des réglages de conduite, climatisation
régulée par passager, système de navigation…) ne font que renforcer
cette tendance.
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).
14
Origine du bus CAN
15
APPLICATIONS BUS CAN
Les composants CAN se démocratisent et investissent d'autres secteurs de
l'électronique embarqué (médical, produits numériques, systèmes
électrotechnique… etc).
16
Propriétés BUS CAN
Le bus CAN (Control Area Network) est un moyen de communication série
qui supporte des systèmes embarqués temps réel avec un haut niveau de
fiabilité. La structure du protocole du bus CAN possède implicitement les
principales Propriétés suivantes :
Hiérarchisation des messages.
Souplesse de configuration.
17
Structures d’un réseau
Réseau en Etoile
Réseau en anneaux
Réseau en bus
18
Les Bus de terrain
BUS :
Au sens informatique industrielle, conducteur ou ensemble de
conducteurs communs à plusieurs circuits permettant l’échange de
données entre deux liaisons communes .
TERRAIN :
Indique quelque chose de limité ou délimité géographiquement
(usine, atelier, voiture, avion...)
RESEAU:
Ensemble de lignes de communication qui desservent une même
unité géographique avec un niveau d’abstraction supérieur (gestion,
diagnostics, maintenance...).
19
Les Bus de terrain
Définition:
Les réseaux de terrain permettent l’interconnexion entre plusieurs
entités d’un même système. Cette communication se déroule sur
une zone limitée et sur laquelle on désire une réduction maximale
de la longueur des liaisons entre les différents éléments grâce à un
médium commun de transmission, cette réduction a comme
objectifs:
20
Les Bus de terrain
21
Renault 4L (1962)
Citroën ZX (1994) Calculateur
Contrôle injection boîte de vitesse
Calculateur contrôle
moteur
Bus CAN 2.0A
Moteur pas
à pas
Sonde à BSI*
oxygène Thermistance
air
Thermistance eau
Capteur de
Potentiomètre
cliquetis
position papillon
Prise
diagnostic
Sonde à
oxygène
Capteur de
vitesse
BSI : Boîtier de Servitude Intelligent (calculateur)
Un simple exemple de « câblage classique »
Certains capteurs ont des liaisons avec plusieurs calculateurs
ou existent en 2 exemplaires en raison de leur localisation.
Les liaisons entre boîtiers sont de + en + nombreuses
Pourquoi communiquer en réseau ?
Avant Coût élevé Performances limitées
De 50 à 100 kg
2cv
Pollution
ABS
REF(répartiteur électronique de freinage
ASR(Anti-Slip Regulation)
AFU (AIDE AU FREINAGE
D'URGENCE)
ESP
AFIL(alerte de franchissement involontaire de
ligne
A venir
Limiter « l’inflation » des composants et du
câblage
Deux réponses :
Avant
Maintenant
Les réseaux dans un véhicule !
[Link]
Les principes du multiplexage
Equipement A Equipement C
Informations Informations Informations Informations
à fournir à recevoir à fournir à recevoir
A1
B2
A2 A3 C1 C1 B1
B1 B2
C2
A2
Informations Informations
à fournir à recevoir
B1
A1
B2 B3 C2
A2
Equipement B
Les principes du multiplexage
Equipement A Equipement C
Informations Informations
à fournir
C1 Informations Informations
à recevoir à fournir à recevoir
A1
B2
A2 A3 C1 C1 B3
A3
A4 B1
C2
A3
A2 A1
B1 B3
Informations Informations
B2 à fournir à recevoir
B1
A1 C2
B2 B3 C2
Solution classique A2
n fils par n information Equipement B
Les principes du multiplexage
Equipement A Equipement C
Informations Informations Informations Informations
à fournir à recevoir à fournir à recevoir
A1
B2
A2 A3 C1 C1 B1
A4 B1 B2
C2
A3
A1, A2,A3,A4;B1,B2,B3;C1,C2
Equi. A A1 A A3 A4 A1 A A3 A4
2 2
Equi. B B1 B2 B3 B1 B2 B3
C1 C2 C1 C2
Equi. C
Sur le bus A1 B1 C1 A B2 C2 A3 B3 A4 A1 B1 C1 A2 B2 C2 A3 B3 A4
2
Temps
Les principes du multiplexage
Partage d'une ligne de communication entre les
équipements
Équipement A Équipement B Équipement C
A1, A2,A3,A4;B1,B2,B3;C1,C2
Equi. A A1 A A3 A4 A1 A A3 A4
2 2
Equi. B B1 B2 B3 B1 B2 B3
C1 C2 C1 C2
Equi. C
Sur le bus A1 B1 C1 A B2 C2 A3 B3 A4 A1 B1 C1 A2 B2 C2 A3 B3 A4
2
Temps
Les principes du multiplexage
Partage d'une ligne de communication entre les
équipements
Équipement A Équipement B Équipement C
A1, A2,A3,A4;B1,B2,B3;C1,C2
Equi. A A1 A A3 A4 A1 A A3 A4
2 2
Equi. B B1 B2 B3 B1 B2 B3
C1 C2 C1 C2
Equi. C
Sur le bus A1 B1 C1 A B2 C2 A3 B3 A4 A1 B1 C1 A2 B2 C2 A3 B3 A4
2
Temps
Les principes du multiplexage
Partage d'une ligne de communication entre les
équipements
Équipement A Équipement B Équipement C
A1, A2,A3,A4;B1,B2,B3;C1,C2
Equi. A A1 A A3 A4 A1 A A3 A4
2 2
Equi. B B1 B2 B3 B1 B2 B3
C1 C2 C1 C2
Equi. C
Sur le bus A1 B1 C1 A B2 C2 A3 B3 A4 A1 B1 C1 A2 B2 C2 A3 B3 A4
2
Temps
Les principes du multiplexage
Partage d'une ligne de communication entre les
équipements
Équipement A Équipement B Équipement C
A1, A2,A3,A4;B1,B2,B3;C1,C2
Equi. A A1 A A3 A4 A1 A A3 A4
2 2
Equi. B B1 B2 B3 B1 B2 B3
C1 C2 C1 C2
Equi. C
Sur le bus A1 B1 C1 A B2 C2 A3 B3 A4 A1 B1 C1 A2 B2 C2 A3 B3 A4
2
Temps
Les principes du multiplexage
Partage d'une ligne de communication entre les
équipements
Équipement A Équipement B Équipement C Partage du temps de la ligne
A1, A2,A3,A4;B1,B2,B3;C1,C2
Equi. A A1 A A3 A4 A1 A A3 A4
2 2
Equi. B B1 B2 B3 B1 B2 B3
C1 C2 C1 C2
Equi. C
Sur le bus A1 B1 C1 A B2 C2 A3 B3 A4 A1 B1 C1 A2 B2 C2 A3 B3 A4
2
Temps
Notion de multiplexage
Les principes du multiplexage
Interface de
multiplexage Numérique
Bus
Notion de multiplexage
Chacun des champs est composé d’un nombre bien précis de bits
à l’état 1 ou à l’état 0
M M M M M M M
E E E E
Platine de Siège Platine de porte
Siège
porte
Les Bus de terrain
Domaines d’application
Débit (kbits)
10 000
Ethernet Réseau d ’ordinateurs
1 000
CAN
Automobile
application motorisation
100
I²C
D²B Automobile
10 application confort
Application
1 Automobile
bus de terrain industriel
application éclairage
Les boîtiers récepteurs doivent caler leur horloge sur celle de l’émetteur
Il se peut que 2 boîtiers veuillent émettre une trame en même temps sur le bus
; une trame est forcément prioritaire sur l’autre, c’est l’arbitrage.
Seule la trame prioritaire est émise mais la 2ème n’est pas détruite, elle sera
ré-émise dès que le bus sera libre : arbitrage non destructif
Notion de bus de communication
le bus : exemple chez PSA
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 ET câblé).
Routage des messages…
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.
Messages (trames de bits),…
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.
7. Application
6. présentation
5. session
4. Transport
•3. Réseau
[Link]
1. Physique
Couches OSI
7. Application
6. présentation
5. session
4. Transport
•3. Réseau
[Link]
1. Physique
Couches OSI
7. Application
6. présentation
5. session
7. Application
[Link] 4. Transport
[Link]
1. Physique
Couches OSI
1. Physique
1. Physique (Topologie)
1. Physique (Topologie)
Couches OSI
Pour diminuer le risque de défaut de transmission, des dispositions ont été prises
au niveau la couche physique :
la somme des tensions est toujours constante quel que soit le niveau logique (le
bit) transmis
Couches OSI Tous les calculateurs présents sur un
réseau sont reliés par les modules
émetteur/récepteur intégrés dans les
calculateurs. Chaque calculateur
connecté est appelé un nœud
1. Physique
7. Application
6. présentation
5. session
7. Application
[Link] 4. Transport
[Link]
1. Physique
Couches OSI
[Link]
Couches OSI
[Link]
Message : chaque information 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.
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.
Quelques termes :
Le transfert des messages se manifeste et est commandé à l’aide de quatre types de trames
spécifiques et d’un intervalle de temps les séparant:
Trame de requête : Une trame de requête 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).
Trame de données, une trame de données (data frame) est une trame qui transporte,
comme son nom l’indique, des données (8 octets).
Trames d’erreurs : émises par n’importe quel nœud dès la détection d’une erreur,
Trames de surcharge :ces trames correspondent à une demande d’un laps de temps entre
les trames de données et de requête précédentes et successives.
Couches OSI
[Link]
• Un nœud ne peut commencer à émettre une trame que si le bus est libre (= la ligne physique
est au repos) pendant un temps t qui est déterminé par le protocole. Une ligne au repos est
caractérisée par un état logique ‘1’ (présence de tension). Toutefois, cette règle n’interdit pas à
deux nœuds (ou plus) d’initier une transmission au même instant (ou presque).
• Dans ce cas il y a un conflit d’accès au bus qui va se traduire par une collision des trames.
• Cette règle s’applique aux réseaux locaux de type ‘Ethernet’ et à notre réseau CAN.
Ce sont des réseaux de type ‘CSMA’. • CS = Carrier Sense, littéralement ‘détection de porteuse’.
Cela correspond au fait de s’assurer si le bus est occupé ou non avant d’initier une transmission. •
MA = Multiple Acces, à ‘accès multiple’ signifie qu’il n’y a pas de priorité d’accès au bus entre
les nœuds.
Couche OSI
[Link]
Priorités : les identificateurs de chaque message permettent de définir quel message est
prioritaire sur tel autre.
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 .
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 par les nœuds.
Cette technique est uniquement active sur les champs de d’arbitrage et de contrôle. Pour
un fonctionnement correct de tout le réseau, cette technique doit être implémentée aussi
bien à la réception qu’à l’émission.
Structure de trame
DEBUT DE TRAME
1 bits
0
Bit toujours à 0
IDENTIFICATION
0 0 1 0 1 1 1 1 1 1 1
Bit RTR
Identification 11 bits Bit RTR=1
Requête
Bit RTR=0
Identificateur transmis : 0010 1111 111 Données
BIT STUFFING
82
CHAMP DE COMMANDE
6 bits
Nb d’octets de données
0 0 12 bits 0 0 0
Bits réservés
1000 = 8 octets ( maxi )
83
CHAMP D’ACQUITTEMENT
0 1
2 bits
ACK
84
CHAMP DE FIN DE TRAME
7 bits
1 1 1 1 1 1 1
85
SEPARATEUR DE TRAME
3 bits
1 1 1
86
EXEMPLE TRAME CAN
CAN H
CAN L
BITS
EXEMPLE TRAME CAN
1
EXEMPLE TRAME CAN
00100000 0000
Identificateur
EXEMPLE TRAME CAN
0 00001
Identificateur Commande
EXEMPLE TRAME CAN
00000 000
1001011010110101
01
ACK
Identificateur Commande Données Vérification
EXEMPLE TRAME CAN
1111111
ACK
Identificateur Commande Données Vérification Fin trame
EXEMPLE TRAME CAN
CAN H
CAN L
BITS
100100000 0000 0 00001 00000 0001001011010110101011111111 111
111
ACK
Identificateur Commande Données Vérification Fin trame IFS
Exemple d’une trame
Notion de bus de communication
Sur le réseau, la durée de transmission d’un bit peut varier d’un noeud à
l’autre ; les boîtiers doivent donc effectuer une synchronisation pour une
bonne réception : c’est la synchronisation des horloges
Ce sont les horloges des récepteurs qui se calent sur l’horloge de l’émetteur :
• En début d’émission de trame le bus passe de l’état de repos à celui
d’activité
• Pendant l’émission de la trame : les bits Stuffing sur le CAN
Notion de bus de communication
Notion d’arbitrage
Il peut arriver que 2 nœuds (ou plus) émettent simultanément une
trame sur le bus
Notion d’arbitrage
Notion de bus de communication
Sur le VAN, la priorité d’une trame peut-être déterminée sur toute sa longueur
110100111
100100111
100100101
ARBITRAGE
Émetteur 1
1 01
Émetteur 2
1 0 0 1 0 0 1 01
Émetteur 3
1 0 0 1 0 0 1 0 1
Entrée TDB
1 0 0 1 0 0 1 0 1
105
Résistance de terminaison de bus
Les résistances de terminaison de bus sont indispensables au bon fonctionnement
de la communication. Elles sont composées d’une résistance de début de ligne
(RDL) et d’une résistance de fin de ligne (RFL). Elles doivent être égales et on
pourra les faire varier en fonction des spécifications de la communication que l’on
souhaite obtenir.
106
Gestion des erreurs
Trame de gestion des erreurs
Erreur de bit.
Erreur de stuffing.
Erreur de CRC.
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.
Exception à la règle :
• présence d’un bit dominant à la place d’un bit récessif dans le champ
d’arbitrage (perte d’arbitrage)
• 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)
Gestion des erreurs
Trame d’erreur
Cette trame est générée par n’importe quel
nœud détectant une erreur. La trame d’erreur
est constituée de deux champs principaux :
• le drapeau d’erreur,
• le délimiteur de champ.
Le champ des drapeaux peut être constitué de
deux sortes de drapeaux:
• les drapeaux d’erreur active (Active Error
Flag),
• les drapeaux d’erreur passive (Passive
Error Flag).
Gestion des erreurs