|
Les microcontrôleurs (MCU)
Evoquer les
microcontrôleurs en quelques lignes paraîtra à certains
inconcevable, voire inconvenant, tant il est vrai que ces
composants sont devenus, aujourd'hui, omniprésents et pour ainsi
dire incontournables...
Nous nous bornerons pourtant
à une présentation très succinte des microcontrôleurs (ou
µcontrôleurs, c'est plus chic!, ou encore MCU), car la
complexité de ce circuit hautement intégré nous entraînerait
bien au-delà d'une simple initiation à l'électronique.

Qu'est-ce qu'un microcontrôleur?
Un microcontrôleur (MCU)
pourrait être très sommairement défini comme un système de
contrôle complet, dédié à une application particulière et
pour cela doté de fonctions logiques et de la plupart des autres
éléments nécessaires à son fonctionnement, d'où un nombre
très restreint de composants périphériques.

MCU
8 bits de la famille ST 6200.
Voici le block diagram (l'organisation interne) typique d'un microcontrôleur:
| ROM |
RAM |
| CPU |
EEPROM |
| TIMER |
A/D
CONVERTER |
| I/O
PORT |
SERIAL
INTERFACE |
ROM (Read Only Memory): c'est
la mémoire "morte", qui contient le programme, donc
les instructions à accomplir, et éventuellement des données (data).
La ROM est parfois
remplacée par de la mémoire flash, qui peut être effacée
électriquement, ce qui permet de modifier le programme. Une
mémoire flash peut être effacée des milliers de fois!
RAM (Random Access Memory):
c'est la mémoire dite "vive", qui permet de stocker
des données pendant l'éxécution du programme.
EEPROM (Electrically Erasable
Programmable Read Only Memory): cette mémoire peut être
effacée et reprogrammée, comme la flash. Elle sert à
sauvegarder des données, en cas par exemple de coupure de
courant.
CPU (Central
Processing Unit): c'est le "cerveau" du système.
Ce microprocesseur lit et éxécute les instructions du programme
stocké en mémoire.
Timer: il
sert de base de temps interne au système, génère des signaux,
compte des évènements.
Certains MCU sont dotés
d'un watchdog timer (chien de garde): ce dispositif,
s'il n'est pas réinitialisé par le programme à intervalles
prédéfinis, considère qu'il y a problème au niveau
logiciel et provoque un reset matériel (hardware reset).
I/O ports (Input/output
ports): la plupart des MCU possèdent plusieurs ports
d'entrée/sortie, qui permettent de "communiquer" avec
le système (par l'intermédiaire, par exemple, d'un clavier).
Serial interface:
elles servent à échanger des données avec le monde extérieur.
On en trouve de deux types: asynchrone (serial communication
interface, SCI ou UART) ou synchrone (serial peripheral
interface, SPI).
Ces interfaces sont
utilisées, par exemple, pour relier le MCU à un PC (SCI) ou
à une EEPROM. Dans le cas d'une transmission synchrone,
chaque bit est synchronisé par un signal d'horloge. Dans le
cas d'une transmission asynchrone, chaque octet est
précédé d'un bit de départ et se termine par un bit de
fin, qui permettent de synchroniser émetteur et récepteur.
A/D converter: convertissseur analogique/numérique.

Comment fonctionne un microcontrôleur?
Le schéma ci-dessous
résume le fonctionnement interne d'un microcontrôleur: à
droite, les mémoires contenant instructions et données; au
centre l'horloge et le processeur, qui participent à
l'éxécution des instructions du programme; à gauche, les
entrées et sorties, permettant au microcontrôleur de
communiquer avec le monde extérieur (recevoir des instructions,
transmettre des données...).

Cette
manière de présenter les choses n'a sans doute qu'un seul
mérite: une (relative) lisibilité... Dans la réalité, un
microcontrôleur se révèle nettement plus complexe, surtout
s'il est doté de caractéristiques plus sophistiquées.

La programmation d'un microcontrôleur
Compte tenu de ce qui a
été dit plus haut, il parait évident qu'un MCU n'est pas un
circuit comme les autres: on ne peut pas se contenter de le
souder sur la carte. D'ailleurs, on évite de le souder: il vaut
mieux l'insérer dans un support, ce qui permet au besoin de le
retirer, puis de le remettre en place ou de le remplacer.
Pour accomplir sa tâche, un
MCU doit être programmé à cet effet: il faut
au préalable implanter dans sa mémoire un programme,
c'est-à-dire une série d'instructions, que le processeur
éxécutera. Cette étape implique deux types d'outils, appelés
de développement: des outils logiciels (software tools)
et matériels (hardware tools).

La programmation proprement
dite est réalisée sur ordinateur, grâce à un environnement de
programmation, comprenant un langage (souvent le C), un
compilateur, un linker, un debugger... Il s'agit d'écrire le
code, ou suite d'instructions qui devront être éxécutées,
dans les limites bien sûr des capacités du MCU (mémoire,
vitesse d'horloge...).
Une fois le programme
écrit, il convient de le tester, à l'aide d'un simulateur (ou
émulateur), qui reproduit en temps réel le comportement d'un
MCU donné, et du debugger. Lorsque tout va bien, il ne reste
plus qu'à transférer le programme dans la mémoire du MCU.
La frontière entre
électronique et informatique est ici, on le voit, pour ainsi
dire inexistante...

A quoi servent les microcontrôleurs?
Le microcontrôleur apparait
donc comme un système extrêmement complet et performant,
capable d'accomplir une ou plusieurs tâches très spécifiques,
pour lesquelles il a été programmé.
Ces tâches peuvent être
très diverses, si bien qu'on trouve aujourd'hui des
microcontrôleurs presque partout: dans les appareils
électro-ménagers (réfrigérateurs, fours à micro-ondes...),
les téléviseurs et magnétoscopes, les téléphones sans fil,
les périphériques informatiques (imprimantes, scanners...), les
voitures (airbags, climatisation, ordinateur de bord, alarme...),
les avions et vaisseaux spatiaux, les appareils de mesure ou de
contrôle des processus industriels, etc.
La force du
microcontrôleur, qui lui a permis de s'imposer de manière si
envahissante en si peu de temps, c'est sa spécialisation (il
remplit une ou quelques tâches bien définies, c'est tout), sa
très grande fiabilité, son coût modique (pour les modèles
produits en grande série, notamment pour l'industrie
automobile).
Ajoutons que par rapport au
microprocesseur, toujours assoiffé de performances pures, le
modeste microcontrôleur se cantonne dans un rôle obscur et
ingrat, mais essentiel, tout en visant le meilleur rapport
qualité/prix.

|