1
Les Microcontrôleurs
1. Définition
Un microcontrôleur est un composant électronique qui rassemble tous les éléments d'un
"mini-ordinateur" et qui se présente sous la forme d'un circuit intégré.
Typiquement, un microcontrôleur comporte :
Une unité arithmétique et logique ALU (unité arithmétique et logique) qui
exécute les instructions et manipule les données
Une unité de contrôle
Une mémoire dite vive qui stocke les données transitoires utilisées par le
microprocesseur
Une mémoire dite morte qui stocke de façon permanente les données utilisées par
le microprocesseur
Des modules aux fonctions variées : conversion analogique numérique, conversion
numérique analogique, compteur, Timer
Des broches d'Entrée / Sortie (broches E/S)
Un microcontrôleur est cadencé par une horloge qui fixe la vitesse d'exécution des
instructions de base.
M1SSII
2
2. Domaines d’application des microcontrôleurs
Le choix du microcontrôleur 8-bit, 16 bits ou 32 bits dépend de la complexité d’application
embarquée. Les systèmes embarqués sont essentiellement constitués d’une partie
matérielle (Hardware) et d’une partie logicielle (Software). Leurs domaines
d’applications sont les suivants :
Système de communication : Les microcontrôleurs 8 bits sont souvent utilisés pour
les téléphones portables simples et la téléphonie fixe alors que les
microcontrôleurs 32 bits se retrouvent plutôt dans les Smartphones.
Technique médicinale : Les instruments de mesure (par exemple mesure de la
glycémie), les organes artificiels, etc. Selon la complexité de l’application, on choisit
des microcontrôleurs 8 bits, 16 bits ou 32 bits.
Les technologies de la sécurité : Les systèmes pour gérer la sécurité dans les
moyens de transport (les passages à niveau), dans les bâtiments (alarme incendie,
effractions) etc.
Mécatronique et automatisation industrielle : Installation pour la production de
biens, pour la logistique, etc. Les microcontrôleurs 8 bits sont utilisés en particulier
pour les capteurs et actionneurs alors que les microcontrôleurs 32 bits assument
les tâches de contrôle et de gestion.
Moyens de transport : Autos, avions, etc.
Electronique de consommation : TV, vidéo, télécommande etc.
Applications basse consommation : Les appareils à piles. Le choix des
microcontrôleurs se limite principalement à 8 bits en raison de la faible
consommation d'énergie et de la petite taille. Toutefois, ce dernier peut être
remplacé par un microcontrôleur de 16 voire 32 bits lorsque la puissance de calcul
n'est pas suffisante.
3. Les langages de Programmation
C
Le langage de programmation C est la référence pour programmer les microcontrôleurs
avec des exigences temps réel. En effet, ce dernier présente l'avantage d’être un langage
de programmation orienté matériel. Le code machine généré par le compilateur est
presque optimal en ce qui concerne d’une part la taille de la mémoire requise et d’autre
part la vitesse d'exécution du programme.
M1SSII
3
C++
C ++ nécessite plus de ressources (utilisation de la mémoire, la puissance du processeur)
que C. C++ présente les avantages de la programmation orientée objet.
Python
Ce langage de programmation présente de nombreuses caractéristiques intéressantes :
- Il est multiplateforme. C’est-à-dire qu’il fonctionne sur de nombreux systèmes
d’exploitation : Windows, Mac OS, Linux, Android, iOS, depuis les mini-ordinateurs
Raspberry Pi jusqu’aux supercalculateurs.
- Il est gratuit. Vous pouvez l’installer sur autant d’ordinateur que vous voulez.
- C’est un langage de haut niveau. Il demande relativement peu de connaissance sur le
fonctionnement d’un ordinateur pour être utilisé.
- C’est un langage interprété. Le programme n’a pas besoin de compilé son programme
pour pouvoir l’utiliser, contrairement à des langages comme le C ou le C++.
- Il est orienté objet. C’est-à-dire qu’il est possible de créer en Python des entités qui ont
un sens dans le monde réel (une cellule, une protéine, un atome) avec un certain nombre
de fonctionnement et d’interaction.
4. Architecture générale d’un microcontrôleur
Un microcontrôleur intègre sur une unique puce :
Un microprocesseur (CPU), avec une largeur du chemin de données allant de 8 bits
pour les modèles les plus basiques à 32 ou 64 bits pour les modèles les plus évolués ;
M1SSII
4
Les composants d’un microcontrôleur
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 ;
Un oscillateur pour le cadencement.
Des périphériques, capables d'effectuer des tâches spécifiques. On peut mentionner
entre autres :
o les convertisseurs analogiques-numériques (ADC) (donnent un nombre
binaire à partir d'une tension électrique),
o les convertisseurs numériques-analogiques (DAC) (effectuent l'opération
inverse),
o les générateurs de signaux à modulation de largeur d'impulsion (PWM : Pulse
Width Modulation),
o les timers/compteurs (compteurs d'impulsions d'horloge interne ou
d'événements externes),
o Les chiens de garde (watchdog),
o Les comparateurs (comparent deux tensions électriques),
M1SSII
5
o Les contrôleurs de bus de communication (UART, I²C, SPI, CAN, USB, Ethernet,
etc.).
Les éléments constituant le microcontrôleur 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.
OSCIN OSCOUT RESET
OSCILLATEUR MÉMOIRE MÉMOIRE
PROGRAMME DE DONNÉE
CHIEN
INT
MICROPROCESSEUR ROM RAM EEPROM DE
GARDE
BUS DONNÉES - CONTRÔLE - ADRESSES
INTERFACE INTERFACE
TIMER S C.A.N
PARALLÈLE SÉRIE
TIMER1
TIMER2
SCLK
SOUT
PORT A
PORT B
PORT C
SIN
4.1. C.P.U. (Microprocesseur)
Un microprocesseur est un circuit intégré complexe caractérisé par une très grande
intégration. Il est chargé d’organiser les tâches précisées par le programme et d’assurer leur
exécution.
Un microprocesseur est construit autour de deux éléments principaux :
M1SSII
6
Une unité de commande (appelé aussi Unité de commande et de contrôle (UCC)):
Elle permet de séquencer le déroulement des instructions. Elle effectue la recherche en
mémoire de l'instruction. Comme chaque instruction est codée sous forme binaire, elle en
assure le décodage pour enfin réaliser son exécution puis effectue la préparation de
l'instruction suivante.
Une unité de traitement
C’est le cœur du microprocesseur. Elle regroupe les circuits qui assurent les traitements
nécessaires à l'exécution des instructions.
On peut noter qu’il existe 2 catégories de microprocesseur : les CISC et les RISC.
CISC (Complex Instruction Set Computer) : Ce microprocesseur possède un nombre important
d’instructions. Chacune d’elles s’exécute en plusieurs périodes d’horloges.
RISC (Reduced Instruction Set Computer) : Ce microprocesseur possède un nombre réduit
d’instructions. Chacune d’elles s’exécute en une période d’horloge.
4.2. Mémoires programmes
Ce dispositif contient les instructions du programme que doit exécuter le microprocesseur. Ce
type de mémoire (appelée mémoire morte), est uniquement accessible en lecture. Sa
programmation nécessite une procédure particulière et un matériel adéquat.
Il en existe différents types selon leur mode de programmation :
De la ROM dont le contenu est programmé lors de sa fabrication.
De la PROM programmable électriquement une seule fois par le développeur,
De l’EPROM programmable électriquement et effaçable aux U-V (appelée aussi UVPROM),
De la EEPROM programmable et effaçable électriquement.
Flash : mémoire de type EEPROM plus rapide lorsque le système doit écrire à plusieurs
endroits en même temps.
4.3. Mémoires de données
Ce dispositif permet de mémoriser temporairement les données générées par le
microprocesseur pendant les différentes phases du traitement numérique (résultats
d’opérations, états des capteurs...). Ces mémoires sont accessibles en écriture et en lecture.
On en trouve 2 types :
De la mémoire vive (RAM) volatile (données perdues en cas de coupure de l’alimentation)
ayant un temps de lecture et écriture assez court (quelques ns),
M1SSII
7
De la mémoire morte (EEPROM) non-volatile (données conservées en cas de coupure de
l’alimentation) ayant un temps d’écriture assez élevé (quelques ms) par rapport au temps de
lecture qui est assez faible (quelques ns).
4.4. L’interface parallèle
Ce type d’interface, répartie sur plusieurs ports (maximum 8 bits), permet de prendre en
compte des états logiques appliqués en entrée (état de capteurs) ou de générer des signaux
binaires en sortie (commande d’actionneurs). Les broches de ces ports peuvent donc être
configurées en entrée ou en sortie. La configuration ainsi que l’état logique de ces broches est
obtenue par des opérations d’écriture ou de lecture dans différents registres associés à
chaque port.
4.5. L’interface série
Ce type d’interface permet au microcontrôleur de communiquer avec d’autres systèmes à
base de microprocesseur. Les données envoyées ou reçues se présentent sous la forme d’une
succession temporelle (sur un seul bit) de valeurs binaires images d’un mot. Il y a 2 types de
liaison série : synchrone et asynchrone.
4.6. Le CAN
Le CAN intégré dans les microcontrôleurs possède plusieurs entrées multiplexées accessibles
via les broches des ports de l’interface parallèle. Le CAN possède normalement 2 registres :
Un registre de données contenant le résultat de la conversion,
Un registre de contrôle permettant de lancer et de surveiller la conversion.
4.7. Le timer
Le Timer permet de réaliser les fonctions suivantes :
Génération d’un signal périodique,
Génération d’une impulsion calibrée,
Temporisation,
Comptage d'événements.
Plusieurs registres associés au Timer permettent de configurer les différents modes décrits
précédemment.
4.8. L’oscillateur
Il permet de produire le signal d'horloge utilisé par le micro-contrôleur. Il peut être réalisé
avec un quartz, un circuit RC ou encore une PLL
M1SSII
8
L'oscillateur RC : la fréquence de l'oscillation est fixée par Vcc, R et C. Elle peut varier
légèrement d'un circuit à l'autre. L’ inconvénient de cet oscillateur est l’instabilité en
température et en tension d’alimentation.
L'oscillateur à cristaux : Les oscillateurs à cristaux utilisent un cristal (d'habitude le
quartz) qui vibre à sa fréquence résonante. Les oscillateurs à quartz permettent une
précision de presque 0.001 %, qui ne dépendent pas de la température.
4.9. Watchdog
La tâche du Watchdog (français : horloge de surveillance) est de réinitialiser un
microcontrôleur (c. à d. de ramener le système à un état défini) à partir d'un état indéfini.
Cet état est souvent le résultat d’un comportement erroné du programme, comme par
exemple une boucle infinie. Dans le langage courant on appelle cela un plantage
informatique (anglais : system crash). L’utilisation d'un watchdog est fortement
recommandée pour tous les systèmes (même avec des applications très simples).
M1SSII