Architecture et programmation des Microcontrôleurs
Architecture et programmation des Microcontrôleurs
Les PICs sont des microcontrôleurs à architecture RISC
(Reduced Instructions Set Computer), ou encore composant à jeu d’instructions
réduit. L’avantage est que plus on réduit le nombre d’instructions, plus leur décodage sera rapide ce qui
augmente la vitesse de fonctionnement du microcontrôleur.
Les PICs sont subdivisés en 3 grandes familles :
La famille Base-Line, qui utilise des mots d’instructions de 12 bits,
La famille Mid-Range, qui utilise des mots de 14 bits (et dont font partie les 16F8xx),
La famille High-End, qui utilise des mots de 16 bits (les PIC 18Fxxx).
On trouve aussi des familles de dsPIC pour le traitement du
signal et d’autres microcontrôleurs spécialisés.
Les éléments essentiels du PIC 16F877 sont :
Une mémoire programme de type EEPROM flash de 8K mots de 14 bits,
Une RAM donnée de 368 octets,
Une mémoire EEPROM de 256 octets,
5 ports d’entrée sortie, A (6 bits), B (8 bits), C (8 bits), D (8 bits) et E (3 bits)
Convertisseur Analogique numérique 10 bits à 8 entrées sélectionnables,
USART, Port série universel, mode asynchrone (RS232) et mode synchrone
SSP, Port série synchrone supportant I2C
3 TIMERS avec leurs Prescalers, TMR0, TMR1, TMR2
2 modules de comparaison et Capture CCP1 et CCP2
15 sources d’interruption,
Les différents constituants d’un microprocesseur peuvent être regroupés dans deux blocs principaux, l’unité de calcul et l’unité de contrôle.
1- L’unité de calcul
Elle est constituée de l’unité Arithmétique et logique UAL
et d’un certain nombre de registres
ALU : Unité arithmétique et logique
Les registres : Ce sont des mémoires élémentaires pouvant contenir chacun un opérande. Les registres peuvent être de 8, 16 ou 32 bits.
2- L’unité de contrôle
C’est l’unité de contrôle qui supervise le déroulement de
toutes les opérations au sein du microprocesseur. Elle est constituée
principalement de :
Horloge : C’est l’horloge qui génère les signaux qui permettent le cadencement et la synchronisation de toutes les opérations.
Le compteur programme PC : (Program Counter) contient l’adresse de la case mémoire où est stockée la prochaine instruction à charger. Au début de l’exécution d’un programme, le PC est initialisé à l’adresse mémoire où est stockée la première instruction du programme. Le compteur programme est incrémenté chaque fois qu’une instruction est chargée dans le microprocesseur.
Le registre d’instruction RI : C’est là où le microprocesseur stocke l’instruction en cours d’exécution.
Le décodeur : C’est lui qui va “décoder” l’instruction contenue dans RI et générer les signaux logiques correspondants et les communiquer au séquenceur.
Le séquenceur : Il gère le séquencement des opérations et génère :
les signaux du bus de commande (RD, WR, etc.),
les signaux internes aux microprocesseurs (gestion des registres, de l’A.L.U., aiguillages des bus internes, etc.).
Le séquenceur est réalisé avec une structure qui comprend
une mémoire ROM intégrée. Celle-ci contient des micro-instructions (à ne pas
confondre avec les instructions contenues dans la mémoire programme). La
mémoire des micro-instructions n’est pas accessible à l’utilisateur. Chacune
des instructions du microprocesseur nécessite plusieurs micro-instructions et
donc plusieurs cycles horloge.
Le registre d’état : Le registre d’état est formé de plusieurs bits appelés drapeaux ou indicateurs (Flags) qui sont positionnés par l’ALU après chaque opération. On dispose d’un jeu d’instructions conditionnées par l’état de différents drapeaux. Par exemple l’indicateur Z indique, quand il est positionné, que le résultat de l’opération est égal à Zéro. L’indicateur C indique que l’opération a généré une retenue. Le bit N indique que le résultat est négatif …
Type d’architecture d’un microprocesseur
1- Architecture CISC (Complex Instruction Set Computer)
C’est une architecture avec un grand nombre d’instructions. Le processeur doit exécuter des taches complexes par instruction unique. Donc, pour une tache donnée, une machine CISC exécute un petit nombre d’instructions mais chacun nécessite un plus grand nombre de cycles horloge (Intel 8086, Pentium…, Motorola 68000, PowerPC). Actuellement les deux technologies convergent : les processeurs CISC (Pentium par exemple) utilisent des instructions de plus en plus simples et exécutent parfois plusieurs instructions en un cycle horloge.
2- Architecture RISC (Reduced Instruction Set Computer)
Architecture dans laquelle les instructions sont en nombre
réduit (chargement, branchement, appel sous-programme)
et elles sont fréquemment utilisées. Le but est d’éliminer
les instructions rarement employées et de consacrer les ressources matérielles
à exécuter les instructions relativement simples en un cycle d‘horloge et à
émuler les autres instructions à l’aide de séquences basées sur les
instructions élémentaires. On trouve donc une meilleure performance à une
vitesse donnée (le gain en performance envisageable est important mais dépend
de la qualité du compilateur). Processeurs RISC : PowerRISC (IBM/Motorola),
SPARC (SUN), PA-RISC (HP).
Cours sur l’Architecture et programmation des Microcontrôleurs