📘 Fiche de cours
L'essentiel du cours
Le microcontrôleur est l'élément central de la chaîne d'information. Contrairement au microprocesseur qui nécessite des composants externes, le microcontrôleur est un système "tout-en-un" sur une seule puce.
1. Architecture interne :
- L'Unité Centrale de Traitement (CPU) : Le cerveau qui exécute les instructions. Elle contient :
- L'ALU (Unité Arithmétique et Logique) : Effectue les calculs ($+, -, \times, \div$) et les opérations logiques (ET, OU, NON).
- Les Registres : Petites mémoires ultra-rapides pour stocker temporairement des données ou des adresses.
- Le PC (Program Counter / Compteur de Programme) : Contient l'adresse de la prochaine instruction à exécuter.
- La Mémoire :
- Mémoire Programme (Flash/ROM) : Stocke le code (instructions) de manière non volatile (ne s'efface pas sans action).
- Mémoire de Données (RAM) : Stocke les variables et les résultats temporaires. Elle est volatile (s'efface à la coupure du courant).
- Les Interfaces d'Entrées/Sorties (GPIO) : Permettent de communiquer avec le monde extérieur (capteurs, actionneurs).
- Les Périphériques : Timers (temporisateurs), ADC (Convertisseur Analogique-Numérique), UART/SPI (communication).
2. Le cycle d'exécution d'une instruction :
- Fetch (Recherche) : Le CPU récupère l'instruction à l'adresse indiquée par le PC.
- Decode (Décodage) : Le CPU interprète l'instruction.
- Execute (Exécution) : L'ALU ou un autre composant réalise l'opération.
- Update (Mise à jour) : Le PC est incrémenté pour pointer vers l'instruction suivante.
3. Le concept d'Interruption : Une interruption est un signal externe qui force le CPU à suspendre son programme principal pour exécuter une tâche urgente appelée ISR (Interrupt Service Routine).
- Processus : Suspension du programme $\rightarrow$ Sauvegarde de l'état (PC et registres) dans la Pile (Stack) $\rightarrow$ Exécution de l'ISR $\rightarrow$ Restauration de l'état $\rightarrow$ Reprise du programme principal.
Méthodes à maîtriser
- Analyse d'un diagramme fonctionnel : Identifier le rôle du microcontrôleur dans la chaîne d'information (traitement des signaux des capteurs pour piloter les actionneurs).
- Calcul de temps d'exécution : Utiliser la fréquence d'horloge $f$ pour trouver la période $T = \frac{1}{f}$. Si une instruction prend $n$ cycles d'horloge, son temps est $t = n \times T$.
- Interprétation des interruptions : Distinguer le mode "Polling" (le CPU vérifie en boucle l'état d'un capteur) du mode "Interruption" (le capteur prévient le CPU).
Exemples corrigés
Exemple 1 : Calcul de temps Un microcontrôleur fonctionne à une fréquence $f = 10 \text{ MHz}$. Une instruction spécifique nécessite $4$ cycles d'horloge. Quel est le temps d'exécution de cette instruction ?
Solution :
- Calcul de la période d'un cycle d'horloge : $T = \frac{1}{f} = \frac{1}{10 \times 10^6} = 10^{-7} \text{ s} = 0,1 \mu\text{s}$.
- Temps pour 4 cycles : $t = 4 \times T = 4 \times 0,1 \mu\text{s} = 0,4 \mu\text{s}$.
Exemple 2 : Adresse mémoire Si le PC contient l'adresse $0x0010$ et que chaque instruction occupe $2$ octets, quelle sera la valeur du PC après l'exécution d'une instruction ?
Solution : Le PC pointe sur l'instruction actuelle. Après l'exécution, il doit pointer sur la suivante. $PC_{suivant} = PC_{actuel} + \text{taille instruction} = 0x0010 + 2 = 0x0012$.
Erreurs fréquentes
- Confondre RAM et Flash : La Flash contient le programme (permanent), la RAM contient les variables (temporaire).
- Oublier la Pile (Stack) : Lors d'une interruption, si on n'oublie pas de sauvegarder le PC dans la pile, le microcontrôleur ne saura jamais où il en était dans le programme principal.
- Confondre Polling et Interruption : Le Polling consomme beaucoup de ressources CPU (boucle infinie), l'interruption est efficace car elle ne sollicite le CPU que si nécessaire.