0% ont trouvé ce document utile (0 vote)
57 vues46 pages

Bus CAN VF

Le document présente le bus CAN (Controller Area Network), un réseau de communication asynchrone utilisé principalement dans les véhicules pour assurer des échanges de données fiables et en temps réel. Il décrit son historique, ses propriétés, sa topologie, ainsi que les spécifications techniques, y compris les trames de données et les mécanismes d'arbitrage. Le bus CAN permet la connexion de plusieurs nœuds et offre une détection d'erreurs, garantissant ainsi une communication robuste dans des environnements électromagnétiques perturbés.

Transféré par

fatnassi.youssef96
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
57 vues46 pages

Bus CAN VF

Le document présente le bus CAN (Controller Area Network), un réseau de communication asynchrone utilisé principalement dans les véhicules pour assurer des échanges de données fiables et en temps réel. Il décrit son historique, ses propriétés, sa topologie, ainsi que les spécifications techniques, y compris les trames de données et les mécanismes d'arbitrage. Le bus CAN permet la connexion de plusieurs nœuds et offre une détection d'erreurs, garantissant ainsi une communication robuste dans des environnements électromagnétiques perturbés.

Transféré par

fatnassi.youssef96
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Busde

communication

BUS CAN
Nejla REJEB
CAN

CONTROLLER AREA NETWORK


(CAN)

CAN
Applications du bus CAN

CAN
CAN
Introduction
▪ CAN est un véritable réseau qui respecte le modèle OSI

▪ CAN est classé dans la catégorie des réseaux de terrain

▪ CAN supporte des systèmes temps réel avec un haut niveau


de fiabilité

1
CAN
Historique

▪ 1983: Premier projet CANBUS chez Bosch

▪ 1987: Premier contrôleur CAN puces vendues

▪ 1991: publication de la spécification CAN 2.0A

▪ 1992: Mercedes-Benz utilise un réseau CAN

▪ 1993: la norme ISO 11898

▪ Présents: La majorité des véhicules utilisent le bus CAN.


Topologie du bus CAN CAN

Câblage traditionnel

Simple CAN
&
Léger

2 câbles pour l’alimentation électrique 12 VDC


1 paire torsadée pour les transferts d’informations
CAN
Propriétés

▪ CAN : Controller Area Network


▪ CAN est un protocole de communication Asynchrone
série

▪ Half duplex
▪ Fonctionnement multimaître
▪Il met en application une approche connue sous le nom
de multiplexage, et qui consiste à raccorder à un même câble
(un bus) un grand nombre de calculateurs qui
communiqueront à tour de rôle.
▪ Détection et signalisation des erreurs : distinction des
erreurs temporaire et des erreurs permanentes au
niveau d’un nœud
▪ Déconnexion automatique des nœuds défectueux
CAN
Propriétés
Les points forts du système CAN sont les suivants:
– La détection des erreurs,
– La fiabilité des échanges de données. Utilisation temps
réel possible car un temps maximal entre l’émission etla
réception des trames pour un processus quelconque peut
être défini
– Transmission des données séries, basée sur le CAN,
– Jusqu’à 1 Mbit/s,
– Débit utilisés : 250 kbits/s (PSA), 500 kbits/s (BMW,
Mercedes, 407), soient de 2 à 4 s/bit
– Jusqu’à 127 noeuds (équipements),
– Possibilité de plusieurs maîtres,
– Inter-opérabilités de différents équipements provenant
de différents fabricants
CAN
SPECIFICATION du bus CAN
Suivant la norme de BOSCH, CAN couvre deux couches de l’OSI:
✓ la couche liaison de données (couche 2),
✓ la couche physique (couche 1).
CAN
SPECIFICATION du bus CAN
Sensor Actuator
Signals Signals
Node 1 Node 2 Node
N

Micro
Controller

CAN
Controller

RX TX
CAN
Transceiver

CAN H CAN L
CAN
Couche physique : Niveau du Bus
◆ Niveau du bus
➢ Recessif (1 logic)
➢ Dominant (0 logic)

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.

Transmission différentielle : Haute protection contre les


perturbations électromagnétiques
Les 2 fils sont torsadés pour : • contrer les parasites émis par les
trames (signaux électriques) véhiculées sur le bus • pour
diminuer la surface apparente des fils afin de limiter les
perturbations électromagnétiques ou radioélectriques
CAN
Couche physique :Niveau du Bus

✓ Physiquement le bus est une paire torsadée de deux fils électriques : CAN L (low) et
CAN H (High)
✓ Les états logiques (0 ou 1) sont codés par différence de potentiel entre les deux fils :
immunité importante au bruit
CAN HS (High Speed)
CAN LS (Low Speed)
Vitesse supérieure à 125Kbits/s
Vitesse maxi de 125Kbits/s
jusqu'à 1Mbits/s

Niveaux de tensions d'un bit CAN H = 4V CAN H = 3.5V


dominant (0 logique) CAN L = 1V CAN L = 1.5V

Différence de potentiel pour un


3V 2V
bit dominant (0 logique)

Niveaux de tensions d'un bit CAN H = 1.75V CAN H = 2.5V


récessif (1 logique) CAN L = 3.25V CAN L = 2.5V

Différence de potentiel pour un


-1.5V 0V
bit récessif (1 logique)

Tension d'alimentation 5V 5V
Cette transmission différentielle est très robuste aux perturbations.
Ici le 3ème bit est affecté par un parasite : les 2 signaux sont
perturbés.
Au final, la soustraction entre CANH et CANL reste toujours de
même signe : le bit sera codé à la bonne valeur. Un signal
numérique parasité peut être restauré avec une électronique simple,
si la discrimination entre 0 et 1 reste possible.
Nœud CAN à base de carte Arduino
Nœud CAN à base de carte Arduino

Arduino MCP2515 CAN Bus Modul


TJA1050 SPI
Nœud CAN à base de carte Arduino
Les boîtiers sont montés en série sur le
réseau Les 2 boîtiers extrêmes du réseau
(gestion moteur et BSI) intègrent chacun 2
résistances de 60 ohms en série Ces
résistances de terminaison de ligne sont très
utiles pour effectuer un test de continuité des
lignes du bus S’il se produit un défaut de
connectique sur un calculateur, plusieurs
autres peuvent se trouver en défaut !
Codage binaitre CAN

NRZ: bits dominants et récessifs


•La succession de bits transitant sur le bus est codé avec la méthode du
NRZ(Non Return ToZero).

•Pendant la durée totale du bit, le niveau de tension de la ligne est maintenu,


c’est à dire que pendant toute la durée durant laquelle un bit est généré, sa
valeur reste constante qu’elle soit dominante ourécessive.
CAN
Sécurité de transmission& Bit Stuffing

▪ 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.

Cette méthode n'est appliquée que sur les champs SOF, d'arbitrage, de
commande, de data et de CRC (délimiteur exclu).
Longueur du bus et débit
CAN
Principe d’échange des données
Node 1 Node 2 Node 3 Node 4

CAN core CAN core CAN core CAN core

Frame Filter Frame Filter Frame Filter Frame Filter

▪ Nœud : sous-ensemble relié à un réseau de communication et capable


de communiquer sur le réseau selon un protocole de communication (ici
le protocole CAN).
▪ 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 .
▪ Chaque noeud : emmetteur et recepteur
Principe d’échange des données
Les calculateurs utilisant le même réseau CAN ne doivent pas traiter les messages
dont ils ne sont pas destinataires. Ainsi, le gestionnaire du bus CAN, associé à
chaque calculateur, est doté d’un système de filtrage composé d’un masque et
d’un sélecteur. Le masque spécifie les bits de l’identificateur qui doivent être
contrôlés.
Lorsqu’un message est reçu, son champ identificateur est comparé bit à bit avec
les valeurs du sélecteur.
En cas de correspondance, le message accepté est transféré dans le buffer de
réception pour être traité par le calculateur, sinon le message sera rejeté.
Configuration des masques et des filtres de
réception
Pour qu’un message arrive dans votre buffer de réception, il faut
qu’il soit accepté. Pour cela l’identifiant du message est comparé à
un filtre. Le masque permet de choisir quels bits de l’identifiant
seront comparés avec le filtre.
CAN
Arbitrage
▪ dû au fonctionnement multimaître. Si deux nœuds ou
plus tentent d’émettre un message sur un bus libre il faut
régler les conflits d’accès.

▪ On effectue alors un arbitrage bit à bit (non destructif)


tout au long du contenu de l’identificateur. Lorsqu’un bit
récessif est envoyé et qu’un bit dominant est observé sur
le bus, l’unité considérée perd l’arbitrage, doit se taire et
ne plus envoyeraucun bit.

▪ L'arbitrage est qualifié de CSMA/CA


(Carrier Sense Multiple Access - Collision Avoidance)

24
Accès au média etarbitrage CAN

0.1.0=0 1,1,0=0

Abandon
Nœud 2 Abandon
Nœud 1
CAN
Routage des messages

▪ Routage des informations : des nœuds peuvent être ajoutés au


réseau sans qu’il n’y ait rien à modifier tant au niveau logiciel que
matériel.

▪ Chaque message possède un identificateur (identifier) qui n’indique


pas la destination du message mais la signification des données du
message. Ainsi tous les nœuds reçoivent le message, et chacun est
capable de savoir grâce au système de filtrage de message si ce
dernier lui est destiné ou non.

▪Chaque nœud peut également détecter des erreurs sur unmessage


qui ne lui est pas destiné et en informer les autres nœuds.

9
CAN
Messages
▪ Message : chaque information est véhiculée sur le bus à l’aide d’un
message (trame de bits) de format défini. 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.

10
CAN
Trames du bus CAN
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 données (data frame) : 2 standards


▪ Standard 2.0A 11-bit identifier 2¨^11 messages :2048 messages
▪ Etendue 2.0B  29-bit identifier 2¨¨29
est une trame qui transporte, comme son nom l’indique, des données (8 octets).

▪ Trame de requête : est émise par un nœud désirant recevoir une trame de
données.

▪ 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
CAN
Trame de données : STANDARD vs ETENDU

CAN 2.0A standard  11-bit identifier IDEà14ème bit


1+11+1+1+1+4+64+16+1+1+7=108
S 11-bit R I r DL 0..8 Data AC
O T D CRC EOF
Identifier 0 C bytes K
F R E

S High 11- S I R
Low 18-bit r r DL 0..8 Data
O bit R D T CRC ACK EOF
F Identifier R E Identifier 1 0 C bytes
R

CAN 2.0B Etendue  29-bit identifier


CAN
Trame de données standard (1/7)

Start-Of-Frame bit (SOF)

S 11-bit R I r DL 0..8 Data AC


O T D 0 C bytes CRC K EOF
Identifier
F R E

Marque le début de la trame de données


Seulement autorisé lorsque le bus est libre
Synchronise tous les nœuds CAN
CAN
Trame de données standard (2/7)

Champ d’arbitrage: 12 bits

S 11-bit R I r DL 0..8 Data AC


O T D 0 C bytes CRC K EOF
F Identifier R E

Composé de Identifier field+ RTR bit


RTR (Remote Transmission Request) bit
“0” Trame de données
“1” Trame de requete
11-bit Identifier  2048 identificateurs
Identificateur transmis à partir de ID-10 (MSB)to ID-0
(LSB)
CAN
Trame de données standard (3/7)

Champ de controle: 6 bits

S 11-bit R I r DL 0..8 Data AC


O T D 0 C bytes CRC K EOF
Identifier
F R E

IDE (IDentifer Extended) bit


“0”  Trame Standard
“1”  Trame Etendue
r0 bit reservé
4-bits DLC (Data Length Code) = le nombre d’octets
de données contenus dans le champ de données (0
to 8)

15
CAN
Trame de données standard (4/7)

Data Field : from 0 to 64 bits

S 11-bit R I
r DL 0..8 Data AC
O T D bytes CRC K EOF
Identifier 0 C
F R E

Minimum = 0 byte
Maximum = 8 bytes
Données transmises à partir de MSB jusqu’à LSB

16
CAN
Trame de données standard (5/7)

Champ CRC : 16 bits

S 11-bit R I r
DL 0..8 Data AC
O T D 0 C CRC EOF
Identifier bytes K
F R E

15-bit CRC (Cyclic Redundancy Check ) 15-bit D

1-bit CRC delimiteur (recessive) E


CRC L
Principe:
Le récepteur calcule le CRC et le compare à celui obtenu à
partir de l'émetteur. Si elles diffèrent, une erreur CRC est
signalée
Le contrôle de redondance cyclique

Début de trame Champs de commande


Générateur polynomial
Champs Champs
d ’arbitrage de
données g(x) = X15 + X14 + X10 + X8 + X7 + X4 + X3 + 1
1 11 111 4 0 - 64
/ soit en binaire
g(x) = 1100010110011001

15

Champs de CRC
CAN
Trame de données standard (6/7)

Champ Acknowledge : 2 bits

S 11-bit R I r
DL 0..8 Data AC
O T D 0 C CRC EOF
Identifier bytes K
F R E

Acknowledge slot bit


D
État récessif envoyé par l'émetteur DEL
ACK E Transmitter
slot
Les récepteurs le remplacent par l'état L
dominant
Acknowledgement delimiter bit List
ACK
Liste Receivers
e n n
(recessive )
D
ACK CAN bus
DEL E
slot
L 18
CAN
Trame de données standard (7/7)

End-Of-Frame Flag : 7 bits

S 11-bit R I r
DL 0..8 Data AC
O T D 0 C bytes CRC K EOF
Identifier
F R E

Sequence de 7 bits récessif


11111011
Bit stuffing mechanism
désactivé
CAN
Trame de données étendue

Arbitration and Control Fields

S High 11- S I R
O bit R D Low 18-bit T
r r DL 0..8 Data
CRC
AC
EOF
R E Identifier 1 0 C bytes K
F Identifier R

IDE bit  recessif


SRR (Substitute Remote Request) recessif
29-bit Identifier
+Identifier transmitted from ID-28 (MSB) to ID-0 (LSB)
CAN
Trame de requete

RTR  dominant(1 logic)


Utilisé pour identificateur standard ou etendu

S 11-bit R I
r DL 0..8 Data AC
O T D CRC EOF
Identifier 0 C bytes K
F R E

S 11-bit R I
r DL 15-bit AC
O T D EOF
C CRC K
F Identifier R E 0
CAN
Espace entre les trames

Espace entre les trames

AC
CRC EOF Bus idle
K

3 bits

Sequence de 3 bits recessifs


les trames de données et de request sont tojours séparées par
“Interframe Space”
Transmission de données est interdite pendant cette période

Les trames Erreur et Surcharge ne sont pas précédées par une périoded’intertrame
La gestion des erreurs
Différents erreurs peuvent être générées dans le bus CAN. On distingue :

Erreur bit (Bit error) : Un nœud envoyant un bit sur le bus regarde aussi en même temps les
bits qu'il reçoit (Bit monitoring). Il considère comme une erreur de bit lorsque le bit envoyé
est différent du bit reçu.

Erreur de stuffing (Stuff error) : Le nœud détecte une erreur de stuffing lorsqu'il reçoit 6 bits
consécutifs de même valeur dans une partie d'un message qui devrait être codée avec la
méthode du bit stuffing.

Erreur de CRC (CRC error) : Une erreur de CRC est détectée lorsque le CRC calculé par un
récepteur est différent de la valeur du CRCcontenu dans latrame.

Erreur de forme (Form error) : Une "Form error" est détectée lorsqu'un bit qui devrait être à
une certaine valeur est à une valeur différente (un délimiteur par exemple).

Erreur d’acquittement (ACK error) : Le transmetteur détecte une erreur d'acquittement


lorsqu'il ne reçoit pas de bit dominant pendant le ACKSlot.
CAN
Trame d’erreur
▪ Trame d’erreur
Interframe
space
Error Flag Error Delimite r
R
Data frame 6 bits 8 bits Bus e or Data frame
Idl
D

Error detection
La gestion des erreurs
:
Trame de surcharge (overload frame)

Une trame de surcharge est émise sur le bus si :

- un bit dominant est détecté durant la période d’intertrame.


- un récepteur n’est pas prêt pour la réception d’une nouvelle
trame de donnée ou de requête (retard sur le traitement des
informations circulant sur le bus).
- Dès qu’une trame de surcharge est émise, les autres nœuds
voient sur le bus une suite de six bits dominants qui ne respectent
pas la règle du Bit-Stuffing.
Ils émettent à leur tour une trame de surcharge. Seulement deux
trames de surcharges consécutives sont autorisées sur le bus (pas
plus de 12 bits dominants consécutifs émis sur le bus).

Vous aimerez peut-être aussi