Vous êtes sur la page 1sur 105

Microprocesseurs

&
Microcontrleurs
Sylvain MONTAGNY
sylvain.montagny@univ-savoie.fr
Btiment chablais, bureau 13
04 79 75 86 86
Retrouver tous les documents de Cours/TD/TP sur le site
www.master-electronique.com

Prsentation cours : Sommaire


l Cours : 10.5 h en 7 sances
l

Chapitre 1 : Rappels gnraux sur les processeurs

Chapitre 2 : Les microcontrleurs


l

Dfinition
Etude des priphriques

Chapitre 3 : La programmation

Universit de Savoie

Prsentation TD
l TD

: 10.5 h en 7 sances

TD1 : Rappel sur les systmes microprocesseur. Cadencement


dun microcontrleur. Instructions assembleurs.

TD2 : Utilisation du timer dun microcontrleur. Configuration des


ports dentre/sortie dun microcontrleur.

TD3 : Les interruptions

TD4 : Gestion dafficheur 7 segments

TD5 : Conversion Analogique / Numrique

Universit de Savoie

Prsentation TP
l

TP : 12h en 3 sances de 4h
l

TP1 : Prise en main dun environnement de


programmation sur microcontrleur

TP2 : Etude du Watchdog, et des interruptions


dans un microcontrleur

TP3 : Ralisation dun minuteur laide dun


afficheur 7 segments.

Universit de Savoie

Chapitre 1 : Rappel gnraux sur les


processeurs

l
l
l
l

1.1 Rappel sur larchitecture interne des


microprocesseurs
1.2 Le traitement des instructions
1.3 Les modes dadressages
1.4 Exemple dexcution dun programme

Universit de Savoie

Le microprocesseur
Architecture interne (1)
Bus dadresses

Microprocesseur

Unit de
commande

Programme
Mmoire

Unit
de
Accumulateur
traitement
Registre
dtat

Donnes

Bus de donnes
6

Le microprocesseur
Architecture interne (2)
Bus dadresses

Microprocesseur
PC

Programme
Mmoire

Accumulateur
Accumulateur
Registre
dtat
Registre
dtat

Bloc logique
de commande
Dcodeur
dinstruction

Donnes

Bus de donnes
7

Le microprocesseur
Unit de commande
Elle permet de squencer le droulement des instructions.
Bus dadresse

PC

Bloc logique
de commande

Instruction

Dcodeur
dinstruction

PC : Programme Counter, appel aussi


Compteur Ordinal. Il contient toujours
ladresse de la prochaine instruction
excuter.
Le dcodeur d'instruction : Le mot binaire
(instruction) est dcod pour savoir quelle
action correspond linstruction.
Bloc logique de commande (squenceur) :
Il organise l'excution des instructions au
rythme de lhorloge. Il labore tous les
signaux
de
synchronisation
du
microprocesseur en fonction de linstruction
quil a excuter.
8

Le microprocesseur
Unit de traitement
Elle excute les instructions.

Microprocesseur
Accumulateur
Accumulateur
Registre
dtat
Registre
dtat

Laccumulateur : Cest un registre de travail qui


sert stocker le rsultat des oprations ralises
par LUAL.
LUnit Arithmtique et Logique (UAL) est un
circuit complexe qui assure les fonctions logiques
(ET, OU, comparaison, dcalage, etc) ou
arithmtique (addition, soustraction).
Le registre d'tat : Chacun des bits de ce
registre dpend du rsultat de la dernire
opration effectue par lUAL. Exemple : Bit de
retenue (carry : C), dbordement (overflow : OV
ou V), Zro (Z) ...
9

Le traitement des instructions


Rsum
1
2

CPU

Mmoire
4
3

l
l
l
l

(1) Charger une instruction depuis la mmoire


(2) Charger les oprandes depuis la mmoire
(3) Effectuer les calculs
(4) Stocker le rsultat en mmoire

Universit de Savoie

10

Larchitecture
Von Neuman

CPU
l

Un seul chemin d'accs la mmoire


l
l

l
l

BUS

Mmoire
Programme
&
donnes

Un bus de donnes (programme et donnes),


Un bus dadresse (programme et donnes)

Architecture des processeurs dusage gnral


Goulot d'tranglement pour l'accs la mmoire
Universit de Savoie

11

Larchitecture
Harvard

CPU
l

Mmoire
donne

Sparation des mmoires programme et donnes


l
l
l
l

Mmoire
programme

Un bus de donnes programme,


Un bus de donnes pour les donnes,
Un bus dadresse programme,
Un bus dadresse pour les donnes.

Meilleure utilisation du CPU :


l

Chargement du programme et des donnes en parallle

12

Larchitecture
Harvard : Cas des microcontrleurs PIC
l

Seul les bus de donne (data ou instructions) sont


reprsentes

Universit de Savoie

13

Chapitre 1 : Rappel gnraux sur les


processeurs
l
l
l
l

1.1 Rappel sur larchitecture interne des


microprocesseurs
1.2 Le traitement des instructions
1.3 Les modes dadressages
1.4 Exemple dexcution dun programme

Universit de Savoie

14

Le traitement des instructions


Organisation dune instruction
Le microprocesseur ne comprend quun certain
nombre dinstructions qui sont codes en binaire. Une
instruction est compose de deux lments :
l

Le code opration : Cest un code binaire qui correspond laction


effectuer par le processeur
Le champ oprande : Donne ou bien adresse de la donne.

La taille d'une instruction peut varier, elle est


gnralement de quelques octets (1 8), elle dpend
galement de l'architecture du processeur.

Universit de Savoie

15

Le traitement des instructions


Exemple dinstruction
l

Instruction Addition :
Accumulateur = Accumulateur + Oprande

Correspond linstruction ADD A,#2

Instruction (16 bits)


Code opratoire (5 bits) Champ oprande (11 bits)
ADD A
#2
11001
000 0000 0010
Cette instruction est comprise par le processeur par le mot binaire :

11001

000 0000 0010 = code machine


Universit de Savoie

16

Le traitement des instructions


Phase 1 : Recherche de linstruction en mmoire
Rapporter moi les ordres
crits sur ce parchemin !!!

Ordres :
1. Attaquer camp romain
2. Organiser banquet
Outils :
1. Menhir, Potion magique
2. Sanglier

Unit de traitement

Unit de commande

La valeur du PC est place sur le bus d'adresse, et l'unit de


commande met un ordre de lecture de la mmoire.
Aprs le temps d'accs la mmoire, le contenu de la case
mmoire slectionne (instruction) est disponible sur le bus des
donnes et arrive lentre du dcodeur.

Universit de Savoie

17

Le traitement des instructions


Phase 2 : Dcodage et recherche de loprande
Rapportez moi les outils
crits sur ce parchemin !!!

Ordres :
1. Attaquer camp romain
2. Organiser banquet
Outils :
1. Menhir, Potion magique
2. Sanglier

Unit de traitement

Unit de commande

Si l'instruction ncessite une donne en provenance de la mmoire,


l'unit de commande rcupre sa valeur sur le bus de donnes en
faisant un nouvel accs mmoire. La donne arrive lentre de
lALU.

Universit de Savoie

18

Le traitement des instructions


Phase 3 : Excution de linstruction
On va commencer par attaquer
le camps Romain avec des
menhir et de la potion !!!

Ordres :
1. Attaquer camp romain
2. Organiser banquet
Outils :
1. Menhir, Potion magique
2. Sanglier

Unit de traitement

Unit de commande

LALU raliser lopration que le squenceur lui demande.


Les drapeaux sont positionns (registre d'tat).
Le PC est incrment pour indiquer l'instruction suivante.

Universit de Savoie

19

Le traitement des instructions


Droulement
Bus dadresses

Microprocesseur
PC

Programme
Mmoire

Accumulateur
Accumulateur
Registre
dtat
Registre
dtat

Bloc logique
de commande
Dcodeur
dinstruction

Donnes

Bus de donnes
20

Le traitement des instructions


Les architectures RISC et CISC (1)
Actuellement larchitecture des microprocesseurs se
composent de deux grandes familles :

L architecture CISC
(Complex Instruction Set Computer)

Larchitecture RISC
(Reduced Instruction Set Computer)

Universit de Savoie

21

Chapitre 1 : Rappels gnraux sur les


processeurs
l
l
l
l

1.1 Rappel sur larchitecture interne des


microprocesseurs
1.2 Le traitement des instructions
1.3 Les modes dadressages
1.4 Exemple dexcution dun programme

Universit de Savoie

22

Les modes dadressages


l

Ce sont les diverses manires de dfinir la


localisation d un oprande. Les trois modes
dadressage les plus courant sont :
l
l
l

Adressage immdiat
Adressage direct
Adressage indirect

Pourquoi existe-t-il plusieurs modes dadressage ?


Universit de Savoie

23

Les modes dadressages


Immdiat
Exemple : ADDA

#4
ALU

Mmoire
M
Contenu

0x00

0..
110 1101

0x01

0..
100 0101
0..
010 1111

Compteur Ordinal
adrs+1
PC

adrs

1 1 0ADDA
1 0101

adrs + 1

0 1 1 0#41 0 0 1

adrs + 2

1..
010 1101

Accumulateur

Adresses

0011 1000
1
100 0101
1
010 1001
.
0111 1010

Universit de Savoie

24

Les modes dadressages


Direct
Exemple : ADDA

adresseX
ALU

Mmoire
Contenu

0x00

0..
110 1101

0x01

0..
100 0101
0..
010 1111

Compteur Ordinal
adrs+1
PC

adrs

1 1 0ADDA
1 0101

adrs + 1

0 adresseX
110 1001

adrs + 2

1010 1101

adresseX

Accumulateur

Adresses

0xxxx
0 1 1 xxxx
1000
1
100 0101
1
010 1001
.
0111 1010

Universit de Savoie

25

Les modes dadressages


Indirect
Exemple : ADDA

@adresseX
ALU

Mmoire
Contenu

0x00

0..
110 1101

0x01

0..
100 0101
0..
010 1111

Compteur Ordinal
adrs+1
PC

adrs

1 1 0ADDA
1 0101

adrs + 1

0@adresseX
110 1001

adrs + 2

1010 1101

@adresseX

Accumulateur

Adresses

0 adresseX
011 1000
1
100 0101

adresseX

1 0 1 0 xxxxxx
1001
xxxxx
.
0111 1010

Universit de Savoie

26

Chapitre 1 : Rappel gnraux sur les


processeurs
l
l
l
l

1.1 Rappel sur larchitecture interne des


microprocesseurs
1.2 Le traitement des instructions
1.3 Les modes dadressages
1.4 Exemple dexcution dun programme

Universit de Savoie

27

Exemple dexcution (1)


Le compilateur gnre aussi un fichier assembleur, reprsentant le code
et les emplacements mmoire qui seront utiliss.

Universit de Savoie

28

Exemple dexcution (2)


linfini
PORTC

Universit de Savoie

29

Le jeu dinstruction du PIC16F


Daprs la datasheet :
l

Quelles sont les trois grandes catgories dinstruction du PIC16F877A?

Quelle est la taille dune instruction en mmoire ?

Expliquez les instructions : INCFSZ, BTFSC, ANDLW et donner un


exemple dutilisation pour chacune de ces instructions.

Le programme compil ci-dessous rassemble un code excutable de la


forme suivante, donner la squence dinstruction ralise et laction de
chacune :
l
l
l
l

0187h
2822h
0987h
0BFCh

CLRF PORTC;
GOTO 22h;
COMF PORTC,1;
DECFSZ 7C,1;

30

Chapitre 2 : Les microcontrleurs

l
l
l
l
l
l
l

2.1 Dfinition dun microcontrleur


2.2 Cadencement du microcontrleur
2.3 Les timers
2.4 Les ports dentre/sortie
2.5 La liaison srie
2.6 Le watchdog
2.7 Le CAN

Universit de Savoie

31

Dfinition dun microcontrleur


Un microcontrleur est un circuit qui intgre un maximum
de fonctions dans un mme boitier. Lintgration de ces
fonctions dans le mme environnement permet de crer
des applications plus simplement.
Le circuit intgr d'un microcontrleur
8 bits Intel 8742 possde sur une
unique puce :
l Un processeur cadenc 12 MHz
l 128 octets de mmoire vive
l Une EPROM de 2048 bits
l De nombreuse entres-sorties

Universit de Savoie

32

Ventes de microcontrleurs

Universit de Savoie

33

Dfinition dun microcontrleur


Avantages
l

Cout rduit

Encombrement moindre

Fiabilit

Mise en uvre plus simple

Consommation plus faible

Universit de Savoie

35

Dfinition dun microcontrleur


Contenu
l

La structure interne d'un microcontrleur comporte


typiquement :
l
l
l
l
l
l
l

Une unit de calcul et de commande


Mmoire ROM
Mmoire RAM
Un contrleur dinterruption
Un compteur/temporisateur (timer)
Des entres/sorties parallles (ports)
Un UART (port srie)

Il peut aussi possder :


l
l
l
l

Un Watchdog : (surveillance du programme)


Une sortie PWM (modulation dimpulsion)
Un CAN/CNA (Convertisseur analogique numrique)
Un interface IC, CAN
Universit de Savoie

36

Dfinition dun microcontrleur


Exemple : Microcontrleur PIC 16F877

Universit de Savoie

37

Dfinition dun microcontrleur


Les mmoires (1)
l

ROM memory :
Aussi appel ( juste titre) program memory.
Cest une mmoire Flash qui contient le
programme excuter.

EEPROM memory
Cest une mmoire similaire la mmoire programme. On sen sert
surtout pour stocker des constantes.

Universit de Savoie

38

Dfinition dun microcontrleur


Les mmoires (2)
l

RAM memory :
l

General Purpose Register : Mmoire RAM classique, utiliser pour


stock des variables. Exemple :
int i;
i++;

// incrmentation de i depuis la RAM

SFR (Special Function Register) : Cest aussi de la mmoire RAM,


sauf que les rles de chacune des cases mmoire (registres) ont t
dfinis par le fabriquant. Chaque registre SFR est connect un
priphrique matriel spcifique et permet de la contrler. Exemple :
ADCON0 register (adresse 9Fh) permet de piloter le convertisseur A/D.

Universit de Savoie

39

Dfinition dun microcontrleur


Les mmoires (3)
Dclaration de i en RAM

Dtail dun registre SFR

Affectation dune valeur


un registre SFR

Universit de Savoie

40

Chapitre 2 : Les microcontrleurs

l
l
l
l
l
l
l

2.1 Dfinition dun microcontrleur


2.2 Cadencement du microcontrleur
2.3 Les timers
2.4 Les ports dentre/sortie
2.5 La liaison srie
2.6 Le watchdog
2.7 Le CAN

Universit de Savoie

41

Cadencement du microcontrleur
Schma du pic 16F877

Universit de Savoie

42

Cadencement du microcontrleur
Les cadencements possibles
l

Quartz
l

Rsonateur cramique
l
l

Trs bonne Stabilit (10 ppm)

Stabilit ( 0.5%)
Moins couteux que le quartz

Exemple pour un oscillateur 8 Mhz


Quartz :
Rsonateur :

Frquence +/- 80
Hz
Frquence +/- 40 000 Hz
43

Chapitre 2 : Les microcontrleurs

l
l
l
l
l
l
l

2.1 Dfinition dun microcontrleur


2.2 Cadencement du microcontrleur
2.3 Les timers
2.4 Les ports dentre/sortie
2.5 La liaison srie
2.6 Le watchdog
2.7 Le CAN

Universit de Savoie

44

Les timers
Mode compteur ou temporisateur (1)
l

Un timer est le nom courant de compteur / temporisateur .


Mesurer du temps (compter le
nombre de coup dhorloge)
> Mode temporisateur

Compter le nombre dvnement


sur une broche
> Mode compteur

45

Les timers
Mode compteur ou temporisateur (2)
l

En pratique, on visualise la valeur de dpart, puis la valeur


darrive. La valeur de comptage est la diffrence des deux
valeurs.

l
l

Dans quelle mode fonctionne le timer ici?


Donner la valeur du temps en fonction de A et B dans cette
application.

Universit de Savoie

46

Les timers
Utilisation dun prescaler
l

Un prescaler permet de diviser la frquence


de comptage.

Quelle est le temps mesur dans cette application en


fonction de A et B?

Universit de Savoie

47

Chapitre 2 : Les microcontrleurs

l
l
l
l
l
l
l

2.1 Dfinition dun microcontrleur


2.2 Cadencement du microcontrleur
2.3 Les timers
2.4 Les ports dentre/sortie
2.5 La liaison srie
2.6 Le watchdog
2.7 Le CAN

Universit de Savoie

48

Les ports dentre / Sortie


Ce sont des ports parallles. Ils permettent de recueillir des
informations ou de piloter des modules sur lenvironnement
extrieur. Ils sont souvent bidirectionnels (configurable en
entre ou sortie).

Universit de Savoie

49

Les ports dentre / Sortie


l

Quelles sont les ports dE/S de ce microcontrleur?

Universit de Savoie

50

Les ports dentre / Sortie


Les sorties logiques

Sortie trois tats

Sortie collecteur ouvert

Universit de Savoie

52

Les ports dentre / Sortie


1. Sortie trois tats
Fonctionnement

T1

T2

Sortie

Bloqu

Bloqu

Etat haute impdance

Bloqu

Satur

"0"

Satur

Bloqu

"1"

Satur

Satur

non utilis

Des sorties trois tats peuvent tre relies entres elles mais il
faut bien veiller ce que une seule impose un niveau (haut ou
bas) et que les autres sorties soit en haute impdance.
Universit de Savoie

53

Les ports dentre / Sortie


2. Sortie collecteur ouvert (1)

Fonctionnement
T2

Satur

"0"

Bloqu

Dpend du montage

Universit de Savoie

54

Les ports dentre / Sortie


2. Sortie collecteur ouvert (2)

Pour gnrer le niveau "1", une rsistance extrieure est


ncessaire (rsistance de tirage // pull-up). Plusieurs sorties
"collecteur ouvert" peuvent tre relies entre elles, cela
ralise un "ET logique"
Une sortie collecteur ouvert peut commander une charge
sous une tension diffrente de la tension d'alimentation.
Universit de Savoie

55

Les ports dentre / Sortie


Entre trigger de Schmitt

"1"
"0"

Vseuil- Vseuil+

Universit de Savoie

Vi

56

Les ports dentre / Sortie


l

Bouton poussoir :

Led :

Donner la valeur de la rsistance sachant quune led


rouge une tension de 1,5V et quil faut 10 mA pour
avoir un clat correct.

Universit de Savoie

57

Les ports dentre / Sortie


Cas du PIC16F877
Daprs la datasheet :
l Combien possde t on de bits dE/S pour le PORTA,
B, C, D et E?
l

Quel registre respectif permet de les configurer en


entre ou en sortie?

Quelle mise en garde est faite pour le PORTA?

Quelle particularit du PORTB peut nous tre utile


pour connecter un bouton poussoir par exemple?
Universit de Savoie

58

Chapitre 2 : Les microcontrleurs

l
l
l
l
l
l
l

2.1 Dfinition dun microcontrleur


2.2 Cadencement du microcontrleur
2.3 Les timers
2.4 Les ports dentre/sortie
2.5 La liaison srie
2.6 Le watchdog
2.7 Le CAN

Universit de Savoie

59

La liaison srie
l

La liaison srie USART (Universal Synchronous Asynchronous


Receiver Transmitter ) est le mode le plus rependu pour
communiquer (et aussi le plus vieux).

60

La liaison srie
Connexions (1)
l

Une liaison srie permet de transmettre des donnes


sur un nombre limit de fils. Cette liaison peut tre
Half duplex (liaison synchrone) ou full duplex (liaison
asynchrone).

Sur le microcontrleur PIC16F877A, la liaison srie


asynchrone peut tre mise en uvre laide des pins
RxD et TxD. Elle est ralise par un USART :
l
l

RxD, signal de rception de lUSART


TxD, signal de transmission de lUSART

Universit de Savoie

61

La liaison srie
Connexions (2)

1re tape : Configuration de la transmission


2ime tape :
Envoyer et recevoir des donnes
Universit de Savoie

62

La liaison srie
USART Transmit bloc register

Universit de Savoie

63

La liaison srie
USART receive bloc register

Universit de Savoie

64

La liaison srie
Daprs la datasheet :
l

Pourquoi avons-nous une corrlation entre le fait


dtre synchrone/Asynchrone et full duplex / half
duplex?

Prenez note de toutes les tapes raliser pour


configurer une liaison srie asynchrone.

Configurer la liaison srie asynchrone pour quelle soit


cadence 9600 bauds.

Universit de Savoie

65

Chapitre 2 : Les microcontrleurs

l
l
l
l
l
l
l

2.1 Dfinition dun microcontrleur


2.2 Cadencement du microcontrleur
2.3 Les timers
2.4 Les ports dentre/sortie
2.5 La liaison srie
2.6 Le watchdog
2.7 Le CAN

Universit de Savoie

66

Le Watchdog (1)
Le chien de garde (watchdog) est un dispositif matriel et
logiciel qui permet de se prmunir contre les plantages
accidentels. Lide est de provoquer un RESET du CPU afin
de relancer lapplication. (Les donnes sont bien sur perdues).
Le plantage est dfini lorsque le programme nest pas venu
temps faire signe au watchdog.
Instructions
Clear Watchdog

Si je reoit rien,
jappuie sur le
RESET!!!

67

MICROCONTROLEUR

Le Watchdog (2)

68

Le Watchdog
Cas du PIC16F877

Daprs la datasheet :
l

Comment met-on en route le Watchdog? (lire en plus le


chapitre 14.1 : configuration bits)

Quel est leffet dun watchdog time out?

Quelle instruction du PIC permet de raliser le reset du


Watchdog? Comment allez vous coder cette instruction
en C?
Universit de Savoie

69

Chapitre 2 : Les microcontrleurs

l
l
l
l
l
l
l

2.1 Dfinition dun microcontrleur


2.2 Cadencement du microcontrleur
2.3 Les timers
2.4 Les ports dentre/sortie
2.5 La liaison srie
2.6 Le watchdog
2.7 Le CAN

Universit de Savoie

70

Le CAN
Multiplexage des voies
l

CAN : Dans les microcontrleurs, les voix de


conversion analogique/numrique sont souvent
multiplexes. Ceci signifie que la frquence maximale
de conversion analogique numrique est divise par le
nombre de voies utilises.

Trs souvent, il faut configur les entres de


conversion en entre analogique car celles-ci
peuvent aussi tre utilise en entre numrique.

Universit de Savoie

71

Le CAN

Le CAN
Questions
Daprs la datasheet :
l
l
l
l
l
l

Quel est le nombre de bits du convertisseur AN.


Dans quels registres est stock le rsultat?
Comment fait-on pour justifier le rsultat droite ou
gauche.
Combien possde t on de voies multiplexs?
A quoi correspond Vref+ et Vref - ?
Comment configure t on une entre en analogique?

Universit de Savoie

73

Le CAN
Etude de cas thorique
l

Sur lapplication ci-dessous, quelle est la rsolution maximale que


nous pourrons avoir?

Donner lexpression de la rsolution en fonction de Vref+, Vref- et


du nombre de bits du convertisseur.
l Exprimer la valeur analogique en fonction de Vref+, Vref- et de la
valeur numrique donne par le convertisseur.
Universit de Savoie

74

Le CAN
Rcupration des valeurs converties
l

Donner le code C permettant dobtenir un entier


reprsentatif de la valeur de conversion en fonction
des valeurs de ADRESH et ADRESL.

Universit de Savoie

75

Le CAN
Tension de rfrences Vref
l

Le schma ci-dessous reprsente les plages de valeurs


possibles pour Vref+ et Vref-.

Universit de Savoie

76

Le CAN
Etude de cas pratique
La tension dune batterie est celle dune cellule lithium-ion qui
possde les caractristiques suivantes :
l

Donner les valeurs de votre choix pour les tensions de rfrences


l Donner la rsolution de la conversion
l Donner lexpression de la tension en fonction de la valeur numrique de
la conversion.

Umin=2,5 V
Umax= 4,3V
Danger si en dehors de cette zone

Udcharge=3 V

Un=3,6 V Ucharge=4,2 V

Universit de Savoie
77

Le CAN
l

Vitesse maximale du convertisseur

Universit de Savoie

78

Gamme des microcontrleurs


l

Exemple chez ST micro

http://www.st.com

>> gamme STM

Exemple chez microchip

http://www.microchip.com/ >> gamme PIC

Exemple chez ATMEL

http://www.atmel.com/

>> gamme AVR

Exemple chez Infineon

http://www.infineon.com

Etc
Universit de Savoie

79

Chapitre 3 : La programmation

3.1 Les interruptions


l 3.2 Le logiciel

Universit de Savoie

80

Les interruptions
Problmatique & dfinition
l

Un systme informatique nest utile que sil


communique avec lextrieur. Lobjectif est de pouvoir
prendre connaissance que le priphrique sollicite le
processeur. Cette sollicitation arrive de faon
totalement asynchrone.

Deux modes sont possibles :


l

Une mthode par scrutation (polling) permet dinterroger


rgulirement les priphriques afin de savoir si une nouvelle
donne est prsente.
Une mthode par interruption permet au priphrique luimme de faire signe au processeur de sa prsence.

Universit de Savoie

81

Les interruptions
Scrutation Vs interruption
l

Scrutation (polling)
l

Coteux en temps (multiplier par le nombre de priphrique


interroger)
Implmentation : Appel classique une fonction dans le
programme

Interruption
l
l
l

Demande linitiative du priphrique


Prise en compte rapide de lvnement
Implmentation : Interruption asynchrone dun programme
puis retour au mme endroit la fin du traitement

Universit de Savoie

82

Les interruptions
Schma
l

Une interruption est un arrt temporaire de l'excution normale d'un


programme informatique par le microprocesseur afin d'excuter un autre
programme (appel routine d'interruption).

Universit de Savoie

83

Les interruptions
Types dinterruption
l

Interruption masquable
l

Un masque dinterruption est un mot binaire de configuration


du microprocesseur qui permet de choisir (dmasquer) quels
modules pourront interrompre le processeur parmi les
interruptions disponibles.

Interruption non masquable


l

Elles s excutent quoi quil arrive, souvent avec une priorit


lev (ex : Reset)

Universit de Savoie

84

Les interruptions
Configuration
l

Un systme peut accepter plusieurs sources


dinterruption. Chacune est configurable par registre
(registre dinterruption).

Mthode de configuration des interruptions


l
l
l
l

Slectionner les interruptions qui nous intressent


Valider les interruptions de faon globale
Ecrire le/les sous programme dinterruption
Dfinir les priorits entres interruptions

Universit de Savoie

85

Les interruptions
Configuration
l

Dans le sous programme dinterruption


l
l

l
l
l

Sauvegarder le contexte (fait automatique en langage C)


Dfinir la source dinterruption (si le sous programme est commun entres
plusieurs sources dinterruption)
Rinitialiser les flags dinterruption
Ecrire le code relatif lapplication
Restituer le contexte (fait automatique en langage C)

Cas du 80C51 (intel)


Cas du PIC 16F877 (microchip)

Flag dinterruption

Bit de masquage

Les interruptions
Dmasquage des interruptions
l

Autorisation des interruptions


l

Lautorisation globale des interruptions

Dmasquage des interruptions

Universit de Savoie

88

Les interruptions
Les flags dinterruption
l

Visualisation des flags dinterruption

Universit de Savoie

89

Les interruptions
Le rle de la pile
l

La pile est une mmoire LIFO (Last In First


Out) dans laquelle on stoke des variable
temporaire (donne ou adresse). Le haut de la
pile est point par le registre SP (Stack
Pointer).

90

Les interruptions
Rle de la pile
l

Elle va servir :
l

sauvegarder le contexte lenvironnement


(adresse du programme et valeur des registres au
moment de linterruption).
restituer le contexte la fin de linterruption

Note 1 : La sauvegarde et la restitution est faite implicitement en


langage C.
Note 2 : Une fonction dinterruption est not spcifiquement.
Exemple du PIC qui ne possde quun seul vecteur dinterruption
:

Universit de Savoie

91

Les interruptions
Avant linterruption
PC ( Addr Prog )

SP ( Addr Pile)
Programme
principal

Registres
x

Pile

xx

Programme
dinterruption
92

Les interruptions
Arrive dune interruption
SP ( Addr Pile +1)

PC ( Addr Prog IT )

Programme
principal

Registres
x
Addr Prog

Pile

xx

Programme
dinterruption
93

Les interruptions
Arrive dune interruption : Sauvegarde contexte
PC ( Addr Prog )

SP ( Addr Pile + 3)
Programme
principal

Registres
x

x
xx
Addr Prog

Pile

xx

Programme
dinterruption
94

Les interruptions
Fin dune interruption : Restitution contexte
SP ( Addr Pile + 1)

PC ( Addr fin Prog IT)

Programme
principal

Registres
x

xx

Addr Prog

Pile

xx

Programme
dinterruption
95

Les interruptions
Fin dune interruption
PC ( Addr Prog )

SP ( Addr Pile)
Programme
principal

Registres
x

Addr Prog

Pile

xx

Programme
dinterruption
96

Les interruptions
Retour au programme principal
PC ( Addr Prog + 1 )

SP ( Addr Pile)
Programme
principal

Registres
x

Pile

xx

Programme
dinterruption
97

Les interruptions
Exemple sur le PIC 16F877
l
l

Quelle interruption est concerne ici ?


Quelles actions sont ralises pendant le sous-programme
dinterruption?

Universit de Savoie

98

Chapitre 3 : La programmation

3.1 Les interruptions


l 3.2 Le logiciel

Universit de Savoie

99

Le logiciel
La chane de compilation (1)

Universit de Savoie

100

Remplacer les deux lignes du programme C ci dessus


par le code assembleur correspondant
Donner le code machine correspondant chaque
instruction trouve

Le logiciel
La chane de compilation (2)
Le compilateur gnre aussi un fichier listing (en assembleur),
reprsentant le code et les emplacements mmoire qui seront utiliss.

Universit de Savoie

102

Le logiciel
Programmation de la mmoire programme (Flash)
Utilisation dun logiciel de programmation
de mmoire Flash

Universit de Savoie

103

Le logiciel
Programmation de la mmoire programme (Flash)

Universit de Savoie

104

Le logiciel
Avantage du langage C

Universit de Savoie

105