You are on page 1of 6

Microcontr�leur

Sauter � la navigationSauter � la recherche

Le Motorola 68HC11, ici en bo�tier PLCC, est un microcontr�leur r�put�.


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 gigahertz1) et
un co�t r�duit par rapport aux microprocesseurs polyvalents utilis�s dans les
ordinateurs personnels.

Par rapport � des syst�mes �lectroniques � base de microprocesseurs et autres


composants s�par�s, les microcontr�leurs permettent de diminuer la taille, la
consommation �lectrique et le co�t des produits. Ils ont ainsi permis de
d�mocratiser l'utilisation de l'informatique dans un grand nombre de produits et de
proc�d�s.

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.

Sommaire
1 Introduction : le domaine vis�, les syst�mes embarqu�s
2 Du microprocesseur au microcontr�leur
3 Composants int�gr�s
4 Architecture
5 Utilisations et volume du march�
6 Environnements de programmation
7 Familles de microcontr�leurs
8 Notes et r�f�rences
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 :

Ils sont soumis � des contraintes de taille (int�gration), de consommation


�lectrique (autonomie) et de co�t importants (grande s�rie) ;
Ils sont en g�n�ral affect�s � une t�che bien pr�cise. La taille des programmes et
la quantit� de m�moire (vive et morte), dont ils disposent, sont modestes (face �
un micro-ordinateur) ;
Ils doivent communiquer avec des dispositifs d'entr�es-sorties (IO) : boutons,
relais, r�sistances variables, optocoupleurs, moteurs �lectriques, LED, circuits
int�gr�s logiques, etc. ;
Ils n'ont parfois aucun dispositif d'interface homme-machine : ni clavier, ni
�cran, ni disque, ni imprimante, etc. Par exemple, le contr�leur d'injection de
carburant du moteur d'une automobile est totalement invisible pour le conducteur.
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 :

le bus d'adresse qui permet au microprocesseur de s�lectionner la case m�moire ou


le p�riph�rique auquel il veut acc�der pour lire ou �crire une information
(instruction ou donn�e) ;
le bus de donn�es qui permet le transfert des informations entre les diff�rents
�l�ments ; ces informations seront soit des instructions, soit des donn�es en
provenance ou � destination de la m�moire ou des p�riph�riques ;
le bus de contr�le qui indique si l'op�ration en cours est une lecture ou une
�criture, si un p�riph�rique demande une interruption pour faire remonter une
information au processeur, etc.

Structure d'un syst�me � microprocesseur


Traditionnellement, ces composants sont int�gr�s dans des circuits distincts. Le
d�veloppement d'un tel syst�me � base de microprocesseur se trouve donc p�nalis�
par (liste non exhaustive) :

la n�cessit� de pr�voir l'interconnexion de ces composants (bus, c�blage, nappes de


connexion) ;
la place occup�e physiquement par les composants et les moyens d'interconnexion ;
la consommation �nerg�tique ;
la chaleur d�gag�e ;
le co�t financier.
Les microcontr�leurs am�liorent l'int�gration et le co�t (li� � la conception et �
la r�alisation) d'un syst�me � base de microprocesseur en rassemblant ces �l�ments
essentiels dans un seul circuit int�gr�. Un microcontr�leur est donc un composant
autonome, capable d'ex�cuter le programme contenu dans sa m�moire morte d�s qu'il
est mis sous tension. Selon les mod�les et les conditions de fonctionnement, les
microcontr�leurs peuvent avoir besoin de quelques composants externes (quartz,
quelques condensateurs, parfois une ROM), mais ceci reste tr�s limit�.

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

Le circuit int�gr� d'un Intel 8742, un microcontr�leur 8 bits qui comprend un


processeur cadenc� � 12 MHz, 128 octets de m�moire vive, une EPROM de 2 048 bits,
et des entr�es-sorties sur une unique puce.
Un microcontr�leur int�gre sur un unique die :

un processeur (CPU), avec une largeur du chemin de donn�es allant de 4 bits pour
les mod�les les plus basiques � 32 ou 64 bits pour les mod�les les plus �volu�s ;
de la m�moire vive (RAM) pour stocker les donn�es et variables ;
de la m�moire morte (ROM) pour stocker le programme. Diff�rentes technologies
peuvent �tre employ�es : EPROM, EEPROM, m�moire flash (la plus r�cente) ;
souvent un oscillateur pour le cadencement. Il peut �tre r�alis� avec un quartz, un
circuit RC ou encore une PLL ;
des p�riph�riques, capables d'effectuer des t�ches sp�cifiques. On peut mentionner
entre autres :
les convertisseurs analogiques-num�riques (CAN) (donnent un nombre binaire � partir
d'une tension �lectrique),
les convertisseurs num�riques-analogiques (CNA) (effectuent l'op�ration inverse),
les g�n�rateurs de signaux � modulation de largeur d'impulsion (MLI, ou en anglais,
PWM pour Pulse Width Modulation),
les timers/compteurs (compteurs d'impulsions d'horloge interne ou d'�v�nements
externes),
les chiens de garde (watchdog),
les comparateurs (comparent deux tensions �lectriques),
les contr�leurs de bus de communication (UART, I2C, SSP, CAN, FlexRay, USB, etc.).

Ces PIC (microcontr�leurs de la marque Microchip) int�grent des quantit�s de


composants tr�s diff�rentes.
Le fonctionnement des p�riph�riques peut �tre param�tr� et command� par le
programme et/ou les entr�es-sorties. Les p�riph�riques peuvent g�n�rer une
interruption qui contraint le processeur � quitter le programme en cours pour
effectuer une routine de traitement de l�interruption, lorsque l��v�nement qui la
d�clenche survient.

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 capacit�s math�matiques sont en g�n�ral particuli�rement limit�es, r�duites �


des additions, soustractions et d�calages sur des octets pour les plus simples
d'entre eux. Les calculs math�matiques �volu�s doivent donc �tre ramen�s � une
succession d'op�rations simples portant seulement sur des octets. Des routines
math�matiques (petits programmes permettant de r�aliser les calculs complexes) ont
�t� d�velopp�es pour la plupart des microcontr�leurs populaires.

Les instructions d'entr�e-sortie sont bien d�velopp�es, de fa�on � pouvoir :

lire l'�tat d'un port d'entr�e ;


�crire une information dans le registre d'un port de sortie, qui maintient
l'information � la disposition des circuits ext�rieurs.
Les microcontr�leurs disposent g�n�ralement de nombreuses instructions destin�es
aux op�rations sur les bits, de fa�on � rendre les programmes plus compacts,
notamment lorsqu'ils agissent sur une entr�e-sortie donn�e. Ainsi, un processeur
g�n�raliste peut avoir besoin de plusieurs instructions pour tester la valeur d'un
bit d'un registre et effectuer un saut si le bit vaut vrai. Cette fonction courante
est assur�e par une seule instruction dans certains microcontr�leurs2.
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 Harvard3 : 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].

Microcontr�leur ST6 �quip� d'une m�moire EPROM effa�able aux UV.


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.

Pour de petites s�ries (quelques milliers d'unit�s ou moins), les microcontr�leurs


programmables une seule fois (OTP, one-time programmable) sont �conomiques. Ils
sont bas�s sur la m�me puce que la version UV-EPROM, se programment avec le m�me
mat�riel, mais le bo�tier n'est pas �quip� de la fen�tre qui permet l'effacement
(et qui est on�reuse).

Il peut exister des versions de microcontr�leurs d�pourvus de m�moire morte


interne. La m�moire morte est alors situ�e dans un bo�tier ext�rieur, par exemple
une EPROM. Il suffit alors d'un simple programmateur d'EPROM pour r�aliser la
programmation, mais des broches du microcontr�leur sont requises pour la
communication avec la m�moire externe, et ne peuvent donc pas �tre utilis�es pour
les entr�es-sorties. Ces versions sont plus co�teuses, mais peuvent se r�v�ler
int�ressantes si les quantit�s vis�es sont faibles.

Plus rarement, on rencontre une variante de l'approche pr�c�dente, le piggy back.


Le microcontr�leur ne dispose pas non plus de m�moire morte interne, mais la
communication avec l�EPROM se fait non pas par des broches d'entr�e-sortie, mais
par des broches sp�ciales situ�es sur le dessus du bo�tier. L�EPROM se fixe alors
au-dessus du microcontr�leur, et ne monopolise pas de port d'entr�e-sortie. Ces
versions sont souvent on�reuses et peu pratiques, sauf pour les phases de
d�veloppement et les tr�s petites s�ries.

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.

� l'origine, les microcontr�leurs se programmaient en assembleur. Fortement bas


niveau (et donc, intrins�quement optimis�), l'assembleur posa et pose toujours
d'�normes probl�mes pour la maintenance et l'�volution des logiciels embarqu�s.
D�sormais, on utilise de plus en plus des langages de haut niveau, notamment le
langage C, capable de faciliter la programmation de microcontr�leurs toujours plus
puissants. Ces compilateurs C pr�sentent g�n�ralement certaines restrictions li�es
aux sp�cificit�s des microcontr�leurs (m�moire limit�e, par exemple). Le
compilateur GCC peut produire du code pour certains microcontr�leurs4. Avec
l�augmentation de la puissance et de la quantit� de m�moire de stockage (FLASH)
disponible dans les microcontr�leurs, les programmes de ces derniers peuvent
d�sormais �tre �crits en C++. Il existe m�me des frameworks et plateformes en C++
destin�s � l�embarqu�, comme Qtopia, mais l'utilisation de ceux-ci restera limit�e
aux microcontr�leurs les plus puissants.

Certains microcontr�leurs disposent �galement de firmware r�alisant


l'interpr�tation d'un langage �volu�. Ainsi, l�Intel 8052 et le Zilog Z8 ont pu
�tre programm�s en BASIC d�s leurs d�buts. Plus r�cemment, le BASIC Stamp dispose
d'un interpr�te BASIC en m�moire morte.

Il existe des environnements pour aider au d�veloppement de certaines applications.


Par exemple, LabVIEW et son langage G permettent de programmer les microcontr�leurs
Blackfin d'Analog Devices.

Des simulateurs sont disponibles pour certains microcontr�leurs, comme


l'environnement MPLAB de Microchip. Les d�veloppeurs peuvent ainsi analyser le
comportement du microcontr�leur et du programme, comme s'il s'agissait du composant
r�el. Un simulateur montre l'�tat interne du processeur, ainsi que celui de ses
sorties. Bien que la plupart des simulateurs ne proposent pas de simuler les autres
composants d'un syst�me, ils permettent de sp�cifier les entr�es � volont�. On peut
de cette fa�on cr�er des conditions qui seraient sans cela difficiles � reproduire
dans une impl�mentation physique. Cela facilite donc l'analyse et la r�solution des
probl�mes. De la m�me fa�on, certains logiciels de CAO simulent le comportement du
microcontr�leur et des composants qui l'entourent. On peut ainsi afficher les �tats
des entr�es et sorties des diff�rents composants au cours de l'ex�cution d'un
programme.

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, ARM7-TDMI, NEC V850.

Familles de microcontr�leurs
la famille Atmel AT91 ;
les familles ARM Cortex-M et ARM Cortex-R
la famille Atmel AVR (utilis�e par des cartes Wiring et Arduino) ;
le C167 de Siemens/Infineon ;
la famille des Infineon AURIX TC3x, Infineon AURIX TC2x, Infineon TriCore TC1x,
Infineon XMC, XC2000 de Infineon Technologies ;
la famille Hitachi H8 ;
la famille Intel 8051, qui ne cesse de grandir ; de plus, certains processeurs
r�cents utilisent un c�ur 8051, qui est compl�t� par divers p�riph�riques (ports
d�E/S, compteurs/temporisateurs, convertisseurs A/N et N/A, chien de garde,
superviseur de tension, etc.) ;
l�Intel 8085, � l'origine con�u pour �tre un microprocesseur, a en pratique souvent
�t� utilis� en tant que microcontr�leur ;
le Freescale 68HC11 ;
la famille Freescale 68HC08 ;
la famille Freescale 68HC12 ;
la famille Freescale Qorivva MPC5XXX ;
la famille des PIC de Microchip ;
la famille des dsPIC de Microchip ;
la famille ADuC d'Analog Devices ;
la famille PICBASIC de Comfile Technology;
la famille MSP430 de Texas Instruments ;
la famille 8080, dont les h�ritiers sont le microprocesseur Zilog Z80 (d�sormais
utilis� en tant que contr�leur dans l'embarqu�) et le microcontr�leur Rabbit ;
la famille PSoC de Cypress ;
la famille LPC21xx ARM7-TDMI de Philips ;
la famille V800 de NEC ;
la famille K0 de NEC;
la famille des ST6, ST7, ST10, STR7, STR9, de STMicroelectronics ;
la famille STM32 de STMicroelectronics;
la famille STM8 de STMicroelectronics.

You might also like