Vous êtes sur la page 1sur 16

LES MICROCONTRÔLEURS

Chapitre N°2

Présentation d’un microcontrôleur

Objectifs de la leçon
 Définir un microcontrôleur
 Identifier les principales familles des microcontrôleurs

1 Introduction :
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, horloges, baladeurs, récepteurs GPS, transport
aérien/maritime/fluvial etc.

Un microcontrôleur est un circuit intégré qui rassemble les éléments essentiels d'un
ordinateur : processeur, mémoires (mémoire morte pour le programme, mémoire vive pour les
données), 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.

2 Place d’un microcontrôleur dans un système :

Ordre
Actionneur
Grandeur Capter Grandeur Traiter d’information Transmettre
physique Acquérir électrique Ordonner traitée Communiquer

Capteur  Micro-ordinateur  Contacteur


 Microprocesseur  Distributeur
 Automate  Relais
 Microcontrôleur

Figure N°1 : Place d’un microcontrôleur dans un système

8
3 Types et modèles usuelles de Microcontrôleurs :
Plusieurs constructeurs et fabricants proposent une multitude de références dans le domaine des
microcontrôleurs. Parmi ces fabricants on cite :

Texas
Intel
Instruments

STmicroelectroni
Motorola
cs

Atmel Microchip

Nippon Electric
Philips
Company

Siemens/Infineo Freescale
n

4 Structure interne d’un microcontrôleur :


Le schéma fonctionnel suivant représente la structure interne d’un microcontrôleur

Figure N° 2 : schéma bloc général d'un microcontrôleur

9
4.1 C.P.U. (MICROPROCESSEUR)

Un microprocesseur exécute séquentiellement les instructions stockées dans la mémoire


programme. Il est capable d’opérer sur des mots binaires dont la taille, en bits, est celle du bus
des données (parfois le double pour certains microcontrôleurs). Il est généralement constitué des
éléments suivants :
- Un ou plusieurs registres accumulateurs contenant temporairement les opérandes ainsi que les
résultats des opérations,
- Des registres auxiliaires permettant de relayer les accumulateurs,
- Des registres d’index pour le mode d’adressage indirect,
- Un compteur programme pointant l’adresse de la prochaine instruction à exécuter, sa taille est
celle du bus des adresses,
- Une unité arithmétique et logique (ALU) permettant d’effectuer des opérations entre
l’accumulateur et une opérande,
- Un registre code condition indiquant certaines particularités en ce qui concerne le résultat de la
dernière opération (retenu, zéro, interruption...).

On peut noter qu’il existe deux 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 (appelée aussi
OTPROM),
-De la EPROM programmable électriquement et effaçable aux U-V (appelée aussi UVPROM),
-De la EEPROM programmable et effaçable électriquement.

10
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),
- 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, avec différentes options (résistances de rappel, sorties collecteurs ouverts,
interruption...). 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. On trouve
généralement :
-Un registre de direction pour une configuration en entrée ou en sortie,
-Un registre de donnée recopiant les états logiques de chaque broche de port,
-Un registre d’option permettant plusieurs configurations en entrée ou en sortie.

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ésentes 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.5.1 Liaison série synchrone.

Dans ce dispositif la transmission est synchronisée par un signal d’horloge émis par l’unité
maître.

11
Figure N° 3 : Liaison série synchrone.

4.5.2 Liaison série asynchrone.

Ce dispositif ne possède pas de signal d’horloge de synchronisation. Les unités en liaison


possèdent chacune une horloge interne cadencée à la même fréquence. Lorsqu’une unité veut
émettre un mot binaire, elle génère un front descendant sur sa ligne émettrice. A la fin de
l’émission de ce mot, la ligne repasse au niveau haut. La donnée à transmettre peut contenir un
bit supplémentaire appelé “parité” et servant à la correction d’erreurs.

Figure N° 4 : Liaison série asynchrone.


4.5.3 Paramètre entrant en jeu pour la RS232 :

-Longueur des mots : 7 bits (ex : caractère ascii) ou 8 bits


-La vitesse de transmission : elle est définie en bits par seconde ou bauds. Elle peut prendre des
valeurs allant de 110 à 115 200 bds.
-Parité : le mot transmis peut être suivi ou non d'un bit de parité qui sert à détecter les erreurs
éventuelles de transmission.
Bit de start : la ligne au repos est à l'état logique 1 pour indiquer qu'un mot va être transmis la
ligne passe à l'état bas avant de commencer le transfert. Ce bit permet de synchroniser l'horloge
du récepteur.
-Bit de stop : après la transmission, la ligne est positionnée au repos pendant 1, 2 ou 1,5 périodes
d'horloge selon le nombre de bits de stop.

12
-Niveau de tension : Un “0” logique est matérialisé par une tension comprise entre 3 et 25V, un
“1” par une tension comprise entre -25 et -3 V. Des circuits spécialisés comme le MAX 232
réalise la conversion à partir de niveau TTL.

4.6 Le CAN :

Le CAN intégré dans les microcontrôleurs est généralement du type “Approximations


successives”. Il possède plusieurs entrées multiplexées accessibles via les broches des ports de
l’interface parallèle. Le CAN possède normalement deux 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 modulé ou non en largeur d’impulsion,
- 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

4.8 Le chien de garde :

Ce dispositif est un système anti-plantage du microcontrôleur. Il s’assure qu’il n’y ait pas
d'exécution prolongé d’une même suite d’instruction. Un compteur préchargeable se décrémente
régulière au rythme de la fréquence d’horloge. Si aucun préchargement n’est effectué avant qu’il
n’atteigne la valeur “0” un Reset est généré relançant ainsi le microcontrôleur. Il faut donc
penser à précharger régulièrement ce chien de garde par programme lorsqu’il est activé.

4.9 Les signaux d’horloge :

Le signal d’horloge permet de cadencer le fonctionnement du microcontrôleur. Ce dernier


intègre généralement une porte Trigger de Schmitt afin de réaliser un oscillateur. Pour l’obtenir
on place un quartz entre les deux broches “OscIn” et “OscOut”.

13
5 Définition d’un Microcontrôleur PIC :

Un PIC (Programmable Interface Controller) est un microcontrôleur de Microchip Technology


Inc. Un PIC est un composant dit RISC (Reduced Instructions Set Computer), ou encore
composant à jeu d’instruction réduit. Ces microcontrôleurs sont conçus sur une architecture dite
HAVARD, elle est basée sur deux bus, un pour les données (bus de données) et l’autre pour les
instructions (bus de programme).

6 Identification des Microcontrôleurs de Microchip :


Il existe trois familles de PIC :
 Base-Line : Les instructions sont codées sur 12 bits.
 Mid-Line : Les instructions sont codées sur 14 bits.
 High-End : Les instructions sont codées sur 16 bits.

Un PIC est identifié par un numéro de la forme suivant : xx(L)XXyy –zz


 xx : Famille du composant (12, 14, 16, 17, 18).
 L : Tolérance plus importante de la plage de tension.
 XX : Type de mémoire de programme.
C - EPROM ou EEPROM.
CR – PROM.
F – FLASH.
 yy : Identification.
 zz : Vitesse maximum du quartz.
Nous utiliserons un PIC 16F84 –10, soit :
 16 : Mid-Line.
 F : FLASH.
 84 : Type.
 10 : Quartz de 10MHz par exemple.

7 Comparaison entre quelques microcontrôleurs
Le tableau ci-après présente quelques caractéristique de microcontrôleurs PIC. En effet, en
industrie, d'autres critères peuvent être prioritaires, comme par exemple : le coût, la
consommation, la tension d'alimentation, la disponibilité, la pérennité du produit et du fabricant,
le support R&D …

14
Exemple pratique 1:

Figure N°5 : Caractéristique de quelques circuits PIC.

Exemple pratique 2 : Un PIC 16F877 possède les caractéristiques suivantes :


 Une fréquence de fonctionnement allant jusqu’à 20MHz.
 Jeu d’instructions de 35 instructions.
 Une mémoire de programme de type FLASH sur 8K mots (1 mot=14 bits).
 Une mémoire de données de type RAM sur 368 octets.
 Une mémoire de données de type EEPROM sur 256 octets.
 Une pile (Stack) à 8 niveaux.
 14 sources d’interruptions.
 Un chien de garde WDT (Watch Dog Timer).
 Timer0 (compteur 8-bits avec pré-diviseur).
 Timer1 (compteur 16-bits avec pré-diviseur et possibilité d’utiliser une horloge externe).
 Timer2 (compteur 8-bits avec pré-diviseur et post-diviseur).

15
 Un convertisseur Analogique-Numérique 10-bits à 8 entrées multiplexées.
 Deux modules de capture/comparaison/PWM.
 Ports Entrées/Sorties : A, B, C, D et E.
 Une interface de communication série (MSSP, USART).
 Une interface de communication parallèle (PSP).
 Tension de fonctionnement est entre 2.0V et 5.5V.

16
Exemple pratique 3 : PIC 16F877 ( Block Diagram : extrait du datasheet )

Figure N° 6 : Schéma bloc d'un microcontrôleur PIC.

8 Organisation mémoire

Comme nous l’avons vu précédemment, une architecture Harvard dispose de deux zones mémoire :
une zone mémoire de donnée et une zone mémoire de programme. Lesquelles disposent chacune de
leur propre bus.

17
8.1 Organisation de la mémoire de programmes

Le propre des instructions RISC est de regrouper en seul mot le code de l’instruction et l’opérande
ou son adresse. La mémoire de programme est alors organisée en mots de 12, 14 ou 16 bits suivant les
familles des différents microcontrôleurs. Cette mémoire est découpée en pages dont la taille est
fonction de la totalité de la mémoire de programme. La mémoire de programme possède aussi une pile
à plusieurs niveaux. La mémoire de programme peut être une ROM, une EPROM ou une EPROM.
La figure 7 montre l’organisation de la mémoire de programme.

Compteur de programme (PC)


le compteur de programme

Pile (Stack)
une pile pour gérer les appels programmes et les
interruptions

Vecteur Reset
pointeur vers l’adresse mémoire du début du
programme principal

Vecteurs d'interruption
pointeur vers l’adresse mémoire du programme à
exécuter en cas d’interruptions

Mémoire programme
zone mémoire réservée au stockage des
programmes écrits par l’utilisateur

Figure N°7 : Organisation de la mémoire de programme.

8.2 Organisation de la mémoire de données

Bien que les circuits fonctionnent avec des instructions sur 12, 14 ou 16 bits, ils utilisent des données
codées sur 8 bits. Ces données se trouvent dans la RAM interne du circuit. Une partie de cette RAM
contient des registres à fonction dédiée (Special Function Registers) qui servent à initialiser et à piloter
les microcontrôleurs (TRISA, TRISB, STATUS etc.). Ces registres ont des adresses réservées et ne
peuvent être utilisés pour les variables de l’utilisateur. L’autre partie de la RAM, (General Purpose
Register) ne contenant pas de SFR, est utilisée pour enregistrer des variables.
La figure ci-dessous montre un exemple d’organisation de la mémoire de données.

18
BSR (Bank Select Register)

Permet de pré-sélectionner la page pour


un accèsmémoire plus rapide.
=> notion de pagination de la mémoire

GPR (General Purpose Registers)

Espaces mémoires qui permettent le


stockage de données temporaires
(variable, ...)

Access Bank

pointeurs vers des zones mémoires

SFR (Special Function Registers)

Registres de contrôle et d’état pour les


périphériques (notamment...)

Figure N°7 : Organisation de la mémoire de données.

9 Oscillateur (Circuit d’horloge) :

Pour fonctionner correctement les microcontrôleurs nécessitent la présence d’horloge qui doit être
câblée entre les bornes OSC1 et /ou OSC2. Quatre modes d’oscillateurs disponibles:
 LP : Low Power crystal : quartz à faible puissance.
 XT : Crystal/Resonator : quartz/résonateur en céramique.
 HS : High Speed crystal/resonator : quartz à haute fréquence/résonateur en céramique HF.
 RC : circuit RC (Resistance/capacité).
Chacun de ces modes peut être sélectionné à travers les bits de configuration FOSC1 et FOSC0
(registre : CONFIGURATION WORD à 2007h), comme suit :

FOSC1 :FOSC0 Mode


00 LP
01 XT
10 HS
11 RC

Tableau 1 : Configuration de l’oscillateur


19
9.1 Oscillateur en Quartz ou à Résonateur Céramique :

En mode LP, XT ou HS, un quartz ou un résonateur en céramique est connecté aux pins
OSC1/CLKIN et OSC2/CLKOUT pour établir l’oscillation. La figure suivante montre comment ce
quartz ou ce résonateur en céramique est connecté au microcontrôleur :

Figure N°8 : Oscillateur en quartz/ résonateur

9.2 Horloge externe:

Toujours dans l’un de ces modes de fonctionnement, le microcontrôleur peut avoir une horloge externe
connectée à la broche OSC1/CLKIN comme le montre la figure suivante :

Figure N°9: Connexion d’une horloge externe.

9.3 Oscillateur RC :

La fréquence de l’oscillation dépend du voltage, des valeurs de R et C et de la température de


fonctionnement. La figure (1.4.2) montre comment connecter un circuit RC au microcontrôleur :

Figure N°10: Oscillateur RC.


20
10 Circuit de remise à zéro (RESET) :

Un niveau bas sur cette entrée entraîne une


réinitialisation complète du microprocesseur :
l’instruction en cours est arrêtée. D’une façon générale
ce signal est activée à la mise sous tension. Un bouton
poussoir est souvent rajouté afin qu’une réinitialisation
manuelle soit possible.
Lorsque le signal de “RESET” est activé, tous les
registres sont initialisé et le compteur programme se
place à une adresse spécifique appelée “Vecteur de
RESET”.
Temps nécessaire au PIC pour démarrer après un reset:
moins de 132ms
Temps minimal d’un reset: 2ms

11 Cycle instruction et pipeline

 1 cycle instruction (Tcy) est décomposé en 4 étapes Q1 – Q4


 Q1: Décodage d’instruction (ou nop)
 Q2: Lecture (ou nop)
 Q3: Calcul
 Q4: Ecriture (ou nop)

 période Q = période oscillateur (Tosc)


 fcy = fosc/4 !!!

 Une instruction s’exécute entièrement en 2 cycles instructions


 1ier Tcy : fetch (gestion de PC, chargement instruction dans Instruction Reg)
 2ième Tcy : décodage et exécution
 « Pipelining » : traitement en parallèle du fetch et du « décodage-exécution »!

21
12 Critères de choix d’un microcontrôleur :

- Architecture :
 ALU (8, 16, 32, 64 bits)
 Structure du processeur (Harvard, Von Neumann)
 Type de processeur (RISC, CISC)
 Taille des mémoires programme et donnée
 Nombre de ports d’entrée/sortie
-Fonctionnalités :
 Fonctions analogiques : CAN, CNA, Comparateur, ...
 Fonctions de timing : Timer, Watchdog, ...
 Fonctions de communication : UART (Communication série), USB, I2C, ...
 Facilité de programmation : In-Circuit Serial Programming, Self Programming, ...
-Mise en œuvre, maintenance :
 Coût de développement : outils de développement, formation, ...
 Suivi du microcontrôleur : production suivie, disponibilité, composant obsolète, ...
-Caractéristiques électriques :
 Fréquence d’horloge
 Tensions d’alimentation
 Consommation d’énergie, modes faible consommation d’énergie, ...
-Caractéristiques physiques :
 Type de boîtier : DIL, PLCC, ...

22
13 Questions d’évaluations :
1. Quelle est la différence entre un microprocesseur et un microcontrôleur ?
2. Quelle est la différence entre le "RISC" et le "CISC" ?
3. Quelle est la différence entre une architecture de "Von Neumann" et de "Harvard" ?
4. Préciser l'architecture utilisée par les PIC. ?
5. Comment est organisée la mémoire ?
6. Présenter les constitutions interne d’un microcontrôleur par un schéma synoptique.
7. Définir le rôle de chaque constitution.
8. Pour fonctionner correctement, les microcontrôleurs nécessitent la présence d’une horloge. On
demande de donner et de schématiser les différentes façons pour réaliser le circuit d’horloge.
Nom

Circuit
d’horloge Schéma

9. Préciser les critères de choix d’un microcontrôleur.


10. Qu'est ce qu'une Interruption ?
11. Qu'est-ce qu'une adresse ?
12. Qu'est-ce qu'un "segment" ?
13. Qu'est ce qu'un "offset" ?
14. Qu'est ce qu'un "registre" ?
15. Quels sont les différents modes d'adressage d'une donnée ?
16. La référence du microcontrôleur est PIC16F877A : Que signifie la lettre F et A.

23

Vous aimerez peut-être aussi