A la découverte des microcontrôleurs PIC
(1/10)
Première partie

· Introduction - Du microprocesseur au microcontrôleur
Déjà trente ans ...
La découverte du microprocesseur date aujourd'hui de près de trente ans, en effet la fabrication du premier circuit commence en 1970 , année ou la société INTEL met au point le premier microprocesseur le 4004. On n'imagine pas à l' époque que cette révolution industrielle donnera naissance à l'ordinateur individuel. Depuis , leur puissance de calcul et l'intégration des transistors les constituant n'ont cessé d'évoluer. On retrouve désormais les microprocesseurs dans la plupart des applications , que ce soit , pour piloter une centrale, à l'intérieur d'un ordinateur ou bien encore pour remplacer le programmateur d'une machine à laver. Les microprocesseurs ne sont jamais employés seuls, des circuits périphériques leur sont toujours associés pour pouvoir être intégrés au sein d'une application ( figure 1 ).
Un des avantages d' un montage à base de microprocesseur par rapport à un montage en logique câblée , est sa souplesse d'emploi, en effet nous entrons dans le domaine de la logique programmable ou le fonctionnement du montage , dépend d'un programme logé dans une mémoire, celui-ci peut être modifié pour changer les équations régissant l' application , sans toutefois entraîner de changement au niveau du câblage des entrées sorties.

· Les microcontrôleurs
Les microprocesseurs nous venons de le voir possèdent un indéniable avantage sur la logique câblée , en effet pour modifier le fonctionnement d'une application il suffit de modifier le programme sans refaire de câblage.
Les microcontrôleurs possèdent quant à eux la puissance d'un microprocesseur mais ont un atout en plus , en effet ils possèdent dans le même boîtier, les périphériques intégrés ( figure 2 ).
Cela veut dire que le programme de l'application est en interne et non plus dans un circuit mémoire externe et que les périphériques d' entrées - sorties sont également intégrés, ce qui fait l 'économie de nombreux circuits périphériques .
Cette caractéristique fait que les montages deviennent encore plus simples et la programmation plus aisée ( un système à base de microprocesseur , oblige le concepteur à réaliser un décodage d'adresse pour permettre au microprocesseur de ne dialoguer qu' avec un seul périphérique à la fois ).
Un microcontrôleur seul peut donc gérer une application, sans faire appel forcement à d'autres circuits associés.
Sur la figure 2 le microcontrôleur possède en interne la mémoire programme contenant le programme de l'application ainsi que le port d' entrées - sorties qui va permettre au microcontrôleur de s' interfacer avec l'application.
On le voit ici, par rapport au schéma à base de microprocesseur présenté figure 1, on a encore franchi un degrés d' intégration en rassemblant tous les circuits nécessaires au fonctionnement d'une application dans le même boîtier.

· Structure interne d'un microcontrôleur ( figure 3 )
Un microcontrôleur le plus simple qu'il soit , possède au minimum les éléments suivants :
- Une unité centrale qui est le coeur du système, également appelé CPU pour Central Processing Unit , dans cette unité centrale nous retrouverons plusieurs éléments telle que l 'unité arithmétique et logique ( UAL ) que nous détaillerons dans un prochain numéro.
- Une mémoire contenant le programme à exécuter par le microcontrôleur, généralement appelée mémoire morte ou ROM ( Read Only Mémory ) , mémoire à lecture seule. Cette mémoire a la particularité de sauvegarder en permanence les informations qu'elle contient, même en absence de tension ( ce qui est primordiale, sinon il faudrait reprogrammer le microcontrôleur à chaque remise sous tension ! ).
- Une mémoire vive également appelée RAM ( Random Access Mémory ), cette mémoire permet de sauvegarder temporairement des informations. Il est à noter que le contenu d'une RAM n'est sauvegarder que pendant la phase d'alimentation du circuit. Le microcontrôleur pourra utiliser cette mémoire pour stocker des variables temporaires ou faire des calculs intermédiaires.
- Un port d' entrées - sorties permettant au microcontrôleur de dialoguer avec l'extérieur pour par exemple prendre l 'état d'un capteur , d'un interrupteur ou bien pour allumer une led ou piloter un relais ( via un transistor bien sûr ).
Des bus internes permettent la communication entres les différents éléments intégrés au microcontrôleur . Il existe trois sortes de bus que l'on détaillera dans un prochain cours.





Cette architecture simplifiée vous est présentée figure 3.
Le microcontrôleur exécutera une à une les instructions codées sous forme binaire dans la mémoire programme ( figure 4 ). En fait le microcontrôleur exécutera les instructions que vous avez transférées dans sa mémoire programme.















Figure 4
Sans encore entrer trop dans les détails, sachez qu' un registre spécifique du microcontrôleur ( le CP - ou compteur de programme ) est chargé de pointer l' instruction stockée en ROM ( c'est votre programme... ) que devra exécuter la CPU du microcontrôleur . En fait le contenu du registre compteur de programme va s' incrémenter au fur et à mesure pour "sélectionner" la case mémoire suivante, ainsi la CPU du microcontrôleur va exécuter toutes les instructions que vous avez transférez dans la mémoire du microcontrôleur .
Avant d'en venir au microcontrôleur PIC , on peut dire en simplifiant qu' un microcontrôleur est un microprocesseur auquel on a intégré divers périphériques, dont en particulier la mémoire contenant le programme à exécuter , ainsi qu' un circuit spécialisé qui permet au microcontrôleur de "dialoguer " avec l' extérieur , que se soit pour " mesurer " ou bien pour " actionner "...
Il existe de nombreux types de microcontrôleurs qu'ils soient spécifiques pour une fonction donnée ou bien banalisés et configurables pour de nombreuses applications.

Quelle famille...












· Les microcontrôleurs PIC
De nombreux fabriquants se sont implantés sur le marché des microcontrôleurs.
La société Américaine MicrochipÒ technologie à mis au point un microcontrôleur CMOS ( Complémentary Métal Oxyde Semi-conducteur ): Le PIC .
Ce microcontrôleur encore très utilisé à l 'heure actuelle est un compromis entre simplicité d'emploi et prix de revient.
Il fait partie de la famille des circuits RISC ( Reduced Instruction Set Computer ) , caractérisée par leur vitesse d' exécution et leur jeu d'instruction réduit ( le PIC 16F84 possède seulement 35 instructions de base ).
Il existe de nombreuses versions de PIC possédant chacune des caractéristiques différentes, des tableaux comparatifs permettent de choisir le PIC le plus adéquat par rapport à l'application envisagée. Un comparatif vous est proposé sur le tableau 1, nous reviendrons ultérieurement sur les caractéristiques des PIC présentés.
Un minimum de matériel pour développer une application.

Cette premiere partie vous a plu , vous avez décidé de réaliser une application à base de PIC , que vous faut-il pour commencer ?
1. Dans un premier temps une fois que votre projet est établi ( nous y reviendrons ultérieurement avec une application concrète ), il va falloir écrire un programme en assembleur ( pour débuter ) . Un programme en assembleur est constitué par une suite d'ordres ( Mnémoniques ) que devra exécuter le microcontrôleur, cela suppose bien sûr que le programmeur ( c'est à dire vous ! ) se devra de connaître les instructions disponibles pour le PIC choisi et également la façon d'utiliser ces instructions ( pas d'affolement , nous verrons bien entendu toutes les instructions du 16F84 ).
Pour écrire notre programme en assembleur nous pouvons utiliser n'importe quel éditeur de texte par exemple notepad.exe logiciel fourni avec WindowsÒ , une autre possibilité plus conviviale consistera à utiliser l'éditeur fourni dans l' outil de développement MPLAB disponible gratuitement sur le site internet de Microchip
( WWW.MICROCHIP.COM ) . Un article sera consacré à cet outil très performant.

2. Nous venons d'écrire notre programme en assembleur ( également appelé code source ) il faut maintenant compiler ce fichier. La compilation consiste à remplacer les ordres mnémoniques du fichier assembleur par des codes binaires compréhensibles par le microcontrôleur , en effet les microprocesseurs tout comme les microcontrôleurs ne comprennent que les "0" et les "1". Pour effectuer cette compilation il faut disposer d'un compilateur , l'intégré MPLAB cité plus haut permet la compilation.

3. Dernière étape , la compilation à réussie ( ouf il n'y a pas d' erreur de syntaxe dans le code source ), un fichier binaire comportant l'extension .hex ( en général ) vient d'être créé par le compilateur. Il reste désormais à transférer ce fichier présent sur le disque dur de votre ordinateur vers la mémoire programme de votre microcontrôleur PIC. De nombreux kits de programmateurs de PIC proposés par les annonceurs de notre revue ( pour environ 300f ) permettent de transférer le fichier binaire vers la mémoire du PIC, des programmateurs ont également été proposés sur notre revue. Si toutefois vous possédez le programmateur proposé par Microchip, le logiciel MPLAB vous permettra de réaliser le transfert.










Figure 5
Une fois le que le programme en assembleur est réalisé ( c'est finalement le plus compliqué ), vous pourrez avec MPLAB réaliser une simulation ( si vous le souhaitez ) , si cette simulation correspond au fonctionnement désiré , vous pourrez alors compiler la programme source puis le transférer vers la mémoire du microcontrôleur . Ces quelques étapes devront être exécutées à chaque nouveau programme.





















Figure 6

Pour conclure cette première partie

Pour terminer cette première approche autour d'un microcontrôleur PIC on peut déjà dire qu' avec un minimum de moyen ( un programmateur de PIC ), on va pouvoir réaliser une application simple ne comportant que très peu de composants et peu coûteuse . Il faudra bien évidemment se familiariser ( petit à petit ! ) avec le langage assembleur qui paraît au premier abord assez compliqué et surtout avec les instructions ( il n'y en a que 35 ) , ainsi qu' à la façon de les utiliser.
Nous allons dans le prochain cours "voyager" au coeur d'un PIC en détaillant les différents blocs qui constituent son architecture interne.

à suivre

P.MAYEUX
Figure1
Figure 2
Figure3
Histoire des microcontrôleurs
[Cours 1] [Cours 2] [PDF complet des cours] [Présentation de mes livres sur les PIC]
[Retour]
Mon livre sur les PIC Mid range Mon livre sur les PIC High performance