STRUCTURE &
FONCTIONNEMENT DU BUS CAN
Smaïl NIAR
Smail.niar@univ-valenciennes.fr
MASTER1 IRCOMS
2007/2008
2
Réseau
embarqué
Intérêt du multiplexage
4
CAN
Un marché énorme : 50 millions de véhicules
par an.
CAN relie un ensemble de nœud (ECU
Electronic Control Unit)
Chaque ECU peut communiquer avec les autres
Les comm sont réalisées avec des paquets:
Messages.
Vitesse de transmission : jusqu’à 1Mbps.
CAN….
Un nœud peut envoyer des messages
1. En permanence (moteur, contrôleur de vitesse,
consommation carburant, etc.), lecture
périodique
2. Uniquement en cas de panne (température
dépassant un seuil),
Suite à 2 peut prendre une action suite à une
requête faite par un autre nœud (contrôleur de
valve de l’arrivée du carburant)
6
CAN: principales caractéristiques
Carrier Sense (CS) : Chaque nœud doit écouter le bus pendant
une période (bus libre) avant de transmettre.
Multiple Access (MA) : lorsque pendant une période le bus est
libre; chaque nœud a la même priorité pour envoyer des
messages.
Collision Detection (CD) – Si deux nœuds décident de
transmettre au même moment, il y a collision. Chaque nœud
transmet et écoute. Si ce qu’il écoute est différent de ce qu’il a
transmit: collision
Collision Resolution (CR) – La production de collision ne détruit
pas les messages (collision Non-destructive)
CSMA-CDCR
Certaines sources : CSMA-CA pour collision avoidance.
7
CAN
10
Couche physique
Protocol asynchrone
•Niveau logique 0 : bit dominant
•Niveau logique 1 : bit récessif
CAN_H
En cas de transmissions
simultanées : CAN_L
niveau 0 (dominant) +
niveau 1 (récessif) = 0 sur le bus
12
Couche Liaison
Il y a trois types de messages (Frames):
1. Data frame: Pour transmettre des données
d’un nœud à un autre. Standard ou étendu.
2. Remote frame : message requête de données.
Standard ou étendu.
3. Error Frame : Envoyé à tous les nœuds
lorsqu’un nœud détecte une erreur sur le bus
13
Data Frame
£ : <=
ACK est mis à 1 par l’émetteur mais mis 0 si au moins un nœud a reçu le
message.
Le champ CRC est calculé hors bit-stuffing (voir après)
Le polynôme utilisé est : x15+x14+x10+x8+x7+x3+1, il correspond à la suite :
1100010110001001
15
1100000000000011
16
Pas à pas OUX
Message:11010110110000
x4+x+1: 10011
010011
10011
0000010110
10011
0010100
10011
001110
17
Remote Frame…..
Bit RTR à 1 (d’où une priorité inférieure à la
trame de données!)
Ne contient pas de données
La réponse n’est pas « écrite » dans la trame
Permet une coopération de type Client-Serveur
Remote Frame : requete
Induit une surcharge sur le réseau
Aucune garantie sur le délai de la réponse !
La (ou les) trame de donnée auront le même
identier que la « remote frame » 20
Error Frame
21
22
Gestion des erreurs: 3 états…
Selon la valeur des compteurs :
Etat Erreur-active : fonctionnement normal
Etat Erreur-passive :
émission possible mais 8 bits après que le
bus soit libre
Etat Bus-off :
la station se déconnecte du bus (plus
d’émission ni de réception)
23
24
3 états:
128 occurrences
de 11 bits récessifs
25
Couche Liaison
La phase d’arbitrage « résolution des collisions » :
la trame la plus prio. gagne le bus.
L’arbitrage se fait sur les champs Identificateur +
RTR. (la réponse est plus prioritaire que la requête)
L’identificateur correspond à une information sur
l’origine de la donnée. Sert à filtrer.
Principe: chaque station émet puis écoute, si la
valeur lue est différente de la valeur émise, la
station sait qu’elle a perdu l’arbitrage.
Conséquence : un aller-retour pour le signal avant
l’émission d’un nouveau bit d’où limite sur le débit
max. 26
Bit récessif et bit dominant
27
Bit-Stuffing
28
Filtrage des trames Bit non pris en compte
(Registre de filtrage)
29
LLC
MAC
physique
30
CAN à l’œuvre : Réception
physique
MAC
LLC
31
32
Intégration du bus can
3 façons d’implémenter le bus Can dans un systèmes:
1 microprocesseur + Contrôleur CAN + Interface de ligne
(transceiver)
1microprocesseur CAN + Interface de ligne
Serial Link I/O (SLIO) : migration de systèmes existants à
des connexions de bus CAN.
33