• Aucun résultat trouvé

bus CAN

N/A
N/A
Protected

Academic year: 2021

Partager "bus CAN"

Copied!
19
0
0

Texte intégral

(1)

Le bus CAN (Controller Area Network)

Bus série asynchrone

Un seul message à la fois

Tous les nœuds peuvent envoyer des messages

Tous les nœuds reçoivent les messages

Les conflits (collisions) et les erreurs sont gérés automatiquement

Chaque message possède un identifiant

Un nœud peut filtrer les identifiants pour ne conserver que certains messages

Couches 1 et 2 du modèle OSI (Physique et liaison de données)

Université de Karlsruhe et Bosch (années 1980..)

(2)

Bibliographie

http://www.semiconductors.bosch.de/media/pdf/canliteratur/can2spec.pdf

http://www.can-cia.de/

http://fr.wikipedia.org/wiki/Controller_Area_Network

http://sitelec.org/download.php?filename=cours/canbus.pdf

(3)

Vue d’ensemble

Can_H

Can_L Microcontrôleur1 Contrôleur CAN1

TranceiverCAN1 Nœud 1

Microcontrôleur2 Contrôleur CAN2

TranceiverCAN2 Nœud 2

Microcontrôleur3 Contrôleur CAN3

TranceiverCAN3 Nœud 3

Bus CAN

R

(4)

Arbitrage du bus

Bits dominants (0) – bits récessifs (1)

Si deux nœuds sont en conflit le bit dominant l’emporte, le nœud dominé arrête l’émission et continue à écouter le bus, il fera une nouvelle tentative lorsque le bus sera libre.

Le tranceiver CAN gère uniquement les niveaux électriques

Le contrôleur CAN s’occupe de tout le reste…

(5)

Tranceiver CAN

• Exemple le MCP2551

(6)

Niveaux électriques

Transmission différentielle

(7)

Contrôleur CAN

• Intégré au microcontrôleur (Microchip, TI, freescale, etc…

• Externe au microcontrôleur (SJA1000…)

• Rôle:

– Emission et réception des trames, envoi automatique sur demande (request) – Mise en trames des données à envoyer

– Réception, filtrage des trames et récupération des données – Acquittement automatique des trames reçues (ACK)

– Stockage des données reçues ou à envoyer dans des « FIFO » – Gestion sophistiquée des erreurs et de la surcharge du bus…

• Mise en œuvre simple:

– Registre à initialiser (débit, filtre/masque pour les identifiants…

– Possibilité d’utiliser les interruptions…

(8)

Contrôleur CAN du DSPic30Fxxxx

(9)

Trame CAN

• Trames de données

• Trames de requête

• Trames d’erreur

• Trames de surcharge

(10)

Trame de donnée CAN

11 ou 29 bits

Nombre d’octets de données de 0 à 8

Bit récessif écrasé par un bit dominant du récepteur du message

(11)

Trame de requête CAN

11 ou 29 bits

Lorsque le destinataire correctement configuré accepte cette trame il répond en retournant une trame de même identifiant avec des données.

(12)

2 registres de réception

(13)

Masque et filtres

• On peut filtrer les messages reçus en fonction de leur identifiant grâce aux registres filtres et masques.

• Filtre:

– Seuls les bits non masqués sont testés

– Ils doivent correspondre au bits du filtre pour que le message soit accepté

• Masque:

– les bits de l’ID correspondants aux « 0 » du masque ne sont pas

filtrés (ils sont acceptés)

(14)

Configuration « quantum » TQ

Durée d’un bit = 8 à 25.TQ

(15)

Exemple de calcul

Données :

- Débit souhaité Fbit = 1Mbit/s - Quartz : Fquartz = 8MHz - PLL : 8

Calcul:

- Fcy = PLL*Fquartz/4 = 16 MHz Choix :

- Fcan = (1 ou 4)*Fcy (configurer C1CTRL ) Soit Fcan = Fcy = 16MHz

- Quantum Fq = (8 à 25)*Fbit (à choisir…) Soit 1bit = 8 quantum (configurer C1CFG1-2)

=> Fq = 8*Fbit = 8MHz Calcul du prédiviseur:

- Prédiviseur de l’horloge quantum BRP:

BRP = Fcan / (2*Fq) -1 - Le calcul donne BRP=0

(16)

Mailbox

Ensemble de registres pour stocker les trames:

- l’identifiant (3 registres 16 bits)

- la donnée (8 octets) = 4 registres 16bits - les masques

- les filtres

2 « mailbox » de reception RX0 et RX1

3 « mailbox » d’émission TX0 TX1 et TX2

(17)

Interruptions CAN

Plusieurs sources : - message reçu - émission terminée - erreur

Si plusieurs sources sont autorisées, la routine de traitement doit tester l’origine de la demande

(18)

- Télécharger et étudier le programme de test

- Ce programme se pilote par le port série (38400bds,N,8,1) - Relier deux cartes de TP (quartz 8 MHz) par le bus CAN

TP CAN sur DSP 30f4011

120 ohms 120 ohms

7

2

7

2

Connecteur DB9 Connecteur DB9

Can_H

Can_L

(19)

- Vérifier le bon fonctionnement

- Observer les trames à l’oscilloscope sur TXcan, RXcan, CanH et CanL - Compléter ce programme pour:

- Choisir l’identifiant du message à envoyer

- Recevoir uniquement les messages d’identifiants compris uniquement entre 0x2000 et 0x2FFF sur RX0 et les messages 0x3000 et 0x4000 sur RX1 - Changer la vitesse entre 1Mbit/s et 125kbits/s

- Utiliser le mode requête

- Gérer toutes les sources d’interruptions CAN

TP CAN sur DSP 30f4011

Références

Documents relatifs

CSMA-CD Carrier Sense Multiple Access /Collision Detection: Algorithme CSMA-CD Si un coupleur veut émettre: a Il écoute le canal, si libre il émet tout en continuant à écouter b

$XVWUDORSLWKHFXVDIDUHQVLV(QWDQW TXH UHSUpVHQWDQWH GH FHWWH HVSqFH /XF\ GHYDLW DUERUHU XQH FDSDFLWp FUkQLHQQH G·HQYLURQ FP HW PHVXUHUSUqVGHPGHKDXWHXU SRXUXQHPDVVHGHPRLQVGHNJ (Q

● quelle quantité totale de données la machine M1/P1 peut-elle envoyer sans recevoir de ack dans les trames 9 et

Si par contre le bateau quitte sa trajectoire, le compas du pilote s'en écarte d'autant, et transmet un signal électronique qui donne alors l'ordre au moteur de tourner dans le

quelconques, le problème de la définition d’un objet sera le processus qui permet d’assigner une place non ambigüe au concept de cet objet dans une trame ou une

Plusieurs DESCRIPTEURS peuvent être utiles pour décrire un même objet (par exemple des descripteurs permettant de caractériser un contact : nom, prénom, adresse et

On rappelle qu’une trame Ethernet est composé d’un en-tête de 14 octets, d’au moins 46 octets de données et de 4 octets pour le code CRC.. Vous trouverez en annexe A des détails

Par contre, La machine dont l’adresse IP est 10.0.232.3 est très probablement dans le même réseau que 10.0.232.4, et donc son paquet ping n’a pas besoin de passer par la passerelle,