microcontrôleur (MCU)

Un microcontrôleur est un circuit intégré compact conçu pour régir une opération spécifique dans un système embarqué. Un microcontrôleur typique comprend un processeur, une mémoire et des périphériques d’entrée/sortie (E/S) sur une seule puce.

Parfois appelés contrôleur embarqué ou unité de microcontrôleur (MCU), les microcontrôleurs sont présents dans les véhicules, les robots, les machines de bureau, les dispositifs médicaux, les émetteurs-récepteurs radio mobiles, les distributeurs automatiques et les appareils ménagers, entre autres dispositifs. Il s’agit essentiellement de simples ordinateurs personnels (PC) miniatures conçus pour contrôler de petites fonctionnalités d’un composant plus grand, sans système d’exploitation (OS) frontal complexe.

Comment fonctionnent les microcontrôleurs ?

Un microcontrôleur est intégré à l’intérieur d’un système pour contrôler une fonction singulière dans un appareil. Il le fait en interprétant les données qu’il reçoit de ses périphériques d’entrée/sortie à l’aide de son processeur central. Les informations temporaires que le microcontrôleur reçoit sont stockées dans sa mémoire de données, où le processeur y accède et utilise les instructions stockées dans sa mémoire de programme pour déchiffrer et appliquer les données entrantes. Il utilise ensuite ses périphériques d’entrée/sortie pour communiquer et exécuter l’action appropriée.

Les microcontrôleurs sont utilisés dans un large éventail de systèmes et de dispositifs. Les dispositifs utilisent souvent plusieurs microcontrôleurs qui travaillent ensemble au sein du dispositif pour gérer leurs tâches respectives.

Par exemple, une voiture peut avoir de nombreux microcontrôleurs qui contrôlent divers systèmes individuels à l’intérieur, tels que le système de freinage antiblocage, le contrôle de la traction, l’injection de carburant ou le contrôle de la suspension. Tous les microcontrôleurs communiquent entre eux pour informer des actions correctes. Certains peuvent communiquer avec un ordinateur central plus complexe à l’intérieur de la voiture, et d’autres peuvent ne communiquer qu’avec d’autres microcontrôleurs. Ils envoient et reçoivent des données à l’aide de leurs périphériques d’entrée/sortie et traitent ces données pour effectuer les tâches qui leur sont désignées.

Quels sont les éléments d’un microcontrôleur ?

Les éléments de base d’un microcontrôleur sont :

  • Le processeur (CPU) — Un processeur peut être considéré comme le cerveau de l’appareil. Il traite et répond à diverses instructions qui dirigent la fonction du microcontrôleur. Il s’agit d’effectuer des opérations arithmétiques, logiques et d’entrée/sortie de base. Il effectue également des opérations de transfert de données, qui communiquent des commandes à d’autres composants du système embarqué plus vaste.
  • Mémoire — La mémoire d’un microcontrôleur est utilisée pour stocker les données que le processeur reçoit et utilise pour répondre aux instructions qu’il a été programmé pour exécuter. Un microcontrôleur possède deux types de mémoire principaux :
    1. La mémoire de programme, qui stocke des informations à long terme sur les instructions que le processeur exécute. La mémoire de programme est une mémoire non volatile, ce qui signifie qu’elle conserve les informations dans le temps sans avoir besoin d’une source d’alimentation.
    2. Mémoire de données, qui est nécessaire pour le stockage temporaire des données pendant l’exécution des instructions. La mémoire de données est volatile, ce qui signifie que les données qu’elle contient sont temporaires et ne sont maintenues que si le dispositif est connecté à une source d’alimentation.
  • Périphériques d’entrée/sortie — Les périphériques d’entrée et de sortie constituent l’interface du processeur avec le monde extérieur. Les ports d’entrée reçoivent des informations et les envoient au processeur sous forme de données binaires. Le processeur reçoit ces données et envoie les instructions nécessaires aux périphériques de sortie qui exécutent des tâches externes au microcontrôleur.

Bien que le processeur, la mémoire et les périphériques d’E/S soient les éléments déterminants du microprocesseur, d’autres éléments sont fréquemment inclus. Le terme de périphériques d’E/S lui-même désigne simplement les composants de soutien qui s’interfacent avec la mémoire et le processeur. Il existe de nombreux composants de soutien qui peuvent être classés comme périphériques. Avoir une certaine manifestation d’un périphérique d’E/S est élémentaire pour un microprocesseur, car ils sont le mécanisme par lequel le processeur est appliqué.

Les autres éléments de soutien d’un microcontrôleur comprennent :

  • Un convertisseur analogique-numérique (CAN) — Un CAN est un circuit qui convertit les signaux analogiques en signaux numériques. Il permet au processeur au centre du microcontrôleur de s’interfacer avec des dispositifs analogiques externes, tels que des capteurs.
  • Convertisseur numérique-analogique (CNA) — Un CNA réalise la fonction inverse d’un CNA et permet au processeur au centre du microcontrôleur de communiquer ses signaux sortants à des composants analogiques externes.
  • Bus système — Le bus système est le fil conducteur qui relie tous les composants du microcontrôleur entre eux.
  • Port série — Le port série est un exemple de port E/S qui permet au microcontrôleur de se connecter à des composants externes. Il a une fonction similaire à celle d’un port USB ou d’un port parallèle mais diffère dans la façon dont il échange les bits.

Caractéristiques du microcontrôleur

Le processeur d’un microcontrôleur varie selon l’application. Les options vont des simples processeurs 4 bits, 8 bits ou 16 bits aux processeurs plus complexes 32 bits ou 64 bits. Les microcontrôleurs peuvent utiliser des types de mémoire volatile comme la mémoire vive (RAM) et des types de mémoire non volatile — cela inclut la mémoire flash, la mémoire morte programmable effaçable (EPROM) et la mémoire morte programmable électriquement effaçable (EEPROM).

Généralement, les microcontrôleurs sont conçus pour être facilement utilisables sans composants informatiques supplémentaires, car ils sont conçus avec une mémoire embarquée suffisante ainsi que pour offrir des broches pour les opérations générales d’E/S, de sorte qu’ils peuvent s’interfacer directement avec des capteurs et d’autres composants.

L’architecture des microcontrôleurs peut être basée sur l’architecture Harvard ou l’architecture von Neumann, les deux offrant différentes méthodes d’échange de données entre le processeur et la mémoire. Avec une architecture Harvard, le bus de données et l’instruction sont séparés, ce qui permet des transferts simultanés. Avec une architecture Von Neumann, un seul bus est utilisé pour les données et les instructions.

Les processeurs des microcontrôleurs peuvent être basés sur le calcul à jeu d’instructions complexe (CISC) ou le calcul à jeu d’instructions réduit (RISC). Le CISC compte généralement environ 80 instructions alors que le RISC en compte environ 30, ainsi qu’un plus grand nombre de modes d’adressage, 12 à 24 contre 3 à 5 pour le RISC. Si le CISC est plus facile à mettre en œuvre et utilise plus efficacement la mémoire, il peut entraîner une dégradation des performances en raison du nombre plus élevé de cycles d’horloge nécessaires à l’exécution des instructions. Le RISC, qui met davantage l’accent sur le logiciel, offre souvent de meilleures performances que les processeurs CISC, qui mettent davantage l’accent sur le matériel, en raison de son jeu d’instructions simplifié et, par conséquent, d’une plus grande simplicité de conception, mais en raison de l’accent qu’il met sur le logiciel, ce dernier peut être plus complexe. Le choix de l’ISC utilisé varie en fonction de l’application.

Lorsqu’ils sont apparus sur le marché, les microcontrôleurs utilisaient uniquement le langage d’assemblage. Aujourd’hui, le langage de programmation C est une option populaire. D’autres langages de microprocesseur courants comprennent Python et JavaScript.

Les MCU comportent des broches d’entrée et de sortie pour mettre en œuvre des fonctions périphériques. Ces fonctions comprennent des convertisseurs analogiques-numériques, des contrôleurs d’affichage à cristaux liquides (LCD), une horloge en temps réel (RTC), un émetteur récepteur synchrone/asynchrone universel (USART), des temporisateurs, un émetteur récepteur asynchrone universel (UART) et une connectivité de bus série universel (USB). Des capteurs recueillant des données liées à l’humidité et à la température, entre autres, sont également souvent attachés aux microcontrôleurs.

Types de microcontrôleurs

Les MCU courants comprennent le MCS-51 d’Intel, souvent appelé microcontrôleur 8051, qui a été développé pour la première fois en 1985 ; le microcontrôleur AVR développé par Atmel en 1996 ; le contrôleur d’interface programmable (PIC) de Microchip Technology ; et divers microcontrôleurs Advanced RISC Machines (ARM) sous licence.

Un certain nombre de sociétés fabriquent et vendent des microcontrôleurs, notamment NXP Semiconductors, Renesas Electronics, Silicon Labs et Texas Instruments.

Applications des microcontrôleurs

Les microcontrôleurs sont utilisés dans de multiples industries et applications, notamment dans la maison et l’entreprise, la domotique, la fabrication, la robotique, l’automobile, l’éclairage, l’énergie intelligente, l’automatisation industrielle, les communications et les déploiements de l’internet des objets (IoT).

Une application très spécifique d’un microcontrôleur est son utilisation en tant que processeur de signaux numériques. Fréquemment, les signaux analogiques entrants sont accompagnés d’un certain niveau de bruit. Dans ce contexte, le bruit désigne des valeurs ambiguës qui ne peuvent pas être facilement traduites en valeurs numériques standard. Un microcontrôleur peut utiliser son CAN et son CNA pour convertir le signal analogique bruyant entrant en un signal numérique sortant uniforme.

Les microcontrôleurs les plus simples facilitent le fonctionnement des systèmes électromécaniques que l’on trouve dans les objets de consommation courante, comme les fours, les réfrigérateurs, les grille-pain, les appareils mobiles, les porte-clés, les systèmes de jeux vidéo, les téléviseurs et les systèmes d’arrosage des pelouses. Ils sont également courants dans les machines de bureau telles que les photocopieurs, les scanners, les télécopieurs et les imprimantes, ainsi que dans les compteurs intelligents, les distributeurs automatiques de billets et les systèmes de sécurité.

Des microcontrôleurs plus sophistiqués remplissent des fonctions essentielles dans les avions, les engins spatiaux, les navires océaniques, les véhicules, les systèmes médicaux et de survie ainsi que dans les robots. Dans les scénarios médicaux, les microcontrôleurs peuvent réguler les opérations d’un cœur, d’un rein ou d’autres organes artificiels. Ils peuvent également jouer un rôle déterminant dans le fonctionnement des prothèses.

Microcontrôleurs vs microprocesseurs

La distinction entre microcontrôleurs et microprocesseurs est devenue moins claire à mesure que la densité et la complexité des puces sont devenues relativement bon marché à fabriquer et que les microcontrôleurs ont ainsi intégré davantage de fonctionnalités de type « ordinateur général ». Dans l’ensemble, cependant, on peut dire que les microcontrôleurs fonctionnent utilement par eux-mêmes, avec une connexion directe aux capteurs et aux actionneurs, alors que les microprocesseurs sont conçus pour maximiser la puissance de calcul sur la puce, avec des connexions de bus internes (plutôt que des E/S directes) vers le matériel de support comme la RAM et les ports série. En termes simples, les cafetières utilisent des microcontrôleurs ; les ordinateurs de bureau utilisent des microprocesseurs.

Le microcontrôleur ATtiny817 de Microchip Technology.

Les microcontrôleurs sont moins chers et consomment moins d’énergie que les microprocesseurs. Les microprocesseurs n’ont pas de mémoire vive (RAM), de mémoire morte (ROM) ou d’autres périphériques intégrés à la puce, mais s’y rattachent par leurs broches. Un microprocesseur peut être considéré comme le cœur d’un système informatique, tandis qu’un microcontrôleur peut être considéré comme le cœur d’un système embarqué.

Choisir le bon microcontrôleur

Il y a un certain nombre de considérations technologiques et commerciales à garder à l’esprit lors du choix d’un microcontrôleur pour un projet.

Au delà du coût, il est important de considérer la vitesse maximale, la quantité de RAM ou de ROM, le nombre ou les types de broches d’E/S sur une MCU, ainsi que la consommation d’énergie et les contraintes et le support de développement. Veillez à poser des questions telles que :

.