Vous êtes sur la page 1sur 16

Microprocesseurs

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

 Concevoir une carte basée sur un microprocesseur


 Connaitre les différents types de mémoires
 Connaitre les différents types de bus dans les cartes à base de
microprocesseur
 Etudier l’interfaçage microprocesseur / mémoire
 Décodage d’adresse
 Etudier l’interfaçage microprocesseur / Entrées-Sorties
 Etudier les chronogrammes de lecture et d’ecriture en mémoire

3.2 Mémoires

Une mémoire est tout dispositif capable de stocker des


instructions et des données de telle sorte que l'organe
qui les utilise puisse à n'importe quel moment y accéder
pour lire ou écrire l'information.
Les informations peuvent être écrites ou lues. Il y a
écriture lorsqu'on enregistre des données en mémoire,
lecture lorsqu'on sort des informations précédemment
enregistrées.
On peut donc schématiser un circuit mémoire par la figure suivante où l’on peut
distinguer :

21
Fig. 8 – Schéma block d’une mémoire SRAM de 8 Koctets

 A1…A12 : entrées d’adresses

 D0…D7 : entrées/sortie de données

 WR, OE : entrées de commandes de lecture ou d’écriture (R/W).

 CE1, CE2,- une entrée de sélection du circuit (CS : Chip Select).

Une opération de lecture ou d’écriture de la mémoire suit toujours le même cycle :

a. sélection de l’adresse

b. choix de l’opération à effectuer (RD / WR)

c. sélection de la mémoire (CS = 0)

d. lecture ou écriture la donnée

3.2.1 Caractéristiques des mémoires

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

Donnée contenue 0CH 00002H


dans les cases
mémoire A2H 00001H

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

a) Mémoire vive : (RAM : Random Access Memory)


La mémoire vive désigne une mémoire ou chaque information stockée peut en
tout temps être consultée, ou modifiée. La mémoire centrale des ordinateurs est
une mémoire vive volatile.
On distingue deux type de RAM : RAM statique (SRAM) et RAM Dynamique
(DRAM).
Le bit mémoire d'une RAM statique est composé d'une bascule. Dans les RAM
dynamiques, l'information est mémorisée sous la forme d'une charge électrique
stockée dans un condensateur.
La présence de courants de fuite dans le condensateur contribue à sa décharge.
Ainsi, l’information est perdue si on ne la régénère pas périodiquement (charge
du condensateur). Les RAM dynamiques doivent donc être rafraîchies
régulièrement pour entretenir la mémorisation

b) Mémoire morte :

On distingue plusieurs type de 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.

3.3 Bus du microprocesseur

Le microprocesseur est relié à trois types de bus: le bus d'adresse, le bus de


données et le bus de commande. Il s'agit de plusieurs pistes électroniques qui sont
reliées au microprocesseur. Ces bus assurent la communication interne et externe
du microprocesseur.
a) Bus d'adresse
Le bus d'adresse est une voie unidirectionnelle qui sert à envoyer un code
d'adresse à la mémoire et à communiquer avec des dispositifs extérieurs. La
largeur de ce bus est de 32 bits (32 lignes regroupées) sur les microprocesseurs
Intel Pentium conventionnels. Cela signifie que ce microprocesseur est capable
d'adresser 232 emplacements en mémoire.
b) Bus de donnée
Le bus de donnée peut présenter une largeur de 8 à 64 bits, selon le type du
microprocesseur. C'est par le bus de donnée que sont transmises les données
qui doivent être traitées par le microprocesseur. C'est par le bus de données que
transitent toutes les données entrantes et sortantes du microprocesseur.
c) Bus de commande

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.

3.4 Interfaçage Microprocesseur / Mémoire

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

Fig. 9 – Interfaçage Microprocesseur / Mémoire

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

Fig. 10 – Interfaçage Microprocesseur / 2 boitier de Mémoire

3.5 Décodage d’adresse Mémoire / Entrée-Sortie

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. Ceci permet d’éviter les conflits sur le bus de
données.
Chacun des périphériques possède une entrée de sélection. C’est grâce à cette
entrée que le microprocesseur sélectionnera ou non le périphérique.
Par conséquent la fonction de décodage d’adresse doit permettre autant de sorties
que de périphériques présents sur le système.
Dans le cas du processeur possédant 16 bits d’adresse des schémas précédents, les
trois bits A13, A14 et A15, non connecter aux lignes d’adresses des mémoires, peuvent
être utilisé pour la sélection directe de 3 mémoires ou bien fournissent 8
combinaisons, de 000 à 111, à un décodeur d’adresse d’ou la possibilité de
connecter jusqu’à 8 boitiers mémoire de 8 Ko sur le bus. La mémoire totale
implantée devient donc de 8 × 8 Ko = 64 Ko (valeur maximale possible avec 16 bits
d’adresses). Dans ce cas on utilise, comme le montre la figure suivante, un décodeur
3 vers 8 (soit le 74LS138) ;

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

Fig. 10 – Interfaçage Microprocesseur Mémoires avec décodeur 3 vers 8


La table de vérité du décodeur d’adresse,74LS138, est la suivante :

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

Le mapping des différents circuits de mémoire est comme suit :

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

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

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

3.6 Chronogrammes de lecture et d’ecriture en mémoire

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

Le schéma suivant représente le chronogramme d’écriture des données dans une


mémoire

Fig. 12 – chronogramme de lecture des données de la mémoire

3.6.2 Chronogramme d’écriture

Le schéma suivant représente le chronogramme d’écriture des données dans une


mémoire SRAM de 8 Ko avec les différents paramètres temporelle d’écriture des
données.

Fig. 12 – chronogramme d’écriture des données


30
Avec :
tWC : Write Cycle Time
tSCE1 : LOW to Write End
tSCE2 : HIGH to Write End
tAW : Address Set-Up to Write End
tHA : Address Hold from Write End
tSA : Address Set-Up to Write Start
tPWR : WR Pulse Width
tSD : Data Set-Up to Write End
tHD : Data Hold from Write End
tHZWR WR LOW to High Z
tLZWR : WR HIGH to Low Z.

3.7 Points à retenir

 Caractéristiques des mémoires :

 Temps d'accès
 Temps de cycle
 Débit.
 Format des données.
 Volatilité
 Types de mémoires

Mémoire vive : (RAM : Random Access Memory)

Mémoire morte :

On distingue plusieurs type de mémoire morte :

 ROM (Read Only Memory) :


 PROM (Programmable Read Only Memory
 EPROM (Erasable PROM, appelée aussi UVPROM)

 EEPROM (Electrically Erasable PROM)

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

Vous aimerez peut-être aussi