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
Architecture-et-programmation-des-Microcontrôleurs-