Vous êtes sur la page 1sur 112

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
Universit de Savoie 2
Prsentation cours : Sommaire
l Cours : 10.5 h en 7 sances
l Chapitre 1 : Rappels gnraux sur les processeurs
l Chapitre 2 : Les microcontrleurs
l Dfinition
l Etude des priphriques
l Chapitre 3 : La programmation
Universit de Savoie 3
Prsentation TD
lTD : 10.5 h en 7 sances
l TD1 : Rappel sur les systmes microprocesseur. Cadencement
dun microcontrleur. Instructions assembleurs.
l TD2 : Utilisation du timer dun microcontrleur. Configuration des
ports dentre/sortie dun microcontrleur.
l TD3 : Les interruptions
l TD4 : Gestion dafficheur 7 segments
l TD5 : Conversion Analogique / Numrique
Universit de Savoie 4
Prsentation TP
l TP : 12h en 3 sances de 4h
l TP1 : Prise en main dun environnement de
programmation sur microcontrleur
l TP2 : Etude du Watchdog, et des interruptions
dans un microcontrleur
l TP3 : Ralisation dun minuteur laide dun
afficheur 7 segments.
Universit de Savoie 5
Chapitre 1 : Rappel gnraux sur les
processeurs
l 1.1 Rappel sur larchitecture interne des
microprocesseurs
l 1.2 Le traitement des instructions
l 1.3 Les modes dadressages
l 1.4 Exemple dexcution dun programme
Universit de Savoie 6
Larchitecture interne
Wafer
Un microprocesseur est constitu dun morceau de silicium dop.
Cest donc un ensemble de millions de transistors.
l Wafer : Galette de plusieurs processeurs
l 1 processeur : quelques millimtres carrs
Universit de Savoie 7
Larchitecture interne
Unit commande/traitement
Un microprocesseur est construit autour
de deux lments principaux :
l Une unit de commande
l Une unit de traitement
Universit de Savoie 8
Larchitecture interne
Schma
Universit de Savoie 9
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 10
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 micro-
programme.
Universit de Savoie 11
Larchitecture interne
Lunit de commande (3)
Universit de Savoie 12
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. 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.
2. 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 13
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 :
l Retenue (carry : C)
l Dbordement (overflow : OV ou V)
l Zro (Z)
l ...
Universit de Savoie 14
Larchitecture interne
LUnit de traitement (3)
UAL : Unit Arithmtique et Logique
A
B
UAL
OV =Overflow Flag
C0
R
8 bits
8 bits
8 bits
Slection de
lopration
Rsultat
Flag :
Ce sont des Bits
positionnes dans
un registre
C1
C2
C3
C =Carry Flag
Z =Zero Flag
S =Sign Flag
P =Parity Flag
Registre dtat
Universit de Savoie 15
Larchitecture interne
Lunit de traitement (4)
Universit de Savoie 16
Larchitecture interne
Architecture complte
Universit de Savoie 17
Rappels: le fonctionnement basique
dune opration de calcul
l (1) Charger une instruction depuis la mmoire
l (2) Charger les oprandes depuis la mmoire
l (3) Effectuer les calculs
l (4) Stocker le rsultat en mmoire
Mmoire CPU
1
2
3
4
Universit de Savoie 18
Larchitecture
Von Neuman
l Un seul chemin d'accs la mmoire
l Un bus de donnes (programme et donnes),
l Un bus dadresse (programme et donnes)
l Architecture des processeurs dusage gnral
l Goulot d'tranglement pour l'accs la mmoire
BUS
Mmoire
Programme
&
donnes
CPU
19
Larchitecture
Harvard
l Sparation des mmoires programme et donnes
l Un bus de donnes programme,
l Un bus de donnes pour les donnes,
l Un bus dadresse programme,
l Un bus dadresse pour les donnes.
l Meilleure utilisation du CPU :
l Chargement du programme et des donnes en parallle
Mmoire
programme
Mmoire
donne
CPU
Universit de Savoie 20
Larchitecture
Harvard : Cas des microcontrleurs PIC
l Seul les bus de donne (data ou instructions) sont
reprsentes
Universit de Savoie 21
Chapitre 1 : Rappel gnraux sur les
processeurs
l 1.1 Rappel sur larchitecture interne des
microprocesseurs
l 1.2 Le traitement des instructions
l 1.3 Les modes dadressages
l 1.4 Exemple dexcution dun programme
Universit de Savoie 22
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
l 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 23
Le traitement des instructions
Exemple dinstruction
l Instruction Addition :
Accumulateur = Accumulateur + Oprande
Correspond linstruction ADD A,#2
Cette instruction est comprise par le processeur par le mot binaire :
11001 000 0000 0010 = code machine
Instruction (16 bits)
Code opratoire (5 bits) Champ oprande (11 bits)
ADD A #2
11001 000 0000 0010
Universit de Savoie 24
Le traitement des instructions
Phase 1 : Recherche de linstruction en mmoire
l La valeur du PC est place sur le bus d'adresse par l'unit de
commande qui met un ordre de lecture.
l Aprs le temps d'accs la mmoire, le contenu de la case
mmoire slectionne est disponible sur le bus des donnes.
l L'instruction est stocke dans le registre dinstruction du processeur.
Universit de Savoie 25
Le traitement des instructions
Phase 2 : Dcodage et recherche de loprande
l L'unit de commande transforme l'instruction en une suite de
commandes lmentaires ncessaires au traitement de l'instruction.
l Si l'instruction ncessite une donne en provenance de la mmoire,
l'unit de commande rcupre sa valeur sur le bus de donnes.
l Loprande est stock dans le registre de donnes.
Universit de Savoie 26
Le traitement des instructions
Phase 3 : Excution de linstruction
l Le squenceur ralise l'instruction.
l Les drapeaux sont positionns (registre d'tat).
l L'unit de commande positionne le PC pour l'instruction suivante.
Universit de Savoie 27
Le traitement des instructions
Les architectures RISC et CISC (1)
Actuellement larchitecture des microprocesseurs se
composent de deux grandes familles :
l L architecture CISC
(Complex Instruction Set Computer)
l Larchitecture RISC
(Reduced Instruction Set Computer)
Universit de Savoie 28
Le traitement des instructions
Les architectures RISC et CISC (2)
Universit de Savoie 29
Chapitre 1 : Rappels gnraux sur les
processeurs
l 1.1 Rappel sur larchitecture interne des
microprocesseurs
l 1.2 Le traitement des instructions
l 1.3 Les modes dadressages
l 1.4 Exemple dexcution dun programme
Universit de Savoie 30
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 Adressage immdiat
l Adressage direct
l Adressage indirect
Universit de Savoie 31
Les modes dadressages
Immdiat
A
c
c
u
m
u
l
a
t
e
u
r
adrs+1
PC
Compteur Ordinal
ALU
0x00
0x01
Adresses
0 1 1 0 1 1 0 1
0 1 0 0 0 1 0 1
0 0 1 0 1 1 1 1
1 1 0 1 0 1 0 1
0 1 1 0 1 0 0 1
1 0 1 0 1 1 0 1
0 0 1 1 1 0 0 0
1 1 0 0 0 1 0 1
1 0 1 0 1 0 0 1
0 1 1 1 1 0 1 0
Contenu
Mmoire
0x00
0x01
Adresses
..
..
..
ADDA
#4
..

.

M
adrs
adrs + 1
adrs + 2
Exemple : ADDA #4
Universit de Savoie 32
Les modes dadressages
Direct
A
c
c
u
m
u
l
a
t
e
u
r
adrs+1
PC
Compteur Ordinal
ALU
0x00
0x01
Adresses
0 1 1 0 1 1 0 1
0 1 0 0 0 1 0 1
0 0 1 0 1 1 1 1
1 1 0 1 0 1 0 1
0 1 1 0 1 0 0 1
1 0 1 0 1 1 0 1
0 0 1 1 1 0 0 0
1 1 0 0 0 1 0 1
1 0 1 0 1 0 0 1
0 1 1 1 1 0 1 0
Mmoire
0x00
0x01
Adresses
..
..
..
ADDA
adresseX
xxxx xxxx

.

Mmoire
adrs
adrs + 1
adrs + 2
Exemple : ADDA adresseX
adresseX
Contenu
Universit de Savoie 33
Les modes dadressages
Indirect
A
c
c
u
m
u
l
a
t
e
u
r
adrs+1
PC
Compteur Ordinal
ALU
0x00
0x01
Adresses
0 1 1 0 1 1 0 1
0 1 0 0 0 1 0 1
0 0 1 0 1 1 1 1
1 1 0 1 0 1 0 1
0 1 1 0 1 0 0 1
1 0 1 0 1 1 0 1
0 0 1 1 1 0 0 0
1 1 0 0 0 1 0 1
1 0 1 0 1 0 0 1
0 1 1 1 1 0 1 0
Mmoire
0x00
0x01
Adresses
..
..
..
ADDA
@adresseX
adresseX

xxxxx xxxxxx
.

Mmoire
adrs
adrs + 1
adrs + 2
Exemple : ADDA @adresseX
@adresseX
adresseX
Contenu
Universit de Savoie 34
Les modes dadressages
l Pourquoi existe-t-il plusieurs modes dadressage ?
Universit de Savoie 35
Chapitre 1 : Rappel gnraux sur les
processeurs
l 1.1 Rappel sur larchitecture interne des
microprocesseurs
l 1.2 Le traitement des instructions
l 1.3 Les modes dadressages
l 1.4 Exemple dexcution dun programme
Universit de Savoie 36
Exemple dexcution (1)
Le compilateur gnre aussi un fichier assembleur, reprsentant le code
et les emplacements mmoire qui seront utiliss.
Universit de Savoie 37
Exemple dexcution (2)
linfinie
PORTC
38
Le jeu dinstruction du PIC16F
Daprs la datasheet :
l Quelles sont les trois grandes catgories dinstruction du PIC16F877A?
l Quelle est la taille dune instruction en mmoire ?
l Expliquez les instructions : INCFSZ, BTFSC, ANDLW et donner un
exemple dutilisation pour chacune de ces instructions.
l Le programme compil ci-dessous rassemble un code excutable de la
forme suivante, donner la squence dinstruction ralise et laction de
chacune :
l 0187h CLRF PORTC;
l 2822h GOTO 22h;
l 0987h COMF PORTC,1;
l 0BFCh DECFSZ 7C,1;
Universit de Savoie 39
Chapitre 2 : Les microcontrleurs
l 2.1 Dfinition dun microcontrleur
l 2.2 Cadencement du microcontrleur
l 2.3 Les timers
l 2.4 Les ports dentre/sortie
l 2.5 La liaison srie
l 2.6 Le watchdog
l 2.7 Le CAN
Universit de Savoie 40
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 42
Dfinition dun microcontrleur
Avantages
l Cout rduit
l Encombrement moindre
l Fiabilit
l Mise en uvre plus simple
l Consommation plus faible
Universit de Savoie 43
Dfinition dun microcontrleur
Contenu
l La structure interne d'un microcontrleur comporte
typiquement :
l Une unit de calcul et de commande
l Mmoire ROM
l Mmoire RAM
l Un contrleur dinterruption
l Un compteur/temporisateur (timer)
l Des entres/sorties parallles (ports)
l Un UART (port srie)
l Il peut aussi possder :
l Un Watchdog: (surveillance du programme)
l Une sortie PWM (modulation dimpulsion)
l Un CAN/CNA (Convertisseur analogique numrique)
l Un interface IC, CAN
Universit de Savoie 44
Dfinition dun microcontrleur
Exemple : Microcontrleur PIC 16F877
Universit de Savoie 45
Dfinition dun microcontrleur
Les mmoires (1)
l ROM memory :
Aussi appel ( juste titre) program memory.
Cest une mmoire Flash qui contient le
programme excuter.
l EEPROM memory
Cest une mmoire similaire la mmoire programme. En revanche, le
contenu peut tre modifi en cours dutilisation de lapplication.
Universit de Savoie 46
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
l 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 47
Dfinition dun microcontrleur
Les mmoires (3)
Dtail dun registre SFR
Dclaration de i en RAM
Affectation dune valeur
un registre SFR
Universit de Savoie 48
Chapitre 2 : Les microcontrleurs
l 2.1 Dfinition dun microcontrleur
l 2.2 Cadencement du microcontrleur
l 2.3 Les timers
l 2.4 Les ports dentre/sortie
l 2.5 La liaison srie
l 2.6 Le watchdog
l 2.7 Le CAN
Universit de Savoie 49
Cadencement du microcontrleur
Schma du pic 16F877
50
Cadencement du microcontrleur
Les cadencements possibles (1)
l Quartz
l Trs bonne Stabilit (10 ppm)
l Rsonateur cramique
l Stabilit ( 0.5%)
l Moins couteux que le quartz
l Exemple pour un oscillateur 8 Mhz
Quartz : Frquence +/- 80 Hz
Rsonateur : Frquence +/- 40 000 Hz
51
Cadencement du microcontrleur
Les cadencements possibles (2)
l Externe
l Permet de synchroniser plusieurs lments du microsystme
l RC
l Trs peu stable mais trs faible cout
l Pas possible pour tous les microprocesseurs
Universit de Savoie 52
Chapitre 2 : Les microcontrleurs
l 2.1 Dfinition dun microcontrleur
l 2.2 Cadencement du microcontrleur
l 2.3 Les timers
l 2.4 Les ports dentre/sortie
l 2.5 La liaison srie
l 2.6 Le watchdog
l 2.7 Le CAN
Universit de Savoie 53
Les timers
Mode compteur ou temporisateur (1)
l 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 54
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 Dans quelle mode fonctionne le timer ici?
l Donner la valeur du temps en fonction de A et B dans cette
application.
Universit de Savoie 55
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 56
Chapitre 2 : Les microcontrleurs
l 2.1 Dfinition dun microcontrleur
l 2.2 Cadencement du microcontrleur
l 2.3 Les timers
l 2.4 Les ports dentre/sortie
l 2.5 La liaison srie
l 2.6 Le watchdog
l 2.7 Le CAN
Universit de Savoie 57
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 58
Les ports dentre / Sortie
l Quelles sont les ports dE/S de ce microcontrleur?
Universit de Savoie 60
Les ports dentre / Sortie
Les sorties logiques
l Sortie trois tats
l Sortie collecteur ouvert
Universit de Savoie 61
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
l 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 62
Les ports dentre / Sortie
2. Sortie collecteur ouvert (1)
Fonctionnement
T2 S
Satur "0"
Bloqu Dpend du montage
Universit de Savoie 63
Les ports dentre / Sortie
2. Sortie collecteur ouvert (2)
l 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"
l Une sortie collecteur ouvert peut commander une charge
sous une tension diffrente de la tension d'alimentation.
Universit de Savoie 64
Les ports dentre / Sortie
Entre trigger de Schmitt

"0"
"1"
Vi
V
seuil-
V
seuil+

Universit de Savoie 65
Les ports dentre / Sortie
l Bouton poussoir :
l 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 66
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?
l Quelle mise en garde est faite pour le PORTA?
l Quelle particularit du PORTB peut nous tre utile
pour connecter un bouton poussoir par exemple?
Universit de Savoie 67
Chapitre 2 : Les microcontrleurs
l 2.1 Dfinition dun microcontrleur
l 2.2 Cadencement du microcontrleur
l 2.3 Les timers
l 2.4 Les ports dentre/sortie
l 2.5 La liaison srie
l 2.6 Le watchdog
l 2.7 Le CAN
68
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).
Universit de Savoie 69
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).
l 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 RxD, signal de rception de lUSART
l TxD, signal de transmission de lUSART
Universit de Savoie 70
La liaison srie
Connexions (2)
1
re
tape : Configuration de la transmission
2
ime
tape : Envoyer et recevoir des donnes
Universit de Savoie 71
La liaison srie
USART Transmit bloc register
Universit de Savoie 72
La liaison srie
USART receive bloc register
Universit de Savoie 73
La liaison srie
Daprs la datasheet :
l Pourquoi avons-nous une corrlation entre le fait
dtre synchrone/Asynchrone et full duplex / half
duplex?
l Prenez note de toutes les tapes raliser pour
configurer une liaison srie.
l Configurer la liaison pour quelle soit cadence 9600
bauds.
Universit de Savoie 74
Chapitre 2 : Les microcontrleurs
l 2.1 Dfinition dun microcontrleur
l 2.2 Cadencement du microcontrleur
l 2.3 Les timers
l 2.4 Les ports dentre/sortie
l 2.5 La liaison srie
l 2.6 Le watchdog
l 2.7 Le CAN
Universit de Savoie 75
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.
76
Le Watchdog (2)
M
I
C
R
O
C
O
N
T
R
O
L
E
U
R
Universit de Savoie 77
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)
l Quel est leffet dun watchdog time out?
l Quelle instruction du PIC permet de raliser le reset du
Watchdog? Comment allez vous coder cette instruction
en C?
Universit de Savoie 78
Chapitre 2 : Les microcontrleurs
l 2.1 Dfinition dun microcontrleur
l 2.2 Cadencement du microcontrleur
l 2.3 Les timers
l 2.4 Les ports dentre/sortie
l 2.5 La liaison srie
l 2.6 Le watchdog
l 2.7 Le CAN
Universit de Savoie 79
Le CAN
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.
l Trs souvent, il faut configur les entres de
conversion en entre analogique car celles-ci
peuvent aussi tre utilise en entre numrique.
Le CAN
Universit de Savoie 81
Le CAN
Daprs la datasheet :
l Quel est le nombre de bits du convertisseur AN.
l Dans quels registres est stock le rsultat?
l Comment fait-on pour justifier le rsultat droite ou
gauche.
l Combien possde t on de voies multiplexs?
l A quoi correspond Vref+ et Vref - ?
l Comment configure t on une entre en analogique?
Universit de Savoie 82
Le CAN
l Sur lapplication ci-dessous, quelle est la rsolution maximale que
nous pourrons avoir?
l 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 83
Le CAN
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 84
Le CAN
l Dans lapplication ci-dessous, donner :
l La rsolution
l Lexpression de Vin en fonction de la valeur numrique du
convertisseur.
Universit de Savoie 85
Le CAN
l Vitesse maximale du convertisseur
Universit de Savoie 86
Gamme des microcontrleurs
l Exemple chez ST micro
http://www.st.com >>gamme STM
l Exemple chez microchip
http://www.microchip.com/ >>gamme PIC
l Exemple chez ATMEL
http://www.atmel.com/ >>gamme AVR
l Exemple chez Infineon
http://www.infineon.com
Etc
Universit de Savoie 87
Chapitre 3 : La programmation
l 3.1 Les interruptions
l 3.2 Le logiciel
Universit de Savoie 88
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.
l Une mthode par interruption permet au priphrique lui-
mme de faire signe au processeur de sa prsence.
Universit de Savoie 89
Les interruptions
Scrutation Vs interruption
l Scrutation (polling)
l Coteux en temps (multiplier par le nombre de priphrique
interroger)
l Implmentation : Appel classique une fonction dans le
programme
l Interruption
l Demande linitiative du priphrique
l Prise en compte rapide de lvnement
l Implmentation : Interruption asynchrone dun programme
puis retour au mme endroit la fin du traitement
Universit de Savoie 90
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 91
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.
l Interruption non masquable
l Elles s excutent quoi quil arrive, souvent avec une priorit
lev (ex : Reset)
Universit de Savoie 92
Les interruptions
Configuration
l Un systme peut accepter plusieurs sources
dinterruption. Chacune est configurable par registre
(registre dinterruption).
l Mthode de configuration des interruptions
l Slectionner les interruptions qui nous intressent
l Valider les interruptions de faon globale
l Ecrire le/les sous programme dinterruption
l Dfinir les priorits entres interruptions
Les interruptions
Configuration
l Dans le sous programme dinterruption
l Sauvegarder le contexte (fait automatique en langage C)
l Dfinir la source dinterruption (si le sous programme est commun entres
plusieurs sources dinterruption)
l Rinitialiser les flags dinterruption
l Ecrire le code relatif lapplication
l Restituer le contexte (fait automatique en langage C)
Cas du PIC 16F877 (mi crochip)
Cas du 80C51 (intel)
Flag dinterruption Bit de masquage
Universit de Savoie 95
Les interruptions
Dmasquage des interruptions
l Autorisation des interruptions
l Lautorisation globale des interruptions
l Dmasquage des interruptions
Universit de Savoie 96
Les interruptions
Les flags dinterruption
l Visualisation des flags dinterruption
97
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).
Universit de Savoie 98
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).
l 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
:
99
x
xx
PC ( Addr Prog )
Registres
Programme
dinterruption
Programme
principal
Les interruptions
Avant linterruption
Pile
SP ( Addr Pile)
100
xx
Registres
Programme
dinterruption
Programme
principal
Addr Prog
Les interruptions
Arrive dune interruption
Pile
SP ( Addr Pile +1)
PC ( Addr Prog IT )
x
101
x
xx
Registres
x
Programme
dinterruption
Programme
principal
Addr Prog
xx
Les interruptions
Arrive dune interruption : Sauvegarde contexte
Pile
SP ( Addr Pile + 3) PC ( Addr Prog )
102
x
xx
Registres
x
Programme
dinterruption
Programme
principal
Addr Prog
xx
Les interruptions
Fin dune interruption : Restitution contexte
Pile
SP ( Addr Pile + 1)
PC ( Addr fin Prog IT)
103
x
xx
Registres
Programme
dinterruption
Programme
principal
Addr Prog
Les interruptions
Fin dune interruption
Pile
SP ( Addr Pile) PC ( Addr Prog )
104
x
xx
Registres
Programme
dinterruption
Programme
principal
Les interruptions
Retour au programme principal
Pile
SP ( Addr Pile)
PC ( Addr Prog + 1 )
Universit de Savoie 105
Les interruptions
Exemple sur le PIC 16F877
l Quelle interruption est concerne ici ?
l Quelles actions sont ralises pendant le sous-programme
dinterruption?
Universit de Savoie 106
Chapitre 3 : La programmation
l 3.1 Les interruptions
l 3.2 Le logiciel
Universit de Savoie 107
Le logiciel
La chane de compilation (1)
Remplacer les deux lignes du programme C ci dessus
par le code assembleur correspondant
Donner le code machine correspondant chaque
instruction trouve
Universit de Savoie 109
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 110
Le logiciel
Programmation de la mmoire programme (Flash)
Utilisation dun logiciel de programmation
de mmoire Flash
Universit de Savoie 111
Le logiciel
Programmation de la mmoire programme (Flash)
Universit de Savoie 112
Le logiciel
Avantage du langage C