Vous êtes sur la page 1sur 8

Chapitre 3 : Introduction aux microcontrôleurs

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…

II. Définition et caractéristiques

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 certains 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.

Les microcontrôleurs varient en performances (vitesse de calcul, taille de la mémoire, le


nombre de pins, les périphériques intégrés) et par conséquent leur coût de fabrication varie en
fonction de leurs performances. Le choix d’un microcontrôleur dépend alors des besoins de
l’application et du budget alloué.

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)

Ill 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

Onn trouve en général deux types de mémoires : mémoire


ire de programme (EEPROM/Flash) et
mémoire de donnée (SRAM et parfois EEPROM). Pour certains microcontrôleurs puissants,
on peut trouver un contrôleur DMA (Direct Memory Access) qui gère les transferts de
données entre la mémoire et les périphériques.

3. Module d’Entrées/Sorties numériques

La plupart des microcontrôleurs proposent des ports d'entrée et de sortie numériques


(GPIO : General Purpose Input/Output
Input/Output). Ils sont regroupés en général sous forme de ports de
8 pins. Ils permettent de :

o lire des données numériques (état d’un interrupteur par exemple)


o écrire des données numériques : envoyer 1 logique sur un pin permet de
générer une tension de 5V (ou de 3.3 V selon le type de microcontrôleur) sur
ce pin et peut donc allumer une diode LE
LEDD ou activer un relais

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 minim
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.

L’expression du quantum q en fonction de ∆VE max et de n est donnée dans la documentation


du fabricant du CAN.

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

Remarque : dans le calcul de Ms, on retient uniquement la partie entière puisque Ms


correspond à une valeur numérique (donc un entier compris entre 0 et 2 − 1)

5. Contrôleur d’interruption :

Une interruption, c’est un événement externe ou interne au système qui interrompt le


déroulement du programme en cours et oblige le système à exécuter une routine particulière.

3
Cet événement appelé aussi source d’interruption peut être :

- une entrée qui change d’état


- le timer à atteint la valeur souhaitée
- une donnée a été reçue où a fini d’être envoyée par un protocole de
communication
- une conversion analogique s’est terminée
- …
-

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 »

La plupart des microcontrôleurs possèdent aujourd'hui un ou plusieurs « Timer/Counter »


(français : minuterie/compteur) intégrés. Des fonctionnalités supplémentaires, comme celle de
« Compare/Capture », permettent d'élargir encore plus les applications de ces contrôleurs.

Les applications du Timer/Counter sont les suivantes :

 génération de fréquence d'horloge (ex. débit en Baud pour la


communication sérielle) ;
 compteur d'événements externes ;
 génération de signaux PWM (ou convertisseur N/A) ;
 mesure du temps.

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

La valeur du timer s’incrémente chaque Tt=Th*Pre

Le timer termine son cycle de comptage (de 0 à 255) chaque Tcyc = Th*Pre*2n

Exemple :

Le timer 2 de l’arduino (microcontrôleur Atmega 328 de fréquence 16 Mhz) est un timer de


précision 8 bits. Il peut prendre l’un des prédiviseurs suivants (1,8,64,256,1024).

Si on choisi Pre=64

Th=1 / 16 000 000 =0.0000000625 s = 0.0625 us

Tcyc = 0.0625 * 64 * 28 = 1024 us

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

Ils permettent au microcontrôleur de communiquer avec d’autres systèmes (microcontrôleurs,


capteurs numériques, afficheurs, PC …). La majorité des microcontrôleurs contiennent une
interface parallèle et 3 interfaces séries (SPI, I2C, UART). Les microcontrôleurs les plus
puissants peuvent contenir des interfac
interfaces USB, Ethernet, CAN …

7.1 Protocole I2C


I2C (Inter-Integrated Circuit)) est un protocole de communication simple très utilisé dans les
systèmes embarqués pour transférer les données entre un maitre (master) et plusieurs esclaves
(slaves).

Il utilise uniquement 2 lignes bidirectionnelles pour la communication de données appelées


SDA et SCL.

Données série (SDA) – Le transfert de données s’effectue via cette broche.


Horloge série (SCL) – Elle transporte le signal d’horloge.

I2C fonctionne en 2 modes : Mode maître et Mode esclave

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
chaque esclave dispose
de son propre adresse).

7.2 Protocole SPI

Une liaison SPI (pour Serial Peripheral Interface


Interface) est un bus de données série synchrone qui
opère en mode full-duplex.
duplex. Les circuits communiquent selon un schéma maître-esclave,
maître 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 :

 SCLK — Serial Clock, Horloge (généré par le maître)


 MOSI — Master Output, Slave Input (généré par le maître)
 MISO — Master Input, Slave Output (généré par l'l'esclave)
 SS — Slave Select, Actif à l'état bas (généré par le maître)

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
Transmitter,, est un émetteur-récepteur
émetteur
asynchrone universel utilisé dans les systèmes embarqués pour assurer une communication
série entre 2 entités

Une communication UART,, est une communication à 2 fils :

- Tx (entité 1) vers Rx (entité 2)


- Tx (entité 2) vers Rx (entité 1)

7
Une trame UART est constituée des bits suivants :

 un bit de start toujours à 0 : servant à la synchronisation du récepteur


 Données : la taille des données est comprise entre 5 et 9 bits. Bits envoyés du LSB (bit de
poids faible) au MSB (bit de poids fort).
 Parité : Paire ou Impaire (optionnel)
 Fin : Un bit de stop, toujours à 1.

La vitesse de transmission est donnée par baud (symbole par seconde)

Exemple : 4800 baud, 9600 baud

Vous aimerez peut-être aussi