28
Rapport de Stage Conception de cartes à microcontrôleurs PIC ® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur de Recherche. Université de la Méditerranée 2000

Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Rapport de Stage

Conception de cartes à microcontrôleurs PIC®

Romain Garcin

Maître de stage : Christian Olivetto, Ingénieur de Recherche.

Université de la Méditerranée 2000

Page 2: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

MPLAB, PIC, PICMaster et Promate sont des marques déposées par Microchip Technology, Inc. Modbus est une marque déposée par Modicon, Inc., Industrial Automation Systems. Windows est une marque déposée par Microsoft Corporation. Labview et National Instruments sont des marques déposées par National Instruments Corp. Les autres marques sont la propriété de leur détenteurs respectifs. Vous pouvez vous procurez librement ce document en vous connectant sur http://rgarcin.free.fr Pour tout contact : [email protected] released 06-19-2000

Page 3: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Conception de cartes à microcontrôleur PIC i

Remerciements Je tiens tout d’abord à remercier René Nacasch pour m’avoir permis de réaliser ce stage au sein du C.P.P.M. Je remercie également toute l’équipe du laboratoire d’électronique du C.P.P.M. pour leur accueil et leur aide, et plus particulièrement Messieurs Christian Olivetto et Rémy Potheau pour leur conseils et leur soutien. Enfin j’aimerais remercier Auguste Le Van Suu qui travaille sur le projet ANTARES pour m’avoir fait part des bugs du logiciel de la carte interface.

Page 4: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur
Page 5: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Conception de cartes à microcontrôleur PIC ii

Sommaire 1. Introduction 1 2. Présentation du lieu de stage 2

2.1. Le Centre de Physique des Particules de Marseille……………………………………………… 2 2.2. Le Département d’Electronique…………………………………………………………………………… 2

3. Le châssis modulaire 3 4. Présentation du protocole Modbus® 5 5. Les outils de développement 7

5.1. L’émulateur PICmaster………………………………………………………………………………………… 7 5.2. Le programmateur Promate …………………………………………………………………………………. 8

6. Carte d’Alimentation 9

6.1. L’aspect matériel …………………………………………………………………………………………………. 10

6.2. Le logiciel…………………………………………………………………………………………………………….. 10

6.3. Conclusion …………………………………………………………………………………………………………... 12 7. Carte Contrôle 13

7.1. Les menus déroulants …………………………………………………………………………………………... 14

7.2. L’étage d’entrée …………………………………………………………………………………………………… 15

7.3. Le prototype…………………………………………………………………………………………………………. 16

8. Carte Interface 17

8.1. Présentation du projet ANTARES……………………………………………………………………….. 17

8.2. La carte interface ………………………………………………………………………………………………… 17 9. Conclusion 19 10. Références 20

Page 6: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur
Page 7: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Conception de cartes à microcontrôleur PIC 1

Introduction 1 Le département électronique du Centre de Physique des Particules de Marseille [2] prend en charge l’aspect acquisition et traitement des données lors des expériences de physique des particules. Cette tâche inclue le développement de cartes électronique et de composants VLSI1 spécifiques. Le processus de mise au point de tels systèmes nécessite l’utilisation simultanée d’un grand nombre d’appareils différents (e.g. besoin de plusieurs tensions et intensités différentes). Pour simplifier cela, le laboratoire a mis au point un système intégré à base de châssis modulaires pouvant accueillir différentes cartes en fonction des besoins (e.g. alimentation, générateur de courant, etc.). Ces châssis peuvent, le cas échéant, être reliés à un ordinateur afin de centraliser le contrôle. Ce concept c’est révélé très efficace et apprécié puisque le C.P.P.M. partage cet outil avec les laboratoires avec lesquels il coopère comme, par exemple, le Fermilab aux Etats-Unis. Dans le cadre du développement et de l’amélioration de ces châssis, mon travail a consisté dans un premier temps à la mise à jour d’une carte d’alimentation en remplaçant son microcontrôleur par un modèle plus récent : un PIC de Microchip [5]. J’ai par la suite développé un nouvelle version d’une carte de contrôle, elle aussi équipée d’un microcontrôleur PIC. Enfin dans le cadre de l’expérience ANTARES [1], j’ai procédé à la modification d’une carte universelle (toujours à base de PIC) développée lors d’un stage précédent [14] en vue d’y interfacer une boussole/inclinomètre numérique.

1 Very Large Scale Integration, i.e. intégration à très grande échelle.

Page 8: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

2 Conception de cartes à microcontrôleurs PIC

Présentation 2 2.1. Le Centre de Physique des Particules de Marseille Le Centre de Physique des Particules de Marseille [2] (C.P.P.M.) est implanté sur le site scientifique et universitaire de Luminy. Le C.P.P.M. est l’un des dix-huit laboratoires de l’Institut National de Physique Nucléaire et de Physique des Particules (IN2P3) [4], institut du C.N.R.S. qui regroupe les moyens lourds de la physique des particules. Le laboratoire est une unité mixte qui relève à la fois de l’IN2P3 et de l’Université de la Méditerranée (Aix-Marseille II). Le laboratoire compte un centaine de personnes : chercheurs et enseignants-chercheurs, ingénieurs, techniciens, ainsi que des doctorants et visiteurs étrangers. La vocation du C.P.P.M. est la recherche fondamentale en physique des particules. Il participe à des expériences dans le cadre de collaborations internationales et coopère avec une trentaine de centres de recherche européens. Le laboratoire est actuellement engagé dans deux expériences du C.E.R.N. de Genève : ALEPH et CPLEAR. Ainsi que dans le développement des projets ATLAS et ANTARES [1]. Le développement et la mise en œuvre des moyens nécessaires à de tels projets nécessite des savoir-faire de pointe, notamment dans les domaines de l’informatique et de l’électronique. 2.2. Le Département Electronique Le service électronique du C.P.P.M. a en charge la réalisation des modules d’acquisition et de traitement pour les expériences de physique des particules. Il est composé d’une quinzaine de personnes : ingénieurs et techniciens. Dans le domaine de la conception et réalisation des cartes électroniques, le laboratoire d’électronique est équipé : d’un outil IAO/CAO (CADENCE) complet permettant la saisie de schéma, la

simulation logique et analogique ainsi que le placement routage des cartes. de logiciels permettant la réalisation de circuits programmables (EPLD, FPGA,

PAL/PROM). d’analyseurs logiques, oscilloscopes numériques rapides, analyseurs de spectres, etc.

Le laboratoire dispose également d’une salle blanche avec plate-forme d’analyse sous pointes des tranches de silicium, table de déplacement micrométrique et machine de micro-cablâge.

Page 9: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Conception de cartes à microcontrôleur PIC 3

Le Châssis Modulaire 3 Les ingénieurs électroniciens ont souvent besoin d’avoir à leur disposition plusieurs sources de tension et de courant, (ou d’autres fonctions telles que la mesure de température, des entrées/sorties numériques, ou des acquisitions de données, etc.) leur de procédures de test de cartes ou de composants VLSI par exemple. Toutes ce fonctions doivent pouvoir être simples d’utilisation et hautement intégrées afin de réduire l’encombrement de l’espace de travail. Le laboratoire d’électronique a donc développé un concept de châssis universel modulaire afin de satisfaire ces besoins.

Ce châssis (Crate Power) ce compose primordialement d’un rack pouvant accueillir six cartes plus une carte de contrôle. Chaque carte est connectée en fond de panier à plusieurs tensions d’alimentations (+5V, ±15V), ainsi qu’à un bus série bifilaire au standard RS485. L’intérêt d’un tel bus est la possibilité de pouvoir communiquer avec les cartes depuis un ordinateur, afin de les commander à distance. Sur chacun des connecteurs du châssis peut accueillir une des cartes mises au point par le laboratoire. A l’heure actuelle, la gamme compte une dizaine de membres parmi lesquels on peut citer : Une alimentation deux voies (cf. p.9). Un générateur de courant variable. Une carte d’acquisition de température à 10 voies. Un contrôleur GPIB. Une carte universelle.

Le laboratoire travaille actuellement sur une carte de développement pour transmission optique bidirectionnelle mono-fibre. Pour permettre la commande par ordinateur de chacune de ces cartes, des pilotes spécifiques ont été développé sous Labview [9]. Dans la majorité des cas, l’utilisateur final n’a donc pas

Figure 1 : Le Châssis universel. Figure 2 : Le châssis monté.

Page 10: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Le Châssis Modulaire.

4 Conception de cartes à microcontrôleurs PIC

besoin de concevoir de driver personnel, ce qui facilite grandement la prise en main et réduit les délais pour rendre une application opérationnelle.

Enfin, un dernier avantage de ce châssis est son prix de revient largement en dessous de ses équivalents commerciaux. Ce facteur est d’importance quand on sait que les budgets de recherche sont très souvent calculés au plus juste.

Figure 3 : Le driver Labview de la carte alimentation.

Page 11: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Conception de cartes à microcontrôleur PIC 5

Présentation du Protocole Modbus® 4 A l’origine, le protocole Modbus® [6] fut développé par la société Modicon pour permettre l’automatisation de processus industriels. Il permet en effet à des contrôleurs et des ordinateurs de dialoguer entre eux sur un réseau. Le protocole Modbus est un protocole de slow control et ne permet par conséquent pas des échanges en temps réel. Ce protocole définie la structure des messages transitant sur le réseau (des trames), quelque soit le type de réseau utilisé et le mode de transport physique des données. Il décrit le processus à utiliser pour demander l’accès à un contrôleur, comment celui-ci devra répondre, et comment les erreurs seront détectées et traitées. Il est important de noter que le protocole Modbus est du type Maître-Esclave : seul le Maître (dans notre cas un ordinateur) peut prendre la parole sur le réseau. I.e. les esclaves ne peuvent que répondre à des commandes qui leur sont envoyées.

Le protocole Modbus possède deux modes de transmissions : - le mode ASCII2 : les messages sont codés sur des caractères ASCII (7 bits). - le mode RTU3 : les messages sont codés sur des octets de 8 bits.

Aucune carte évoquée dans ce rapport n’utilisant le mode ASCII, nous ne nous étendrons pas dessus, mais une description très complète en est faite dans le Modbus Protocol Reference Guide [6]. Dans le mode RTU (celui utilisé par les cartes du C.P.P.M.), chaque message est précédé et suivi d’un silence (Silent Interval) d’au moins 3.5 caractères (e.g. environ 3ms à 9600bds). De plus, si un intervalle de plus de 1.5 caractère se produit entre deux caractères consécutifs, la trame entière est considérée nulle et effacée (flushed). 2 ASCII : American Standard Code for Information Interchange. 3 RTU : Remote Terminal Unit.

Ordinateur Maître

Esclave

Esclave Esclave

Esclave Esclave

Figure 4 : Réseau Maître-Esclave.

Page 12: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Présentation du Protocole Modbus..

6 Conception de cartes à microcontrôleurs PIC

A chaque appareil est assignée une adresse qui sera toujours indiquée en début de trame (cf. Fig. 5). Cette adresse se retrouvera dans la réponse de l’Esclave afin que le Maître puisse identifier l’origine de la trame. Il est de plus possible au Maître d’envoyer la même trame à tous les esclaves simultanément en utilisant l’adresse 0 (Broadcast). La détection d’éventuelles erreurs de transmission se fait par l’ajout d’un CRC (Cyclical Redundancy Check) codé sur 16 bits calculé selon un algorithme spécifique à partir de tous les octets de la trame. Une erreur de CRC entraîne la non prise en compte de la trame. Enfin le corps d’une trame est constitué du code de la commande à exécuter et des éventuelles données nécessaires. Il existe d’ailleurs de puissantes commandes de diagnostic qui peuvent se révéler utiles lors de problèmes sur un Esclave.

Adresse Carte

Code Fonction

Octets de

Données

Contrôle d’Erreur

Adresse Carte

Code Fonction

Octets de

Données

Contrôle d’Erreur

Requête du Maître

Réponse de l’Esclave

Figure 5 : Cycle Requête-Réponse.

Page 13: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Conception de cartes à microcontrôleur PIC 7

Les outils de développement 5 Pour mener à bien un projet à base de microprocesseur ou de microcontrôleur, il est indispensable d’utiliser des outils spécialisés que sont un émulateur et un programmateur. L’émulateur permet la mise au point du logiciel à partir d’un ordinateur hôte sans nécessité la programmation du composant qui peut être fastidieuse et coûteuse à cause de la durée de l’effaçage du composant, voire de son remplacement lorsque l’effaçage est impossible. La programmation ne se fera que lorsque que le logiciel sera opérationnel, grâce au programmateur. Les émulateurs et programmateurs sont spécifiques au type de microcontrôleur utilisé. Pour la famille PIC ce sont le PICmaster (émulateur) et le Promate (programmateur). 4.1. L’émulateur PICmaster L’émulateur PICmaster se compose de deux parties distinctes : le boîtier principal et la sonde. Cette dernière doit être changée suivant le type de PIC à émuler et être implantée à sa place dans le système hôte. Le boîtier principal, quant à lui, est relié à un PC par l’intermédiaire d’une carte interface.

Sur le PC nous utilisons le logiciel MPLAB [7] sous Windows pour la commande de l’émulateur. Ce logiciel permet l’exécution en mode pas à pas, le dumping de la mémoire, l’insertion de points d’arrêts, et bien d’autres options offertes par le PICmaster. MPLAB intègre en outre un assembleur et un compilateur C dédié.

Figure 6 : L’émulateur PICmaster.

Page 14: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Les Outils de Développement.

8 Conception de cartes à microcontrôleurs PIC

4.2. Le programmateur Promate Le programmateur possède lui aussi une zone modulaire afin de pouvoir programmer plusieurs types de PIC. Il se connecte à un PC par l’intermédiaire d’un port série, et se commande simplement grâce à MPLAB.

Figure 7 : Le programmateur Promate.

Page 15: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Conception de cartes à microcontrôleur PIC 9

Carte Alimentation 6 La carte tension VOLS2P [15] fait partie des cartes développées par le C.P.P.M. pour le châssis universel. C’est une alimentation à deux voies commandée par microcontrôleur : tension : 0 à ±12V, sortie symétrique (tracking). intensité : 250mA max. avec limitation réglable. visualisation de l’intensité par barre de LEDs. commande manuel, ou par port RS485.

Le microcontrôleur actuellement utilisé, un membre de la famille 8 bits de Texas Instrument, le TMS370, arrive malheureusement dans sa phase d’obsolescence. Sa production a en effet été arrêté, rendant l’approvisionnement de plus en plus problématique. Il a donc été décidé de le remplacer par un circuit plus récent, en l’occurrence le PIC16F877 [10] de Microchip. Ce dernier se présente en effet sous le même packaging, à savoir un boîtier PLCC (Plastic Leaded Chip Carrier) de 48 broches, et surtout dispose des périphériques intégrés nécessaires : des entrées/Sorties logiques, 8 convertisseurs Analogique/Numérique (ADC), des ports séries (USART4, SPI5 et I²C6 [3]), des timers.

Le 16F877 intègre en outre une mémoire Flash qui permet la re-programmation in situ par interface série, et la sauvegarde éventuelle de données en cas de mise hors tension. Autre point important, alors que le TMS était programmé en assembleur, le PIC le sera en C pour facilité la portabilité du code en cas de nouveau changement de microcontrôleur. Du point de vue matériel, la principale difficulté de changer de microcontrôleur tient au fait que les brochages ne sont pas compatibles. Il convient donc, dans un premier temps, de réaliser une platine d’adaptation permettant d’insérer le PIC sur le support prévu pour le TMS. Ceci afin de développer un nouveau programme et de le tester avec l’émulateur. Dans un deuxième temps, lorsque que le programme est au point, il faut réaliser un nouveau circuit imprimé pour la carte. 4 USART : Universal Synchronous Asynchronous Receiver Transmitter. 5 SPI : Serial Peripherial Interface. 6 I²C : Inter-Integrated Circuit.

Figure 8 : La carte VOLS2P.

Figure 9 : La face avant de lacarte.

Page 16: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Carte Alimentation.

10 Conception de cartes à microcontrôleurs PIC

6.1. L’aspect matériel La carte s’articule autour du microcontrôleur. Tout d’abord celui-ci commande les deux régulateurs de tension (un pour chaque voie) par l’intermédiaire de convertisseurs numérique/analogique (DAC) contrôlés par le port SPI. Le microcontrôleur supervise également l’intensité débitée par chaque voie, et veille à ce qu’elle ne dépasse pas les limites fixées par le trimmers de la face avant (ou par Modbus). Tout ceci grâce à ses huit voies analogiques. Dans le même temps il s’occupe de rafraîchir les LEDs de la face avant au moyen de convertisseurs série/parallèle connectés sur le port SPI. Enfin le microcontrôleur est à l’écoute du bus RS485 et exécute les commandes Modbus qui pourraient lui être adressées. 6.2. Le logiciel Le programme développé pour le PIC, en langage C, se compose de plusieurs parties : Une routine de gestion des interruptions provenant de l’USART. Une routine de gestion des interruptions provenant d’une action sur les boutons de la

face avant. Une boucle principale réagissant aux drapeaux (flags) gérés par les routines

d’interruptions et mettant à jour les registres Modbus et les LEDs de la face avant. L’utilisation des interruptions permet de réaliser plusieurs modules au maximum indépendants les uns de autres. Cela facilite grandement la mise au point du programme dans la mesure où chaque module peut être testé séparément. De plus la gestion des évènements extérieurs par interruption rend la réponse du programme à ceux-ci plus rapide. La boucle principale du programme assure surtout un rôle de mise à jour et de test. Elle met à jour les registres Modbus en scannant les ADCs pour mesurer les intensités, ainsi que les limites en courants. Elle s’occupe aussi de rafraîchir les LEDs de la face avant. Ensuite les flags indiquant un changement d’état des boutons, ou une trame reçue, sont testés. Des routines spécifiques de gestion sont alors appelées en fonction de l’état de ces flags, ou si lesFigure 11 : La boucle principale du programme.

Figure 10 : Diagramme fonctionnel de lacarte VOLS2P.

Page 17: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Conception de cartes à microcontrôleur PIC 11

intensités mesurées excèdent les limites fixées. La fréquence de mesure n’est par conséquent pas fixée explicitement, mais dépend de la durée de cette boucle logicielle. Cela ne pose cependant aucun problème étant donné que cette méthode assure une fréquence de mesure maximale.

Lorsqu’un caractère est reçu sur le port série (USART1), la routine d’interruption lance un timer afin de détecter la fin de la trame. Ensuite l’octet reçu est stocké dans un buffer, et la routine rend la main au programme principal. Si le timer à le temps de lancer une interruption, cela signifie que le silent interval de fin de trame a été atteint. Dans ce cas le timer est arrêté, et un flag est mis pour prévenir le programme principal qu’une trame Modbus viens d’être reçue. A lui de la décoder.

Pour la gestion des quatre boutons de la face avant, une caractéristique du microcontrôleur a été mise à profit. En effet, il est possible de lancer une interruption lors du changement d’état de l’un des quatre bits de poids faible du port B [10]. Lorsqu’un de ces boutons change d’état (i.e. appuyé ou relâché) le PIC lance une interruption. Cette interruption se contente de lancer un timer avant de rendre la main. Ce système joue le rôle de dispositif anti-rebond. La routine d’interruption du timer sauve l’état des boutons puis relance le timer. Ensuite si c’est la première fois que l’interruption se produit un flag est positionné et la main est rendue. Mais si cela fait plusieurs fois que l’interruption est lancée, le traitement est différent : L’état des boutons est testé pour vérifier qu’il n’a pas changé (l’interruption du port B étant coupée). Si l’état des boutons a changé, autrement dit le bouton est relâché, le timer est désactivé et le processus se termine. Si l’état n’a pas changé, le flag est positionné comme dans le cas d’une première interruption, mais le pas est également augmenté.

Figure 12 : Gestion des interruptions du port série.

Figure 13 : Gestion des interruptions des boutons.

Page 18: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Carte Alimentation.

12 Conception de cartes à microcontrôleurs PIC

Tout ce dispositif a pour but de gérer à la fois une pression sur un bouton, mais également le maintien de cette pression sur le bouton. En effet, lorsque le bouton est maintenu appuyé, l’interruption du timer va se déclencher plusieurs fois de suite, et parallèlement le pas va augmenter. De ce fait la variation de la tension va s’accélérer (jusqu’à une certaine vitesse maximale). Cela de la même manière que, par exemple, le son d’un téléviseur varie tant que le bouton correspondant de la télécommande reste enfoncé. 6.3. Conclusion Bien que ce projet soit quasiment entièrement consacré à la partie logicielle, il n’en demeure pas moins délicat. En effet, avant de s’attaquer au développement du programme, il a d’abord fallu bien comprendre le fonctionnement de la partie matérielle. Cela comprend également le microcontrôleur PIC sur lequel je n’avais jamais travaillé. D’ailleurs son architecture RISC7 est plutôt différente des microcontrôleurs traditionnels (CISC8). Ensuite, la prise en main du C demande elle aussi un (cours) temps d’adaptation, ce langage ayant été adapté spécialement pour le microcontrôleur. Finalement le temps passé pour penser l’architecture porte ses fruits lors du débuggage et des inévitables modifications à réaliser pendant son développement. Le programme est dès à présent au point, et le nouveau circuit imprimé pour la carte à été réaliser. La prochaine étape est donc de monter entièrement une nouvelle carte avec un PIC programmé et de vérifier que tout fonctionne correctement. Cette dernière étape devrait être réalisée très prochainement.

7 RISC : Reduced Instrunction Set Computing. 8 CISC : Complex Instruction Set Computing.

Page 19: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Conception de cartes à microcontrôleur PIC 13

Carte Contrôle 7 La carte de contrôle du châssis universel tiens un double rôle : Elle permet de visualiser une tension en provenance de n’importe qu’elle carte du

châssis (voie). Elle sert d’alimentation +5V et ±15V.

Dans sa version actuelle la sélection de la voie se fait par relais commandés à l’aide d’une roue codeuse, et la visualisation par l’intermédiaire d’un module voltmètre à cristaux liquides.

Bien qu’ayant l’avantage de la simplicité, cette configuration présente néanmoins quelques inconvénients : Le module LCD et les relais ont un prix de revient élevé. L’affichage se fait de manière brute (i.e. pas d’unité, pas de conversion possible, etc.). Aucune évolutivité.

Afin de résoudre ces problèmes, il a été entrepris de développer une nouvelle version de la carte de contrôle. Cette nouvelle version est basée sur un microcontrôleur PIC17C756 [11] (le même que pour la carte universelle) qui sera utilisé au maximum de ses possibilités. L’utilisation d’un microcontrôleur permet d’introduire une certaine intelligence et surtout une plus grande souplesse d’utilisation de la carte. Les caractéristiques de cette nouvelle version sont les suivantes : Acquisition numérique des mesures. Menus déroulants sur écran LCD 2x12

caractères rétroéclairé. Connexion au bus RS485. Sauvegarde de la configuration sur

EEPROM. Figure 15 : Diagramme fonctionnel de la carte de contrôle.

Figure 14 : La première version de la carte contrôle.

Page 20: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Carte Contrôle.

14 Conception de cartes à microcontrôleurs PIC

A noter que les modulateurs en largeur d’impulsion dont dispose le PIC ont été mis à profit pour permettre le réglage du contraste et de l’intensité du rétroéclairage de l’écran LCD. 7.1. Les Menus Déroulants La principale difficulté du développement du programme pour cette carte à résidé dans la mise au point des menus déroulants. En effet, sans un algorithme efficace l’implémentation de menus peut vite se transformer en une tâche inextricable. Après mures réflexions et recherches, j’ai opté pour la représentation des menus sous forme d’un arbre binaire [8]. Cette solution a le mérite d’être indépendante du contenu des menus, ce qui permet l’ajout, la modification, ou la suppression de ceux-ci de manière aisée.

Cependant, cette structure intégrant à la fois des menus, de sous-menus, et des fonctions à exécuter, le codage des trois champs de chaque nœud doit être plus complexe que la simple adresse du nœud suivant.

En effet, il doit être possible de savoir si un nœud est le premier ou le dernier d’un menu déroulant (afin d’inhiber la possibilité de faire défiler le menu vers le haut ou vers le bas) et si le champ Enter pointe sur un sous-menu ou sur une fonction. Finalement, la structure de chaque nœud de l’arbre binaire est celle exposée par la Figure 17. Le champ Niveau indique quelle est la profondeur du menu : 0 pour le menu principal, 1 pour un de ses sous-menu, etc.

Figure 16 : Structure de l’arbre binaire.

Figure17 : Format d’un nœud de l’arborescence.

Page 21: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Conception de cartes à microcontrôleur PIC 15

Le champ Parent contient l’adresse de l’élément précédent du menu, ou 1 si cet élément est le premier du menu. Le champ Gauche contient l’adresse du sous-menu de cet élément, une valeur 0 indiquant une fonction et non pas un menu. Dans ce cas le code de la fonction est stocké dans le champ Commande. De plus, lorsque les deux champs Gauche et Droite contiennent 0, l’élément est un élément de retour : le champ Commande contient l’adresse de l’élément parent de ce sous-menu.

Enfin, dans tous les cas, le champ Commande peut contenir le code d’une fonction qui a pour rôle de rajouter un élément graphique sur le titre de l’élément (e.g. un tick devant la langue sélectionnée). 7.2. L’étage d’entrée Le PIC16C756 dispose d’un convertisseur analogique/numérique (ADC) 10bits à 12 voies, ou 10 si la conversion se fait à partir d’une référence de tension externe. Sur la carte contrôle, le microcontrôleur dispose d’une tension de référence de 4.096V. Il est donc capable de fonctionner correctement sur la plage 0-4.096V. Cependant la plage des tensions à mesurer s’étend de –15 à +15V. Il est par conséquent nécessaire de réaliser un étage d’entrée se chargeant de convertir cet intervalle de tensions dans celui approprier pour le PIC.

La première partie de l’étage d’entrée, les résistances R10 et R7, constituent un diviseur de tension chargé de convertir le ±15V en (approx.) ±2V. Cette tension est ensuite décalée par le premier ampli-op pour se situer dans la zone des 0-4.096V adéquate pour l’ADC. Le

Figure 18 : Copies d’écrans de la carte contrôle.

Figure 19 : Schéma de l’étage d’entrée.

Page 22: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Carte Contrôle.

16 Conception de cartes à microcontrôleurs PIC

deuxième ampli-op joue, quant à lui, le rôle d’amplificateur à gain variable dans le cas ou la tension de sortie du premier ampli-op serait trop faible. La variabilité du gain est assurée par R11, en fait un potentiomètre numérique commandé par le microcontrôleur, par l’intermédiaire de son port SPI. 7.3. Le Prototype A l’heure actuelle, seule une carte prototype en wrapping a été réalisée. Elle fonctionne de manière tout à fait satisfaisante, mais les étages d’entrées sont toujours en développement afin d’en améliorer la précision.

Figure 20 : Le prototype de la carte de contrôle.

Page 23: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Conception de cartes à microcontrôleurs PIC 17

Carte Interface 8 8.1. Présentation du projet ANTARES L’expérience ANTARES [1] (Astronomy with a Neutrino Telescope and Abyss environmental RESearch) est une collaboration internationale dont le but est la détection de neutrinos cosmiques de haute énergie. Les neutrinos interagissent très faiblement avec la matière et les champs magnétiques et permettent pas conséquent de sonder plus profondément les objets cosmiques, ainsi que plus loin dans l’univers. La détection des neutrinos cosmiques de haute énergie se fait par l’intermédiaire du muon issus de l’interaction des neutrinos avec les nucléons de la matière terrestre. La détection de ces muons nécessite un détecteur de grand volume, à cause du faible flux de muons, placé à grande profondeur sous la mer(2500-4000m), afin de réduire le flux de muons atmosphériques. Le détecteur consiste en plusieurs lignes composées de photodétecteurs (Fig. 21). Pour déterminer la direction des muons, et donc des neutrinos, il est nécessaire de connaître l’orientation et l’inclinaison de chaque photodétecteur. C’est pourquoi ceux-ci seront équipés de boussoles/inclinomètres numériques [13]. L’interface entre le réseau de communication des lignes (Modbus®) et ce capteur se fait par une version modifiée de la carte universelle. 8.2. La carte interface La carte interface met à profit les deux USARTs du PIC17C756 pour mener à bien son rôle. Le premier USART est branché sur le bus RS485 et permet la réception et l’émission de trames Modbus. Le deuxième USART, quant à lui, sert à communiquer avec le capteur. Ce capteur, une boussole/inclinomètre fabriquée par Precision Navigation Inc. [12] permet une connexion directe sur un terminal informatique. Il utilise par conséquent une interface série RS232 par laquelle les requêtes et les réponses transitent sous forme de caractères ASCII.

Figure 21 : Vue d’artiste du détecteur ANTARES.

Figure 22 : Diagramme fonctionnel de la carte interface.

Page 24: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Carte Interface.

18 Conception de cartes à microcontrôleurs PIC

La tâche assignée au PIC est donc de réaliser un tampon entre le bus RS485 et le capteur. Le microcontrôleur devra en effet gérer deux buffers constitués de registres Modbus : Un buffer d’émission dans lequel seront écrites les commandes à envoyer vers le

capteur. Un buffer de réception dans lequel seront écrit tous les caractères en provenance de la

boussole. Il devra aussi comporter un registre supplémentaire d’état (Status Register) permettant de surveiller l’état des communications entre le capteur et lui-même. Pour envoyer une commande au capteur, il faut l’écrire dans le buffer d’émission au moyen d’une trame Modbus. Le PIC se charge alors de la transmettre. Pour lire la réponse de la boussole, on procède de la même manière en lisant le buffer de réception. Le registre d’état constitue un composant important du système. Il indique en effet toute erreur de communication survenant entre le microcontrôleur et le capteur. Soulignons que si une erreur importante survient, de telle sorte que l’USART ‘plante’, celui-ci sera automatiquement re-initialisé par le PIC. Ceci facilite les choses lorsqu’on se trouve à plusieurs kilomètres du capteur, lui-même à plusieurs milliers de mètres sous la mer ! En plus de ce rôle de supervision, le registre d’état indique aussi la présence de nouvelles données dans le buffer de réception. La boussole peut en effet être configurée en mode continu. C’est à dire qu’elle envoie les données sélectionnées à intervalles réguliers, sans nécessité d’être interrogée. Il est donc plus économique de lire simplement un bit du registre d’état, et au besoin le buffer, que le buffer en entier à chaque fois.

Figure 23 : Le prototype de la carte interface.

Page 25: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Conception de cartes à microcontrôleurs PIC 19

Conclusion 9 Bien que fonctionnant, les cartes présentées dans ce présent rapport sont toujours à l’état de prototype. On peut néanmoins noter que le processus d’acquisition de la carte de contrôle a encore besoin d’être amélioré, étant donné que les mesures de tensions effectuées jusqu’à lors se sont révélées peu précises. Pour ce qui est de la carte tension, un nouveau circuit imprimé a été réalisé, la réalisation d ‘une version quasi-définitive devrait donc se faire sous peu. Enfin le logiciel de la carte universelle devrait sans doute encore être modifié suite aux demandes répétées d’utilisateurs pour de nouvelles possibilités. Les microcontrôleurs de la famille PIC se sont montrés aisément programmables grâce à des outils de développement puissants (émulateur, compilateur C, etc.). On regrettera cependant la documentation parfois succincte fournie par Microchip. Dans tous les cas ce stage fut très enrichissant dans plusieurs domaines. Tout d’abord il m’a permis de connaître le fonctionnement d’un laboratoire d’électronique et d’un centre de recherche. J’ai pu également mieux cerner les responsabilités de chacun, que ce soit à propos des techniciens ou des ingénieurs. Ensuite le fait d’avoir à développer la partie matérielle de certaines cartes, en particulier la carte de contrôle, m’a permis de développer mes connaissances en électronique… Et je doit le dire en techniques de recherche de Data Sheets fabricant sur Internet. Enfin, j’ai beaucoup appris sur la programmation en C que je connaissais mais sans trop avoir approfondi. De plus, la conception de ces logiciels m’a donné la possibilité de m’enrichir dans le domaine de l’algorithmique et des structures de données (e.g. arbres binaires).

Page 26: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

20 Conception de cartes à microcontrôleurs PIC

Références 10 [1] ANTARES Home Page. antares.in2p3.fr [2] C.P.P.M. Home Page. marwww.in2p3.fr [3] The I²C-Bus Specification Version 2.0. www-us.semiconductors.philips.com/i2c/facts/#specification [4] Institut National de Physique Nucléaire et de Physique des Particules. www.in2p3.fr [5] Microchip Techonology Inc. www.microchip.com [6] Modbus Protocol Reference Guide. www.modicon.com/openmbus [7] MPLAB-C17 Compiler User’s Guide, Microchip Technology, Inc., 1998. [8] National Institute of Standards and Technology. Dictionary of Algorithms, Data Structures, and Problems. hissa.nist.gov/dads [9] National Instruments Corp. www.natinst.com [10] PIC16F877 Data Sheet. www.microchip.com/10/Lit/PICmicro/16F87X/index.htm [11] PIC17C756 Data Sheet. www.microchip.com/10/Lit/PICmicro/17C75X/index.htm [12] Precision Navigation Inc. www.precisionnav.com [13] TCM2 Manual. www.precisionnav.com/tcmtocb.html [14] UNIV1 User’s Manual / M. Lesens, Rapport de Stage de Maîtrise, Université de la

Méditerranée, 1999. [15] VOLS2P User’s Manual.

Page 27: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

EOF

MPLAB, PIC, PICMaster et Promate sont des marques déposées par Microchip Technology, Inc. Modbus est une marque déposée par Modicon, Inc., Industrial Automation Systems. Windows est une marque déposée par Microsoft Corporation. Labview et National Instruments sont des marques déposées par National Instruments Corp. Les autres marques sont la propriété de leur détenteurs respectifs. Vous pouvez vous procurez librement ce document en vous connectant sur http://rgarcin.free.fr Pour tout contact : [email protected] released 06-19-2000

Page 28: Rapport de Stage - Freergarcin.free.fr/files/report.pdfRapport de Stage Conception de cartes à microcontrôleurs PIC® Romain Garcin Maître de stage : Christian Olivetto, Ingénieur

Printed in France