Introduction au coeur du micro-controlleur
Si vous avez déjà fait de la programmation avec un langage de haut-niveau comme le C ou le basic mais n'avez jamais étudier les microprocesseurs au niveau matériel, vous trouverez peut-être ici des informations intéressantes.
Qu'est-ce qu'un micro-controlleur
La différence entre un micro-controlleur et un micro-processeur d'usage général comme ceux qu'on retrouve dans les ordinateurs ne tiens pas seulement à la puissance de traitement. Contrairement aux micro-processeurs d'usage général comme le 6502 qu'on retrouvait dans le apple II par exemple, les micro-controlleurs n'ont pas de bus externe pour accéder de la mémoire ou serait stocké programme et données. La seule mémoire accessible est interne au MCU. Dans le cas des MCU PIC il s'agit de la mémoire programme d'un côté et de l'autre les registres de périphériques et de données. Mémoire de programme et mémoire de données sont séparés, c'est ce qu'on appelle une architecture Harvard.que retrouve-ton à l'intérieur?6>
- la mémoire flash pour stocker le programme.
- les registres de contrôle des périphériques tel que timer, convertisseurs analogique-numérique, ports d'entré/sortie, etc.
- les registres de donner pour stocker les variables.
- les registres spéciaux pour vérifier ou contrôler les états machines comme le STATUS register ou l'OPTION register.
- le compteur ordinal qui contient l'adresse de la prochaine instruction à exécuter.
- La pile des retours qui garde les addresses ou doit retourner le compteur ordinal à la sortie d'une sous-routine.
- L'unité arithmétique et logique (ALU) qui effectue toutes les opérations sur les données.
- Le décodeur d'instruction, qui reçoit les instructions de la mémoire programme et effectue tout les branchements nécessaire à l'exécution de l'instruction. Dans le cas des PIC ça se fait en 4 cycle d'horloge.
MCU PIC de base
Les MCU de base comme le PIC10F202 (illustré ci-haut) ont un minimum d'éléments internes. L'exécution se déroule en 4 phases.
- l'instruction pointé par le compteur ordinal est extraite de la mémoire programme (en fait du pipeline).
- l'instruction est décodée.
- l'instruction est exécutée dans l'ALU ou s'il s'agit d'un mouvement de donnée le registre source est lue.
- le résultat est enregistré dans un registre destination.
Les opérations effectuées par un MCU de base sont réduites et simples, il y en a 5 types:
- opérations logiques: COMPLÉMENT DE 1, OU, ET, OU EXLUSIF, rotation a gauche et rotation à droite, forcer un bit à une valeur.
- opération arithmétique: ADDITION, SOUSTRACTION, INCRÉMENTER,DÉCRÉMENTER
- déplacement de données: mettre une valeur dans W, transférer W dans un registre, transférer un registre dans W
- contrôle de flux: aller à une adresse, appel de sous-routine, sortie de sous-routine, saut conditionnel