Utilisateur:Nifrou/PIC

Un article de Wikipédia, l'encyclopédie libre.

Les microcontrôleurs PIC (ou PICmicro dans la terminologie du fabricant) forment une famille de microcontrôleurs de la société Microchip. Ces microcontrôleurs sont dérivés du PIC1650 développé à l'origine par la division microélectronique de General Instruments.

PIC 1655A.
PIC 1655A.

Le nom PIC n'est pas officiellement un acronyme, bien que la traduction en « Peripheral Interface Controller » (contrôleur d'interface périphérique) soit généralement admise. Cependant, à l'époque du développement du PIC1650 par General Instruments, PIC était un acronyme de « Programmable Intelligent Computer ».

Sommaire

[modifier] Utilité

Divers microcontrôleurs PIC.
Divers microcontrôleurs PIC.

Un microcontrôleur est une unité de traitement de l’information de type microprocesseur à laquelle on a ajouté des périphériques internes permettant de réaliser des montages sans nécessiter l’ajout de composants externes. En ce sens, les PIC sont particulièrement bien dotés, car ils intègrent mémoire de programme, mémoire de données, ports d'entrée-sortie, et même horloge, bien que des bases de temps externes puissent être employées. Certains modèles disposent de port et unités de traitement de l'USB.

PIC 16F684, 12F675 et 10F222.
PIC 16F684, 12F675 et 10F222.

[modifier] Techniques mises en jeu

Les PIC sont des composants dits RISC (reduced instruction set computer), ou encore microprocesseur à jeu d’instruction réduit. Plus on réduit le nombre d’instructions, plus facile et plus rapide en est le décodage, et plus vite le composant fonctionne.

Le temps de cycle d'un PIC est donné par la fréquence d’horloge utilisée pour le cadencer, divisée par 4. Cela est dû à l'architecture interne de ce microcontrôleur.

Les PIC stockent chaque instruction dans un seul mot de programme et exécutent chaque instruction en un cycle, sauf les sauts qui sont exécutés en deux cycles. On atteint donc des vitesses élevées, et les instructions sont de plus très rapidement assimilées.

Avec un quartz de 4MHz (ou l'horloge interne), on obtient donc 1 000 000 de cycles/seconde, or, comme le pic exécute pratiquement 1 instruction par cycle, hormis les sauts, cela donne une puissance de l’ordre de 1 MIPS (1 million d'instructions par seconde).

La plupart des PIC peuvent être cadencés jusqu'à 20MHz. C’est donc une vitesse de traitement plus qu’honorable pour un microcontrôleur.

[modifier] Programmation

[modifier] Transfert du code machine dans la mémoire de programme (ROM) du PIC

Carte de développement de Microchip, pour microcontrôleurs PIC de 6,8 et 14 broches.
Carte de développement de Microchip, pour microcontrôleurs PIC de 6,8 et 14 broches.

Le programme d'un pic peut être basé sur l'une des technologies suivantes :

  • EPROM Écriture du programme de manière électrique, effacement impossible. Lettre d'idenfication 'C' (ex. : PIC16Cxxx, PIC18Cxxx)
  • EEPROM Écriture et effacement du programme de manière électrique.
  • EPROM Écriture du programme de manière électrique, effacement par insolation au Ultra-Violet.
  • UVPROM ,
  • flash est en fait un EEPROM utilisant une technologie plus rapide permettant des temps d'écriture et surtout d'effacement beaucoup plus rapides.

C'est la plus simple utilisation et la plus utilisée pour les petites série/moyenne. Lettre d'idenfication 'F' (ex. : PIC16Fxxx, PIC18Fxxx)


  • Par l'intermédiaire d'un programmateur dédié (par exemple : PROMATE de la société Microchip)
  • Par programmation in-situ. Il suffit alors de câbler correctement le micro sur la carte fille pour qu'une simple liaison série suffise. Il existe plusieurs solutions libres (logiciel + interface à faire soi-même) ou commerciales (par exemple : ICD2 de Microchip) pour faire cela.

[modifier] Écriture et compilation du code programme

[modifier] Déboguage

Plusieurs solutions existent pour déboguer un programme écrit pour un microcontrôleur PIC :

  • Le simulateur, il reproduit le fonctionnement du PIC de manière virtuelle à l'aide d'un logiciel (ex : MPLAB SIM de Microchip).

Ce système est limité (par les différences et simplifications du logiciel par rapport au vrai PIC). Par l'impossibilité de simuler l'ensemble de l'environnement du PIC (sytème électronique, humain, physique interagissant avec le PIC). Par la grandeur du temps nécessaire pour simuler la quantité de phénomènes ayant lieu dans un court laps de temps. Cependant, il a l'intérêt d'être économique voire même gratuit avec MPLAB.

  • L'émulateur, se substitue au PIC (on remplace donc sur la carte électronique le PIC par une connexion vers un émulateur).

Ce sytème est géneralement constitué d'une carte d'interface électronique couplé d'un ordinateur. L'ensemble est capable de reproduire très fidèlement le comportement du PIC (du point de vue électrique, du timing, et fonctionnel). Sur l'ordinateur, on a à tout moment toutes les informations de l'état du PIC (mémoires, états électrique des ports, valeurs des différents registres, etc..) De plus, Il est possible d'interagir de manière très fine avec le déroulement du processus (Arret, pause, reprise, enregistrement des états, action conditionnée par des options ou bien évènement externes). Toutes ces caractéristiques en font le meilleurs outils de déboguage / aide au développement. Grace à l'amélioration des performances en informatique ; Les ordinateurs sont maintenant capables de prendre une part un peu plus active dans le processus de simulation. De ce fait le prix des simulateurs à tres fortement baissé mais il reste encore très cher.

  • Débogueur in-situ.

cette fonctionnalité et assez récente. Les microcontroleurs ont desormais des perfomances et « intelligence » suffisantes pour gérer un processus de déboguage en parallèle de leur fonctionnement.

[modifier] Familles de PICs

Quatre microcontrôleurs PIC de familles différentes : 18F, 16F, 12F et 10F.
Quatre microcontrôleurs PIC de familles différentes : 18F, 16F, 12F et 10F.

[modifier] PIC10

[modifier] pic12

Composants récent. Ils ont comme particularités extrêmement petit, simple et économique.

[modifier] PIC16

Composants de milieu de gamme. C'est la famille la plus fournie.

[modifier] pic17

Gamme intermédiaire entre 16xxx et 18xxx. Cette gamme n'est plus enrichie par Microchip. Elle supporte la compilation en C.

[modifier] PIC18

Cette famille RISC 8 bits haut de gamme est construite autour d'une architecture HARVARD avec un bus de données (8 bits) et un bus instruction de 16 bits. Elle a un jeu d'instruction plus étendu que les prédécesseurs (PIC16) puisqu'il comprend de l'ordre de 75 instructions. Cette palette d'instructions étendue lui permet de faire tourner du code C compilé de manière nettement plus efficace que les familles précédentes. On peut les utiliser avec un quartz oscillant jusqu'à 64MHz pour les toutes dernières versions. Certain dérivés intégrent depuis 2006 des périphériques USB Full speed (MAC+PHY) et ETHERNET 10 Mbits (MAC+PHY).

[modifier] pic24

Sortie en 2006, c'est la famille la plus récente et la plus performante. Elle est programmable en C comme tous les autres PIC.

Quelques caractéristiques à remarquer :

  • programmable avec le compilateur MPLAB C30, dérivé de GCC 3.3 (c'est la seule famille de microcontrôleurs de chez Microchip à pouvoir être programmé avec) ;
  • dispose d'un port JTAG.

[modifier] dsPIC

Le dsPIC (digital signal PICs) est le premier microcontrôleur de la société Microchip qui ait une architecture 16 bits (les autres étant à 8 bits). Il est adapté aux applications de traitement du signal et peut donc remplacer un DSP.

[modifier] Voir aussi

[modifier] Liens externes

Catégorie:Microcontrôleur