Cours - Microprocesseurs et Microcontroleurs

publicité
Microprocesseurs
&
Microcontrôleurs
Sylvain MONTAGNY
[email protected]
Bâtiment chablais, bureau 13
04 79 75 86 86
Retrouver tous les documents de Cours/TD/TP sur le site
www.master-electronique.com
Présentation cours : Sommaire
l Cours : 10.5 h en 7 séances
l
Chapitre 1 : Rappels généraux sur les processeurs
l
Chapitre 2 : Les microcontrôleurs
l
l
l
Définition
Etude des périphériques
Chapitre 3 : La programmation
Université de Savoie
2
Présentation TD
l TD
: 10.5 h en 7 séances
l
TD1 : Rappel sur les systèmes à microprocesseur. Cadencement
d’un microcontrôleur. Instructions assembleurs.
l
TD2 : Utilisation du timer d’un microcontrôleur. Configuration des
ports d’entrée/sortie d’un microcontrôleur.
l
TD3 : Les interruptions
l
TD4 : Gestion d’afficheur 7 segments
l
TD5 : Conversion Analogique / Numérique
Université de Savoie
3
Présentation TP
l
TP : 12h en 3 séances de 4h
l
TP1 : Prise en main d’un environnement de
programmation sur microcontrôleur
l
TP2 : Etude du Watchdog, et des interruptions
dans un microcontrôleur
l
TP3 : Réalisation d’un minuteur à l’aide d’un
afficheur 7 segments.
Université de Savoie
4
Chapitre 1 : Rappel généraux sur les
processeurs
l
l
l
l
1.1 Rappel sur l’architecture interne des
microprocesseurs
1.2 Le traitement des instructions
1.3 Les modes d’adressages
1.4 Exemple d’exécution d’un programme
Université de Savoie
5
Le microprocesseur
Architecture interne (1)
Bus d’adresses
Microprocesseur
Unité de
commande
Programme
Mémoire
Unité
de
Accumulateur
traitement
Registre
d’état
Données
Bus de données
6
Le microprocesseur
Architecture interne (2)
Bus d’adresses
Microprocesseur
PC
Programme
Mémoire
Accumulateur
Accumulateur
Registre
d’état
Registre
d’état
Bloc logique
de commande
Décodeur
d’instruction
Données
Bus de données
7
Le microprocesseur
Unité de commande
Elle permet de séquencer le déroulement des instructions.
Bus d’adresse
PC
Bloc logique
de commande
Instruction
Décodeur
d’instruction
PC : Programme Counter, appelé aussi
Compteur Ordinal. Il contient toujours
l’adresse de la prochaine instruction à
exécuter.
Le décodeur d'instruction : Le mot binaire
(instruction) est décodé pour savoir à quelle
action correspond l’instruction.
Bloc logique de commande (séquenceur) :
Il organise l'exécution des instructions au
rythme de l’horloge. Il élabore tous les
signaux
de
synchronisation
du
microprocesseur en fonction de l’instruction
qu’il a à exécuter.
8
Le microprocesseur
Unité de traitement
Elle exécute les instructions.
Microprocesseur
Accumulateur
Accumulateur
Registre
d’état
Registre
d’état
L’accumulateur : C’est un registre de travail qui
sert à stocker le résultat des opérations réalisées
par L’UAL.
L’Unité Arithmétique et Logique (UAL) est un
circuit complexe qui assure les fonctions logiques
(ET, OU, comparaison, décalage, etc…) ou
arithmétique (addition, soustraction…).
Le registre d'état : Chacun des bits de ce
registre dépend du résultat de la dernière
opération effectuée par l’UAL. Exemple : Bit de
retenue (carry : C), débordement (overflow : OV
ou V), Zéro (Z) ...
9
Le traitement des instructions
Résumé
1
2
CPU
Mémoire
4
3
l
l
l
l
(1) Charger une instruction depuis la mémoire
(2) Charger les opérandes depuis la mémoire
(3) Effectuer les calculs
(4) Stocker le résultat en mémoire
Université de Savoie
10
L’architecture
Von Neuman
CPU
l
Un seul chemin d'accès à la mémoire
l
l
l
l
BUS
Mémoire
Programme
&
données
Un bus de données (programme et données),
Un bus d’adresse (programme et données)
Architecture des processeurs d’usage général
Goulot d'étranglement pour l'accès à la mémoire
Université de Savoie
11
L’architecture
Harvard
CPU
l
Mémoire
donnée
Séparation des mémoires programme et données
l
l
l
l
l
Mémoire
programme
Un bus de données programme,
Un bus de données pour les données,
Un bus d’adresse programme,
Un bus d’adresse pour les données.
Meilleure utilisation du CPU :
l
Chargement du programme et des données en parallèle
12
L’architecture
Harvard : Cas des microcontrôleurs PIC
l
Seul les bus de donnée (data ou instructions) sont
représentées
Université de Savoie
13
Chapitre 1 : Rappel généraux sur les
processeurs
l
l
l
l
1.1 Rappel sur l’architecture interne des
microprocesseurs
1.2 Le traitement des instructions
1.3 Les modes d’adressages
1.4 Exemple d’exécution d’un programme
Université de Savoie
14
Le traitement des instructions
Organisation d’une instruction
Le microprocesseur ne comprend qu’un certain
nombre d’instructions qui sont codées en binaire. Une
instruction est composée de deux éléments :
l
l
Le code opération : C’est un code binaire qui correspond à l’action à
effectuer par le processeur
Le champ opérande : Donnée ou bien adresse de la donnée.
La taille d'une instruction peut varier, elle est
généralement de quelques octets (1 à 8), elle dépend
également de l'architecture du processeur.
Université de Savoie
15
Le traitement des instructions
Exemple d’instruction
l
Instruction Addition :
Accumulateur = Accumulateur + Opérande
Correspond à l’instruction ADD A,#2
Instruction (16 bits)
Code opératoire (5 bits) Champ opérande (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 l’instruction en mémoire
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 placée sur le bus d'adresse, et l'unité de
commande émet un ordre de lecture de la mémoire.
Après le temps d'accès à la mémoire, le contenu de la case
mémoire sélectionnée (instruction) est disponible sur le bus des
données et arrive à l’entrée du décodeur.
Université de Savoie
17
Le traitement des instructions
Phase 2 : Décodage et recherche de l’opérande
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 nécessite une donnée en provenance de la mémoire,
l'unité de commande récupère sa valeur sur le bus de données en
faisant un nouvel accès mémoire. La donnée arrive à l’entrée de
l’ALU.
Université de Savoie
18
Le traitement des instructions
Phase 3 : Exécution de l’instruction
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
L’ALU réaliser l’opération que le séquenceur lui demande.
Les drapeaux sont positionnés (registre d'état).
Le PC est incrémenté pour indiquer l'instruction suivante.
Université de Savoie
19
Le traitement des instructions
Déroulement
Bus d’adresses
Microprocesseur
PC
Programme
Mémoire
Accumulateur
Accumulateur
Registre
d’état
Registre
d’état
Bloc logique
de commande
Décodeur
d’instruction
Données
Bus de données
20
Le traitement des instructions
Les architectures RISC et CISC (1)
Actuellement l’architecture des microprocesseurs se
composent de deux grandes familles :
l
L’ architecture CISC
(Complex Instruction Set Computer)
l
L’architecture RISC
(Reduced Instruction Set Computer)
Université de Savoie
21
Chapitre 1 : Rappels généraux sur les
processeurs
l
l
l
l
1.1 Rappel sur l’architecture interne des
microprocesseurs
1.2 Le traitement des instructions
1.3 Les modes d’adressages
1.4 Exemple d’exécution d’un programme
Université de Savoie
22
Les modes d’adressages
l
Ce sont les diverses manières de définir la
localisation d ’un opérande. Les trois modes
d’adressage les plus courant sont :
l
l
l
Adressage immédiat
Adressage direct
Adressage indirect
Pourquoi existe-t-il plusieurs modes d’adressage ?
Université de Savoie
23
Les modes d’adressages
Immédiat
Exemple : ADDA
#4
ALU
Mémoire
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 d’adressages
Direct
Exemple : ADDA
adresseX
ALU
Mémoire
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 d’adressages
Indirect
Exemple : ADDA
@adresseX
ALU
Mémoire
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 généraux sur les
processeurs
l
l
l
l
1.1 Rappel sur l’architecture interne des
microprocesseurs
1.2 Le traitement des instructions
1.3 Les modes d’adressages
1.4 Exemple d’exécution d’un programme
Université de Savoie
27
Exemple d’exécution (1)
Le compilateur génère aussi un fichier assembleur, représentant le code
et les emplacements mémoire qui seront utilisés.
Université de Savoie
28
Exemple d’exécution (2)
À l’infini
PORTC
Université de Savoie
29
Le jeu d’instruction du PIC16F
D’après la datasheet :
l
Quelles sont les trois grandes catégories d’instruction du PIC16F877A?
l
Quelle est la taille d’une instruction en mémoire ?
l
Expliquez les instructions : INCFSZ, BTFSC, ANDLW et donner un
exemple d’utilisation pour chacune de ces instructions.
l
Le programme compilé ci-dessous rassemble un code exécutable de la
forme suivante, donner la séquence d’instruction réalisée et l’action de
chacune :
l
l
l
l
0187h
2822h
0987h
0BFCh
CLRF PORTC;
GOTO 22h;
COMF PORTC,1;
DECFSZ 7C,1;
30
Chapitre 2 : Les microcontrôleurs
l
l
l
l
l
l
l
2.1 Définition d’un microcontrôleur
2.2 Cadencement du microcontrôleur
2.3 Les timers
2.4 Les ports d’entrée/sortie
2.5 La liaison série
2.6 Le watchdog
2.7 Le CAN
Université de Savoie
31
Définition d’un microcontrôleur
Un microcontrôleur est un circuit qui intègre un maximum
de fonctions dans un même boitier. L’intégration de ces
fonctions dans le même environnement permet de créer
des applications plus simplement.
Le circuit intégré d'un microcontrôleur
8 bits Intel 8742 possède sur une
unique puce :
l Un processeur cadencé à 12 MHz
l 128 octets de mémoire vive
l Une EPROM de 2048 bits
l De nombreuse entrées-sorties
Université de Savoie
32
Ventes de microcontrôleurs
Université de Savoie
33
Définition d’un microcontrôleur
Avantages
l
Cout réduit
l
Encombrement moindre
l
Fiabilité
l
Mise en œuvre plus simple
l
Consommation plus faible
Université de Savoie
35
Définition d’un microcontrôleur
Contenu
l
La structure interne d'un microcontrôleur comporte
typiquement :
l
l
l
l
l
l
l
l
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 :
l
l
l
l
Un Watchdog : (surveillance du programme)
Une sortie PWM (modulation d’impulsion)
Un CAN/CNA (Convertisseur analogique numérique)
Un interface I²C, CAN…
Université de Savoie
36
Définition d’un microcontrôleur
Exemple : Microcontrôleur PIC 16F877
Université de Savoie
37
Définition d’un microcontrôleur
Les mémoires (1)
l
ROM memory :
Aussi appelé (à juste titre) program memory.
C’est une mémoire Flash qui contient le
programme à exécuter.
l
EEPROM memory
C’est une mémoire similaire à la mémoire programme. On s’en sert
surtout pour stocker des constantes.
Université de Savoie
38
Définition d’un microcontrôleur
Les mémoires (2)
l
RAM memory :
l
General Purpose Register : Mémoire RAM classique, utiliser pour
stocké des variables. Exemple :
int i;
i++;
l
// incrémentation de i depuis la RAM
SFR (Special Function Register) : C’est aussi de la mémoire RAM,
sauf que les rôles de chacune des cases mémoire (registres) ont été
définis par le fabriquant. Chaque registre SFR est connecté à un
périphérique matériel spécifique et permet de la contrôler. Exemple :
ADCON0 register (adresse 9Fh) permet de piloter le convertisseur A/D.
Université de Savoie
39
Définition d’un microcontrôleur
Les mémoires (3)
Déclaration de « i » en RAM
Détail d’un registre SFR
Affectation d’une valeur
à un registre SFR
Université de Savoie
40
Chapitre 2 : Les microcontrôleurs
l
l
l
l
l
l
l
2.1 Définition d’un microcontrôleur
2.2 Cadencement du microcontrôleur
2.3 Les timers
2.4 Les ports d’entrée/sortie
2.5 La liaison série
2.6 Le watchdog
2.7 Le CAN
Université de Savoie
41
Cadencement du microcontrôleur
Schéma du pic 16F877
Université de Savoie
42
Cadencement du microcontrôleur
Les cadencements possibles
l
Quartz
l
l
Résonateur céramique
l
l
l
Très bonne Stabilité (10 ppm)
Stabilité ( 0.5%)
Moins couteux que le quartz
Exemple pour un oscillateur à 8 Mhz
Quartz :
Résonateur :
Fréquence +/- 80
Hz
Fréquence +/- 40 000 Hz
43
Chapitre 2 : Les microcontrôleurs
l
l
l
l
l
l
l
2.1 Définition d’un microcontrôleur
2.2 Cadencement du microcontrôleur
2.3 Les timers
2.4 Les ports d’entrée/sortie
2.5 La liaison série
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 d’horloge)
> Mode temporisateur
Compter le nombre d’évènement
sur une broche
> Mode compteur
45
Les timers
Mode compteur ou temporisateur (2)
l
En pratique, on visualise la valeur de départ, puis la valeur
d’arrivée. La valeur de comptage est la différence 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 d’un prescaler
l
Un prescaler permet de diviser la fréquence
de comptage.
Quelle est le temps mesuré dans cette application en
fonction de A et B?
Université de Savoie
47
Chapitre 2 : Les microcontrôleurs
l
l
l
l
l
l
l
2.1 Définition d’un microcontrôleur
2.2 Cadencement du microcontrôleur
2.3 Les timers
2.4 Les ports d’entrée/sortie
2.5 La liaison série
2.6 Le watchdog
2.7 Le CAN
Université de Savoie
48
Les ports d’entrée / Sortie
Ce sont des ports parallèles. Ils permettent de recueillir des
informations ou de piloter des modules sur l’environnement
extérieur. Ils sont souvent bidirectionnels (configurable en
entrée ou sortie).
Université de Savoie
49
Les ports d’entrée / Sortie
l
Quelles sont les ports d’E/S de ce microcontrôleur?
Université de Savoie
50
Les ports d’entrée / Sortie
Les sorties logiques
l
Sortie trois états
l
Sortie collecteur ouvert
Université de Savoie
52
Les ports d’entrée / Sortie
1. Sortie trois états
Fonctionnement
l
T1
T2
Sortie
Bloqué
Bloqué
Etat haute impédance
Bloqué
Saturé
"0"
Saturé
Bloqué
"1"
Saturé
Saturé
non utilisé
Des sorties trois états peuvent être reliées 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 impédance.
Université de Savoie
53
Les ports d’entrée / Sortie
2. Sortie collecteur ouvert (1)
Fonctionnement
T2
S
Saturé
"0"
Bloqué
Dépend du montage
Université de Savoie
54
Les ports d’entrée / Sortie
2. Sortie collecteur ouvert (2)
l
l
Pour générer le niveau "1", une résistance extérieure est
nécessaire (résistance de tirage // pull-up). Plusieurs sorties
"collecteur ouvert" peuvent être reliées entre elles, cela
réalise un "ET logique"
Une sortie « collecteur ouvert » peut commander une charge
sous une tension différente de la tension d'alimentation.
Université de Savoie
55
Les ports d’entrée / Sortie
Entrée trigger de Schmitt
"1"
"0"
Vseuil- Vseuil+
Université de Savoie
Vi
56
Les ports d’entrée / Sortie
l
Bouton poussoir :
l
Led :
Donner la valeur de la résistance sachant qu’une led
rouge à une tension de 1,5V et qu’il faut 10 mA pour
avoir un éclat correct.
Université de Savoie
57
Les ports d’entrée / Sortie
Cas du PIC16F877
D’après la datasheet :
l Combien possède t on de bits d’E/S pour le PORTA,
B, C, D et E?
l
Quel registre respectif permet de les configurer en
entrée 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
58
Chapitre 2 : Les microcontrôleurs
l
l
l
l
l
l
l
2.1 Définition d’un microcontrôleur
2.2 Cadencement du microcontrôleur
2.3 Les timers
2.4 Les ports d’entrée/sortie
2.5 La liaison série
2.6 Le watchdog
2.7 Le CAN
Université de Savoie
59
La liaison série
l
La liaison série USART (Universal Synchronous Asynchronous
Receiver Transmitter ) est le mode le plus rependu pour
communiquer (et aussi le plus vieux).
60
La liaison série
Connexions (1)
l
Une liaison série permet de transmettre des données
sur un nombre limité de fils. Cette liaison peut être
Half duplex (liaison synchrone) ou full duplex (liaison
asynchrone).
l
Sur le microcontrôleur PIC16F877A, la liaison série
asynchrone peut être mise en œuvre à l’aide des pins
RxD et TxD. Elle est réalisée par un USART :
l
l
RxD, signal de réception de l’USART
TxD, signal de transmission de l’USART
Université de Savoie
61
La liaison série
Connexions (2)
1ère étape : Configuration de la transmission
2ième étape :
Envoyer et recevoir des données
Université de Savoie
62
La liaison série
USART Transmit bloc register
Université de Savoie
63
La liaison série
USART receive bloc register
Université de Savoie
64
La liaison série
D’après la datasheet :
l
Pourquoi avons-nous une corrélation entre le fait
d’être synchrone/Asynchrone et full duplex / half
duplex?
l
Prenez note de toutes les étapes à réaliser pour
configurer une liaison série asynchrone.
l
Configurer la liaison série asynchrone pour qu’elle soit
cadencée à 9600 bauds.
Université de Savoie
65
Chapitre 2 : Les microcontrôleurs
l
l
l
l
l
l
l
2.1 Définition d’un microcontrôleur
2.2 Cadencement du microcontrôleur
2.3 Les timers
2.4 Les ports d’entrée/sortie
2.5 La liaison série
2.6 Le watchdog
2.7 Le CAN
Université de Savoie
66
Le Watchdog (1)
Le chien de garde (watchdog) est un dispositif matériel et
logiciel qui permet de se prémunir contre les plantages
accidentels. L’idée est de provoquer un RESET du CPU afin
de relancer l’application. (Les données sont bien sur perdues).
Le plantage est défini lorsque le programme n’est pas venu à
temps faire signe au watchdog.
Instructions
« Clear Watchdog »
Si je reçoit rien,
j’appuie sur le
RESET!!!
67
MICROCONTROLEUR
Le Watchdog (2)
68
Le Watchdog
Cas du PIC16F877
D’après la datasheet :
l
Comment met-on en route le Watchdog? (lire en plus le
chapitre 14.1 : configuration bits)
l
Quel est l’effet d’un watchdog time out?
l
Quelle instruction du PIC permet de réaliser le reset du
Watchdog? Comment allez vous coder cette instruction
en C?
Université de Savoie
69
Chapitre 2 : Les microcontrôleurs
l
l
l
l
l
l
l
2.1 Définition d’un microcontrôleur
2.2 Cadencement du microcontrôleur
2.3 Les timers
2.4 Les ports d’entrée/sortie
2.5 La liaison série
2.6 Le watchdog
2.7 Le CAN
Université de Savoie
70
Le CAN
Multiplexage des voies
l
CAN : Dans les microcontrôleurs, les voix de
conversion analogique/numérique sont souvent
multiplexées. Ceci signifie que la fréquence maximale
de conversion analogique numérique est divisée par le
nombre de voies utilisées.
l
Très souvent, il faut configuré les entrées de
conversion en « entrée analogique » car celles-ci
peuvent aussi être utilisée en entrée numérique.
Université de Savoie
71
Le CAN
Le CAN
Questions
D’après la datasheet :
l
l
l
l
l
l
Quel est le nombre de bits du convertisseur AN.
Dans quels registres est stocké le résultat?
Comment fait-on pour justifier le résultat à droite ou à
gauche.
Combien possède t on de voies multiplexés?
A quoi correspond Vref+ et Vref - ?
Comment configure t on une entrée en analogique?
Université de Savoie
73
Le CAN
Etude de cas théorique
l
Sur l’application ci-dessous, quelle est la résolution maximale que
nous pourrons avoir?
l
Donner l’expression de la résolution 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 numérique donnée par le convertisseur.
Université de Savoie
74
Le CAN
Récupération des valeurs converties
l
Donner le code C permettant d’obtenir un entier
représentatif de la valeur de conversion en fonction
des valeurs de ADRESH et ADRESL.
Université de Savoie
75
Le CAN
Tension de références Vref
l
Le schéma ci-dessous représente les plages de valeurs
possibles pour Vref+ et Vref-.
Université de Savoie
76
Le CAN
Etude de cas pratique
La tension d’une batterie est celle d’une cellule lithium-ion qui
possède les caractéristiques suivantes :
l
Donner les valeurs de votre choix pour les tensions de références
l Donner la résolution de la conversion
l Donner l’expression de la tension en fonction de la valeur numérique de
la conversion.
Umin=2,5 V
Umax= 4,3V
Danger si en dehors de cette zone
Udéchargée=3 V
Un=3,6 V Uchargée=4,2 V
Université de Savoie
77
Le CAN
l
Vitesse maximale du convertisseur
Université de Savoie
78
Gamme des microcontrôleurs
l
Exemple chez ST micro
http://www.st.com
l
>> gamme STM
Exemple chez microchip
http://www.microchip.com/ >> gamme PIC
l
Exemple chez ATMEL
http://www.atmel.com/
l
>> gamme AVR
Exemple chez Infineon
http://www.infineon.com
Etc …
Université de Savoie
79
Chapitre 3 : La programmation
l
3.1 Les interruptions
l 3.2 Le logiciel
Université de Savoie
80
Les interruptions
Problématique & définition
l
Un système informatique n’est utile que s’il
communique avec l’extérieur. L’objectif est de pouvoir
prendre connaissance que le périphérique sollicite le
processeur. Cette sollicitation arrive de façon
totalement asynchrone.
Deux modes sont possibles :
l
l
Une méthode par scrutation (polling) permet d’interroger
régulièrement les périphériques afin de savoir si une nouvelle
donnée est présente.
Une méthode par interruption permet au périphérique luimême de faire signe au processeur de sa présence.
Université de Savoie
81
Les interruptions
Scrutation Vs interruption
l
Scrutation (polling)
l
l
l
Coûteux en temps (multiplier par le nombre de périphérique à
interroger)
Implémentation : Appel classique à une fonction dans le
programme
Interruption
l
l
l
Demande à l’initiative du périphérique
Prise en compte rapide de l’évènement
Implémentation : Interruption asynchrone d’un programme
puis retour au même endroit à la fin du traitement
Université de Savoie
82
Les interruptions
Schéma
l
Une interruption est un arrêt temporaire de l'exécution normale d'un
programme informatique par le microprocesseur afin d'exécuter un autre
programme (appelé routine d'interruption).
Université de Savoie
83
Les interruptions
Types d’interruption
l
Interruption masquable
l
l
Un masque d’interruption est un mot binaire de configuration
du microprocesseur qui permet de choisir (démasquer) quels
modules pourront interrompre le processeur parmi les
interruptions disponibles.
Interruption non masquable
l
Elles s ’exécutent quoi qu’il arrive, souvent avec une priorité
élevé (ex : Reset)
Université de Savoie
84
Les interruptions
Configuration
l
Un système peut accepter plusieurs sources
d’interruption. Chacune est configurable par registre
(registre d’interruption).
l
Méthode de configuration des interruptions
l
l
l
l
Sélectionner les interruptions qui nous intéressent
Valider les interruptions de façon globale
Ecrire le/les sous programme d’interruption
Définir les priorités entres interruptions
Université de Savoie
85
Les interruptions
Configuration
l
Dans le sous programme d’interruption
l
l
l
l
l
Sauvegarder le contexte (fait automatique en langage C)
Définir la source d’interruption (si le sous programme est commun entres
plusieurs sources d’interruption)
Réinitialiser les flags d’interruption
Ecrire le code relatif à l’application
Restituer le contexte (fait automatique en langage C)
Cas du 80C51 (intel)
Cas du PIC 16F877 (microchip)
Flag d’interruption
Bit de masquage
Les interruptions
Démasquage des interruptions
l
Autorisation des interruptions
l
L’autorisation globale des interruptions
l
Démasquage des interruptions
Université de Savoie
88
Les interruptions
Les flags d’interruption
l
Visualisation des flags d’interruption
Université de Savoie
89
Les interruptions
Le rôle de la pile
l
La pile est une mémoire LIFO (Last In First
Out) dans laquelle on stoke des variable
temporaire (donnée ou adresse). Le haut de la
pile est pointé par le registre SP (Stack
Pointer).
90
Les interruptions
Rôle de la pile
l
Elle va servir à :
l
l
sauvegarder le contexte l’environnement
(adresse du programme et valeur des registres au
moment de l’interruption).
restituer le contexte à la fin de l’interruption
Note 1 : La sauvegarde et la restitution est faite implicitement en
langage C.
Note 2 : Une fonction d’interruption est noté spécifiquement.
Exemple du PIC qui ne possède qu’un seul vecteur d’interruption
:
Université de Savoie
91
Les interruptions
Avant l’interruption
PC ( Addr Prog )
SP ( Addr Pile)
Programme
principal
Registres
x
Pile
xx
Programme
d’interruption
92
Les interruptions
Arrivée d’une interruption
SP ( Addr Pile +1)
PC ( Addr Prog IT )
Programme
principal
Registres
x
Addr Prog
Pile
xx
Programme
d’interruption
93
Les interruptions
Arrivée d’une interruption : Sauvegarde contexte
PC ( Addr Prog )
SP ( Addr Pile + 3)
Programme
principal
Registres
x
x
xx
Addr Prog
Pile
xx
Programme
d’interruption
94
Les interruptions
Fin d’une interruption : Restitution contexte
SP ( Addr Pile + 1)
PC ( Addr fin Prog IT)
Programme
principal
Registres
x
x
xx
Addr Prog
Pile
xx
Programme
d’interruption
95
Les interruptions
Fin d’une interruption
PC ( Addr Prog )
SP ( Addr Pile)
Programme
principal
Registres
x
Addr Prog
Pile
xx
Programme
d’interruption
96
Les interruptions
Retour au programme principal
PC ( Addr Prog + 1 )
SP ( Addr Pile)
Programme
principal
Registres
x
Pile
xx
Programme
d’interruption
97
Les interruptions
Exemple sur le PIC 16F877
l
l
Quelle interruption est concernée ici ?
Quelles actions sont réalisées pendant le sous-programme
d’interruption?
Université de Savoie
98
Chapitre 3 : La programmation
l
3.1 Les interruptions
l 3.2 Le logiciel
Université de Savoie
99
Le logiciel
La chaîne 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 trouvée
Le logiciel
La chaîne de compilation (2)
Le compilateur génère aussi un fichier listing (en assembleur),
représentant le code et les emplacements mémoire qui seront utilisés.
Université de Savoie
102
Le logiciel
Programmation de la mémoire programme (Flash)
Utilisation d’un logiciel de programmation
de mémoire Flash
Université de Savoie
103
Le logiciel
Programmation de la mémoire programme (Flash)
Université de Savoie
104
Le logiciel
Avantage du langage C
Université de Savoie
105
Téléchargement