Lycée Grandmont STS Systèmes Electroniques Fiche PIC18 PIC18 : Le module ECAN P
Lycée Grandmont STS Systèmes Electroniques Fiche PIC18 PIC18 : Le module ECAN Pour les PIC18Fxx8 et/ou PIC18Fxxx8 Introduction Cette fiche est destinée à la description des modules ECAN présents sur les PIC 18Fxx8 et 18Fxx8x. Ce module permet le pilotage d'un bus CAN à partir d'un tel PIC. Le module ECAN ECAN pour Enhanced Controller Area Network. Ce module est un contrôleur de communications implémentant le protocole CAN2.0 dans ses versions A ou B (selon les spécifications définies par Bosh). Ce module permet aussi le support des protocoles CAN 1.2, CAN 2.0B « active » et CAN 2.0B « passive ». Les principales caractéristiques du module ECAN sont : ✗ Implémentation des versions 1.2, 2.0A et 2.0B du protocole CAN ✗ Support du filtrage de données DeviceNettm ✗ Support des trames de données standard et étendues ✗ Taille des données comprise entre 0 et 8 octets ✗ Débit programmmable, jusqu'à 1 Mbps ✗ Trois modes de fonctionnement : ✗ Mode 0 : Legacy mode (fonctionnement classique) ✗ Mode 1 : Enhanced Legacy Mode with DeviceNet support ✗ Mode 2 : FIFO mode with DeviceNet support ✗ Support de la gestion automatisée des « remote frames » ✗ Récepteur à « double buffer avec gestion des priorités » ✗ Six buffers programmables comme buffers d'émission ou de réception ✗ Plusieurs filtres et masques permettant de gérer l'acceptation des trames ✗ ... « Overview » Le module ECAN est en fait un gestionnaire de protocole associé à un système de de stockage et de gestion de messages. Le gestionnaire de protocole CAN fournit les fonctionnalités permettant de recevoir et d'émettre des messages sur le bus. Les messages sont émis après avoir chargé les registres adéquats avec les valeurs adéquates. La vérification des états, gestion des erreurs se fait à travers des registres spécifiques. Chaque message détecté sur le bus CAN est contrôlé par rapport à d'éventuelles erreurs, puis comparé aux différents filtres afin de déterminer s'il doit être reçu et stocké dans un des deux registres de réception. Le module CAN gère les types de trames suivants : ✗ Trame de données standard : Standard Data Frame ✗ Trame de données étendue : Extended Data Frame ✗ Remote Frame ✗ Trame d'erreur : Error Frame ✗ Overload Frame Reception ✗ Interframe Space Generation/Detection Le module CAN utilise les lignes RB2/CANTX et RB3/CANRX pour interfacer le bus. En fonctionnement normal, le module CAN gère le bit TRISB2. L'utilisateur doit s'assurer que le bit TRISB3 est positionné à '1'. Fiche_PIC18_bus_CAN.odt 27/02/06 1/22 Lycée Grandmont STS Systèmes Electroniques Fiche PIC18 Mise en oeuvre du module CAN La procédure suivante doit être respectée pour que le module CAN soit capable d'émettre et de recevoir des données CAN : 1. Positionner le module ECAN dans le mode configuration. 2. Choisir le mode de fonctionnement (0, 1 ou 2), 0 (Legacy) est choisi par défaut. 3. Configurer les registres fixant le débit (baud rate registers). 4. Configurer les registres associés aux filtres et aux masques. 5. Positionner le module ECAN dans le mode « Normal » (ou dans un des autres modes spécifiques, en fonction des besoins de l'application). Schéma bloc du module ECAN Fiche_PIC18_bus_CAN.odt 27/02/06 2/22 Lycée Grandmont STS Systèmes Electroniques Fiche PIC18 Principaux modes Le module ECAN propose six principaux modes « of operation » (à ne pas confondre avec les 3 modes de fonctionnement 0,1 ou 2, qui font partie du mode « normal ») : ✗ Configuration Mode ✗ Disable mode ✗ Normal Operation mode ✗ Listen Only mode ✗ Loopback mode ✗ Error Recognition mode Mis à part le « Error Recegnition mode », chacun des modes est sélectionné à l'aide des bits REQOP du registre CANCON (CANCON<7:5>). Le mode « Error Recognition » est quant à lui sélectioné par le bit RXM du (des) registre(s) « Receive Buffer ». L'accès à un mode se vérifie à l'aide des bits OPMODE. En effet, un changement de mode n'est réellement effectué que lorsque toutes les transmissions en attente sont terminées. L'utilisateur doit donc prendre la précaution de vérifier si le changement de mode est effectif. Configuration Mode Il est nécessaire d'initialiser le module ECAN, ceci se fait en étant dans ce mode. L'accès au mode de configuration est demandé en positionnant le bit REQOP2 à 1. La configuration peut commencer dès que le bit OPMODE2 est détecté à 1. Une fois cet état atteint, il est possible d'écrire dans les registres de configuration, les registres « filtres », « masques »... Le module est réactivé en positionnant les bits REQOP à 0. En dehors du mode de configuration, il est impossible de modifier les registres : ✗ De configuration ✗ De sélection du mode de fonctionnement ✗ De configuration de débit ✗ De configuration des filtres et masques Dans ce mode, le module n'émet ni ne reçoit aucune donnée, les compteurs d'erreurs sont remis à 0 et les flags d'interruption sont inchangés. Disable Mode Dans ce mode, le module ne transmet ni ne reçoit. Par contre, le module peut positionner à 1 le bit WAKIF en cas d'activité sur le bus. Les flags d'interruption ainsi que les compteurs d'erreurs restent inchangés. L'accès au mode « Disable » se fait en positionnant les bits REQOP<2:0> à 001. Normal Mode C'est le fonctionnement standard du module. Dans ce mode, le périphérique surveille activement les messages sur le bus, génère les acquittements, les trames d'erreurs... C'est uniquement dans ce mode qu'il sera possible d'émettre des données sur le bus. Listen Only Mode Dans ce cas de figure, le module reçoit tous les messages, y compris ceux contenant des erreurs. Ce mode est utile pour surveiller, débugger une application... C'est aussi par ce mode qu'il faut passer pour mettre en place un système « hot plug » avec détection automatique du débit. Loopback Mode Dans ce mode, il est possible de transférer directement le contenu d'un buffer d'émission vers un buffer de réception, sans passer par le bus. Ce mode est utilisé dans des situations de test. Error Recognition Mode Le module peut être configuré pour ignorer les erreurs. C'est l'objet de ce mode. Fiche_PIC18_bus_CAN.odt 27/02/06 3/22 Lycée Grandmont STS Systèmes Electroniques Fiche PIC18 Modes de fonctionnement En plus des différents « modes » utilisables, le module ECAN propose 3 modes de fonctionnement. Ils sont définis comme mode 0, 1 et 2. Ce document ne traitera que du mode 0 : Legacy Mode. Ce mode est le mode de fonctionnement par défaut, il est sélectionné après un RESET. Les ressources suivantes sont disponibles dans le mode 0 : ✗ Trois buffers d'émission : TXB0, TXB1 et TXB2. ✗ Deux buffers de réception : RXB0 et RXB1. ✗ Un masque d'acceptation par buffer de réception : RXM0 et RXM1. ✗ Six filtres associés : deux pour RXB0 et quatre pour RXB1 : RXF0 à RXF5. Buffers de messages Les PIC 18Fxx8x implémentent trois buffers d'émission dédiés : TXB0, TXB1 et TXB2. Chacun de ces buffers occupe 14 octets de SRAM et est « mappé » parmi les registres SFR. Ces buffers sont les seuls accessibles en mode 0. Chaque buffer d'émission est composé de : ✗ Un registre de contrôle : TXBnCON ✗ Quatre registres identifiants : TXBnSIDL, TXBnSIDH, TXBnEIDL et TXBnEIDH. ✗ Un registre compteur de longeur de donnée : TXBnDLC ✗ Huit registres de données : TXBnDm Les buffers de réception (dédiés) sont au nombre de deux : RXB0 et RXB1. Là encore, chaque buffer occupe 14 octets de RAM dans la zone SFR et ces deux buffers sont les seuls accessibles en mode 0. Chaque buffer de réception des composé de : ✗ Un registre de contrôle : RXBnCON ✗ Quatre registres identifiants : RXBnSIDL, RXBnSIDH, RXBnEIDL et RXBnEIDH. ✗ Un registre compteur de longeur de donnée : RXBnDLC ✗ Huit registres de données : RXBnDm On peut aussi noter la présence d'un buffer d'assemblage de message (Message Assembly Buffer : MAB). Le MAB est destiné à récupérer les messages sur le bus, les assembler et les transférer vers un registre de réception si le message satisfait aux filtres et masques. Emission d'un message vers le bus CAN Pour que le processeur puisse écrire dans un buffer message, le bit TXREQ doit être à 0. Cela veut dire qu'il n'y a aucun message en attente sur ce buffer. Les registres SIDH, SIDL et DLC, au minimum, doivent être renseignés. Si des données sont à envoyer, les registres de données doivent aux aussi être renseignés. De même, si un identifiant étendu est utilisé, les registres EIDH et EIDL sont utilisés et le bit EXIDE positionné à 1. Pour démarrer une émission, le bit TXREQ correspondant au buffer utilisé doit être positionné à 1. A ce moment, les bits TXABT, TXLARB et TXERR sont mis à 0. Une émission est considérée comme réussie s'il y a au moins un noeud compatible (débit identique) sur le réseau. Remarque : Le fait de positionner TXREQ à 1 ne suffit pas à démarrer une émission. En fait, cela ne fait que uploads/Management/ fiche-pic18-bus-can-pdf.pdf
Documents similaires










-
29
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Fev 22, 2021
- Catégorie Management
- Langue French
- Taille du fichier 0.9461MB