Loading documents preview...
LE BUS CAN Réalisé Par: EL KHAZRAJI NABIL TIGHAZOUANE YASSINE
Encadré Par Mr : A.MOUHSEN
Sommaire : Généralités. Principe De Fonctionnement. Les Trames. Gestion d’erreurs. Application.
Généralités Depuis les années 1960 la longueur des câbles utilisés dans l’automobile ne cesse de croître ainsi que Le nombre des connexions. La fiabilité et la sécurité sont menacés. La société BOSCH développe dès le début des années 1980 une solution de multiplexage des informations circulant à bord de la voiture. Le bus CAN apparaîtra et sera normalisé dans les années qui suivent (dès 1983). Les composants CAN se démocratisent et investissent d’autres secteurs de l’industrie (médical, produits numériques, systèmes électrotechnique…).
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 donc à tour de rôle. Cette technique élimine le besoin de câbler des lignes dédiées pour chaque information à faire transiter (connexion point-à-point). Dès qu'un système (voiture, avion, réseau téléphonique…) atteint un certain niveau de complexité, l'approche point-à-point devient impossible du fait de l'immense quantité de câblage à installer et de son coût (en masse, matériaux, main d'œuvre, maintenance).
Le modèle OSI : Afin de normaliser les protocoles, l’International Standard Organisation (ISO) a développé le modèle Open System Interconnections (OSI), qui permet d’identifier et de séparer les différentes fonctions d’un système de communication. Ce modèle divise en sept couches les fonctions d’un système de communication. Cependant il n’est pas indispensable de disposer de toutes les couches dans un système : selon les fonctionnalités requises, certaines couches intermédiaires sont inutiles.
UTILISATEUR SE 7
application
6
présentation
5
session
4
transport
3
réseau
2
liaison
1
physique
La couche physique ou transmission des bits Réalise la transmission des éléments binaires constitutifs des trames sur le support suivant des caractéristiques physiques, électriques, optiques et mécaniques définies par des normes. On lui associe les notions de directionnalité (mono- ou bi-), de temps de propagation, de valeurs pour l’état haut, l’état bas.
La couche de liaison des données ou niveau trame UTILISATEUR SE 7
application
6
présentation
5
session
4
transport
3
réseau
2
liaison
1
physique
La couche liaison est subdivisée en deux sous-couches. La sous-couche LLC (Logical Link Control) effectue : le filtrage des messages, la notification des surcharges (overload), la procédure de recouvrement des erreurs. La sous-couche MAC (Medium Access Control), qui est le cœur du protocole CAN, effectue : la mise en trame du message, l'arbitrage, l'acquittement, la détection des erreurs, la signalisation des erreurs.
Principe De Fonctionnement Le bus CAN (Control Area Network) est un bus de communication série, principalement conçu pour mettre en réseau diverses cartes électroniques. Il est utilisé dans l’automobile pour faire dialoguer les divers systèmes de contrôle ou de commande : ABS, système de freinage, de suspension etc...
La Diffusion d’information Dans un protocole CAN, tout les périphériques sont au même niveau (pas de relation maitre-esclave). Chaque station connectée au réseau écoute les trames transmises par les stations émettrices et ensuite chaque nœud décide quoi faire du message, s’il doit y répondre ou non.
Le NRZ : bits dominants et récessifs La succession de bits transitant sur le bus est codé avec la méthode du NRZ (Non Return To Zéro). 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 ou récessive.
0
1
1
0
1
0
0
dominant
récessif
récessif
dominant
récessif
dominant
dominant
ongueur du Bus et Débit Débit 1 800 500 250 125 62,5 20 10
Mbit/s kbit/s kbit/s kbit/s kbit/s kbit/s kbit/s kbit/s
Longueur 30 50 100 250 500 1000 2500 5000
m m m m m m m m
Longueur d'un bit 1 s 1,25 s 2 s 4 s 8 s 16 s 50 s 100 s
Le bit stuffing Une des caractéristiques du codage NRZ est que le niveau du bit est maintenu pendant toute sa durée. Cela pose des problèmes de fiabilité si un grand nombre de bits identiques se succèdent. La technique du Bit Stuffing impose au transmetteur d’ajouter automatiquement un bit de valeur opposée lorsqu’il détecte 5 bits consécutifs dans les valeurs à transmettre.
Trame à l'émission avant la mise en place des bits de stuffing
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Trame avec bits de stuffing (S)
1
2
3
4
5
6
7
S
8
9 10 11 12 13 14 15 16 17 18 19 S 20 21 22 23 24
Le bit timing On définit la plus petite base de temps reconnue sur un bus CAN comme étant le Time Quantum. Cette base de temps est une fraction de l’horloge de l’oscillateur du bus. Un bit dure entre 8 et 25 quantum.
Horloge Quantum Horloge drédivisée
Durée d'un bit (bit time)
Les Trames Il existe plusieurs types de trame : Trame Trame Trame Trame
de données de requête d'erreur de surcharge
La trame des données Une trame de données se compose de 7 champs différents : Le début de trame ou SOF (Start Of Frame) matérialisé par 1 bit dominant. Le champ d'arbitrage (identificateur) composé de 12 ou 30 bits. Le champ de commande (ou de contrôle) composé de 6 bits. Le champ de données composé de 0 à 64 bits (de 0 à 8 octets). Le champ de CRC composé de 16 bits. Le champ d'acquittement composé de 2 bits. La fin de trame ou EOF (End of Frame) matérialisée par 7 bits récessifs.
L’Arbitrage Dans un système typique, certains paramètres vont changer plus rapidement que d'autres. Ce sera par exemple la vitesse d'un moteur, tandis qu'un paramètre plus lent pourra être la température de l'habitacle. Il est donc naturel que les paramètres qui varient le plus soient transmis le plus souvent et par conséquent doivent avoir une plus grande priorité.
Remarque Le protocole CAN 2.0 comporte deux spécifications qui diffèrent uniquement au niveau de la longueur de l’identificateur. La version 2.0A définit des identificateurs de 11 bits (on parle dans ce cas de trame de format standard) et la version 2.0B des identificateurs de 29 bits (on parle dans ce cas de trame de format étendu).
Exemple D’arbitrage
Rôle des bits dans le champ d’arbitrage: Le bit SOF (début de trame de données) est dominant il signale à toutes les stations le début d'un échange. Cet échange ne peut démarrer que si le bus était précédemment au repos. Toutes les stations doivent se synchroniser sur le flanc avant la transition du bit de départ. Identificateur : La longueur de l'identificateur est de 11 bits, les bits sont transmis dans l'ordre de ID_10 à ID_0 (le moins significatif est ID_0). Le bit RTR : Lors d'une trame de requète, le bit de remote transmission request (RTR) doit être dominant.
Champ de commande
Champ de données
Champ de commande
Champ d'arbitrage
Bits de réserve R0
R1
Data Lengh Code DL C3
DL C2
DL C1
DL C0
Le bit de poids fort est utilisé pour différencier le type de trame : Dans le cas d'une trame standard (sur 11 bits), le bit de poids fort est dominant. Dans le cas d'une trame étendue (sur 29 bits), le bit de poids fort est récessif.
Bits DLC : Les 4 derniers bits du champ de commande (champ DLC - Data Length Code) indiquent le nombre d'octets qui seront contenus dans le champ de données. Nombre d'octet
DLC 3
0
d
d
d
d
1
d
d
d
r
2 3
d d
d d
r r
d r
4 5
d d
r r
d d
d r
6
d
r
r
d
7 8
d r
r d
r d
r d
DLC DLC DLC 2 1 0
Champ de données Le champ de données est l'endroit où se trouvent les données utiles transmises. Il peut être composé de 0 octet minimum à 8 octets maximum transmis avec le MSB (Most Significant Bit) en tête. Champ de commande
Champ de données 0 à 8 octets M S B
L S B
1 octet
Champ de CRC
Le champ de CRC Le CRC est calculé à partir de l'ensemble des champs transmis jusque là (c'est-à-dire le SOF, le champ d'arbitrage, le champ de commande et le champ de données) Il permet de vérifier l'intégrité des données transmises. Champ de données ou de commande
Champ de CRC
Séquence de CRC 15 bits
Champ d'acquittement
Délimiteur de CRC
Le champ ACK Il est composé de 2 bits, l'ACK Slot et le ACK Délimiter (1 bit récessif). Un nœud en train de transmettre envoie un bit récessif pour le ACK Slot. Un nœud ayant reçu correctement un message en informe le transmetteur en envoyant un bit dominant pendant le ACK Slot : il acquitte le message. Champ de CRC
ACK-Slot
Champ d'acquittement
Fin de trame
Délimiteur de ACK
Fin de trame de donnée La trame de donnée se termine par un drapeau formé par une séquence de 7 bits récessifs, ce qui, dépasse de deux bits la largeur de la norme de bit stuffing. Ce champ a une structure fixe et les logiques de codage (à l'émission) et de décodage (aux réceptions) le bit stuffing est désactivé pendant la séquence du champ de fin de trame.
Trame de requête Il se peut aussi qu'un nœud ait besoin d'information d'un certain type dont il ne dispose pas . dans ce cas il demande une donnée à un autre nœud en envoyant à celui-ci une trame de requête . Espace inter trame
Espace inter trame
Trame de requête de données
Nb de bits 1
11 Identificateur
Début de trame
1
6
0à8 octets
Données (optionnel) Commande Bit de RTR
15 Séquence de CRC Délimiteur CRC
111
7
3
Fin de trame Délimiteur ACK Slot ACK
Comparaison de deux trames avec le même identificateur, l’une de données l’autre de requête : la trame de donnée est prioritaire sur la trame de requête. Trame standard (donnée/requête), avec des identificateurs identiques Noeud A SOF ID10 (trame de donnée)
Noeud B SOF ID10 (trame de requête)
Récessif ID9
ID8
ID7
ID6
ID5
ID4
ID3
ID2
ID1
ID0
RTR Dominant Récessif
ID9
ID8
ID7
ID6
ID5
ID4
ID3
ID2
ID1
ID0
RTR Dominant
Le noeud B perd l'arbitrage, le noeud A prend le bus
Période d'intertrame (interframe) Les trames de requête et de donnée sont séparées des trames précédentes de quelques types qu'elles soient par un champ de bits appelé interframe space. L'interframe space se compose de deux ou trois champs selon les cas. Ce sont : le champ de bits intermission le champ de bits de bus idle (bus libre), d'un champ de bits de suspend transmission, pour les stations en error passive qui ont envoyé un message d’erreur.
Trame
Espace intertrame
Intermission
Trame
Bus libre
Intertrame "erreur active" Trame
Espace intertrame
Intermission
Suspension transmission
Trame
Bus libre
Intertrame "erreur passive"
Trame de surcharge (overload frame) La trame de surcharge peut être utilisée dans 2 cas : Lorsque le nœud demande un délai avec la réception d'une nouvelle trame, Lorsque le nœud détecte un bit dominant pendant une période d'intertrame (3 bits récessifs entre les trames). Lorsqu'un nœud émet une trame de surcharge pour demander un délai (condition n°1), il écrase les 3 bits récessifs de la période d'intertrame, les autres nœuds détectent la surcharge, et elles émettent elles-mêmes des trames de surcharge (condition n°2) Trame de surcharge
Intertrame ou trame de surcharge
Trame de Flag de surcharge donnée
Superposition maximale des flags de surcharge
Délimiteur de surcharge
Gestion D’erreurs Types d'erreurs Erreur de bit : Chaque fois qu'un nœud émet un bit sur le bus, il relit le bus et doit retrouver le bit qu'il a écrit. Si sur l'envoi d'un bit récessif, il relit un bit dominant, c'est que celui-ci a été altéré.
Erreur de stuffing : 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é avec la méthode du bit stuffing.
Erreur De CRC : Si la valeur de CRC calculée par le nœud récepteur est différente du CRC codé dans la trame par le nœud émetteur, c'est que la trame a été altérée.
Erreur D’acquittement : Le transmetteur détecte une erreur d'acquittement lorsqu'il ne reçoit pas de bit dominant pendant le ACK Slot.
Erreur De Forme : Une Erreur De Forme est détectée lorsqu'un bit qui devrait être à une certaine valeur est à une valeur différente (un délimiteur par exemple).
La trame d’erreur Les 8 bits du Délimiteur d’erreur donnent l’autorisation aux nœuds du réseau de reprendre leurs communications.
Trame d'erreur ACTIVE ERROR FLAG Trame de données
Flag d'erreur
Superposition maximale des flags d'erreur
Délimiteur d'erreur
Intertrame ou trame de surcharge
Confinement d’erreurs
Le Confinement d’erreurs est un mécanisme ayant pour but d'être apte à déterminer si un nœud : n'est pas perturbé du tout, est peu perturbé, est un peu plus gravement perturbé, est tellement perturbé qu'il doit passer en bus off L'une des finalités de ce mécanisme consiste à permettre la détection des défauts et perturbations du hardware, mais aussi et surtout à procéder à leur localisation afin de pouvoir intervenir avec précision.
Compteurs d'erreur Chaque nœud possède deux compteurs d'erreur : un compteur d'erreur de transmission ou « Transmit Error Counter » (TEC), un compteur d'erreur de réception ou « Receive Error Counter » (REC).
Les Compteurs auront pour mission d'enregistrer (compter) les erreurs se produisant lors de transmissions et de réceptions.
Modes d'erreur Mode d'erreur active : Le Nœud continuera de recevoir et d'émettre normalement dans le cas où une erreur est détectée, il transmettra un active error flag pendant la trame d'erreur. Mode d'erreur passive : Le Nœud continuera de recevoir et d'émettre normalement mais aussi, qu'en cas de détection d'erreur, il continuera de transmettre uniquement des passive error flag pendant la trame d'erreur. Mode « Bus Off » : Le Nœud se déconnecte du bus, ses étages de commande (les drivers) doivent être électroniquement déconnectés du bus.
"Normal Mode Request" et 128 occurences de 11 bits successifs/recessifs REC > 127 ou TEC > 127 Reset et configuration
Erreur active
Erreur passive
TEC > 255
Bus "OFF"
REC < 128 ou TEC < 128
Le protocole autorise un nœud bus off à redevenir error active (en ayant remis tous ses compteurs d'erreurs à zéro) après que celuici ait observé, sans erreur sur le bus, 128 occurrences de 11 bits récessifs .
APPLICATION Pour réaliser un périphérique CAN nous avons donc besoin d’un : Transceiver CAN pour adapter les signaux sur le bus Un contrôleur CAN pour gérer les règles d’émission et de la réception un microcontrôleur
Description l’application est un système permettant à un microcontrôleur PIC18F458 de récupérer les images de la tension et du courant fournis par des panneaux solaires. Les panneaux étant au préalable raccordés à deux modules MPPT, le microcontrôleur récupère les informations sur ceux-ci via une communication par bus CAN.
Un MPPT, de l'anglais Maximum Power Point Tracking est Un contrôleur qui permet de piloter le convertisseur statique reliant la charge (une batterie par exemple) et le panneau photovoltaïque de manière à fournir en permanence le maximum de puissance à la charge , il peut la recharger beaucoup plus vite en optimisant les caractéristiques de tension et de courant du module et de la batterie.
Merci de Votre Attention