Académique Documents
Professionnel Documents
Culture Documents
Un microcontrôleur (en notation abrégée µc, ou uc ou encore MCU en anglais) est un circuit
intégré qui rassemble les éléments essentiels d'un ordinateur : processeur, mémoires
(mémoire morte et mémoire vive), unités périphériques et interfaces d'entrées-sorties. Les
microcontrôleurs se caractérisent par un plus haut degré d'intégration, une plus faible
consommation électrique, une vitesse de fonctionnement plus faible (de quelques mégahertz
jusqu'à plus d'un gigahertz[1]) et un coût réduit par rapport aux microprocesseurs polyvalents
utilisés dans les ordinateurs personnels.
Les microcontrôleurs sont fréquemment utilisés dans les systèmes embarqués, comme les
contrôleurs des moteurs automobiles, les télécommandes, les appareils de bureau,
l'électroménager, les jouets, la téléphonie mobile, etc.
Introduction : le domaine
visé, les systèmes
embarqués
La plus grande partie des systèmes électroniques complexes utilisés de nos jours sont des
systèmes embarqués : téléphones mobiles, horloges, baladeurs, récepteurs GPS,
électroménager, automobile, transport aérien/maritime/fluvial. Les systèmes embarqués se
démarquent des systèmes informatiques traditionnels selon plusieurs aspects :
Du microprocesseur au
microcontrôleur
Le processeur est l'élément central d'un système informatique : il interprète les instructions et
traite les données d'un programme. Il a besoin de certains éléments externes pour
fonctionner :
une horloge pour le cadencer (en
général à quartz ou Boucle à
verrouillage de phase (PLL : Phase-
Locked Loop)) ;
de la mémoire pour stocker les
variables durant l’exécution du
programme (mémoire vive RAM) et le
programme d’une mise sous tension à
l’autre (mémoire morte ROM). Si l'on
conçoit un système affecté à une
tâche bien particulière (ce qui est
généralement le cas des systèmes
embarqués), le programme n'est pas
amené à changer. Il peut donc être
stocké dans une mémoire morte
(ROM) ;
des périphériques (pour interagir avec
le monde extérieur).
Ces éléments sont reliés par 3 bus :
Lorsque toutes les fonctions du système informatique sont regroupées dans un unique
circuit intégré, y compris les fonctions logiques, analogiques, radiofréquence, d'interface
(USB, Ethernet, etc.), on parle alors de System on Chip (système sur puce ou système mono-
puce). Ces composants sont basés sur un ou plusieurs cœurs de microcontrôleur,
microprocesseur, processeur graphique, DSP, contrôleur de périphériques, etc.
Composants intégrés
Les microcontrôleurs peuvent généralement se placer dans un état de sommeil, dans lequel
ils présentent une très faible consommation électrique. Un signal envoyé par l'un de leurs
périphériques (timer, broche d'entrée-sortie, watchdog, etc.) permet de les faire sortir de cet
état de sommeil.
Certains microcontrôleurs ont un nombre très restreint de broches, si bien qu'une broche
donnée peut correspondre à plusieurs périphériques internes. La fonction choisie doit alors
être sélectionnée par logiciel.
Le choix des périphériques à intégrer dans un microcontrôleur est délicat. Les fabricants
doivent réaliser un compromis entre des besoins contradictoires : utiliser des fréquences
élevées, réduire la taille du circuit, apporter des fonctionnalités nombreuses, élaborer une
architecture flexible, assurer des coûts modérés, etc.
Architecture
Un microcontrôleur peut effectuer la plupart des instructions machine habituelles, avec
certaines restrictions liées à son caractère embarqué (taille restreinte des mots machine,
petite taille disponible, etc.). On note cependant quelques particularités.
Les modes d'adressage utilisables sont en général semblables à ceux des autres
processeurs.
De façon générale, les instructions et modes d'adressage disponibles varient fort selon les
familles de microcontrôleurs.
Certains microcontrôleurs suivent une architecture Harvard[3] : ils possèdent des bus séparés
pour la mémoire de programme et la mémoire de données, ce qui permet aux accès d'avoir
lieu en même temps (on parle d'accès concurrent). Lorsqu'on utilise une architecture Harvard,
les mots de programme peuvent avoir une largeur (nombre de bits) différente de celle des
mots de la mémoire de données et des registres. Par exemple, il peut y avoir des instructions
de 12 bits et des registres de données de 8 bits.
Utilisations et volume du
marché
Les microcontrôleurs sont très utilisés dans tous les systèmes embarqués évoqués en
introduction. Ils sont également très prisés en robotique amateur (robots autonomes) et en
modélisme (automatismes des maquettes de réseaux ferroviaires par exemple).
Les microcontrôleurs représentent la plus grosse partie des ventes dans le marché des
microprocesseurs [réf. nécessaire]. En effet, un foyer moyen d'un pays développé est susceptible
d'être équipé de seulement un ou deux microprocesseurs généralistes (ordinateurs), mais
d'une ou deux douzaines de microcontrôleurs (appareils électroménagers). Une automobile
de milieu de gamme est équipée d'au moins 50 microcontrôleurs [réf. nécessaire].
Les fabricants proposent souvent des versions spéciales de leurs microcontrôleurs pour
faciliter le développement matériel et logiciel des applications. Par exemple, lorsque les
mémoires mortes utilisées étaient des EPROM, il existait des variantes des microcontrôleurs
équipées de fenêtres sur le dessus, qui permettaient d'effacer le programme grâce à de la
lumière ultraviolette. Ceci permettait de recommencer une programmation après un cycle
programmation-test.
Le recours à la programmation sur place, dans le circuit applicatif, permet de mettre à jour le
programme après la fabrication du produit. On parle alors de flashage. Cette opération peut
être effectuée via un programme situé en ROM, ou passer par l'utilisation d'un connecteur
physique particulier. Dans tous les cas, on évite ainsi un retour en usine pour effectuer la
mise à jour.
Lorsqu'il s'agit de produire de plus grandes séries (plusieurs milliers et plus), le coût de
réalisation d'un masque pour la fabrication de mémoire morte non programmable est
facilement amorti sur tous les exemplaires produits. On peut alors fixer le contenu de la
mémoire morte lors de la réalisation du circuit intégré, et non plus lors du montage du
produit. Cependant, ces mémoires présentent l'inconvénient de ne pouvoir être mises à jour.
Si l'on envisage néanmoins de telles mises à jour, on peut prévoir de monter le
microcontrôleur sur un support, ce qui permet de le faire remplacer par un technicien en cas
de nécessité.
Environnements de
programmation
Le programme d'un microcontrôleur est généralement appelé micrologiciel.
Programmateur de microcontrôleur
PIC.
Une fois le programme compilé, le fichier binaire doit être envoyé au microcontrôleur. On
utilise soit :
un programmateur, pour
microcontrôleurs et souvent
également d’EEPROM. On parle alors
de programmateur universel.
un programmateur ISP qui a l'avantage
de ne pas nécessiter de sortir le
microcontrôleur du système
électronique complet. Ce type de
programmation pourra se faire via le
bus de communication standard JTAG
ou un autre bus, souvent propriétaire
(Microchip par ex. avec sa série
PIC16F) et, malheureusement,
inadapté au test des cartes lors de la
phase de production.
Toutefois, le programme qui a été envoyé peut comporter des bogues (bugs), aussi, pour
parvenir à les détecter on peut utiliser un émulateur in-circuit.
Le projet μCLinux vise à faire fonctionner Linux sur des microcontrôleurs et des
microprocesseurs dépourvus de MMU. Il est par exemple disponible sur Motorola ColdFire,
Blackfin, Intel i960, Motorola QUICC, ARM7TDMI, NEC V850.
Familles de
microcontrôleurs
Notes et références
Portail de l’informatique
Portail de l’électricité et de l’électr
Ce document provient de
« https://fr.wikipedia.org/w/index.php?
title=Microcontrôleur&oldid=207841284 ».