Télécharger le TP au format PDF - ABSA-NT

publicité
Capture de trames sur le réseau CAN
Généralités
L’objet de ce TP consiste à fournir à l’utilisateur une bonne connaissance du bus CAN.
Ce moyen de communication a été définit par Bosch, équipementier automobile qui a autorisé la fabrication de
composants compatibles CAN.
Ce protocole permet de faire communiquer en toute sécurité, capteurs, contrôleurs et actionneurs à des vitesses
pouvant atteindre 1Mbits/s.
Nos cartes ASCAN1, AS CAN2 et CAN-TEST ‘‘IT’’ supportent les plus récentes normes CAN 2.a et CAN 2.b. Le
protocole CAN 2.0 comporte deux sous-spécifications qui diffèrent uniquement au niveau de la longueur de l'ID.
La version 2.0A définit des ID de 11 bits et la version 2.0B des ID de 29 bits. On appelle ces trames
respectivement des trames standards ("Standard Frames") et des trames étendues ("Extended Frames").
AS_CAN 2 est équipée d’une liaison CAN et d’un analyseur de trames CAN
Pour découvrir graduellement le mode de fonctionnement du bus CAN, l’utilisateur aura à réaliser un mini réseau
permettant l’échange d’informations entre plusieurs cartes CAN. Ce réseau sera constitué de 2 cartes AS CAN 2
et 1 carte d’application CAN-Test-IT .
Capture de trames
Le schéma de câblage est présenté ci-dessous.
La carte 1 au format PCI communique avec la carte d’extension CAN-TEST-IT
La carte 2 également au format PCI devra effectuer la capture de trames sur le réseau.
Le test de la capture se fait en trois étapes :
Sous le logiciel SCAN_ANALYSE, le menu <capture de bus> permet de configurer et exécuter une capture de
trames.
La première étape consiste à masquer l’identificateur de messages reçus pour la carte 2 sous
le logiciel SCAN_ANALYSE.
La fenêtre de configuration permet de paramétrer la liaison CAN :
- le type de filtre d’acceptance des messages en réception (simple ou double)
- le code ou les codes du filtre
- le masque à appliquer sur le code du filtre
Après avoir configuré les registres de masque et code, la carte 2 ne peut plus recevoir les trames de données
envoyées par la carte 1 ou la carte CAN-TEST-IT.
La deuxième étape consiste à exécuter la communication entre la carte 1 et la carte CANTEST-IT. Comme la capture se fait dans un laps de temps limité, il faut que le programme
boucle indéfiniment et rapidement.
On peut utiliser un programme d’exemple de pilotage de la carte CAN-TEST-IT. Il est écrit en C Standard. Il doit
être exécuté sur un PC et il n'utilise pas Windows (c'est une application type 'Console' ou fenêtre DOS).
Les fichiers sources (.C et .H) sont linkés avec une librairie (ASAN2DRV.LIB) de la carte AS CAN.
Le programme exécutable généré a besoin des fichiers DLL pour mettre en œuvre la librairie. ASAN2DRV.DLL fait
le lien avec le Device-Driver (pilote Windows) de la carte AS CAN.
Le ficher CAN2_TST_COUNT est un programme permettant de réaliser un compteur utilisant les deux afficheurs 7
segments de la carte CAN-TEST-IT.
Cliquer ici pour voir le détail du programme en C : CAN2_TST_COUNT
La troisième étape consiste à effectuer une capture de trames sur le PC intégrant la carte 2.
Sous le logiciel SCAN_ANALYSE, on sélectionne <Effectuer une trame> dans le menu
<capture de bus>.
Après une capture du bus CAN (ou une lecture d’un fichier de capture), cette fenêtre donne une représentation
temporelle du signal sur le bus. Des informations textuelles indiquent les différents bits et champs d’un message.
Début de la trame
Fin de la trame
Une trame est composée des champs suivants :
- bit SOF (Start Of Trame)
- zone d'arbitrage ID (11 bits)
- bit RTR (Remote Transmission Request) : détermine s'il s'agit d'une trame de données ou d'une d'une trame
de demande de message.
- bit IDE qui établi la distinction entre format standart (état dominat) et format étendu (état récessif)
- 1 bit réservé pour une utilisation future
- 4 bits DLC : nombre d'octets contenus dans la zone de données
- zone de données de longueur comprise entre 0 et 8 octets
- zone CRC de 15 bits :(Cyclic Redundancy Code) Ces bit sont recalculés à la réception et comparés aux bits
reçus. S'il y a une différence, une erreur CRC est déclarée.
-zone ACK composé d'un bit à l'état récessif ainsi qu'un bit séparateur ACK. Le premier bit doit être forcé à l’état
dominant par les stations ayant bien reçu cette trame.
- zone EOF de 7 bits : (End Of Frame) permet d'identifier la fin de la trame.
Stuff bit : au cours de la construction d'une trame, si 5 bits consécutifs portent la même valeur 0 ou 1, un bit de
valeur opposée est ajouté à la suite des 5 bits consécutifs.
Téléchargement