Cour Microcontroleur

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 12

BTS GEN 2

CHAPITRE 2
MICROCONTROLEUR PIC 16F877

1. Du microprocesseur au microcontrôleur

Le microcontrôleur est un dérivé du microprocesseur. Sa structure est celle des systèmes


à base de microprocesseurs. Il est donc composé en plus de l’unité centrale de traitement, d’une
mémoire (mémoire vive RAM et mémoire morte ROM), une (ou plusieurs) interface de
communication avec l’extérieur matérialisé par les ports d'entrée/sortie. En plus de cette
configuration minimale, les microcontrôleurs sont dotés d'autres circuits d’interface qui vont
dépendre du microcontrôleur choisi à savoir les systèmes de comptage (TIMER), les
convertisseurs analogique/numérique (CAN) intégré, gestion d’une liaison série ou parallèle, un
Watchdog (surveillance du programme), une sortie PWM (modulation d’impulsion),…

Fig. 2.1 : Contenu type d'un microcontrôleur

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é. On parle alors de "système sur une puce" (en anglais : "System On
chip").

Les microcontrôleurs sont plutôt dédiés aux applications qui ne nécessitent pas une
grande quantité de calculs complexes, mais qui demandent beaucoup de manipulations
d’entrées/sorties. C’est le cas de contrôle de processus.

Les systèmes à microprocesseur sont plutôt réservés pour les applications demandant
beaucoup de traitement de l’information et assez peu de gestion d’entrées / sorties. Les
ordinateurs sont réalisés avec des systèmes à microprocesseur.

Il existe plusieurs familles de microcontrôleurs dont les plus connues sont :


 Atmel : AT; familles AT89Sxxxx, AT90xxxx, …
 Motorolla : famille 68HCxxx, …
MICROCONROLEUR 1
BTS GEN 2
 Microship : PIC ; familles 12Cxxx, 16Cxxx, 16Fxxx, 18Fxxx, …
 Intel : famille 80C186XX
 STMicroelectronics : famille STX
 Analog Devices : famille ADuC
Nous allons nous intéresser dans le cadre de ce cours à la famille Microchip PIC
(Programmable Integrated Circuit) de moyenne gamme (MIDRANGE).

MICROCONROLEUR 2
BTS GEN 2

2. Présentation d’un microcontrôleur PIC


Ils sont des composants dits RISC (Réduced Instructions Construction Set), ou encore
composant à jeu d’instructions réduit. Chaque instruction complexe peut être programmée par
plusieurs instructions simples. Sachant que plus on réduit le nombre d’instructions, plus facile et
plus rapide qu’en est le décodage, et plus vite le composant fonctionne.

La famille des PIC à processeur 8 bits est subdivisée à l’heure actuelle en 3 grandes catégories :
 Base-Line : ils utilisent des mots d’instruction de 12 bits.
 Mid-Range : ils utilisent des mots d’instruction de 14 bits.
 High-End : ils utilisent des mots d’instruction de 16 bits.

Il existe aussi des PIC à processeur 16 bits (PIC24F/PIC24H) et 32 bits (PIC32M) aussi.
Toutes les PICs Mid-Range ont un jeu de 35 instructions, stockent chaque instruction dans un
seul mot de programme, et exécutent chaque instruction (sauf les sauts) en un cycle machine.
On atteint donc de très grandes vitesses, et les instructions sont de plus très rapidement
assimilées.
L’horloge fournie au PIC est divisée par 4.C’est cette base de temps qui donne le temps d’un
cycle. Si on utilise par exemple un quartz de 4MHz, on obtient donc 1000000 de cycles/seconde ;
or, comme le PIC exécute pratiquement une instruction par cycle, hormis les sauts, cela nous
donne une puissance de l’ordre de 1MIPS (1 Million d’Instructions Par Seconde).
Pour identifier un PIC, on utilise simplement son appellation du type : ww-l-xx-yyy-zz
 WW: Représente la catégorie 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.
 - YYY: Identification.
 - ZZ: Vitesse maximum tolérable.

Les PICs sont des composants STATIQUES, c’est à dire que la fréquence d’horloge peut
être abaissée jusqu’à l’arrêt complet sans perte de données et sans dysfonctionnement.
Ceci par opposition aux composants DYNAMIQUE, donc la fréquence d’horloge doit rester
dans des limites précises.
Les microcontrôleurs PIC sont présentés en boîtier DIL (Dual In Line).Un point ou une
encoche donne un repérage de la broche 1, ensuite il faut ce déplacer vers la droite pour avoir les
autres broches. Ont fait le tour du circuit dans le trigonométrique.

MICROCONROLEUR 3
BTS GEN 2

Fig. 2.2 : Repérage des broches

MICROCONROLEUR 4
BTS GEN 2

3. Microcontrôleur PIC 16F877


Dans la suite du chapitre, on va prendre comme exemple le PIC 16F877 et présenter sa
structure interne et externe. Les éléments essentiels du PIC 16F877 sont :
3.1 Structure interne
Caractéristiques de la CPU
 CPU à architecture RISC (8 bits)
 Mémoire programme de 8 Kmots de 14 bits (Flash),
 Mémoire donnée de 368 Octets,
 EEPROM donnée de 256 Octets,
 14 sources interruptions
 Générateur d'horloge de type RC ou quartz (jusqu‟ à 20 MHz)
 05 ports d'entrée sortie
 Fonctionnement en mode sleep pour réduction de la consommation,
 Programmation par mode ICSP (In Circuit Serial Programming) 12V ou 5V,
 Possibilité aux applications utilisateur d’accéder à la mémoire programme

Caractéristiques des périphériques


- Timer0 : Timer/Compteur 8 bitsavec un prédiviseur 8 bits
- Timer1 : Timer/Compteur 16 bits avec un prédivision de 1, 2, 4, ou 8 ; il peut être incrémenté en
mode veille (Sleep), via une horloge externe,
- Timer2 : Timer 8 bits avec deux diviseurs (pré et post diviseur)
- Deux modules « Capture, Compare et PWM » :
Module capture 16 bits avec une résolution max. 12,5 ns,
Module Compare 16 bits avec une résolution max. 200 ns,
Module PWM avec une résolution max. 10 bits,
- Convertisseur Analogiques numériques multi-canal (8 voies) avec une conversion sur 10 bits,
Synchronous Serial Port (SSP) SSP, Port série synchrone en mode I2C (mode maitre/escalve),
- Universel Synchronous Asynchronous Receiver Transmitter (USART) : Port série universel, mode
asynchrone (RS232) et mode synchrone

Fig. 2.3 : Architecture interne du PIC 16F877

MICROCONROLEUR 5
BTS GEN 2

3.2 Structure externe


Le PIC16F877 est un circuit intégré de 40 broches :

Certaines pattes ont plusieurs fonctions : On dit que les fonctions sont multiplexée

3.2.1 L’alimentation

L’alimentation du circuit est assurée par les pattes VDD et VSS. Elles permettent à
l’ensemble des composants électroniques du PIC de fonctionner. Pour cela on relie VSS (patte 5)
à la masse (0 Volt) et VDD (patte 14) à la borne positive de l’alimentation qui doit délivrer une
tension continue comprise entre 3 et 6 Volts.

3.2.2 Cadencement du PIC

Le PIC 16F877A peut fonctionner en 4 modes d’oscillateur.


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 (oscillateur externe).

Dans le cas du 16F877, on peut utiliser un quartz allant jusqu’à 20Mhz relié avec deux
condensateurs de découplage, du fait de la fréquence importante du quartz utilisé.
Quelque soit l'oscillateur utilisé, l'horloge système dite aussi horloge instruction est
obtenue en divisant la fréquence par 4. Avec un quartz de 4 MHz, on obtient une horloge
instruction de 1 MHz, soit le temps pour exécuter une instruction de 1μs

3.2.3 Circuit Reset MCLR

La broche MCLR (Master Clear) a pour effet de provoquer la réinitialisation du microprocesseur


lorsqu’elle est connectée à 0.
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”.

MICROCONROLEUR 6
BTS GEN 2
3.2.4 Ports d’entrées/sortie

Le PIC 16F877 dispose de 5 ports :


Port A : 6 pins I/O numérotées de RA0 à RA5.
Port B : 8 pins I/O numérotées de RB0 à RB7.
Port C : 8 pins I/O numérotées de RC0 à RC7.
Port D : 8 pins I/O numérotées de RD0 à RD7.
Port E : 3 pins I/O numérotées de RE0 à RE2.

A chaque port correspondent deux registres :


Un registre direction pour programmer les lignes soit en entrée, soit en sortieTRISA,
TRISB, TRISC, TRISD etTRISE.
Un registre de données pour lire ou modifier l’état des broches.PORTA, PORTB,
PORTC, PORTD etPORTE
Pour déterminer les modes des ports (I/O), il faut sélectionner leurs registres TRISX:
Le positionnement d’un bit à « 1 » place le pin en entrée.
Le positionnement de ce bit à « 0 » place le pin en sortie.

La plupart des broches des PORTs sont partagées avec des périphériques. En général si
un périphérique est utilisé, les broches correspondantes ne peuvent pas être utilisées comme
broches d’entrée/sortie.
Au reset, les lignes des ports A et E sont configurées en entrées analogiques, les autres
lignes sont configurées en entrées digitales.
Le courant absorbé ou fourni peut atteindre 25 mA.

Fig. 2.5 : Circuit RESET et oscillateur d'un PIC 16F877


Port A
Les broches port A, excepté RA4, sont multiplexées, avec les entrées du convertisseur
analogique numérique (AN0 .. AN4) .
La broche RA4 est multiplexé avec l’entrée d’horloge externe du timer0 (RA4/T0CKI).
Port B
Le port B peut être programmé pour un tirage à 5V (pull up ) de toutes ses lignes que l'on
peut mettre ou non en service en mode entrée uniquement. Elles sont automatiquement
désactivées quand le port est configuré en sortie.
MICROCONROLEUR 7
BTS GEN 2
En mode entrée, chaque broche du PORTB doit être maintenue à un niveau haut par
l'intermédiaire de résistances de 10 k pour ne pas déclencher d'interruptions imprévues.
Cette possibilité d'interruption sur un changement d'état associé à la fonction de tirage
configurable sur ces 4 broches, permet l'interfaçage facile avec un clavier. Cela rend possible le
réveil du PIC en mode SLEEP par un appui sur une touche du clavier.
Port C
Le port C est partagé avec liaisons, les timers 1 et 2 et les modules CCP.
Port D et E
En plus de leur utilisation comme PORTS E/S; les ports D et E, permettent au
microcontrôleur de travailler en mode PSP (Parallel Slave Port) c’est-à-dire, qu’il peut être
interfacé avec un autre microprocesseur. Dans ce cas le PORTD représente le bus de données et
le PORTE les signaux de contrôle (RD\, WR\ et CS\).
Le PORTE peut être aussi, configuré en mode analogique pour former avec le PORTA les 8
entrées du convertisseur analogique numérique. Par défaut, le PORTE est configuré comme port
analogique, et donc, comme pour le PORTA,

3.2.5 Chien de garde

Un chien de garde est un circuit électronique ou un logiciel utilisé en électronique


numérique pour s'assurer qu'un automate ou un ordinateur ne reste pas bloqué à une étape
particulière du traitement qu'il effectue. C'est une protection destinée généralement à redémarrer
le système, si une action définie n'est pas exécutée dans un délai imparti ; Dans le PIC, il s’agit un
compteur 8 bits incrémenté en permanence (même si le μC est en mode sleep) par une horloge
RC intégrée indépendante de l'horloge système. Lorsqu’il déborde, deux situations sont possibles
:
- Si le μC est en fonctionnement normal, le WDT time-out provoque un RESET. Ceci permet
d’éviter de rester planté en cas de blocage du microcontrôleur par un processus
indésirable non contrôlé
- Si le μC est en mode SLEEP, le WDT time-out provoque un WAKE-UP, l'exécution du
programme continue normalement là où elle s'est arrêtée avant de rentrer en mode SLEEP.
Cette situation est souvent exploitée pour réaliser des temporisations

MICROCONROLEUR 8
BTS GEN 2
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 6
CHAPITRE 1
SYSTEMES MICRO-PROGRAMMES A BASE DE
MICROPROCESSEUR
1. Introduction aux systèmes micro-programmés
Le développement de l'électronique numérique a suscité l'apparition de plusieurs types de
composants très puissants en particulier les systèmes micro-programmés.
Leur aptitude à s'adapter aux contraintes technologiques de plus en plus complexes, leur
capacité de gérer un grand nombre de fonctionnalités variées et leur coût de revient faible a
encouragé leur utilisation dans plusieurs applications tant domestiques qu'industrielles.
Le développement de ces composants programmables remplacent de plus en plus
l'électronique classique vu que les circuits intégrés analogiques ou logiques ne peuvent plus
résoudre des fonctions de plus en plus complexes.
Historiquement, les constructeurs développèrent d'abord les systèmes micro-programmés
intégrés dans les calculateurs de bureau ou de poche, avec des codes d'ordre orientés vers le
calcul numérique. Puis maitrisant cette technique ils offrirent des circuits d'usage généraux :
les microprocesseurs.
Les systèmes micro-programmés ont vu leur importance progresser au rythme de l’importance
prise par les microprocesseurs. C'est d'ailleurs l'élément de base pour de tels systèmes.
==> 1971 : premier microprocesseur 4 bits 4004 d’Intel .
La miniaturisation des transistors a permis d’augmenter considérablement la capacité
d’intégration sur silicium. On est passé rapidement du processeur 4 bits au :
• processeur 8 bits.
• processeurs 16 bits.
• processeurs 32 bits.
• processeurs 64 bits
Cette miniaturisation a offert des possibilités de réaliser des systèmes embarquées.
2. Définition d'un microprocesseur
Un microprocesseur ou processeur ou encore CPU (Central Processing Unit) est l'unité
intelligente de traitement des informations. c'est un circuit intégré complexe )est un circuit
intégré à très grande échelle d’intégration (VLSI) chargé d’organiser les tâches précisées par
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 7
le programme, de les décoder et d’assurer leur exécution. Il doit aussi prendre en compte les
informations extérieures au système et assurer leur traitement.
Ils présent trois avantages principaux : ils sont économiques et offre une souplesse d'emploi
inhérente à la programmation.
3. Modèle de base d'un microprocesseur
Dans un microprocesseur, on retrouve :
- une Unité Arithmétique et Logique (UAL)
- une Unité de Contrôle (UC)
- des registres
- des bus ou chemins de données
Fig. 1.1 : Structure de base d'un microprocesseur
3.1 Unité Arithmétique et Logique
Elle dispose de circuits réalisant des opérations des fonctions logiques (ET, OU, comparaison,
décalage,...) ou arithmétique (addition, soustraction,...).
En entrée de l’UAL, on a des commandes permettant d’activer les opérations, venant de
l’unité de contrôle En sortie, on a les résultats des opérations et les conditions qui sont en fait
les entrées de l’unité de contrôle.

MICROCONROLEUR 9
BTS GEN 2
L'UAL est composé de :
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 8
Les accumulateurs : Ce sont des registres de travail qui servent à stocker une
opérande au début d'une opération arithmétique et le résultat à la fin de l'opération.
L’Unité Arithmétique et Logique: C'est un circuit complexe qui assure les fonctions
logiques (ET, OU, Comparaison, Décalage, etc...) ou arithmétique (Addition,
soustraction...)
Le registre d'état : Il est généralement composé de 8 bits à considérer
individuellement. Chacun de ces bits est un indicateur dont l'état dépend du résultat
de la dernière opération effectuée par l’UAL. On les appelle indicateur d’état ou flag
ou drapeaux (Retenue, débordement, zéro, ...).
3.2 Unité de contrôle ou séquenceur
L’unité de contrôle est une circuit logique séquentiel chargée de séquencer l’algorithme et de
générer les signaux de contrôle pour piloter les éléments du chemin de données.
Elle envoie des commandes à l’unité de traitement qui va exécuter les traitements.
L'unité de control contient:
Le compteur de programme (PC : Programme Counter) appelé aussi Compteur
Ordinal (CO) : Il est constitué par un registre dont le contenu est initialisé avec
l'adresse de la première instruction du programme. Il contient toujours l’adresse de la
prochaine instruction à exécuter
Le registre d'instruction et le décodeur d'instruction : Chacune des instructions à
exécuter est transféré depuis la mémoire dans le registre instruction puis est décodée
par le décodeur d’instruction.
Bloc logique de commande (ou séquenceur) : IL organise l'exécution des
instructions au rythme d’une horloge. Il élabore tous les signaux de synchronisation
internes ou externes (bus de commande) du microprocesseur en fonction de
l’instruction qu’il a à exécuter. Il s'agit d'un automate réalisé de façon microprogrammée
3.3 Les bus
Un bus est un ensemble de lignes de communications groupés par fonction. Il permet de faire
transiter (liaison série/parallèle) des informations codées en binaire entre deux points.
Il est caractérisé par le nombres de lignes et la fréquence de transfert.
Il existe 3 Types de bus :
Bus de données (bi-directionnel): permet de transférer entre composants des données ,
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 9
ex. :résultat d'une opération, valeur d'une variable, etc.
Le nombre de lignes du bus de données définie la capacité de traitement du microprocesseur ;
selon le microprocesseur la largeur du bus peut être de 8 bits, 16 bits, 32 bits, 64 bits.
Bus d'adresses (uni-directionnel): permet de transférer entre composants des adresses,
ex. :adresse d'une case mémoire, etc.
L’espace adressable peut avoir 2n emplacements, avec n est le nombre de lignes du bus
d'adresses.
Bus de contrôle (bi-directionnel): permet l'échange entre les composants
d'informations de contrôle [bus rarement représenté sur les schémas].
ex. :périphérique prêt/occupé, erreur/exécution réussie, etc.
3.4 Les registres
C'est un espace mémoire interne au processeur. On distingue deux types : à usage général qui
permettent à l'UAL de manipuler des données et les registres d'adresses qui sont connectés au
bus d'adresse.
Fig. 1.2 : Structure interne d'un microprocesseur
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 10
MICROCONROLEUR 10
BTS GEN 2
4. Les mémoires
Le processeur exécute les instructions machines présente dans la mémoire et traite les données
qu'elle contient : le fonctionnement du microprocesseur est entièrement conditionné par le
contenu de celles-ci.
La mémoire peut être vue comme un ensemble de cellules ou cases contenant chacune
une information : une instruction ou une donnée. Chaque case mémoire est repérée par
un numéro d’ordre unique : son adresse.
Fig. 1.3 : Structure générale d'un système piloté par un microprocesseur
Une case mémoire peut être lue ou écrite par le microprocesseur (cas des mémoires vives) ou
bien seulement lue (cas des mémoires mortes).
Format d'une instruction
Les opérandes sont stockées dans des mémoires RAM.
Un jeu d'instruction est l' ensemble d’opérations élémentaires effectué par le microprocesseur.
5. Fonctionnement d'un microprocesseur
Le traitement d'une instruction peut être décomposé en plusieurs phases. Celles-ci sont au
nombre de trois :
Recherche de l'instruction
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 11
Décodage (decode)
Exécution (execute)
Fig. 1.4 : Fonctionnement d'un microprocesseur
5.1 Recherche de l'instruction
Pour exécuter les instructions dans l’ordre établi par le programme, le microprocesseur doit
savoir à chaque instant l’adresse de la prochaine instruction à exécuter. Le
microprocesseur utilise un registre contenant cette information : Le pointeur d’instruction
Le contenu de PC est placé sur le bus des adresses. L'unité de contrôle (UC) émet un ordre de
lecture, au bout d'un certain temps (temps d'accès à la mémoire) le contenu de la case
mémoire sélectionné est disponible sur le bus des données. L'unité de contrôle charge la
donnée dans le registre d'instruction pour décodage.
Fig. 1.5 : Recherche d'instruction
5.2 Décodage
Pour savoir quel type d’opération doit être exécuté (addition, soustraction, ...), le
microprocesseur lit le premier octet de l’instruction pointée par le pointeur d’instruction (code
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 12
opératoire) et le range dans le registre d’instruction. Le code opératoire est décodé par des
circuits de décodage contenus dans le microprocesseur. Des signaux de commande pour
l’UAL sont produits en fonction de l’opération demandée qui est alors exécutée.
Pendant que l’instruction est décodée, le pointeur d’instruction est incrémenté de façon
à pointer vers l’instruction suivante. Puis, le processus de lecture et de décodage des
instructions recommence.
Fig. 1.6 : Récupération de l'opérande
5.3 Exécution
A la suite de chaque instruction, le registre d’état du microprocesseur est actualisé en
fonction du dernier résultat.
6. Architecture d'un microprocesseur
Pour l’organisation des différentes unités, il existe deux architectures possibles:
6.1 Architecture de Von Neuman
La mémoire programme, la mémoire données et les périphériques d’entrées/sorties partagent
le même bus s’adresses et de données.
Inconvénient: L’exécution d’une instruction nécessite plusieurs échanges de données sur le
MICROCONROLEUR 11
BTS GEN 2
seul et unique bus dévolu à cet usage puisqu’il faut tout d’abord aller chercher le code de
l’instruction puis le ou les données qu’elle doit manipuler.
Fig. 1.7 : Architecture de Von Neuman
Iset Nabeul Cours microcontrôleurs
Y. RKHISSI KAMMOUN 13
6.2 Architecture de Harvard
Cette architecture sépare systématiquement la mémoire de programme de la mémoire des
données : l'adressage de ces mémoires est indépendant. Ce type d’architecture est utilisé sur
des microcontrôleurs qui ont connu un développement important ces dernières années.
Fig. 1.8 : Architecture de Harvard
Quoique cette architecture puisse être complexe mais elle est performante: Gain en terme de
vitesse d’exécution des programmes :
L’exécution d’une instruction ne fait plus appel qu’à un seul cycle machine puisque l’on peut
simultanément, grâce au deux bus, rechercher le code de l’instruction et la ou les données
qu’elle manipule

MICROCONROLEUR 12

Vous aimerez peut-être aussi