Vous êtes sur la page 1sur 9

Un microcontrôleur est un circuit intégré rassemblant dans un même boitier un

microprocesseur, plusieurs types de mémoires et des périphériques de


communication (Entrées-Sorties).Il permet de réaliser des systèmes et
montages électroniques programmés. Cela veut dire que l'on pourra, avec le
même montage, réaliser des fonctions très différentes qui dépendront du
programme qui aura été programmé dans le microprocesseur.

Typiquement, un microprocesseur comporte :

 une unité arithmétique et logique ALU qui


exécute les instructions et manipule les
données
 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, compteur / timer
 des broches d'Entrée / Sortie (broches E/S)

La structure interne d'un microcontrôleur comporte


 -Une unité de calcul et de commande
 -Mémoire ROM
 -Mémoire RAM
 -Un contrôleur d’interruption
 -Un compteur/temporisateur (timer)
 -Des entrées/sorties parallèles (ports)
 -Un UART (port série)
 Il peut aussi posséder :
 -Un Watchdog :
(surveillance du
programme)
 -Une sortie PWM
(modulation d’impulsion)
 -Un CAN/CNA
(Convertisseur analogique
numérique)
 -Un interface I²C, CAN…
 Exemple Microcontroleur PIC 16F887 :
Périphériques d’un microcontrôleur
Les périphériques sont des circuits électroniques intégrés au microcontrôleur
capables d'effectuer des tâches spécifiques. On peut mentionner entre autres :

 les convertisseurs Analogique/Numérique (donnent un nombre binaire à


partir d'une tension électrique) ;
 les convertisseurs Numérique/Analogique (opération inverse) ;
 les générateurs de signaux à modulation de largeur d'impulsion (MLI, ou
en Anglais, PWM pour Pulse Width Modulation) ;
 les timers (compteurs de temps ou d'événements) ;
 les comparateurs (comparent deux tensions électriques) ;
 les contrôleurs de bus (UART, IIC, SSP) ;
 les oscillateurs (servent de base de temps aux timers).

Le fonctionnement des périphériques peut être paramétré et commandé par le


programme et/ou les entrées-sorties. Les périphériques peuvent générer une
interruption qui contraint le processeur à quitter le programme principal pour
effectuer une routine d'interruption.

A distinguer : microcontrôleur et microprocesseur.

Le microprocesseur, à la différence d'un microcontrôleur, ne comporte pas en


interne sa propre mémoire et nécessite une mémoire vive externe, des moyens
de stockage externe, etc..

Un microcontrôleur comporte en interne un micro-processeur miniature associé


à de la mémoire, de modules, etc..

Le processeur est l'élément central d'un système informatique : il interprète les


instructions et traite les données d'un programme. Il a besoin de certains
éléments externes pour fonctionner :

 une horloge pour le cadencer .


 de la mémoire pour stocker les variables durant l’exécution du programme
(mémoire vive RAM) et le programme d’une mise sous tension à l’autre
(mémoire morte ROM).

des périphériques (pour interagir avec le monde extérie ur


Applications
Les microcontrôleurs sont souvent utilisés dans
l'élaboration de systèmes embarqués, nécessitant
des traitements spécialisés (autoradios, téléphones
portables, lecteur mp3, GPS, etc.).

Ces circuits intégrés sont également très prisés en


robotique amateur et permettent de réaliser de
nombreuses applications, y compris des robots
autonomes, les automatismes en modélisme
(maquettes de réseau ferroviaire).

Programmation
Le langage C est le langage de prédilection (avec l'assembleur) du développement
sur microcontrôleurs. Une fois le programme compilé, le fichier binaire doit être
envoyé au microcontrôleur. On utilise soit :

 un programmateur de microcontrôleurs et souvent également d'EEPROM,


on parle alors de programmateur universel.
 un programmateur ISP qui a l'avantage de ne pas nécessiter de sortir le
microcontôleur du système électronique complet.

On peut alors utiliser le système. Toutefois, le programme qui a été envoyé


peut comporter des bogues, aussi, pour parvenir à les détecter on utilisera par
exemple un émulateur in-circuit.

Familles de microcontrôleurs
 la famille Atmel AT91 ;
 la famille Atmel AVR ;
 le C167 de Siemens/Infineon ;
 la famille Hitachi H8 ;
 la famille Intel 8051, qui ne cesse de grandir ; de plus, certains
processeurs récents utilisent un cœur 8051, qui est complété par divers
périphériques (ports d'E/S, compteurs/temporisateurs, convertisseurs
A/N et N/A, chien de garde, superviseur de tension, etc.) ;
 l'Intel 8085, à l'origine conçu pour être un microprocesseur, a en pratique
souvent été utilisé en tant que microcontrôleur ;
 le Motorola 68HC11 ;
 la famille Freescale 68HC08
 la famille Freescale 68HC12
 la famille des PIC de Microchip ;
 la famille des dsPIC de Microchip ;
 la famille des ST6 de STMicroelectronics ;
 la famille ADuC d'Analog Devices ;
 la famille PICBASIC de Comfile Technology;
 la famille MSP430 de Texas Instruments.
 la famille 8080 , z80 , Rabbit : pour memoire , le 8080 est un des grands
ancetres , mais z80 et Rabbit sont encore bien vivants
 la famille PSoC de Cypress
 la famille LPC21xx ARM7-TDMI de Philips
 la famille V800 de NEC
 la famille K0 de NEC

Exemple pratiqué avec microC et proteuse


On pratique une petite expérience avec le jeux d’instruction de ce microcontrôleur
PIC16F84A

- On réalise avec porteuse le schéma electronique suivant :


Par le logiciel MicroC on pratique la programmation de notre pic16f84a

On veut faire clignoter la led branchées au port B du microcontrôleur de


deux façons

La 1er : Si RA0 = 0 tous les led clignotent avec une période d’une seconde
(1s=1000ms)

La 2eme : Si RA0 = 1, 4 led doivent clignoter chaque (500 ms ) et ensuite


les les autres 4 led
Alors on applique le programme suivant

void main()
{
TRISA=0xFF;
TRISB=0x00;
PORTB=0x00;
while(1)
{
if(B1==0)
{
PORTB=0xFF;

Delay_ms(500);

On voit tout les led s’allume en une sc. et se fermé


Pour une nouvelle application
On met RA0=0, les 8 diodes LED clignotent pendant 2 secondes,
Et RA0=1, on obtient l’allumage

D0D1 en (1000ms)
ensuite
D2D3 en (2000ms)
ensuite
D4D5 en (3000ms)
ensuite
D6D7 en (4000ms)
Et en reprend
On exécute sur porteuse et on voit l’exécution comme prévu :!!!

Donc pour finir cette procédure généralement appelé micrologiciel c’est le


logiciel microC ou autre

Des simulateurs sont disponibles pour certains microcontrôleurs, comme


l'environnement MPLAB de Microchip. Les développeurs peuvent ainsi analyser le
comportement du microcontrôleur et du programme, comme s'il s'agissait du
composant réel. Un simulateur montre l'état interne du processeur, ainsi que
celui de ses sorties. Bien que la plupart des simulateurs ne proposent pas de
simuler les autres composants d'un système, ils permettent de spécifier les
entrées à volonté. On peut de cette façon créer des conditions qui seraient sans
cela difficiles à reproduire dans une implémentation physique.
Une fois le programme compilé, le fichier binaire doit être envoyé au
microcontrôleur. On utilise soit :

 un programmateur, pour microcontrôleurs et souvent également


d’EEPROM. On parle alors de programmateur universel.
 un programmateur ISP qui a l'avantage de ne pas nécessiter de sortir le
microcontrôleur du système électronique complet. Ce type de
programmation pourra se faire via le bus de communication standard
JTAG ou un autre bus, souvent propriétaire (Microchip par ex. avec sa
série PIC16F) et, malheureusement, inadapté au test des cartes lors de la
phase de production.

Toutefois, le programme qui a été envoyé peut comporter des bogues (bugs),
aussi, pour parvenir à les détecter on peut utiliser un émulateur in-circuit.

Le projet μCLinux vise à faire fonctionner Linux sur des microcontrôleurs et des
microprocesseurs dépourvus de MMU. Il est par exemple disponible sur
Motorola ColdFire, Blackfin, Intel i960, Motorola QUICC, ARM7-TDMI, NEC
V850.

Conclusion
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é. Un microcontrôleur est donc un
composant autonome, capable d'exécuter le programme contenu dans sa mémoire
morte dès qu'il est mis sous tension. Selon les modèles et les conditions de
fonctionnement, les microcontrôleurs peuvent avoir besoin de quelques
composants externes (quartz, quelques condensateurs, parfois une ROM), mais
ceci reste très limité.

Vous aimerez peut-être aussi