Vous êtes sur la page 1sur 9

Université de Bordj Bou Arreridj

Faculté des Sciences et de la Technologie


Département d’Electronique
MCIL 2

Chap. V
Les interfaces
d’entrees/sorties du 8086
Sommaire
I. Définitions ................................................................................................................................................................... 1
II. Adressage des E/S ....................................................................................................................................................... 1
III. Gestion des ports d’E/S par le 8086 ....................................................................................................................... 2
IV. L’interface parallèle 8255 (PPI : Programmable Peripheral Interface) ................................................................... 2
4.1 Schéma fonctionnel .................................................................................................................................................. 2
4.2 Configuration du 8255 .............................................................................................................................................. 3
4.3 Structure du registre de commande......................................................................................................................... 3
4.4 Connexion du 8255 sur les bus du 8086 ................................................................................................................... 3
4.5 Exemple d’application .............................................................................................................................................. 4
V. L’interface sérielle 8250.............................................................................................................................................. 5
5.1 Principe d’une interface série ................................................................................................................................... 5
5.2 Les registres de l’UART 8250 .................................................................................................................................... 6
VI. Le Timer 8254 (PIT PROGRAMMABLE INTERVAL TIMER) ....................................................................................... 6
6.1 Schéma fonctionnel .................................................................................................................................................. 6
6.2 Adressage du 8254.................................................................................................................................................... 6
6.3 Structure du registre de commande......................................................................................................................... 7
VII. Le contrôleur programmable d’interruptions 8259 ............................................................................................... 7
7.1 Connexion au microprocesseur 8086 ....................................................................................................................... 7
7.2 Multiplication des sources d’interruptions............................................................................................................... 8
I. Définitions
L’unité des entrées/sorties (E/S) dans un ordinateur permet à celui-ci de de communiquer avec l’environnement
extérieur. Elle est constituée par un ensemble d’interfaces d’E/S. Par définition, une interface d’E/S permet de relier à
l’ordinateur un périphérique ou circuit d’E/S. Elle permet d’adapter les signaux du microprocesseur aux signaux de ces
périphériques (clavier, écran, imprimante, disques, circuit de mesure température, circuit de mesure de pression, ...).
Les interfaces d’E/S sont connectées au microprocesseur à travers les bus d’adresses, de données et de commandes.
Les points de jonction entre les interfaces et les périphériques sont appelés ports d’E/S.
Circuit E/S 1 Circuit E/S 2 Circuit E/S 3

Port Port Port

Interface E/S 1 Interface E/S 2 Interface E/S 3

Mémoire Processeur

Unité d E/S

Bus (Données, Adresses, contrôle)

Figure 1 : Les entrées / sorties.


Dans un ordinateur, tous les éléments autour du microprocesseur possèdent des adresses propres. Les circuits d’E/S
sont également vus par le microprocesseur comme des cases mémoires ayant des adresses qui leurs sont propres.
Un circuit d’E/S possède plusieurs registres qui permettent de gérer les échanges avec le microprocesseur, chacun
possède une adresse unique. De manière générale, un circuit d’E/S est constitué par :
- Un ou plusieurs registres de configuration ;
- Un ou plusieurs registres de données ;
- Un ou plusieurs registres d’état.

II. Adressage des E/S


Le microprocesseur 8086 accède aux adresses des ports d’E/S en utilisant l’adressage indépendant. Il dispose d’un
espace mémoire de 1 Mo (adresse d’une case mémoire sur 20 bits) et d’un espace d’E/S de 64 Ko (adresse d’un port
d’E/S sur 16 bits).
FFFFFh

Espace mémoire

0FFFFh

Espace des E/S

00000h

Figure 2 : Adressage des entrées / sorties.

Université de BBA-Département d’Electronique T. Abed 1


III. Gestion des ports d’E/S par le 8086
L’utilisation du principe d’adressage indépendant exige l’existence d’un signal physique permettant de différencier
l’accès à l’espace mémoire de celui aux ports E/S. Dans le cas du 8086, ce signal est la ligne 𝑀/𝐼𝑂, il doit être utilisé
dans les circuits de décodage d’adresse dans les deux espaces. Des instructions différentes sont prévues pour l’accès à
ces deux espaces elles mettent la ligne 𝑀/𝐼𝑂 à 1 ou à 0 :
• Accès à la mémoire : 𝑀/𝐼𝑂 = 1, instruction MOV ;
• Accès aux ports d’E/S : 𝑀/𝐼𝑂 = 0, instructions IN et OUT.

Lecture d’un port d’E/S : Ecriture d’un port d’E/S :


• Si l’adresse du port d’E/S est sur un octet : • Si l’adresse du port d’E/S est sur un octet :
IN AL, adresse : lecture d’une donnée sur 8 bits ; OUT adresse, AL : écriture d’une donnée sur 8 bits ;
IN AX, adresse : lecture d’une donnée sur 16 bits. OUT adresse, AX : écriture d’une donnée sur 16 bits.
Exemples : Exemple :
IN AL, 0A2h MOV AX, 1423h
IN AX, 37h OUT 21h, AX

• Si l’adresse du port d’E/S est sur deux octets : • Si l’adresse du port d’E/S est sur deux octets :
IN AL, DX : lecture d’une donnée sur 8 bits ; OUT DX, AL : écriture d’une donnée sur 8 bits ;
IN AX, DX : lecture d’une donnée sur 16 bits. OUT DX, AX : écriture d’une donnée sur 16 bits.
Exemple : Exemple :
MOV DX, 1500h MOV AX, 2100h
IN AL, DX MOV DX, 3FD0h
OUT DX, AX

IV. L’interface parallèle 8255 (PPI : Programmable Peripheral Interface)


Le 8255 est une interface parallèle disposant de 3 ports de 8 lignes chacun programmables en entrée et/ou en sortie.

4.1 Schéma fonctionnel

8255

Figure 3 : Schéma fonctionnel du 8255.

Le 8255 dispose de 4 registres dont l’accès se fait grâce aux lignes A1 et A0 :


• Trois registres de données des ports A, B et C ;
• Un registre de configuration des ports A, B et C.

Université de BBA-Département d’Electronique T. Abed 2


̅𝐶𝑆
̅̅̅ ̅̅̅̅
𝑅𝐷 ̅̅̅̅̅
𝑊𝑅 A1 A0 Opération
0 0 1 0 0 Lecture sur le port A
0 0 1 0 1 Lecture sur le port B
0 0 1 1 0 Lecture sur le port C
0 0 1 1 1 Interdit
0 1 0 0 0 Ecriture sur le port A
0 1 0 0 1 Ecriture sur le port B
0 1 0 1 0 Ecriture sur le port C
0 1 0 1 1 Ecriture sur le registre de configuration
0 1 1 X X Aucune
1 X X X X Aucune

4.2 Configuration du 8255


Grâce au registre de commande, les ports peuvent être configurés en entrées ou en sorties et ce selon 3 modes
possibles : mode 0, mode 1 ou mode 2 :
• Dans le mode 0, les ports sont configurés en entrées/sorties de base. Les données en entrée ou en sortie
correspondent aux contenus des registres de données ;
• En mode 1, deux groupes A et B sont définis. Les ports A et B de 8 bits sont configurés en entrées ou en sorties.
Ils leurs sont associés respectivement, les quartets haut et bas du port C, pour le contrôle du port et la
communication avec le périphérique extérieur.
• Le mode 2 permet de réaliser sur le port A (uniquement) un bus de données bidirectionnel de 8 bits, 5 bits sur
le port C sont utilisés pour le contrôle et l’état du bus de données.

4.3 Structure du registre de commande

Figure 4 : Registre de configuration.

4.4 Connexion du 8255 sur les bus du 8086


Le bus de données du 8255 est sur 8 bits alors que celui du microprocesseur 8086 est sur 16 bits. On peut connecter le
bus de données du 8255 sur les lignes de données de poids faible du 8086 (D0-D7) ou sur celles de poids fort (D8-D15).
D15-D8 ou D7-D0 D7-D0

A1 A0
A2 A1
RD RD
WR WR 8255
M/IO
BHE
8086 BHE ou A0 CS
A0
A3
Décodage

. .
. Y
.
A15

Figure 5 : Décodage d’adresse et connexion au microprocesseur.


Université de BBA-Département d’Electronique T. Abed 3
Les adresses des ports seront donc paires (validées par A0) ou impaires (validées par𝐵𝐻𝐸) respectivement. Le circuit
de décodage d’adresses permet de fixer l’adresse de base du 8255 ; les lignes A1 et A2 déterminent les adresses des
̅̅̅ doit être incluse (égale à 0) pour la validation du 8255.
registres du 8255 à partir de l’adresse de base. La ligne 𝑀/𝐼𝑂
Exemple : Adresse de base 0300h, le circuit de décodage aura donc pour sortie Y :
𝑌 = 𝐴3 + 𝐴4 + 𝐴5 + 𝐴6 + 𝐴7 + ̅̅̅̅ 𝐴8 + ̅̅̅̅
𝐴9 + 𝐴10 + 𝐴11 + 𝐴12 + 𝐴13 + 𝐴14 + 𝐴15
• A2 = 0 et A1 = 0 : adresse du port A = adresse de base + 0 = 0300h ;
• A2 = 0 et A1 = 1 : adresse du port B = adresse de base + 2 = 0302h ;
• A2 = 1 et A1 = 0 : adresse du port C = adresse de base + 4 = 0304h ;
• A2 = 1 et A1 = 1 : adresse du registre de commande = adresse de base + 6 = 0306H.

4.5 Exemple d’application


On veut que la LED s’allume lorsqu’on a la combinaison : K0 = 1 et K1 = 0 et K2 = 1.

Vcc
D7-D0 D7-D0

A1 A0 PA0
K1
A2 A1
PA1 Gnd
K2
8255
PA2
K3
A0
8086 CS
A3 PB0
Décodage

. .
. . Y LED
A15
M/IO

Figure 6 : Exemple d’application du 8255.


Programme :
portA equ 300H ; adresses des registres du 8255
portB equ 302H
portC equ 304H
controle equ 306H
mov dx, controle ; initialisation du port A en entrée
mov al, 90H ; et du port B en sortie (mode 0) :
out dx, al ; controle = 10010000B = 90H
boucle : mov dx, portA ; lecture du port A
in al, dx
and al, 00000111B ; masquage PA0, PA1 et PA2
cmp al, 00000101B ; test PA0 = 1, PA1 = 0 et PA2 = 1
jne faux ; non → aller au label ‘‘faux’’ ...
mov al, 00000001B ; oui → mettre PB0 à 1
jmp suite ; et continuer au label ‘‘suite’’
faux : mov al, 00000000B ; ... mettre PB0 à 0
suite : mov dx, portB ;
out dx, al ; écriture du port B
jmp boucle ; retour à la lecture du port A

Université de BBA-Département d’Electronique T. Abed 4


V. L’interface sérielle 8250
Une interface série permet au microprocesseur de communiquer avec des périphériques en utilisant uniquement deux
lignes (TxD et RxD), l’une pour la transmission et l’autre pour la réception. Les mots à envoyer sont donc véhiculés bit
par bit. Ceci a pour avantage la diminution du nombre de connexions, cependant la vitesse de transmission est plus
faible que pour une interface parallèle. Il existe deux types de transmissions séries :
• Synchrone : Des octets successifs sont émis par blocs à des intervalles réguliers, séparés par des octets de
synchronisation ;
• Asynchrone : Des octets sont émis ou reçu à des intervalles irréguliers.
Il existe des circuits interface série synchrone/asynchrone (USART Universal Synchronous/Asynchronous Receiver
Transmitter) et des circuits interface série asynchrone (UART). La norme RS232 fait partie des interfaces asynchrones
les plus utilisées.
Exemple : transmission du caractère ’E’ (code ASCII 45H = 01000101B) sous forme série selon la norme RS232 :

Figure 8 : Transmission du caractère ‘E’ sur une liaison RS232.


• L’état 1 correspond à une tension négative comprise entre −9 et −15 V, l’état 0 à une tension positive comprise
entre +9 et +15 V. Au repos, la ligne est à l’état 1 (tension négative) ;
• Le bit de start marque le début de la transmission du caractère ;
• Les bits de données sont transmis l’un après l’autre en commençant par le bit de poids faible. Ils peuvent être
au nombre de 5, 6, 7 ou 8. Chaque bit est maintenu sur la ligne pendant une durée déterminée T. On définit
donc la notion de vitesse de transmission qui décrit le nombre de bits transmis par secondes. 4800, 9600 bits/s
sont des vitesses normalisées ;
• Le bit de parité (facultatif) est un bit supplémentaire dont la valeur dépend du nombre de bits de données
égaux à 1. Il est utilisé pour la détection d’erreurs de transmission ;
• Les bits de stop (1, 1.5 ou 2) marquent la fin de la transmission du caractère.

5.1 Principe d’une interface série

Registre de données Registre à décalage


TxD
(émission) (émission)
Bus de données

D7-D0

Registre de données Registre à décalage


RxD
(réception) (réception)

Registre de configuration Synchronisation


Registre d état Contrôle de Parité

Horloge

Figure 9 : Principe d’une liaison sérielle.

Université de BBA-Département d’Electronique T. Abed 5


5.2 Les registres de l’UART 8250
Le 8250 possède 11 registres. Il n’a que 3 bits d’adresses (A0, A1 et A2). Plusieurs registres doivent donc se partager la
même adresse. En fonction de l’état de DLAB (Divisor Latch Access Bit = bit de poids fort du registre LCR), on a accès
soit au registre d’émission/réception, soit au diviseur d’horloge, soit au masque d’interruptions.
DLAB A2 A1 A0 Register
0 0 0 0 RBR : Receiver Buffer Register, registre de réception (accessible seulement en lecture)
0 0 0 0 THR : Transmitter Holding Register, registre d’émission (accessible seulement en écriture)
1 0 0 0 DLL : Divisor Latch LSB, octet de poids faible du diviseur d’horloge
1 0 0 1 DLM : Divisor Latch MSB, octet de poids fort du diviseur d’horloge
0 0 0 1 IER : Interrupt Enable Register, registre d’autorisation des interruptions
X 0 1 0 IIR : Interrupt Identification Register, registre d’identification des interruptions
X 0 1 1 LCR : Line Control Register, registre de contrôle de ligne
X 1 0 0 MCR : Modem Control Register, registre de contrôle modem
X 1 0 1 LSR : Line Status Register, registre d’état de la ligne
X 1 1 0 MSR : Modem Status Register, registre d’état du modem
X 1 1 1 SCR : Scratch Register, registre à usage général

VI. Le Timer 8254 (PIT PROGRAMMABLE INTERVAL TIMER)


Le circuit d’E/S 8254 est un compteur/timer programmable qui permet de générer des délais de temporisation précis.
Il permet également de réaliser les fonctions suivantes :
• Horloge temps réel ;
• Compteur d’événements ;
• Générateur d’impulsions ;
• Générateur de signaux carrés …
Il est formé de trois compteurs identiques qui peuvent recevoir une horloge d’entrée de 8 ou 10MHz de fréquence, et
qui peuvent être programmés de manière totalement indépendante.

6.1 Schéma fonctionnel

CLK 0
Gate 0
• Clk : entrée d’horloge externe ;
D0 – D7 Out 0
• Gate : entrée de contrôle du compteur ;
CLK 1
• Out : sortie du compteur.
RD
Gate 1
WR 8254 Out 1

A0
CLK 2
A1 Gate 2
Out 2

CS

Figure 11 : Schéma fonctionnel du 8254

6.2 Adressage du 8254


̅̅̅̅ A1
𝑪𝑺 A0 Port
0 0 0 Compteur 0
0 0 1 Compteur 1
0 1 0 Compteur 2
0 1 1 Registre de commande
1 X X 8254 dévalidé

Université de BBA-Département d’Electronique T. Abed 6


6.3 Structure du registre de commande

Figure 12 : Description du registre de commande du 8254.

SC (Select Counter) : M : Mode


Sélection du compteur :
SC1 SC0 Compteur M2 M1 M0 Mode Description
0 0 Compteur 0 0 0 0 Mode 0 Interruption après la fin de comptage
0 1 Compteur 1 0 0 1 Mode 1 Impulsion à durée programmable
1 0 Compteur 2 X 1 0 Mode 2 Générateur d’horloge (compteur diviseur par N)
1 1 Lecture d’un compteur X 1 1 Mode 3 Générateur de signal carré
1 0 0 Mode 4 Comptage synchronisé par programme
1 0 1 Mode 5 Comptage synchronisé par la ligne Gate.

RW (Read / Write) : Lecture / Ecriture. BCD


RW1 RW0 Fonction BCD Fonctionnement
0 0 Chargement de la valeur d’un compteur 0 Compteur binaire sur 16 bits
0 1 Lecture/Ecriture du LS Byte seulement 1 Compteur BCD à 4 décades
1 0 Lecture/Ecriture du MS Byte seulement
1 1 Lecture/Ecriture du LS Byte, puis du MS Byte.

VII. Le contrôleur programmable d’interruptions 8259


Le microprocesseur 8086 ne dispose que de deux lignes de demandes d’interruptions matérielles (NMI et INTR). Le
contrôleur d’interruptions 8259, qui peut gérer jusqu’à 8 demandes d’interruptions matérielles, est utilisé pour
connecter plusieurs sources d’interruptions. Il permet de :
• Recevoir des demandes d’interruptions des périphériques ;
• Gérer les priorités dans le cas de l’avènement de plusieurs interruptions simultanées ;
• Générer le signal INTR du 8086 ;
• Fournir au 8086 le numéro de l’interruption sur le bus de données.

7.1 Connexion au microprocesseur 8086

Figure 14 : Schéma de connexion du 8259 au microprocesseur.

Université de BBA-Département d’Electronique T. Abed 7


7.2 Multiplication des sources d’interruptions
Plusieurs circuits 8259 sont mis en cascade afin d’augmenter le nombre de sources d’interruption.

Figure 15 : Technique de multiplication des sources d’interruptions.

Université de BBA-Département d’Electronique T. Abed 8