Académique Documents
Professionnel Documents
Culture Documents
I. Introduction
L’utilisation industrielle des microcontrôleurs a commencé dès les années 90 avec les
fabricants Texas Instruments (TMS 1000), Intel (8051) et Motorola (68HCxx). De nos jours,
des dizaines d’entreprises fabriquent des microcontrôleurs dont on cite microchip (la famille
des PIC), Atmel (la famille des AVR) et ST (la famille des STM32). Les microcontrôleurs ont
été intégrés dans plusieurs appareils : domestique, télécommunication, automobile, médecine,
aérospatiale, automatique…
Tout d’abord, commençons par définir le terme microcontrôleur et par quoi se diffère par
rapport un microprocesseur.
Un microcontrôleur est un circuit intégré qui englobe son propre processeur, sa propre
mémoire et un certain nombre de périphériques; la chose qui lui rend autonome et simple à
intégrer dans un système électronique. Par contre un microprocesseur n’est qu’un calculateur
qu’on doit lui associer un certain nombre de composants (mémoire, périphériques
d’acquisition, périphérique de stockage…) pour constituer un système assez complexe (PC,
Serveur…).
On peut conclure donc que les performances de calcul d’un microcontrôleur sont inférieures à
celles d’un microprocesseur. Par contre, il présente l’avantage de sa faible taille et de sa
simplicité à être intégrer dans plusieurs appareils.
III. Architecture
L’architecture interne des microcontrôleurs est assez semblable. La figure suivante présente le
diagramme bloc d’un microcontrôleur typique. Tous les modules sont connectés via un bus
interne et sont intégrés dans le même circuit. Les modules communiquent avec l’extérieur
grâce à leurs pins (broches) d’Entrées/Sorties.
1
Les modules typiques qu’on trouve dans un microcontrôleur sont :
1. Le processeur (CPU)
Il contient l’unité arithmétique et logique, l’unité de commande et les registres. Son rôle est
d’exécuter les instructions du programme et d’harmoniser les tâches des différents modules.
2. La mémoire
Les ports doivent toujours être complétés de circuits de protection d'entrée et de sortie afin
d'optimiser au mieux leur compatibilité électromagnétique (CEM).
4. Convertisseur Analogique/Numérique
Le convertisseur analogique numérique (CAN) permet de convertir une tension analogique
VE, en un mot numérique MS, sur n bits. Il permet de convertir la sortie générée par un
capteur analogique en un mot binaire.
Caractéristiques :
- q, quantum : c’est la variation de tension minimale sur VE qui fait incrémenter
(ou décrémenter ) de 1 la valeur du mot de sortie MS.
2
- n, résolution du CAN : plus n augmente, plus la précision du CAN augmente.
- ∆VE max : c’est la plage de tension maximale acceptée par le CAN en entrée.
Illustration
Exemple : considérons un CAN de précision n=10 bits servant à lire des entrées analogiques
comprises entre 0V (Vref-) et 5V (Vref+)
- Le quantum de ce CAN est égal à : = = 0.0048𝑉
- La sortie numérique Ms correspondante à l’entrée analogique (VE=1.3 V) est
égale à :
2
∗ 1.3 = 266
5 − 0.0048 − 0
5. Contrôleur d’interruption :
3
Cet événement appelé aussi source d’interruption peut être :
Les interruptions sont très importantes pour optimaliser les performances d’une application.
Le programme principal tourne, quand une interruption se manifeste, le programme s’arrête,
sauvegarde l’état dans lequel il était. Il exécute alors un nouveau programme bien spécifique
qui va gérer l’interruption. Lorsque ce programme est terminé, il retourne là ou il était avant
l’interruption et continue l’exécution de son programme.
6. Module « Timer/Counter »
Mode Timer/Counter
En général, des registres de 8 ou 16 bits sont utilisés dans les modules Timer/Counter. Dans le
mode Timer, ces registres sont incrémentés périodiquement à l'aide de l'horloge interne du
système. Dans le mode Counter, cette incrémentation s'effectue en fonction de signaux
externes.
Un timer (registre) de 8 bits peut compter de 0 à 255 quand à un timer (registre) de 16 bits
peut compter de 0 à 65535
Lorsque le Timer atteint sa valeur maximale, il est remis à 0 et peut générer une interruption
interne
On désigne par :
- Fh : fréquence du microcontrôleur
4
- Th=1/Fh : période de l’horloge du microcontrôleur
- Ft : Fréquence du timer
- Tt=1/Ft : période d’incrémentation du timer
- Pre : prédiviseur du timer
- Tcyc : durée du cycle de comptage du timer
- n : précision du timer
Le timer termine son cycle de comptage (de 0 à 255) chaque Tcyc = Th*Pre*2n
Exemple :
Si on choisi Pre=64
Mode Compare
Un Timer peut être utilisé comme une unité comparatrice (anglais : Compare Unit) , il permet
dans ce cas de comparer la valeur du registre du Timer avec celle du registre comparateur ; et
permet ainsi de générer des signaux PWM sans demander de la puissance de calcul au CPU.
Un signal PWM est illustré par la deuxième figure ci-dessous. La première figure montre
l’incrémentation du timer (en bleu) et la valeur du registre comparateur (en rouge). Si la
valeur du timer est inférieure à celle du registre comparateur, alors le signal généré est à l’état
haut ; sinon, il est à l’état bas ; on obtient ainsi un signal périodique. On peut modifier la
largeur d’impulsion en modifiant la valeur du registre comparateur.
Exemple : pour un timer de 8 bits qui compte de 0 à 255 et une valeur du registre comparateur
égale à 128, on obtient un signal PWM dont la largeur d’impulsion est égale à la moitié de la
période du signal
5
7. Interfaces de communication
Le maitre utilise son horloge pour synchroniser le transfert des données. Il sélectionne
l’esclave avec qui veut communiquer grâce à un système d’adressage (chaque esclave dispose
de son propre adresse).
Une liaison SPI (pour Serial Peripheral Interface) est un bus de données série synchrone qui
opère en mode full-duplex. Les circuits communiquent selon un schéma maître-esclave, où le
maître contrôle la communication. Plusieurs esclaves peuvent coexister sur un même bus,
dans ce cas, la sélection du destinataire se fait par une ligne dédiée entre le maître et l'esclave
appelée « Slave Select (SS) ».
Le bus SPI utilise quatre signaux logiques :
6
Une transmission SPI typique est une communication simultanée entre un maître et un
esclave :
Le maître génère l'horloge et sélectionne l'esclave avec qui il veut communiquer par
l'utilisation du signal SS
L'esclave répond aux requêtes du maître
À chaque coup d'horloge le maître et l'esclave s'échangent un bit. Après huit coups d'horloges
le maître a transmis un octet à l'esclave et vice versa.
7.3 UART
Un UART, pour Universal Asynchronous Receiver Transmitter, est un émetteur-récepteur
asynchrone universel utilisé dans les systèmes embarqués pour assurer une communication
série entre 2 entités
7
Une trame UART est constituée des bits suivants :