Anda di halaman 1dari 107

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


z Cours : 10.5 h en 7 sances
z

Chapitre 1 : Rappels gnraux sur les processeurs

Chapitre 2 : Les microcontrleurs


z
z

Dfinition
Etude des priphriques

Chapitre 3 : La programmation

Universit de Savoie

Prsentation TD
z 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

Universit de Savoie

Prsentation TP
z TP

: 12h en 3 sances de 4h
z

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

Universit de Savoie

Chapitre 1 : Rappel gnraux sur les


processeurs

z
z
z
z

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

Larchitecture interne
Wafer
Un microprocesseur est constitu dun morceau de silicium dop.
Cest donc un ensemble de millions de transistors.

Wafer : Galette de plusieurs processeurs


z 1 processeur : quelques millimtres carrs
z

Universit de Savoie

Larchitecture interne
Unit commande/traitement

Un microprocesseur est construit autour


de deux lments principaux :
z

Une unit de commande

Une unit de traitement

Universit de Savoie

Larchitecture interne
Schma

Universit de Savoie

Larchitecture interne
Lunit de commande (1)
Elle permet de squencer le droulement des instructions. Elle
effectue la recherche en mmoire de l'instruction, le dcodage
de linstruction code sous forme binaire. Enfin elle pilote
lexcution de linstruction.

Les blocs de lunit de commande :


1.

Le compteur de programme (PC : Programme


Counter) appel aussi Compteur Ordinal (CO)
est constitu par un registre dont le contenu est
initialis avec l'adresse de la premire instruction
du programme. Il contient toujours ladresse de la
prochaine instruction excuter.
Universit de Savoie

Larchitecture interne
Lunit de commande (2)
2.

Le registre d'instruction et le dcodeur d'instruction :


Chacune des instructions excuter est transfr depuis
la mmoire dans le registre instruction puis est dcode
par le dcodeur dinstruction.

3.

Bloc logique de commande (ou squenceur) : Il


organise l'excution des instructions au rythme dune
horloge. Il labore tous les signaux de synchronisation
internes ou externes (bus de commande) du
microprocesseur en fonction de linstruction quil a a
excuter. Il s'agit d'un automate ralis de faon microprogramme.

Universit de Savoie

10

Larchitecture interne
Lunit de commande (3)

Universit de Savoie

11

Larchitecture interne
Lunit de traitement (1)
Elle regroupe les circuits qui assurent les traitements ncessaires
l'excution des instructions

Les blocs de lunit de traitement :


1.

2.

Les accumulateurs sont des registres de travail qui


servent stocker une oprande au dbut d'une
opration arithmtique et le rsultat la fin de
l'opration.
LUnit Arithmtique et Logique (UAL) est un
circuit complexe qui assure les fonctions logiques
(ET, OU, Comparaison, Dcalage, etc) ou
arithmtique (Addition, soustraction).

Universit de Savoie

12

Larchitecture interne
Lunit de traitement (2)
3.

Le registre d'tat est gnralement compos de 8


bits considrer individuellement. Chacun de ces
bits est un indicateur dont l'tat dpend du rsultat
de la dernire opration effectue par lUAL. On les
appelle indicateur dtat ou flag ou drapeaux. Dans
un programme le rsultat du test de leur tat
conditionne souvent le droulement de la suite du
programme. On peut citer par exemple les
indicateurs de :
z
z
z
z

Retenue (carry : C)
Dbordement (overflow : OV ou V)
Zro (Z)
...
Universit de Savoie

13

Larchitecture interne
LUnit de traitement (3)

UAL : Unit Arithmtique et Logique)


A

B
8

OV =Overflow Flag
Slection de
lopration

C = Carry Flag

C0
C1
C2
C3

Z = Zero Flag

UAL

S = Sign Flag
P = Parity Flag

Flag = drapeau
Registre dtat

R
Rsultat

Universit de Savoie

14

Larchitecture interne
Lunit de traitement (4)

Universit de Savoie

15

Larchitecture interne
Architecture complte

Universit de Savoie

16

Rappels: le fonctionnement basique


dune opration de calcul
1
2

CPU

Mmoire
4
3

z
z
z
z

(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

17

Larchitecture
Von Neuman

CPU
z

Un seul chemin d'accs la mmoire


z
z

z
z

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

18

Larchitecture
Harvard

CPU
z

Mmoire
donne

Sparation des mmoires programme et donnes


z
z
z
z

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 :


z

Chargement du programme et des donnes en parallle


19

Larchitecture
Harvard : Cas des microcontrleurs PIC
z

Seul les bus de donne (data ou instructions) sont


reprsentes

Universit de Savoie

20

Chapitre 1 : Rappel gnraux sur les


processeurs
z
z
z
z

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

21

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 :
z

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

22

Le traitement des instructions


Exemple dinstruction
z

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

23

Le traitement des instructions


Phase 1 : Recherche de linstruction en mmoire
z

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


commande qui met un ordre de lecture.
z Aprs le temps d'accs la mmoire, le contenu de la case
mmoire slectionne est disponible sur le bus des donnes.
z L'instruction est stocke dans le registre dinstruction du processeur.

Universit de Savoie

24

Le traitement des instructions


Phase 2 : Dcodage et recherche de loprande
z

L'unit de commande transforme l'instruction en une suite de


commandes lmentaires ncessaires au traitement de l'instruction.
z Si l'instruction ncessite une donne en provenance de la mmoire,
l'unit de commande rcupre sa valeur sur le bus de donnes.
z Loprande est stock dans le registre de donnes.

Universit de Savoie

25

Le traitement des instructions


Phase 3 : Excution de linstruction
z

Le squenceur ralise l'instruction.


z Les drapeaux sont positionns (registre d'tat).
z L'unit de commande positionne le PC pour l'instruction suivante.

Universit de Savoie

26

Le traitement des instructions


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

z L

architecture CISC
(Complex Instruction Set Computer)

z Larchitecture

RISC

(Reduced Instruction Set Computer)

Universit de Savoie

27

Le traitement des instructions


Les architectures RISC et CISC (2)

Universit de Savoie

28

Chapitre 1 : Rappels gnraux sur les


processeurs
z
z
z
z

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

29

Les modes dadressages


z

Ce sont les diverses manires de dfinir la


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

Adressage immdiat
Adressage direct
Adressage indirect

Universit de Savoie

30

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

110
1 0101
ADDA

adrs + 1

0 1 1 0#41 0 0 1

adrs + 2

Accumulateur

Adresses

1..
010 1101

0011 1000
1
100 0101
1
010 1001
.
0111 1010

Universit de Savoie

31

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

110
1 0101
ADDA

adrs + 1

0 adresseX
110 1001

adrs + 2

Accumulateur

Adresses

1010 1101

adresseX

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

Universit de Savoie

32

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

110
1 0101
ADDA

adrs + 1

0@adresseX
110 1001

adrs + 2

Accumulateur

Adresses

1010 1101

@adresseX

0 adresseX
011 1000
1
100 0101

adresseX

1 0 1 0 xxxxxx
1001
xxxxx
.
0111 1010

Universit de Savoie

33

Les modes dadressages


z

Pourquoi existe-t-il plusieurs modes dadressage ?

Universit de Savoie

34

Chapitre 1 : Rappel gnraux sur les


processeurs
z
z
z
z

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

35

Exemple dexcution
Directives
dassemblage
Valeurs des
symboles
00000040
00000000
00000001

.TITLE
.PROC
.START

Bruit_HP
I8085
OSCIL

; Titre du programme
; Processeur utilis
; Adresse dbut programme

HP
HPOFF
HPON

=
=
=

; Adresse du Haut-Parleur (40 Hexa)


; Constante, membrane relache
; Constante, membrane attire

000000

.LOC 0

000000

OSCIL:

000000
000002
000004
000006
000008
00000B

Adresses

3E
D3
3E
D3
C3

00
40
01
40
00 00

MOVE
MOVE
MOVE
MOVE
JUMP

Code des .END


instructions

1064
0
1

Mnmoniques
des instructions
#HPOFF, A
A, $HP
#HPON, A
A, $HP
OSCIL

; Adresse dassemblage du programme

; Charge valeur HPOFF (0) dans laccumulateur A


; Charge A sur priphrique HP
; Charge valeur HPON (1) dans laccumulateur A
; Charge A sur priphrique HP
; Saute au dbut OSCIL

; Fin de lassemblage

Commentaires
36

Exemple dexcution
Programme:
instructions
Adresses

.00

3E

.01

00

.02

D3

.03

40

.04

3E

Vue symbolique

MOVE

,A
MOVE #HPOFF,A

#HPOFF
MOVE A,
MOVE A,$HP

$HP
MOVE

,A
MOVE #HPON,A

.05

01

.06

D3

.07

40

.08

C3

.09

00

0A

00

#HPON
MOVE A,
MOVE A,$HP

$HP
JUMP
JUMP OSCIL

OSCIL
37

Exemple dexcution
Continue.

re

e
le cle
le
l
c
c
c
u
u
u
u
bo e bo e bo e bo
m
m
m
i
i
i
2
4
3

Universit de Savoie

38

Chapitre 2 : Les microcontrleurs

z
z
z
z
z
z
z

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

39

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 :
z Un processeur cadenc 12 MHz
z 128 octets de mmoire vive
z Une EPROM de 2048 bits
z De nombreuse entres-sorties

Universit de Savoie

40

Dfinition dun microcontrleur


Avantages
z

Cout rduit

Encombrement moindre

Fiabilit

Mise en uvre plus simple

Consommation plus faible

Universit de Savoie

42

Dfinition dun microcontrleur


Contenu
z

La structure interne d'un microcontrleur comporte


typiquement :
z
z
z
z
z
z
z

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 :


z
z
z
z

Un Watchdog : (surveillance du programme)


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

43

Dfinition dun microcontrleur


Exemple : Microcontrleur PIC 16F877

Universit de Savoie

44

Dfinition dun microcontrleur


Les mmoires
z

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. En revanche, le
contenu peut tre modifi en cours dutilisation de lapplication.

Universit de Savoie

45

Dfinition dun microcontrleur


Les mmoires
z

RAM memory :
z

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

46

Dfinition dun microcontrleur


Les mmoires
Dclaration de i en RAM

Dtail dun registre SFR

Affectation dune valeur


un registre SFR

Universit de Savoie

47

Chapitre 2 : Les microcontrleurs

z
z
z
z
z
z
z

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

Cadencement du microcontrleur
Schma du pic 16F877

Universit de Savoie

49

Cadencement du microcontrleur
Les cadencements possibles (1)
z

Quartz
z

Trs bonne Stabilit (10 ppm)

Rsonateur cramique
z
z

Stabilit ( 0.5%)
Moins couteux que le quartz

50

Cadencement du microcontrleur
Les cadencements possibles (2)
z

Externe
z

Permet de synchroniser plusieurs lments du microsystme

RC
z
z

Trs peu stable mais trs faible cout


Pas possible pour tous les microprocesseurs

51

Chapitre 2 : Les microcontrleurs

z
z
z
z
z
z
z

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

52

Les timers
Mode compteur ou temporisateur
z

Un timer est le nom courant de compteur /


temporisateur . Il sert :

- Mesurer du temps (compter le nombre de coup


dhorloge) > Mode temporisateur

- Compter le nombre
dvnement sur une broche
(exemple : Nombre dappuis
sur un bouton poussoir > Mode
compteur

Universit de Savoie

53

Les timers
Mode compteur ou temporisateur
z

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


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

z
z

Dans quelle mode fonctionne le timer ici?


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

Universit de Savoie

54

Les timers
Utilisation dun prescaler
z

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

55

Chapitre 2 : Les microcontrleurs

z
z
z
z
z
z
z

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

56

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

57

Les ports dentre / Sortie


z

Quelles sont les ports dE/S de ce microcontrleur?

Universit de Savoie

58

Les ports dentre / Sortie


Les sorties logiques

z Sortie

trois tats

z Sortie

collecteur ouvert

Universit de Savoie

60

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

61

Les ports dentre / Sortie


2. Sortie collecteur ouvert (1)

Fonctionnement
T2

Satur

"0"

Bloqu

Dpend du montage

Universit de Savoie

62

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"
z Une sortie collecteur ouvert peut commander une charge
sous une tension diffrente de la tension d'alimentation.
Universit de Savoie

63

Les ports dentre / Sortie


Entre trigger de Schmitt

"1"
"0"

Vseuil- Vseuil+

Universit de Savoie

Vi

64

Chapitre 2 : Les microcontrleurs

z
z
z
z
z
z
z

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

65

La liaison srie
z

La liaison srie USART (Universal Synchronous Asynchronous


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

66

La liaison srie
Connexions (1)
z

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 :
z
z

RxD, signal de rception de lUSART


TxD, signal de transmission de lUSART

Universit de Savoie

67

La liaison srie
Connexions (2)

1re tape :
2ime tape :

Configuration de la transmission
Envoyer et recevoir des donnes
Universit de Savoie

68

La liaison srie
USART Transmit bloc register

Universit de Savoie

69

La liaison srie
USART receive bloc register

Universit de Savoie

70

Chapitre 2 : Les microcontrleurs

z
z
z
z
z
z
z

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

71

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.

Universit de Savoie

72

MICROCONTROLEUR

Le Watchdog (2)

73

Chapitre 2 : Les microcontrleurs

z
z
z
z
z
z
z

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

74

Le CAN
z

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

75

Le CAN

Le CAN
Daprs la datasheet :
z
z
z
z
z
z

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

77

Le CAN
z

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.
z Exprimer la valeur analogique en fonction de Vref+, Vref- et de la
valeur numrique donne par le convertisseur.
Universit de Savoie

78

Le CAN
z

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

79

Le CAN
z

Dans lapplication ci-dessous, donner :


z
z

La rsolution
Lexpression de Vin en fonction de la valeur numrique du
convertisseur.

Universit de Savoie

80

Le CAN
z

Vitesse maximale du convertisseur

Universit de Savoie

81

Gamme des microcontrleurs


z Exemple

chez microchip

http://www.microchip.com/

z Exemple

chez ATMEL

http://www.atmel.com/

z Exemple

chez ARM

http://www.arm.com/

Etc
Universit de Savoie

82

Chapitre 3 : La programmation

z 3.1

Les interruptions
z 3.2 Le logiciel

Universit de Savoie

83

Les interruptions
Problmatique & dfinition
z

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 :


z

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

84

Les interruptions
Scrutation Vs interruption
z

Scrutation (polling)
z

Coteux en temps (multiplier par le nombre de priphrique


interroger)
Implmentation : Appel classique une fonction dans le
programme

Interruption
z
z
z

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

85

Les interruptions
Schma
z

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

86

Les interruptions
Types dinterruption
z

Interruption masquable
z

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


z

Elles s excutent quoi quil arrive, souvent avec une priorit


lev (ex : Reset)

Universit de Savoie

87

Les interruptions
Configuration
z

Un systme peut accepter plusieurs sources


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

Mthode de configuration des interruptions


z
z
z
z

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

88

Les interruptions
Configuration
z

Dans le sous programme dinterruption


z
z

z
z
z

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
z Autorisation

des interruptions

Lautorisation globale des interruptions

Dmasquage des interruptions

Universit de Savoie

91

Les interruptions
Les flags dinterruption
z Visualisation

des flags dinterruption

Universit de Savoie

92

Les interruptions
Le rle de la pile
z

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

93

Les interruptions
Rle de la pile
z

Elle va servir :
z

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

94

Les interruptions
Avant linterruption
PC ( Addr Prog )

SP ( Addr Pile)
Programme
principal

Registres
x

Pile

xx

Programme
dinterruption
95

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

PC ( Addr Prog IT )

Programme
principal

Registres
x
Addr Prog

Pile

xx

Programme
dinterruption
96

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
97

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
98

Les interruptions
Fin dune interruption
PC ( Addr Prog )

SP ( Addr Pile)
Programme
principal

Registres
x

Addr Prog

Pile

xx

Programme
dinterruption
99

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

SP ( Addr Pile)
Programme
principal

Registres
x

Pile

xx

Programme
dinterruption
100

Les interruptions
Exemple sur le PIC 16F877
z
z

Quelle interruption est concerne ici ?


Quelles actions sont ralises pendant le sous-programme
dinterruption?

Universit de Savoie

101

Chapitre 3 : La programmation

z 3.1

Les interruptions
z 3.2 Le logiciel

Universit de Savoie

102

Le logiciel
La chane de compilation

Universit de Savoie

103

Remplacer les deux lignes du programme C par le


code assembleur correspondant
Donner le code machine correspondant chaque
instruction trouve

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

Universit de Savoie

105

Le logiciel
Programmation de la mmoire programme (Flash)

Universit de Savoie

106

Le logiciel
Avantage du langage C

Universit de Savoie

107

Anda mungkin juga menyukai