Support de Cours Microprocesseurs Ch3
Support de Cours Microprocesseurs Ch3
Support de Cours Microprocesseurs Ch3
et Interfaces
Connaître l’architecture de base des calculateurs, des
microprocesseurs et la programmation machine en
assembleur
Badreddine Rejeb
2009 - V. 1.0
T ABL E DE S MA TI E RE S
1 INTRODUCTION ............................................................................................................................... 5
1.1 Histoire des calculateurs ......................................................................................................... 5
1.2 Qu’entend-t-on par architecture des ordinateurs ?................................................................ 8
1.3 Introduction aux microprocesseurs ? ...................................................................................... 9
2 ARCHITECTURE ET FONCTIONNEMENT D’UN MICROPROCESSEUR .............................................. 13
2.1 Architecture d’un calculateur ................................................................................................ 13
2.2 Circulation de l’information dans un calculateur .................................................................. 15
2.3 Caractéristiques d’un microprocesseur................................................................................. 16
2.4 Fonctionnement d’un microprocesseur .............................................................................. 16
3 CONCEPTION ET ETUDES D’UNE CARTE A BASE DE MICROPROCESSEUR ..................................... 21
3.1 Mémoires ............................................................................................................................ 21
3.1.1 Caractéristiques des mémoires ..................................................................................... 22
3.1.2 Types de mémoires ....................................................................................................... 24
3.2 Bus du microprocesseur ........................................................................................................ 25
3.3 Interfaçage Microprocesseur / Mémoire .............................................................................. 26
3.4 Décodage d’adresse Mémoire / Entrée-Sortie ...................................................................... 27
3.5 Chronogrammes de lecture et d’ecriture en mémoire ......................................................... 29
3.5.1 Chronogramme de lecture ............................................................................................ 30
3.5.2 Chronogramme d’écriture ............................................................................................. 30
4 Le microprocesseur Intel 8086 .............................................................................................. 34
4.1 Description du 8086 ............................................................................................................. 34
4.2 Les signaux du 8086 ............................................................................................................. 36
4.3 Organisation interne du 8086 ............................................................................................. 41
4.3.1 Les registres généraux : ................................................................................................. 41
4.3.2 Les registres segment: ................................................................................................... 44
4.4 Gestion et organisation de la mémoire par le 8086 .......................................................... 46
4.4.1 Segmentation et adresse physique ............................................................................... 46
5 La programmation en assembleur du microprocesseur 8086 ...................................................... 52
5.1 Généralité : ............................................................................................................................ 52
5.2 Les directives ......................................................................................................................... 52
5.3 Les opérateurs (+, -, *, /, MOD, HIGH/LOW, SEG, OFFSET, LENGTH, SIZE) ........................... 54
5.4 Les modes d’adressage :........................................................................................................ 55
5.5 Les Instructions...................................................................................................................... 57
5.5.1 Les instructions de Transfert ......................................................................................... 57
5.5.2 Les instructions arithmétiques ...................................................................................... 63
5.5.3 Les instructions logiques ............................................................................................... 71
5.5.4 Les instructions de branchement .................................................................................. 77
5.5.5 Les instructions d’interruption ...................................................................................... 81
5.6 Structure d’un programme Assembleur ................................................................................ 82
6 PROGRAMMATION D’ENTREE/SORTIE .......................................................................................... 86
6.1 Notion d’interface ................................................................................................................. 86
6.2 Adressages et gestion des ports d’Entrée / Sortie par le 8086 ............................................. 86
6.3 Les ports d'entrée / sortie ..................................................................................................... 87
6.4 Les Interruptions ................................................................................................................... 87
6.5 Interrogation des Entrées/Sorties ......................................................................................... 87
6.6 Entrées / Sorties par interruption ......................................................................................... 87
6.6.1 Les interruptions matérielles :....................................................................................... 88
6.6.2 Les interruptions logicielles ........................................................................................... 88
6.7 Entrées/Sortie par DMA ........................................................................................................ 91
6.8 Etude d’une interface parallèle : L’interface 8255 ................................................................ 92
6.8.1 Mode 0 du 8255 : .......................................................................................................... 94
6.8.2 Mode 1 du 8255 : .......................................................................................................... 95
6.8.3 Mode 2 du 8255 ............................................................................................................ 96
6.9 Etude d’une interface série : L’interface 8250 ...................................................................... 98
6.9.1 Description physique ..................................................................................................... 98
6.9.2 Les registres du 8250 ..................................................................................................... 98
7 EXERCICES .................................................................................................................................... 103
8 CORRECTION................................................................................................................................ 111
9 Bibliographie................................................................................................................................ 120
3
Chapitre 3
CONCEPTION ET ETUDES D’UNE
CARTE A BASE DE MICROPROCESSEUR
20
3 CONCEP TIO N E T E TUDE S D’U NE CARTE A BA SE
DE MI CROP RO CE SSE U R
3.1 Objectifs
3.2 Mémoires
21
Fig. 8 – Schéma block d’une mémoire SRAM de 8 Koctets
a. sélection de l’adresse
Le temps d'accès est le temps qui s'écoule entre l'instant où a été lancée une
opération de lecture en mémoire et l'instant où la première information est disponible.
Le temps de cycle représente l'intervalle minimum qui doit séparer deux demandes
22
successives de lecture ou d'écriture. Le temps de cycle est supérieur ou égal au
temps d'accès.
Le débit est le nombre maximum d'informations lues ou écrites par seconde.
Le format des données (largeur du mot mémorisable) est le nombre de bits que l’on
peut mémoriser par case mémoire.
La Volatilité caractérise la permanence des informations dans la mémoire. Les
informations sont perdues lors de la mise hors tension de l'appareil. Par opposition,
une mémoire rémanente ou non-volatile est une mémoire où les informations sont
conservées même après la mise hors tension de l'appareil.
La mémoire peut être vue comme étant un tableau de cellules ou cases contenant
chacune une instruction ou une donnée. Chaque case mémoire est repérée par un
numéro d’ordre unique : ce numéro est son adresse. Avec une adresse de n bits il est
possible de référencer directement au plus 2n case mémoire. La capacité d'une
mémoire est le nombre total de cellules qu'elle contient. Elle s'exprime en nombre de
bits, d'octets (bytes) ou de mots (words). Compte tenu de l'adressage binaire, les
capacités des mémoires s'expriment en puissances de deux ou en multiples de 1024.
La figure suivante montre l’organisation interne d’une mémoire :
Adresse des
cases mémoire
13H 00003H
07H 00000H
Largeur des données
P bits (8 bits pour les octets)
Fig. 8 – Organisation des données dans la mémoire
23
3.2.2 Types de mémoires
b) Mémoire morte :
ROM (Read Only Memory) : est une mémoire ou les informations ne peuvent
pas être modifiées. Les mémoires mortes sont utilisées par exemple pour
stocker définitivement des logiciels enfouis.
Une mémoire de masse sert à stocker à long terme des grandes quantités
d'informations. Les technologies les plus courantes des mémoires de masse
sont électromécaniques, elles visent à obtenir une capacité de stockage
élevée à faible coût et ont généralement une vitesse inférieure aux autres
mémoires.
Une mémoire cache sert à conserver un court instant des informations
fréquemment consultées. Les technologies des mémoires cache visent à
accélérer la vitesse de opérations de consultation. Elles ont un coût élevé, une
très grande vitesse et une faible capacité de stockage.
PROM (Programmable Read Only Memory): ROM programmable une seule
fois par l’utilisateur en faisant sauter des fusibles.
24
EPROM (Erasable PROM, appelée aussi UVPROM) : ROM programmable
électriquement avec un programmateur et effaçable par exposition à un
rayonnement ultra- violet.
EEPROM (Electrically Erasable PROM) : ROM programmable et effaçable
électriquement. Les EEPROM contiennent des données qui peuvent être
modifiées de temps en temps, exemple : paramètres de configuration des
ordinateurs.
c) Mémoire flash :
La mémoire flash est une mémoire de masse à semi-conducteurs dans laquelle
on peut réécrire, c'est-à-dire une mémoire possédant les caractéristiques d'une
mémoire vive mais dont les données ne disparaissent pas lors d'une mise hors
tension. La mémoire flash est un type d'EEPROM qui permet la modification de
plusieurs espaces mémoires en une seule opération. La mémoire flash est donc
plus rapide lorsque le système doit écrire à plusieurs endroits en même temps.
25
Le bus de commande sert à coordonner tous les échanges d'informations décrits
précédemment. Le bus de commande véhicule des données qui valident la
mémoire et les ports d'entrées / sorties. Le bus de commande introduit des délais
d'attente lorsque des informations sont envoyées à un périphérique qui présente
une vitesse de traitement inferieur à celle du microprocesseur. Le bus de
commande évite les conflits de bus lorsque deux éléments cherchent à
communiquer en même temps.
U1 U2
27 30 A0 A0 10 11 D0
M1 A0 A0 D0
31 A1 A1 9 12 D1
A1 A1 D1
19 32 A2 A2 8 13 D2
MREQ A2 A2 D2
20 33 A3 A3 7 15 D3
IORQ A3 A3 D3
21 34 A4 A4 6 16 D4
RD A4 A4 D4
22 35 A5 A5 5 17 D5
WR A5 A5 D5
36 A6 A6 4 18 D6
A6 A6 D6
28 37 A7 A7 3 19 D7
RFSH A7 A7 D7
38 A8 A8 25
A8 A8
18 39 A9 A9 24
HALT A9 A9
40 A10 A10 21
A10 A10
24 1 A11 A11 23
WAIT A11 A11
2 A12 A12 2
A12 A12
16 3 A13
INT A13
17 4 A14 20
NMI A14 CE
5 A15 1 2 26
A15 CS
26 27
RESET WE
14 D0 22
D0 OE
25 15 D1
BUSRQ D1
23 12 D2 6264
BUSAK D2
8 D3
D3
6 7 D4
CLK D4
9 D5
D5
10 D6
D6
13 D7
D7
Z80
Les boitiers mémoire possèdent une broche, CS, de sélection de ce circuit (CS : Chip
Select ou bien CE Chip Enable). Si cette broche est active, le circuit peut être lu ou
écrit. Lorsqu’elle est inactive, le circuit est déconnecté et les broches de données
D0 à D7 passent à l’état de haute impédance d’ou la possibilité de connecter
plusieurs boitiers mémoire sur un même bus. Un seul signal CS doit être actif à un
instant donné pour éviter les conflits entre les différents boitiers.
26
U1 U3 U2
27 30 A0 A0 10 11 D0 A0 10 11 D0
M1 A0 A0 D0 A0 D0
31 A1 A1 9 12 D1 A1 9 12 D1
A1 A1 D1 A1 D1
19 32 A2 A2 8 13 D2 A2 8 13 D2
MREQ A2 A2 D2 A2 D2
20 33 A3 A3 7 15 D3 A3 7 15 D3
IORQ A3 A3 D3 A3 D3
21 34 A4 A4 6 16 D4 A4 6 16 D4
RD A4 A4 D4 A4 D4
22 35 A5 A5 5 17 D5 A5 5 17 D5
WR A5 A5 D5 A5 D5
36 A6 A6 4 18 D6 A6 4 18 D6
A6 A6 D6 A6 D6
28 37 A7 A7 3 19 D7 A7 3 19 D7
RFSH A7 A7 D7 A7 D7
38 A8 A8 25 A8 25
A8 A8 A8
18 39 A9 A9 24 A9 24
HALT A9 A9 A9
40 A10 A10 21 A10 21
A10 A10 A10
24 1 A11 A11 23 A11 23
W AIT A11 A11 A11
2 A12 A12 2 A12 2
A12 A12 A12
16 3 A13
INT A13
17 4 A14 20 20
NMI A14 CE CE
5 A15 22 26
A15 OE CS
26 27 27
RESET PGM WE
14 D0 1 22
D0 VPP OE
25 15 D1
BUSRQ D1
23 12 D2 2764 6264
BUSAK D2
8 D3
D3
6 7 D4
CLK D4
9 D5
D5
10 D6
D6
13 D7
D7
Z80
27
27 30 A0 A0 10 11 D0 A0 10 11 D0 A0 10 11 D0
M1 A0 A0 D0 A0 D0 A0 D0
31 A1 A1 9 12 D1 A1 9 12 D1 A1 9 12 D1
A1 A1 D1 A1 D1 A1 D1
19 32 A2 A2 8 13 D2 A2 8 13 D2 A2 8 13 D2
MREQ A2 A2 D2 A2 D2 A2 D2
20 33 A3 A3 7 15 D3 A3 7 15 D3 A3 7 15 D3
IORQ A3 A3 D3 A3 D3 A3 D3
21 34 A4 A4 6 16 D4 A4 6 16 D4 A4 6 16 D4
RD A4 A4 D4 A4 D4 A4 D4
22 35 A5 A5 5 17 D5 A5 5 17 D5 A5 5 17 D5
WR A5 A5 D5 A5 D5 A5 D5
36 A6 A6 4 18 D6 A6 4 18 D6 A6 4 18 D6
A6 A6 D6 A6 D6 A6 D6
28 37 A7 A7 3 19 D7 A7 3 19 D7 A7 3 19 D7
RFSH A7 A7 D7 A7 D7 A7 D7
38 A8 A8 25 A8 25 A8 25
A8 A8 A8 A8
18 39 A9 A9 24 A9 24 A9 24
HALT A9 A9 A9 A9
40 A10 A10 21 A10 21 A10 21
A10 A10 A10 A10
24 1 A11 A11 23 A11 23 A11 23
W AIT A11 A11 A11 A11
2 A12 A12 2 A12 2 A12 2
A12 A12 A12 A12
16 3 A13
INT A13
17 4 A14 20 20 20
NMI A14 CE CE CE
5 A15 22 26 26
A15 OE CS CS
26 27 27 27
RESET PGM WE WE
14 D0 1 22 22
D0 VPP OE OE
25 15 D1
BUSRQ D1
23 12 D2
BUSAK D2
8 D3
D3
6 7 D4 A0 10 11 D0 A0 10 11 D0
CLK D4 A0 D0 A0 D0
9 D5 A1 9 12 D1 A1 9 12 D1
D5 A1 D1 A1 D1
10 D6 A2 8 13 D2 A2 8 13 D2
D6 A2 D2 A2 D2
13 D7 A3 7 15 D3 A3 7 15 D3
D7 A3 D3 A3 D3
A4 6 16 D4 A4 6 16 D4
A4 D4 A4 D4
A5 5 17 D5 A5 5 17 D5
A5 D5 A5 D5
A6 4 18 D6 A6 4 18 D6
A6 D6 A6 D6
1 15 A7 3 19 D7 A7 3 19 D7
A Y0 A7 D7 A7 D7
2 14 A8 25 A8 25
B Y1 A8 A8
3 13 A9 24 A9 24
C Y2 A9 A9
12 A10 21 A10 21
Y3 A10 A10
11 A11 23 A11 23
Y4 A11 A11
6 10 A12 2 A12 2
E1 Y5 A12 A12
4 9
E2 Y6
5 7 20 20
E3 Y7 CE CE
26 26
CS CS
27 27
WE WE
22 22
OE OE
B C A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 0 0 0 1 1 1 1 1 1 1
0 0 1 0 1 1 1 1 1 1
0 1 0 1 1 0 1 1 1 1 1
0 1 1 1 1 1 0 1 1 1 1
1 0 0 1 1 1 1 0 1 1 1
1 0 1 1 1 1 1 1 0 1 1
1 1 0 1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 1 1 0
28
FFFFH
Circuit 7 E000H
DFFFH
Circuit 6 C000H
BFFFH
Circuit 5 A000H
9FFFH
Circuit 4 80000
7FFFH
Circuit 3 6000H
5FFFH
Circuit 2 4000H
3FFFH
Circuit 1 2000H
1FFFH
Circuit 0
0000H
Le calcul des adresses de début et de fin des différents circuits sera comme suit :
Prenons le cas de l’EPROM qui sera sélectionné par l’activation de la sortie Y 0 du
décodeur (B C A = 0 0 0).
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
L’une caractéristique importante des mémoires est le temps d’accès (c’est le temps
qui s’´ecoule entre l’instant ou l’adresse de la case mémoire est présentée sur le bus
d’adresses et celui ou la mémoire place la donnée sur le bus de données). Ce temps
reflète la rapidité des mémoires
Lorsque le temps d’accès d’une mémoire est supérieur à une période d’horloge, le
microprocesseur peut accorder à la mémoire un temps supplémentaire (d’une ou de
plusieurs périodes d’horloge), à la demande de celle-ci. Ce temps supplémentaire est
appelé temps d’attente.
29
3.6.1 Chronogramme de lecture
Temps d'accès
Temps de cycle
Débit.
Format des données.
Volatilité
Types de mémoires
Mémoire morte :
Mémoire flash :
Un microprocesseur est relié à trois types de bus:
le bus d'adresse,
le bus de données
le bus de commande
31
Les boitiers mémoire possèdent une broche, CS, de sélection de ce circuit
(CS : Chip Select ou bien CE Chip Enable). Si cette broche est active, le
circuit peut être lu ou écrit
Un système à microprocesseur possède des périphériques (EPROM, RAM,
E/S etc..). Pour permettre au microprocesseur de sélectionner un seul de ces
périphériques, il faut mettre en place le décodage d’adresse. Celui-ci
permettra d’adresser un seul périphérique, sachant que deux périphériques ne
peuvent pas se retrouver à une même adresse.
32