le bus can ivan francoisivan.francois92.free.fr/le_bus_can.pdf · couche physique elle définit...

33
Le bus CAN Ivan FRANCOIS 1 1 LE BUS CAN Control Area Network 2 Introduction Bus/réseau de terrain Respecte les spécifications ISO/OSI Fonctionne dans des environnements limités et sévères Haut niveau de fiabilité

Upload: vuongcong

Post on 12-Sep-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 1

1

LE BUS CAN

Control Area Network

2

Introduction

Bus/réseau de terrain

Respecte les spécifications ISO/OSI

Fonctionne dans des environnements limités etsévères

Haut niveau de fiabilité

Page 2: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 2

3

CAN pour l’automobile

CAN est conçu par BOSCH en 1983 devantla montée de l’électronique embarquée dansles voitures et du nombre de câbles

La première voiture multiplexée à utiliser lebus CAN comme support de transmission aété réalisée en 1991 (avec un débit de 500kbit/s)

Actuellement, il peut y avoir plusieurs busCAN dans une voiture suivant les modèles

4

CAN pour l’automobile

Situation du câblage dans les années 80

Tableau de bord

Contrôle moteur

Airbag

Sièges électriques

Boite de vitesse

Vitres électriques

Phares

suspensions

ABS

Climatisation

Page 3: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 3

5

CAN pour l’automobile

Situation sur les modèles récents

Tableau de bord

Contrôle moteur

Airbag

Sièges électriques

Boite de vitesse

Vitres électriques

Phares

suspensions

ABS

Climatisation

Bus CAN Bus CAN

6

Couches OSIOpen System Interconnection

Le bus CAN ne concerneque les couches basses:

– Couche physique

– Couche liaison de données

APPLICATION

PRESENTATION

SESSION

TRANSPORT

RESEAU

LIAISON

PHYSIQUE

Page 4: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 4

7

Couches OSI

COUCHE LIAISON

LLC ( Logic Link Control )

Filtrage d'acceptance des messages

Notification de sucharge ( overload )

Recouvrement des erreurs

MAC ( Medium Access Control )

Encapsulation/Décapsulation des données

Codage de trame ( Stuffing/Destuffing )

Medium Access Management

Détection d'erreur

Signalisation d'erreur

Acquittement

Sérialisation/Désérialisation

COUCHE PHYSIQUE

PLS ( Physical Signalling )

Codage/Décodage de bit

Bit timing

Synchronisation

PMA ( Physical Medium Attachment )

Caractéristiques

Driver/Receiver

MDI ( Medium Dependent Interface )

Connecteurs

8

Couche liaisonSous couche LLC

La sous-couche LLC s’occupe:

– du filtrage des messages.

– de la notification de surcharge (Overload).

– de la procédure de recouvrement des erreurs.

Page 5: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 5

9

Couche liaisonSous couche MAC

C’est le noyau du protocole CAN. Elle a pourfonction de présenter les messages reçus enprovenance de la sous-couche LLC etd’accepter les messages devant êtretransmis vers la sous-couche LLC. Elle estresponsable de :– la mise en trame du message.– l’arbitrage.– l’acquittement.– la détection des erreurs.– la signalisation des erreurs.

10

Couche physique

Elle définit comment le signal est transmis. Sonrôle est d’assurer le transfert physique des bitsentre les différents nœuds en accord avectoutes les propriétés (électriques,électroniques…) du système

A l’intérieur d’un unique réseau la couchephysique doit être la même pour chaque noeud.

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.

Page 6: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 6

11

Implémentations CAN typique

Nœud A Capteur

Microcontrôleur avec contrôleur

CAN intégré

Interface de ligne: CAN transceiver

CAN L (CAN LOW)

CAN H (CAN HIGH)

DAC, I2C, SPI,…

CANTX CANRX

TXD RXD

CANLCANH

Nœud N Capteur

Microcontrôleur avec contrôleur

CAN intégré

Interface de ligne: CAN transceiver

DAC, I2C, SPI,…

CANTX CANRX

TXD RXD

CANLCANH

120Ω

BUS CAN120Ω

12

Caractéristiques physiques du bus CAN

La transmission des données est effectuée sur une paire filaire différentielle. La ligne est donc constituée de deux fils :

La transmission en paire différentielle permet de s'affranchir des problèmes de parasites

CAN L (CAN LOW)

CAN H (CAN HIGH) Paire filaire

Page 7: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 7

13

Caractéristiques physiques du bus CAN

Pour les niveaux physiques sur le bus, il estimportant de distinguer les deux types detransmission possibles :

– transmission en bus CAN low speed ≤125kb/s

– transmission en bus CAN high speed >125kb/s

14

Caractéristiques physiques du bus CAN

Niveau de tension du bus CAN Low Speed

Page 8: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 8

15

Caractéristiques physiques du bus CAN

Niveau de tension du bus CAN High Speed

16

L’interface de ligne

C’est l’interface finale entre lemicrocontrôleur et les fils

Ce circuit réalise la transposition de niveauxasymétriques (0 à 5V) en niveauxdifférentiels sur une ligne d’impédancecaractéristique de 120 Ω

Page 9: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 9

17

Règles de fonctionnement et définitions

Nœud: Sous-ensemble relié à un réseau decommunication et capable de communiquersur le réseau selon un protocole decommunication (ici le protocole CAN)

Flexibilité: aucune modification logicielle oumatérielle n’est requise lorsqu’un nœud estajouté au réseau

18

Règles de fonctionnement et définitions

Débit bit (bit rate): le débit bit peut varierentre différents systèmes, mais il doit êtrefixe et uniforme au sein d’un même système

Fonctionnement multimaître : lorsque lebus est libre, chaque nœud peut déciderd’envoyer un message. Seul le message deplus haute priorité prend possession du bus.

Page 10: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 10

19

Arbitrage - Identificateur

Si deux nœuds ou plus tentent d’émettre unmessage sur un bus libre il faut régler lesconflits d’accès. On effectue alors unarbitrage bit à bit (non destructif) tout au longdu contenu de l’identificateur.

Ce mécanisme garantit qu’il n’y aura ni pertede temps, ni perte d’informations.

20

Arbitrage

Utilisation de la dominance de bit:

– 0 bit dominant

– 1 bit récessif

Exemple 3 nœuds veulent émettre en même temps:

– N1: 01100111010

– N2: 01100101000

– N3: 01100101011

Page 11: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 11

21

Arbitrage

Nœud 1 0 1 1 0 0 1 1 Perdu

Nœud 2 0 1 1 0 0 1 0 1 0 0 0 Gagné

Nœud 3 0 1 1 0 0 1 0 1 0 1 0 Perdu

Bus CAN 0 1 1 0 0 1 0 1 0 0 0

22

Arbitrage

Tous les nœuds vérifient l’état du bus aprèsémission d’un bit

Si un bit récessif est émis et un bit récessifest lu, le nœud continue à émettre

Si un bit récessif est émis et un bit dominantest lu, il y a conflit et perte d’arbitrage. Lenœud stoppe son émission et passe enmode réception

Page 12: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 12

23

Sécurisation de la transmissionBit stuffing

Insertion d’un ‘0’ après une suite de cinq ‘1’consécutifs

Insertion d’un ‘1’ après une suite de cinq ‘0’consécutifs

Cette technique est uniquement active surles champs de SOF, d’arbitrage, de contrôle,de données et de CRC (délimiteur exclu)

24

Sécurisation de la transmissionBit stuffing

6ème ‘1’ consécutif

Trame originale: 010011111110010001

Trame transmise: 0100111110110010001Bit de transparence inséré dans la trame

6ème ‘0’ consécutif

Trame originale: 010000001110010001

Trame transmise: 0100000101110010001Bit de transparence inséré dans la trame

Page 13: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 13

25

Les différents types de trames

Trame de données (data frame)

Trame de requête (remote frame)

Trame d’erreur (error frame)

Trame de surcharge (overload frame)

26

Trame de données

Il existe 2 formats de trame de données:

– CAN 2.0A trame standard. Identificateur sur 11 bits

– CAN 2.0B trame étendue. Identificateur sur 29 bits

Page 14: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 14

27

Trame de données

Espace inter

trame

SOF

Arbitration

ID

RTR

IDE DLC DATA BYTE CRCACK

END OF FRAME

Espace inter

trame

1

bit

11 bits ou

29 bits

1

bit

2

bits

4

bits0-8 octets 16 bits

2 bits

7 bits

Champ de données

Champ de commandes

Champ d’arbitrage

Début de trame

Champ de CRC

Champ d’acquittement

Fin de trame

28

Trame de donnéesDébut de trame

Début de trame 1 bit

– Constitué d’un seul bit dominant

– Signale le début d’un échange

– Un nœud est autorisé à émettre que si le bus estlibre

Page 15: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 15

29

Trame de donnéesChamp d’arbitrage

Champ d’arbitrage 12 bits

– Identificateur 11 bits (CAN 2.0 A) ou 29 bits (CAN2.0 B)

Ordre de ID10 (MSB) vers ID0 (LSB)

L’identificateur le plus prioritaire (valeur la plus faible)

gagne le bus

– RTR Remote Transmission Request 1bit

Récessif lors d’une trame de requête

Dominant lors d’une trame de données

30

Trame de donnéesChamp de commande

Champ de commande 6 bits

– Bits de réserve 2 bits

Permettent d’assurer la compatibilité entre CAN 2.0A et

CAN 2.0B (dominants pour CAN 2.0A)

– DLC Data Length Code 4 bits

Nombre d’octets contenues dans le champ de données

(0 à 8 octets)

Page 16: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 16

31

Trame de donnéesChamps de données

Champs de données 0 à 64 bits

– Champ où se trouvent les données utilestransmises

– 0 octets minimum, 8 octets maximum

– Chaque octet est transmis avec le bit de poids forten tête

32

Trame de donnéesChamp de CRC

Champ de CRC (Cyclic Redondance Code)16 bits

– Séquence CRC 15 bits

– Délimiteur de CRC 1 bit

Ce champ permet de s’assurer de la validitédu message transmis

Un calcul permet de déterminer 5 erreurs aumaximum

Page 17: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 17

33

Trame de donnéesCalcul du CRC

On considère le polynôme f(x), dont lescoefficients sont les bits de début de trame,des champs d’arbitrage, de contrôle et dedonnées

Le polynôme obtenu est multiplié par x15

On divise ensuite ce polynôme par lepolynôme générateur:

g(x)=x15+x14+x10+x8+x7+x4+x3+1

Le reste de cette division donne le CRC

34

Trame de donnéesCalcul du CRC

Exemple: L’identifiant 5 envoi de l’octet A0h SOF=0

Id=101

RTR=0

IDE=00

DLC=0001

Donnée=1010

Le polynôme est f(x) = x17+x15+x8+x7+x5

Page 18: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 18

35

Trame de donnéesCalcul du CRC

On multiplie f(x) par x15 . On obtient:

x32+x30+x23+x22+x20

Ensuite, on divise (modulo 2) ce polynômepar

x15+x14+x10+x8+x7+x4+x3+1

Un algorithme permet d’effectuer cettedivision

Le reste de la division donne le CRC sur 15bits

36

Trame de donnéesChamp d’acquittement

Champ d’acquittement

– ACK SLOT émis à l’état récessif

A chaque fois qu’une station a émis un message valide,

elle superpose un bit dominant sur le Ack Slot.

Sinon elle envoi une trame d’erreur

L’acquittement signifie qu’au moins une station a reçue

la trame

– ACK DELIMITER toujours récessif

Bit délimiteur d’acquittement

Page 19: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 19

37

Trame de donnéesFin de trame

Fin de trame 7 bits

– 7 bits récessifs successifs

– Les logiques de codage et de décodage Bit

Stuffing sont désactivées pendant la séquence defin de trame

38

Trame de requête

Les règles de construction des diverschamps sont les mêmes que dans le casd’une trame de données. Le champ dedonnées est vide

Si un nœud a besoin d’un certain nombre dedonnées, il va émettre une trame de requêteen prenant soin d’indiquer dans le champ decontrôle le nombre d’octets de données dontil a besoin

Permet une coopération de type Client-Serveur

Page 20: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 20

39

Trame de requête

Début de trame

– Identique à la trame de données

Champ d’arbitrage

– Identificateur identique à la trame de données

– RTR toujours récessif

Une trame de données sera toujours prioritaire sur une

trame de requête

40

Trame de requête

Champ de commande 6 bits

– Bits de réserve 2 bits

Permettent d’assurer la compatibilité entre CAN 2.0A et

CAN 2.0B

– DLC Data Length Code 4 bits

Nombre d’octets contenues dans le champ de données

(0 à 8 octets) qui devra être retournée par la trame de

donnée demandée

Page 21: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 21

41

Trame de requête

Champ de données

– Toujours vide

Champ de CRC d’acquittement et fin detrame

– Identique à la trame de données

42

Gestion des erreurs

Principe: une station qui détecte une erreur,la signale aux autres par une trame d’erreur

Page 22: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 22

43

Différents types d’erreurs

Erreur de Bit stuffing (stuff bit error)– 6 bits consécutifs de même niveau entre le SOF et le CRC

delimiter

Erreur de bit (bit error)– dominant + récessif = récessif !

Erreur de CRC (CRC error)– CRC error : CRC calculé ≠ CRC trame

Erreur d’acknoledge (ack error)– Acknoledge récessif!

Erreur de forme– Bit dominant fin de trame, inter trame ou CRC delimiter

44

Confinement d’erreurs

Un mécanisme permet de faire la distinctionentre un défaut temporaire (surtension,perturbation aléatoire) et une pannepermanente (mauvaise connexion, nœuddéfectueux, perturbation persistante,...)

Une station peut prendre l’un des trois étatssuivants:

– « error active »

– « error passive »

– « bus off »

Page 23: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 23

45

Compteur d’erreurs

2 compteurs d’erreurs permettent deconnaitre l’état d’un nœud:

– sur les trames émises (TEC – transmit errorcounter)

– sur les trames reçues (REC – receive errorcounter)

46

Evolution des compteurs

REC :– Réception d’une trame corrompue : +1 ou +8 selon

l’erreur (jusque 128)

– Réception d’une trame correcte : -1 (si >0)

TEC :

– Emission d’une trame corrompue : +8 (jusque 256)

– Emission d’une trame correcte : -1 (si >0)

Il existe quelques exceptions mineures à cesrègles (ex: quand une station est seule sur leréseau)

Page 24: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 24

47

Règle de changement des états

Error active

Reset

Bus Off

Error passive

REC>=127 OU

TEC>=127

REC<127 OU

TEC<127

TEC>=256

128

OCCURRENCES

DE 11 BITS

RECESSIFS

48

Etats des erreurs

0 à 127 état error active– Fonctionnement normal mais en cas d’erreur,

transmission d’un active error flag pendant latrame d’erreur

128 à 255 état error passive– Fonctionnement normal mais en cas d’erreur,

transmission d’un passive error flag pendant latrame d’erreur

Page 25: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 25

49

Etats des erreurs

>255 Bus Off

– Le nœud se déconnecte du bus

– Les drivers de bus ne sont plus actifs

– Le nœud sera autorisé à se reconnecter aprèsqu’il ait observé, sans erreurs sur le bus, 128trames de 11 bits récessifs

50

Trame d’erreur

Trame de données

incomplète6 bits 0…6 bits 8 bits 3 bits

Flag d’erreur Délimiteur d’erreurs intertrame

Superposition des flags

d’erreurs

Erreur

Trame d’erreur

Page 26: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 26

51

Trame d’erreur

Champ flag d’erreur

– Superposition des différents flag d’erreursauxquels ont contribué les différents nœudsprésents sur le bus

– 2 types de flag d’erreur

Active error flag

Passive error flag

Champ délimiteur d’erreur

– 8 bits récessifs consécutifs

52

Trame d’erreur

Trame de données

incomplète

6 bits

000000

0…6 bits

000000

8 bits

111111113 bits

Flag d’erreur Délimiteur d’erreurs intertrame

Superposition des flags

d’erreurs

Trame de données

incomplète

6 bits

111111

0…6 bits

111111

8 bits

111111113 bits

Flag d’erreur Délimiteur d’erreurs intertrame

Superposition des flags

d’erreurs

Active error flag: 6 bits dominants successifs

Passive error flag: 6 bits récessifs successifs

Page 27: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 27

53

Trame de surcharge

Indique qu’une station est surchargée pour un certain laps de temps

Trame de données6 bits

dominants

0…6 bits

dominants

8 bits

récessifs3 bits

Flag de

surcharge

Délimiteur de

surchargeintertrame

Superposition des flags

de surcharge

Trame de surcharge

54

Trame de surcharge

Une trame de surcharge est émise si:– un bit dominant est détecté durant la période

d’intertrame

– un récepteur n’est pas prêt pour la réceptiond’une nouvelle trame de donnée ou de requête(retard sur le traitement des informations circulantsur le bus)

Pas plus de 2 trames de surchargesconsécutives

Page 28: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 28

55

Nominal Bit Time

Le Nominal Bit Time représente la durée dubit sur le bus

Chaque station reliée sur le bus doit êtrecadencée avec le même Nominal Bit Timepour pouvoir émettre et recevoircorrectement les données

Le Nominal Bit Time, exprimé en secondes,correspond à l’inverse du débit sur le bus

56

Nominal Bit Time

Exemple:

Bus CAN 125 Kbits/S donne un Nominal bit timede 8 µS

Bus CAN 1 Mbits/S donne un Nominal bit timede 1 µS

1

Nominal_Bit_Rate (débit)

Nominal_Bit_Time =

Page 29: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 29

57

Nominal Bit Time

Nominal Bit Time est divisé en plusieurssegments

Nominal Bit Time

SYNC_SEG PROG_SEG PHASE_SEG1 PHASE_SEG2

segment de

synchronisation

1 bit

segment de

propagation

1 à 8 bits

segment de phase

buffer n°1

1 à 8 bits

segment de phase

buffer n°2

1 à 8 bits

58

Time Quantum Tq

Unité de temps construite à partir de lapériode de l’oscillateur interne de chaquenœud

Tq = m * Tosc

Tosc

Tq

Page 30: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 30

59

Time Quantum Tq

Nominal bit time Tbit = Tq*(SYNC_SEG + PROG_SEG +

PHASE_SEG1 + PHASE_SEG2)

Exemple:

– SYNC_SEG = 1 bit

– PROG_SEG = 1 bit

– PHASE_SEG1 = 3 bits

– PHASE_SEG2 = 3 bits

Si Fosc = 8 Mhz et m=2 alors

Tq = 2*125 ns = 250 ns

Soit Tbit = 8 * 250ns = 2 µs

Donc un nominal bit rate (débit brut du bus CAN) = 500 Kbits/s

⇒Tbit= 8*Tq

60

Débit net / débit brut

Le débit brut– S’étend de 125 kb/s à 1 Mb/s suivant le type de bus

CAN utilisé

– Compte tous les bits qui sont transmis sur le bus

Le débit net– Ne tient compte que des bits transportant des

informations utiles

– Ne compte pas tous les bits tels que le SOF, lesAcknowlegde Delimiter, les bits de Bit-Stuffing...

Page 31: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 31

61

Exercices

A un instant donné, le bus devient libre et 2 tramesd’identificateurs 31 et 29 (émises respectivement parles stations 1 et 2) sont en concurrence.Représenter les bits émis par les stations 1 et 2 et leniveau résultant sur le bus

Quelle est la durée maximale de transmission d’unetrame CAN (2.0A) sur un réseau à 125kbit/s ?

Sur un bus CAN à 500kbit/s, quel débit utile(données) peut-on espérer ?

62

Application au Pic 18F4685

Le pic 18f4685 possède un contrôleur CANintégré

Les deux formats de trame de données 2.0Aet 2.0B sont compatibles

3 modes de fonctionnement: mode 0, mode1 et mode 2

Page 32: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 32

63

Réglage du débit

D’après les équations du transparent 56

1/débit =Tbit = Tq*(SYNC_SEG + PROG_SEG + PHASE_SEG1 + PHASE_SEG2)

Or Tbit=1/débit et Tq =m.Tosc soit

).mPHASE_SEG2 PHASE_SEG1 PROG_SEG (SYNC_SEG

FoscDébit

+++

=

64

Réglage des registres

3 registres BRGCON1, BRGCON2 et BRGCON3permettent de régler le débit (datasheet p. 312)

La variable BRP(baud rate prescaler) est directementliée à m:

m=2*(BRP+1) soit

1)).2(BRPPHASE_SEG2 PHASE_SEG1 PROG_SEG (SYNC_SEG

FoscDébit

++++

=

Page 33: Le bus CAN Ivan Francoisivan.francois92.free.fr/Le_bus_CAN.pdf · Couche physique Elle définit comment le signal est transmis. Son rôle est d’assurer le transfert physique des

Le bus CAN

Ivan FRANCOIS 33

65

Filtres et masques

Les filtres et masques sont utilisés afin dedéterminer si un message reçu doit êtrechargé dans les buffers

Si le masque est à zéro, le message seraaccepté

Si le filtre est égal à l’identificateur, lemessage sera accepté.

66

Table de vérité des fitres/masques

Masque bit n Filtre bit nIdentificateur

bit nBit n accepté ou rejeté

0 X X Accepté

1 0 0 Accepté

1 0 1 Rejeté

1 1 0 rejeté

1 1 1 Accepté