Najah.
Mon plan de révision⚡ Défi flash

Sciences de l'ingénieur · 2ème Année Bac — Sciences Mathématiques B

Traitement de l'information (Microcontrôleurs)

Le cours expliqué simplement, les questions que tous les élèves se posent et des exercices type examen national. Programme marocain, gratuit.

📘 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 :

  1. Fetch (Recherche) : Le CPU récupère l'instruction à l'adresse indiquée par le PC.
  2. Decode (Décodage) : Le CPU interprète l'instruction.
  3. Execute (Exécution) : L'ALU ou un autre composant réalise l'opération.
  4. 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 :

  1. 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}$.
  2. 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.
La question que tu n'oses pas poser en classe ? Pose-la à UstadZéro jugement, même en darija, même à minuit. Il t'explique pas à pas et corrige ta démarche. Gratuit.

Défi flash : 4 questions

Sans compte

🎯 Traitement de l'information (Microcontrôleurs)

1/4

Quel registre contient l'adresse de la prochaine instruction à exécuter ?

❓ Questions fréquentes

Chno lfarq bin Microprocesseur w Microcontrôleur?

Le microprocesseur (ex: Intel i7) est uniquement une unité de calcul qui nécessite des composants externes (RAM, ROM, I/O) sur une carte mère. Le microcontrôleur est un système complet sur une seule puce intégrant le CPU, la mémoire (RAM/Flash) et les interfaces d'E/S.

💡 À retenir : Le microcontrôleur est autonome, le microprocesseur ne l'est pas.

Kifach n3ref l'adresse dial l'instruction li jaya?

L'adresse de la prochaine instruction est stockée dans un registre spécial appelé le PC (Program Counter). À chaque fois qu'une instruction est récupérée, le PC est automatiquement incrémenté pour pointer vers l'adresse suivante en mémoire.

💡 À retenir : C'est le rôle du PC de suivre l'ordre du programme.

Chno hiya l'utilité dial l'interruption?

L'interruption permet de réagir immédiatement à un événement extérieur urgent (ex: appui sur un bouton d'urgence ou fin d'une conversion ADC) sans que le CPU ait besoin de vérifier l'état du capteur en permanence (polling).

💡 À retenir : L'interruption optimise le temps de traitement et la consommation d'énergie.

Quelle est la différence entre la mémoire Flash et la mémoire RAM ?
  1. La Flash est une mémoire non volatile : elle conserve le programme même sans alimentation.
  2. La RAM est une mémoire volatile : elle perd ses données dès que l'alimentation est coupée. Elle sert au stockage temporaire des calculs.

💡 À retenir : Programme $\rightarrow$ Flash ; Variables $\rightarrow$ RAM.

À quoi sert l'ALU dans un microcontrôleur ?

L'ALU (Arithmetic Logic Unit) est le cœur mathématique du CPU. Elle réalise :

  1. Les opérations arithmétiques ($+, -, \times, \div$).
  2. Les opérations logiques (ET, OU, NON, XOR) utilisées pour les tests de conditions.

💡 À retenir : Pas d'ALU = pas de calcul possible.

Qu'est-ce que le "Stack Pointer" (Pointeur de Pile) ?

C'est un registre qui contient l'adresse du sommet de la Pile (Stack). La pile est une zone de la RAM utilisée pour sauvegarder temporairement les données (comme l'adresse de retour) lors d'un appel de fonction ou d'une interruption.

💡 À retenir : Il gère l'ordre LIFO (Last In, First Out).

Pourquoi dit-on que le microcontrôleur est le "cerveau" de la chaîne d'information ?

Parce qu'il reçoit les informations des capteurs (entrées), traite ces données selon un programme pré-établi (logique), et envoie des ordres aux actionneurs (sorties). Il assure la liaison entre la chaîne d'information et la chaîne d'énergie.

💡 À retenir : Il transforme l'information brute en décision.

Quel est le rôle d'un convertisseur ADC dans un microcontrôleur ?

L'ADC (Analog-to-Digital Converter) transforme une tension électrique continue (signal analogique d'un capteur, ex: $2,5\text{V}$) en une valeur numérique (ex: $0101_2$) que le CPU peut traiter mathématiquement.

💡 À retenir : Indispensable pour lire des capteurs analogiques.

Que se passe-t-il si deux interruptions arrivent en même temps ?

Le microcontrôleur utilise un système de priorités. L'interruption ayant la priorité la plus haute sera traitée en premier. L'autre sera mise en attente jusqu'à la fin de la première.

💡 À retenir : La gestion des priorités évite les conflits critiques.

Quelle est la différence entre le mode "Polling" et le mode "Interruption" ?
  1. Polling : Le CPU interroge le capteur à intervalles réguliers dans une boucle. C'est simple mais gaspille de l'énergie.
  2. Interruption : Le CPU travaille sur autre chose et n'est sollicité que lorsque le capteur envoie un signal. C'est beaucoup plus efficace.

💡 À retenir : Polling = Questionnement actif ; Interruption = Réaction passive.

Qu'est-ce qu'un registre GPIO ?

Un registre GPIO (General Purpose Input/Output) est une zone de mémoire dont chaque bit correspond à une broche physique du microcontrôleur. Modifier la valeur d'un bit dans ce registre permet de mettre une broche à $0\text{V}$ ou à $V_{cc}$ (ex: allumer une LED).

💡 À retenir : C'est le pont matériel entre le logiciel et les broches.

Comment calcule-t-on la période d'une horloge si la fréquence est donnée ?

On utilise la formule de la relation entre fréquence ($f$) et période ($T$) : $$T = \frac{1}{f}$$ Si $f = 1 \text{ kHz}$, alors $T = \frac{1}{1000} = 1 \text{ ms}$.

💡 À retenir : L'unité de $T$ est la seconde (s).

✍️ Exercices type examen national

Exercice 1

Exercice 1 : Analyse d'architecture (Niveau Facile) On considère un microcontrôleur dont l'architecture est représentée par un bloc fonctionnel.

  1. Identifiez les composants qui appartiennent à la mémoire volatile et à la mémoire non volatile.
  2. Quel composant est responsable de l'incrémentation automatique de l'adresse de la prochaine instruction ?
  3. Si un capteur de température envoie un signal de $3,3\text{V}$, quel composant interne est nécessaire pour que le CPU puisse lire cette valeur ?

Exercice 2 : Calcul de performance (Niveau Moyen) Un système de contrôle industriel utilise un microcontrôleur cadencé à $f = 20 \text{ MHz}$. Le programme de contrôle est composé d'une boucle qui exécute les instructions suivantes :

  • Lecture capteur : $5$ cycles d'horloge.
  • Calcul de moyenne : $12$ cycles d'horloge.
  • Mise à jour actionneur : $8$ cycles d'horloge.
  1. Calculez la période $T$ d'un cycle d'horloge.
  2. Calculez le temps total $t_{boucle}$ nécessaire pour effectuer une itération complète de la boucle.
  3. Combien de boucles de contrôle le système peut-il effectuer par seconde ?

Exercice 3 : Gestion des interruptions (Niveau Difficile) Un microcontrôleur exécute un programme principal (Main Loop) à l'adresse $0x1000$. Une interruption est déclenchée par un bouton poussoir. L'adresse de la routine d'interruption (ISR) est $0x2000$. Au moment de l'interruption, le PC contient la valeur $0x1050$.

  1. Décrivez précisément les étapes de sauvegarde de l'état du processeur lors de l'interruption.
  2. Quelle sera la valeur du PC immédiatement après l'exécution de la dernière instruction de l'ISR ? (On suppose que l'ISR est une instruction unique et que le mécanisme de retour est automatique).
  3. Pourquoi est-il crucial de limiter la durée d'exécution de l'ISR ?
Voir la correction détaillée : inscription gratuite

Un prof de Sciences de l'ingénieur pour aller plus loin

Les cours du soir avec des profs vérifiés arrivent : inscris-toi pour être prévenu(e) en premier.

Être prévenu(e) gratuitement

Autres chapitres de Sciences de l'ingénieur