Ministère de l’Enseignement Supérieur et de la Recherche Scientifique Cours: chapitre 3
Les Bus de communication: Bus CAN (Controller Area Network) Multiplexage et couche physique
Version 1.0, Septembre 2018
Bus CAN – Généralités
Le bus CAN (Controller Area Network) est né du besoin de trouver une solution de communication série dans les véhicules automobiles. Il a été initialement développé par la société Bosch, au milieu des années 80, puis a fait l’objet d’une normalisation ISO 11898 et 11519.
1
Bus CAN – Applications
- La Classe première S. utilisation en série du bus CAN date de 1992 avec une Mercedes • automobile tendance 307 Il y a et 206 se plusieurs par (GM dirige exemple). et vers FORD types le bus avec de CAN réseaux le J1850, (Peugeot communicants Renault l’utilise et Peugeot dans utilisés ses avec modèles dans le VAN). récents l’industrie Mais 607, la Dans un véhicule, plusieurs réseaux « multiplexés » cohabitent : ❖ réseau carrosserie: (optiques, rétroviseurs, vitres, …) à faible débit (32,5 à 62,5 kbps)
avec peu d’informations et un temps de réponse demandé de 100 ms ❖ réseau inter-systèmes: (ABS, …) à débit moyen (125 à 500 kbps) avec peu
d’informations et un temps de réponse demandé de 10 ms ❖ réseau confort (autoradio, climatisation, navigation, …) à débit moyen (125 kbps à 1 Mbps) avec un grande quantité d’informations et un temps de réponse faible de 500 ms ❖ réseau diagnostic (appelé aussi liaison K) à débit faible (10 kbps) avec un grande quantité d’informations et un temps de réponse lent de l’ordre de la seconde)
Autres applications : systèmes de navigation maritime, ascenseurs, machines agricoles, photocopieurs, systèmes médicaux, industrie textile, machines outils, système de production industrielle, …)
2
L’électronique automobile est en évolution constante
- Exigences sévères en matière de pollution
- Améliorations en matière de sécurité et de confort
- Évolution en cours de vie du véhicule (options) Une croissance constante des fonctions électroniques ABS, Direction à assistance variable, suspension pilotée, gestion moteur Airbag, anti-démarrage, clim. régulée, détection du sous-gonflage des roues, aide au stationnement, Allumage automatique des feux
Bus CAN – Multiplexage
3
Bus CAN – Multiplexage
4
Ce renforcement de l’électronique se traduit par une augmentation du nombre de calculateurs, du nombre de capteurs, des faisceaux de câbles électriques ⇒ Encombrements, poids et coûts
Bus CAN – Multiplexage
5
- Certains capteurs ont des liaisons avec plusieurs calculateurs
- Certains capteurs existent en 2 exemplaires en raison de leur localisation. ⇒ Les liaisons entre boîtiers sont de plus en plus nombreuses
Bus CAN – Multiplexage
Exemple : câblage classique
6
Deux réponses techniques pour limiter l’accroissement des composants et du câblage:
L’intégration regrouper plusieurs fonctions dans un seul boîtier (ex : gestion moteur et Boîtier de Servitude Intelligent (BSI)
- Gestion moteur : injection, allumage, dépollution, refroidissement moteur
- BSI : fermeture centralisée des portes, alarme, éclairage intérieur, antidémarrage, essuyage des vitres, gestion des clignotants, …
- ESP (contrôle dynamique du véhicule) : ABS, REF, MSR, ASR, ESP
Bus CAN – Multiplexage
Le multiplexage faire circuler une multitude d’informations entre divers calculateurs sur un seul canal de transmission appelé le bus (2 fils): le bus CAN
7
Bus CAN – Multiplexage
Exemple : câblage avec multiplexage
Diminution du nombre de capteurs et de liaisons entre boîtiers car chacun fournit aux autres, par l’intermédiaire du bus, les infos qu’il reçoit en filaire : c’est le partage des informations
8
Bus CAN – Multiplexage
Exemple : câblage avec multiplexage
Diminution du nombre de capteurs et de liaisons entre boîtiers car chacun fournit aux autres, par l’intermédiaire du bus, les infos qu’il reçoit en filaire : c’est le partage des informations
Système classique de refroidissement sans multiplexage
Système de refroidissement avec
introduction du multiplexage 9
Bus CAN – Multiplexage
Avantages du multiplexage
❖ Moins de capteurs et/ou de nombres de liaisons avec les boîtiers
❖ Le poids et les coûts diminuent
❖ Enrichissement de fonctions sans surcoût important :
✓ Faire allumer les feux de croisement lorsque le capteur de pluie détecte une averse
(⇒ évolution d’un logiciel) ✓ Mise en action des feux de détresse lors d’une forte décélération ❖ Méthodes répondant à une norme ISO ⇒ fiabilité accrue (théoriquement)
❖ Les constructeurs « protègent » leur réseau de APV car la plupart des
interventions sur les systèmes multiplexés nécessitent l’utilisation d’outils de
diagnostic particuliers :
✓ Méthodes de recherche de pannes complexes + télé-assistance ✓ Téléchargement de mise à jour ✓ Apprentissage lors d’une installation ou d’un changement de composants
multiplexés (ex : autoradio) : c’est le télé-codage
10
Bus CAN – Multiplexage
11
Boitier en câblage multiplexé L’interface de multiplexage se charge des communications avec le bus
Boitier en câblage classique
Adaptation des boîtiers électroniques
Bus CAN – Multiplexage
Les principes de multiplexage
12
Adaptation des boîtiers électroniques
- L’interface de multiplexage permet la communication entre le boîtier et le bus
- Les messages qui transitent par l’interface de multiplexage sont numériques et portent le nom de trames. Ces trames sont découpées en plusieurs champs. Chacun des champs est composé d’un nombre bien précis de bits à l’état 1 ou 0.
Bus CAN – Multiplexage
Les principes de multiplexage
13
Le réseau ❖ Le réseau est l’ensemble des boîtiers qui communiquent entre eux ❖ Réseau : une architecture + un protocole (VAN, CAN, LIN …)
En étoile (VAN) En râteau (VAN) En série (CAN)
maître/esclaves multi-maîtres/esclaves multi-maîtres
Bus CAN – Multiplexage
14
Les principes de multiplexage
Le réseau ❖ L’architecture du réseau est adaptée, suivant les besoins en vitesse d’échanges d’informations (ex : info passage rapport BVA au boîtier moteur (250 kbits/s) et commande essuie glace arrière (62.5 kbits /s)). ❖ La vitesse maxi de communication est inversement proportionnelle à la distance
entre 2 participants. ❖ Plus il y a de participants sur le réseau, plus la vitesse de communication diminue ❑ Le protocole : c’est la « langue » utilisée pour communiquer. C’est tout ce qui concerne l’acheminement des trames .Les trames sont distribuées sur le bus. ❑ Les « récepteurs » consultent l’identité de la trame (champ d’identification de la
trame) et seuls ceux qui sont concernés par la trame, utilisent ses informations ❑ Les échanges de trame, donc de bits, doivent se faire à un rythme bien précis. Pour
ce faire chacun des boîtiers possèdent une horloge interne (quartz) ❑ 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
Bus CAN – Multiplexage
Les principes de multiplexage
15
Le réseau
❖ Partage du temps de la ligne ❖ Codage numérique des informations ❖ Transmission série ❖ Gestion des priorités (arbitrage)
Partage d’une ligne de bus entre divers équipements
Bus CAN – Multiplexage
16
Les principes de multiplexage
Bus CAN – Multiplexage
17
Les principes de multiplexage
Transmission des messages
Le réseau
Bus CAN – Multiplexage
Les principes de multiplexage
18
Transmission des messages
Le réseau
Bus CAN – Généralités
- Le protocole CAN (Control Area Network) est un protocole de communication série qui supporte des systèmes temps réel avec un haut niveau de fiabilité.
- La norme ISO 11898 spécifie un débit maximum de 1Mbits/s. La longueur maximum du bus est déterminée par la charge capacitive et le débit (de 20 kbps sur 1 km à 1Mbps sur 40 m).
- La structure du protocole du bus CAN possède implicitement les principales propriétés suivantes : ➢ souplesse de configuration ➢ fonctionnement multi-maître ➢ détections et signalisations d’erreurs ➢ retransmission automatique des messages altérés ➢ déconnexion automatique des nœuds défectueux
Le protocole CAN ne couvre que 2 (ou 3) des 7 couches du modèle OSI : les couches PHYSIQUE et LIAISON et éventuellement la couche APPLICATION.19
Bus CAN – Généralités- couches
On retrouve ainsi dans le protocole CAN, la couche liaison de données (couche 2) et la couche physique (couche 1).
La couche de liaison de données est subdivisée en deux sous- couches:
- LLC (Logic Link Control)
- MAC (Medium Access Control)
la couche physique est divisée en trois sous-couches:
- PLS (Physical Signalling),
- PMA (Physical Medium Access),
- MDI (Medium Dependent Interface)
20
Bus CAN – La couche physique
La couche physique définit comment le signal est transmis et a pour rôle d’assurer le transfert physique des bits entre les différents nœuds en accord avec toutes les propriétés (électriques, électroniques…) du système. Il est évident qu’à l’intérieur d’un même et unique réseau la couche physique doit être la même pour chaque nœud. Cette couche s’occupe donc : – de gérer la représentation du bit (codage, timing…). – de gérer la synchronisation bit. – de définir les niveaux électriques des signaux. – de définir le support de transmission.
Dans le protocole CAN le code de ligne (en bande de base) choisi pour la transmission des données sur le bus est le code NRZ (Non Return to Zero).
- Comme le montre la figure de l’exemple, les transitions des bits s’effectuent sur chaque front montant de l’horloge.
- Dans le protocole CAN, une période d’horloge correspond à ce que l’on appelle le Nominal Bit Time.
Remarque : La règle du Bit-Stuffing ne modifie en aucun cas le procédé de codage de ligne.
21
CODAGE DE LIGNE
Bus CAN – La couche physique
Le nominal bit time
- Le Nominal Bit Time représente en fait la durée du bit sur le bus. Cette durée est étroitement liée à la période de l’horloge.
- Chaque station reliée sur le bus doit être cadencée avec le même Nominal Bit Time pour pouvoir émettre et recevoir correctement les données circulant sur le bus.
- Ainsi, la durée du bit de chaque circuit est construite à partir d’un nombre déterminé de périodes d’horloge issue de l’horloge interne de chaque circuit CAN.
le Nominal Bit Time, exprimé en s, correspond évidemment à l’inverse du débit sur le bus. Nous avons donc la formule suivante:
La norme BOSCH décrit avec précision la composition de ce Nominal Bit Time qui est divisé en plusieurs segments :
- le segment de synchronisation (SYNC_SEG),
- le segment de propagation (PROP_SEG),
- le segment de phase buffer n°1 (PHASE_SEG1),
- le segment de phase buffer n°2 (PHASE_SEG2).
22
1
Durée_PROP_SEG=2.(tpropag_bus + tretard_comparateurs + tretard_drivers_lignes)
- Les segments ′′buffer phase1′′ et ′′buffer phase2′′ : Ces segments sont utilisés pour compenser les erreurs de phase détectées lors des transitions. Ces segments peuvent être plus courts ou plus longs à cause des phénomènes de resynchronisation.
- Le point d’échantillonnage (sample point) : C’est le point où la valeur du bit est lue sur le bus. Il est situé à la fin du segment de ′′buffer phase1′′ et constitue la seule valeur mémorisée pour le niveau du bit.
Le nominal bit time
- le segment de synchronisation : le segment de synchronisation est utilisé pour synchroniser les différents nœuds du bus. Comme nous le verrons par la suite, une transition (de ′′0′′ à ′′1′′ ou de ′′1′′ à ′′0′′) doit s’effectuer dans ce segment pour permettre une resynchronisation des horloges des différents nœuds en mode de réception de trames.
- Le segment de propagation : le segment de propagation est utilisé pour compenser les phénomènes de temps de propagation sur le bus. Par définition :
Bus CAN – La couche physique
23
Bus CAN – La couche physique
Le nominal bit time
Durée des différents segments et notion de Time Quantum
- Le Time Quantum est une unité de temps qui est construite à partir de la période de l’oscillateur interne de chaque nœud. Les fréquences de fonctionnement du bus CAN s’étendant de 125 KHz à 1 MHz et celle des oscillateurs étant de plusieurs MHz, le Time Quantum représente plusieurs périodes d’une horloge d’oscillateur.
- La période d’horloge de l’oscillateur est appelée minimum Time Quantum.
- La valeur du préscalaire m détermine le rapport entre le Time Quantum et le Minimum Time Quantum :
La valeur de m peut varier de 1 à 32. La figure ci-dessous représente la construction d’un Time Quantum à partir d’une période d’horloge interne au circuit.
24
Time_Quantum = m. minimum Time Quantum
m = 4
Bus CAN – La couche physique
La durée des différents segments
Le nombre de Time Quanta dans un Nominal Bit Time peut ainsi varier de 8 à 25. La figure ci- dessous donne le nombre de Time Quanta possible par segment de Nominal Bit Time.
Le choix du nombre de Time Quanta pour chaque segment dépend de la fréquence de l’oscillateur. Un nombre important de Time Quanta par segment augmente la précision de la synchronisation des différents nœuds sur le bus.
25
Le nominal bit time
Synchronisation des horloges
Chaque nœud doit produire un Nominal Bit Time pour pouvoir recevoir et émettre les données circulant sur le bus en synchronisme avec les autres circuits ⇒ si les Nominal Bit Time de chaque nœud ne sont pas du tout synchronisés, la valeur lue sur le bus au moment de l’échantillonnage peut ne pas être la valeur correcte au bon moment, comme le représente la figure ci-dessous. Ces retards peuvent être gênants, dans la phase d’acquittement de la trame où il y a peu de temps pour finir de calculer le CRC et envoyer un bit à l’état dominant lors de l’Acknowledge Slot pour confirmer que la trame a bien été reçue.
Bus CAN – La couche physique
26
Synchronisation des horloges
La norme BOSCH prévoit donc des règles de synchronisation du Nominal Bit Time de chaque circuit pour palier aux inconvénients cités.
➢ Pour corriger les dérives du Nominal Bit Time, il faut placer des butées que la
dérive de la période ne pourra pas dépasser. ➢ La butée en question s’appelle le RJW : Resynchronisation Jump Width. ➢ Le RJW est une variable entière programmée à une valeur comprise entre 1 et le
minimum de (4, segment de phase1):
1 < Rjw < min(4, PHASE_ SEG1)
Bus CAN – La couche physique
1-Notion de RJW
La valeur est mise dans le registre du circuit lors de l’initialisation et ne change pas en cours de fonctionnement.
2-Notion d’erreur de phase
➢ L’erreur de phase (PHASE_ERROR) est détectée lorsqu’une transition d’un bit dominant à récessif ou d’un bit récessif à dominant ne s’effectue pas à l’intérieur du segment de synchronisation. ➢ Une variable notée e sert à quantifier cette erreur de phase et fournit le signe. ➢ Le calcul de e est fait de la manière suivante :
27
Bus CAN – La couche physique
Synchronisation des horloges
Le calcul de e est fait de la manière suivante :
✓ e = 0: si la transition s’effectue dans le segment de synchronisation (SYNC_SEG).
✓ e > 0: si la transition s’effectue avant le point d’échantillonnage (Sample Point).
✓ e < 0: si la transition s’effectue après le point d’échantillonnage (Sample Point).
- Cette simple règle sert de base pour resynchroniser les différents Nominal Bit Time de chaque circuit connecté au bus. La règle s’appuie sur les transitions des bits récessifs à dominant ou dominant à récessif qui arrivent au moins tous les 5 bits de même signe consécutifs, à cause de la règle du Bit-Stuffing.
- L’erreur de phase e est donc calculée par rapport au Sample Point qui détermine si le PHASE_SEG1 doit être allongé ou si le PHASE _SEG2 doit être raccourci pour que la prochaine transition s’effectue dans le SYNC_SEG.
28
Synchronisation des horloges
La figure ci-dessous donne un exemple et les conséquences des emplacements des transitions sur la longueur des segments du Nominal Bit Time.
Bus CAN – La couche physique
29
Bus CAN – La couche physique
Synchronisation des horloges
3-Règles de synchronisation
➢ La hard-synchronisation : L’effet d’une hard-synchronisation est de faire repartir le Nominal Bit Time depuis le segment de synchronisation (SYNC_SEG) à chaque fois qu’un ordre de hard- synchronisation est donné par le gestionnaire du protocole. Le Nominal Bit Time en cours est abandonné et un nouveau Nominal Bit Time repart dès le Time Quantum suivant, depuis le segment desynchronisation (SYNC_SEG).
➢ La resynchronisation : Le calcul et l’ordre de resynchronisation sont donnés à partir de la valeur de l’erreur de phase e, et dépendent aussi de la valeur du RJW :
- Si l’erreur de phase est nulle (e = 0, la transition est dans le SYNC_SEG), l’effet de la resynchronisation est le même que celui de la hard-synchronisation.
- Si l’erreur de phase est positive et inférieure en valeur absolue à RJW (0<e<RJW), le PHASE_SEG1 sera rallongé de e.
- Si l’erreur de phase est négative, mais inférieure à RJW en valeur absolue (e<0 et |e|<RJW) le PHASE_SEG2 est raccourci de e.
- • Si l’erreur de phase est positive et supérieure ou égale RJW (e>0 et e>RJW), le PHASE_SEG1 est rallongé de RJW.
- • Enfin, si l’erreur de phase est négative et supérieure à RJW (en valeur absolue -e<0 et |e|>RJW) le PHASE_SEG2 est raccourci de RJW.
30
Synchronisation des horloges
➢ Règles de synchronisation:
- Hard-synchronisation : − Une hard-synchronisation est faite à chaque fois qu’une transition s’effectue dans le segment de synchronisation SYNC_SEG. − Une hard-synchronisation est effectuée lorsque le bus est au repos (bus idle) et qu’une transition d’un bit récessif à un bit dominant est détectée, autrement dit lors d’un SOF (Start Of Frame).
- Resynchronisation : − Une resynchronisation est effectuée si une transition est détectée au point d’échantillonnage précédent et que la valeur lue sur le bus immédiatement après la transition est différente de celle lue sur le bus avant la transition. − Les transitions des bits récessifs à dominants peuvent être utilisées pour la resynchronisation si elles respectent la règle précédente, sauf si un nœud émet un bit dominant qui ne suit pas la règle de resynchronisation avec une transition de récessif à dominant et une erreur de phase positive. La règle ne s’applique que si les transitions des bits de récessif à dominant sont utilisées pour la resynchronisation.
Bus CAN – La couche physique
31
Bus CAN – La couche physique
La transmission des données est effectuée sur une paire filaire différentielle. La ligne est donc constituée de deux fils : ➢ CAN L (CAN LOW), ➢ CAN H (CAN HIGH).
Le CAN est un bus de terrain, soumis à des parasites importants. La transmission en paire différentielle permet de s’affranchir de ces problèmes. Les montages différentiels ont en plus un fort taux de réjection en mode commun.
32
Caractéristiques physiques du bus CAN
Support de transmission
Bus CAN – La couche physique
Pour les niveaux physiques sur le bus, il est important de distinguer les deux types de transmission possibles :
▪ transmission en bus CAN low speed,
▪ transmission en bus CAN high speed.
33
Caractéristiques physiques du bus CAN
Support de transmission
Bus CAN – La couche physique
Niveaux de tension du bus CAN
Le schéma d’un circuit CAN relié au bus
34
Caractéristiques physiques du bus CAN
Support de transmission
Bus CAN – La couche physique
Débit sur le réseau et temps de latence
❑ Le débit du réseau est calculé par rapport au Nominal Bit Time. Il s’étend de 125 kb/s à 1 Mb/s suivant le type de bus utilisé. Les valeurs ci-dessus correspondent au débit dit brut du réseau, c’est à dire en comptant tous les bits qui sont transmis sur le bus. ❑ Le débit dit net ne tient compte que des bits transportant des informations utiles. Le débit net est en fait le débit utile du bus en ne comptant pas tous les bits tels que le SOF, les Acknowlegde Delimiter, les bits de Bit-Stuffing…
Le temps de latence est un intervalle de temps qui représente la durée écoulée entre le moment où une demande de requête est formulée et l’instant où la réponse est présente sur le bus. Le temps de latence dépend du nombre de nœuds maîtres désirant effectuer un transfert de données.
34
Caractéristiques physiques du bus CAN
télécharger gratuitement cours de Bus CAN