MCU vs MPU : microcontrôleur et microprocesseur comparés

Un microcontrôleur (MCU) réunit sur une seule puce un processeur, de la mémoire flash, de la RAM et des périphériques comme des timers, des ADC et des interfaces de communication : il peut donc faire fonctionner seul un petit système complet. Un microprocesseur (MPU) est principalement un processeur plus rapide qui nécessite de la DRAM et un stockage externes, et exécute généralement un système d'exploitation complet comme Linux. Les MCU conviennent au contrôle simple, basse consommation et temps réel ; les MPU aux appareils complexes riches en logiciel.

CritèreMCUMPU
IntégrationCPU, flash, RAM et périphériques (GPIO, timers, ADC, UART, SPI, I2C) sur une seule puceCœurs de CPU avec caches et MMU ; la DRAM et le stockage sont des puces externes
Fréquence d'horlogeD'environ 1 MHz à quelques centaines de MHzDe quelques centaines de MHz à plusieurs GHz
MémoireDe quelques kilooctets à quelques mégaoctets de flash sur puce, et de quelques kilooctets à quelques mégaoctets de SRAMDRAM externe (de quelques centaines de MB à quelques GB) et stockage comme l'eMMC ou une carte SD
LogicielCode bare-metal ou petit OS temps réel (comme FreeRTOS ou Zephyr)Système d'exploitation complet comme Linux ou Android
Comportement temps réelPrévisible, avec une latence d'interruption de l'ordre de la microsecondePlus difficile à garantir sous Linux sans extensions temps réel
ConsommationTrès faible : quelques microampères en veille, et une pile bouton peut durer des annéesPlus élevée : de quelques centaines de milliwatts à quelques watts
Temps de démarrageInstantané, en quelques millisecondesQuelques secondes, car un chargeur d'amorçage et un OS doivent démarrer
Coût et conception de cartePuce bon marché, carte simple, peu de composants externesPuce plus chère plus DRAM et puces d'alimentation, et carte multicouche complexe
Usages typiquesÉlectroménager, commande de moteurs, capteurs, wearables, ECU automobilesSmartphones, tablettes, décodeurs TV, routeurs, écrans tactiles industriels, infodivertissement
ExemplesSTM32, ESP32, RP2040, cartes ArduinoProcesseurs d'application comme NXP i.MX, TI Sitara et la puce du Raspberry Pi

Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.

Quand choisir l'un ou l'autre ?

MCU
Lorsque la tâche relève du contrôle et de la mesure, qu'il faut une très faible consommation et un démarrage instantané, et que le programme tient dans la mémoire sur puce.
MPU
Lorsqu'il faut une interface utilisateur riche, la mise en réseau, un système de fichiers ou de grandes piles logicielles qui reposent sur un système d'exploitation.
Les deux
De nombreux produits les combinent : un MPU gère l'interface utilisateur et les applications, tandis qu'un MCU assure le contrôle à contraintes temporelles et la gestion de l'alimentation.

Questions fréquentes

Quelle est la différence entre un microcontrôleur et un microprocesseur ?

Un microcontrôleur intègre un CPU, de la flash, de la RAM et des périphériques sur une seule puce et fait fonctionner seul un petit système. Un microprocesseur est principalement le CPU, nécessite de la DRAM et un stockage externes, et exécute généralement un système d'exploitation comme Linux.

Le Raspberry Pi est-il un microcontrôleur ?

Non. Le Raspberry Pi utilise une puce de classe microprocesseur avec mémoire externe et exécute Linux. Le Raspberry Pi Pico, lui, est une carte à microcontrôleur.

Lequel consomme le moins ?

Le microcontrôleur. Il peut dormir à quelques microampères et fonctionner des années sur une pile bouton, tandis qu'un microprocesseur consomme de quelques centaines de milliwatts à quelques watts.

Un microcontrôleur peut-il exécuter Linux ?

En général non, car Linux nécessite une MMU et beaucoup plus de mémoire qu'un MCU typique n'en possède. Les microcontrôleurs exécutent généralement du code bare-metal ou un petit système d'exploitation temps réel.

Vérifier vos connaissances

Lors de l'utilisation d'une broche GPIO (entrée-sortie à usage général) d'un microcontrôleur, que faut-il régler en premier ?

  1. ALe fait d'utiliser la broche en entrée ou en sortie (direction)
  2. BLa couleur de la broche
  3. CLe nom du programmeur qui a écrit le programme
Afficher la réponse et l'explication

Réponse : A. Le fait d'utiliser la broche en entrée ou en sortie (direction)

Une broche GPIO peut être utilisée en entrée comme en sortie, par logiciel. Réglée en sortie par le registre de direction, la valeur écrite dans le registre de sortie devient la tension de la broche ; réglée en entrée, la tension de la broche se lit dans le registre d'entrée. De nombreux microcontrôleurs règlent aussi la présence d'un tirage, le type de sortie (push-pull ou drain ouvert) et l'éventuelle affectation de la broche à un autre périphérique.

Quelle méthode est couramment utilisée par un microcontrôleur pour régler la luminosité d'une LED ou la vitesse de rotation d'un moteur ?

  1. AÉpaissir ou affiner les fils d'alimentation
  2. BSuspendre temporairement l'exécution du programme
  3. CLa PWM, qui alterne rapidement marche et arrêt en faisant varier la proportion du temps de marche
Afficher la réponse et l'explication

Réponse : C. La PWM, qui alterne rapidement marche et arrêt en faisant varier la proportion du temps de marche

Commandée en PWM avec des commutations rapides, une LED paraît à l'œil d'une luminosité proportionnelle à la fraction de temps allumée, et un moteur tourne, grâce à son inertie, à une vitesse correspondant à la puissance moyenne. Le transistor fonctionnant entièrement passant ou bloqué, les pertes par échauffement sont plus faibles qu'avec une tension intermédiaire et le réglage est efficace. La fréquence est choisie pour que le scintillement de la LED ou le bruit du moteur ne gênent pas.

Quelle caractéristique de la communication série par UART est correcte ?

  1. AL'émetteur fournit une ligne d'horloge, et le récepteur lit les données avec cette horloge
  2. BSans ligne d'horloge, émetteur et récepteur se calent sur la même vitesse (débit en bauds) et un bit de start signale le début
  3. CDe nombreux équipements partagent une ligne et sont sélectionnés par une adresse
Afficher la réponse et l'explication

Réponse : B. Sans ligne d'horloge, émetteur et récepteur se calent sur la même vitesse (débit en bauds) et un bit de start signale le début

L'UART est une communication série asynchrone utilisant deux lignes, émission et réception (plus la masse). Au repos, la ligne est à 1 ; un bit de start à 0 signale le début d'un caractère, suivi des bits de données puis d'un bit de stop à 1. L'horloge n'étant pas transmise, les deux côtés doivent être réglés sur la même vitesse, par exemple 115200 bps. Elle sert souvent pour les sorties de débogage et la connexion à des modules GPS ou radio.

  1. Parmi les méthodes de connaissance de l'état d'un périphérique, quelle différence entre scrutation (polling) et interruption est correcte ?
  2. Lorsqu'un microcontrôleur acquiert à intervalle régulier un grand nombre de résultats de conversion analogique-numérique, quel est l'avantage d'utiliser le DMA ?

Questions d'entraînement sur Systèmes embarqués et firmware

Termes clés expliqués

Microcontrôleur
Petit ordinateur réunissant sur une puce un CPU, de la mémoire et des périphériques comme des timers ou un CAN. Intégré dans l'électroménager, l'automobile, etc., il en assure la commande. Aussi appelé MCU.
GPIO
Broche d'entrée/sortie à usage général (General Purpose Input/Output). Configurable par logiciel en entrée ou en sortie, elle sert à lire des interrupteurs, allumer des LED, etc.
Interruption
Mécanisme du CPU qui suspend temporairement le traitement en cours, en réponse par exemple à une requête d'un périphérique, pour exécuter en priorité le traitement correspondant, puis reprend le traitement initial.

Comparatifs associés