Sunteți pe pagina 1din 43

République Tunisienne Institut Supérieur des Etudes

Ministère de l’Enseignement Technologiques de Mahdia


Supérieur et de la
Recherche Scientifique et de
la Technologie

Notes de cours
Circuits d’Interfaces

4ème niveau Informatique Industrielle

Mohamed Ali KAMMOUN

Année Universitaire : 2006-2007

Version : 2.0
Table des matières

CHAPITRE I :....................................................................................................................................................... 5
LE MICROPROCESSEUR 16 BITS 8086/8088 ................................................................................................ 5
1. INTRODUCTION .......................................................................................................................................... 2
2. LES BROCHES DU 8086 .............................................................................................................................. 2
2.1. Les lignes d’adresses et de données ................................................................................................ 2
2.2. Le signal d’horloge ......................................................................................................................... 3
2.3. Les lignes de contrôle et d’état........................................................................................................ 3
3. SEGMENTATION DE LA MEMOIRE ............................................................................................................... 4
4. INTERFACES AVEC LES ENTREES/SORTIES .................................................................................................. 4
CHAPITRE II : ..................................................................................................................................................... 6
L’INTERFACE PARALLELE I8255 ................................................................................................................. 6
1. PRESENTATION .......................................................................................................................................... 7
2. LES FONCTIONS DES LIGNES DE CONTROLE DU PPI 8255 ........................................................................... 8
3. LE MOT DE CONTROLE ............................................................................................................................... 8
3.1. Format du mot de contrôle pour la commande standard ................................................................ 9
3.2. Format du mot de contrôle pour la commande Set/Reset du port C ............................................... 9
4. LES MODES DE FONCTIONNEMENT DU 8255............................................................................................. 10
4.1. Mode 0 : Entrées/Sorties Parallèles.............................................................................................. 10
4.2. Mode 1 : Entrées/Sorties Parallèles avec Dialogue...................................................................... 11
4.2.1. Mode 1 en entrée ...................................................................................................................................... 11
4.2.2. Mode 1 en sortie ....................................................................................................................................... 12
4.3. Mode 2 : Entrée/Bus bidirectionnelle ........................................................................................... 14
CHAPITRE III :.................................................................................................................................................. 16
L’INTERFACE SERIE I8251............................................................................................................................ 16
1. PRESENTATION ........................................................................................................................................ 17
2. ARCHITECTURE DU 8251 ......................................................................................................................... 17
2.1. Interface de connexion au Modem ................................................................................................ 17
2.2. Bloc d’émission ............................................................................................................................. 17
2.3. Bloc de réception........................................................................................................................... 18
3. PROGRAMMATION DU 8251 ..................................................................................................................... 18
3.1. Accès aux registres........................................................................................................................ 18
3.2. Programmation ............................................................................................................................. 19
3.2.1. Mot de sélection de mode ......................................................................................................................... 19
3.2.2. Mot de commande .................................................................................................................................... 20
3.2.3. Mot d’état ................................................................................................................................................. 21
CHAPITRE IV :.................................................................................................................................................. 22
LE CONTROLEUR D’INTERRUPTIONS PROGRAMMABLE I8259 ...................................................... 22
1. DEFINITION.............................................................................................................................................. 23
2. AFFECTATION DES INTERRUPTIONS DANS LE CAS DES PC........................................................................ 23
3. ARCHITECTURE ET REGISTRES DU 8259................................................................................................... 24
3.1. Architecture du 8259..................................................................................................................... 24
3.2. Registres du 8259.......................................................................................................................... 24
3.2.1. Mot de commande d’initialisation 1 : Initialisation Command Word 1 (ICW1)....................................... 24
3.2.2. Mot de commande d’initialisation 2 : Initialisation Command Word 2 (ICW2)....................................... 25
3.2.3. Mot de commande d’initialisation 3 : Initialisation Command Word 3 (ICW3)....................................... 25
3.2.4. Mot de commande d’initialisation 4 : Initialisation Command Word 4 (ICW4)....................................... 26
3.2.5. Mot de contrôle d’opération 1 : Operation Control Word 1 (OCW1)....................................................... 27
3.2.6. Mot de contrôle d’opération 2 : Operation Control Word 2 (OCW2)....................................................... 27
3.2.7. Mot de contrôle d’opération 3 : Operation Control Word 3 (OCW3)....................................................... 28
3.2.8. IRR : (Interrupt Request Register = registre demande d'interruption) ...................................................... 29
3.2.9. ISR : (In Service Register = registre interruption en service) ................................................................... 29
4. PROGRAMMATION DU 8259 ..................................................................................................................... 29
CHAPITRE V : ................................................................................................................................................... 31
LE TIMER PROGRAMMABLE LE I8253/8254 ............................................................................................ 31
1. INTRODUCTION ........................................................................................................................................ 32
2. STRUCTURE INTERNE ............................................................................................................................... 32
3. ACCES AUX REGISTRES ............................................................................................................................ 33
3.1. Adresses ........................................................................................................................................ 33
3.2. Mot de commande ......................................................................................................................... 34
3.2.1. Procédure d’écriture.................................................................................................................................. 34
3.2.2. Procédure de lecture ................................................................................................................................. 34
4. MODES DE FONCTIONNEMENT ................................................................................................................. 35
4.1. Mode 0 : Envoi d’une demande d’interruption en fin de décomptage .......................................... 35
4.2. Mode 1 : Re-déclenchement par impulsion extérieur.................................................................... 36
4.3. Mode 2 : Timer d’intervalle périodique ........................................................................................ 36
4.3.1. Mode 3 : Générateur d’ondes carrées ....................................................................................................... 37
4.3.2. Mode 4 : Strobe déclenché par logiciel..................................................................................................... 37
4.3.3. Mode 5 : Strobe déclenché par matériel (hardware) ................................................................................. 38
BIBLIOGRAPHIE.............................................................................................................................................. 39
Table des figures

Fig. 1: Schéma interne du 8255.................................................................................................. 7


Fig. 2 : Brochage du 8255 .......................................................................................................... 8
Fig. 3 : Format du mot de contrôle............................................................................................. 9
Fig. 4 : Format du mot de contrôle en mode Set/Reset ............................................................ 10
Fig. 5 : Le 8255 en mode 1 en entrée ....................................................................................... 11
Fig. 6 : Fonctionnement du 8255 en mode 1 Entrée ................................................................ 12
Fig. 7 : Le 8255 en mode 1 en sortie........................................................................................ 13
Fig. 8 : Fonctionnement du 8255 en mode 1 Sortie ................................................................. 14
Fig. 9 : Fonctionnement en mode 2.......................................................................................... 14
Fig. 10 : Le 8255 en mode 2..................................................................................................... 15
Fig. 11 : Structure interne du 8251........................................................................................... 17
Fig. 12 : Structure du 8259....................................................................................................... 24
Fig. 13 : Organigramme d’initialisation du 8259..................................................................... 30
Fig. 14 : Brochage du 8253 ...................................................................................................... 32
Fig. 15 : Architecture du 8253 ................................................................................................. 33
Fig. 16 : Structure interne du 8253/8254.................................................................................. 33
CHAPITRE I :

Le Microprocesseur 16 bits 8086/8088

Plan :

1. Introduction
2. Les broches du 8086
3. Segmentation de la mémoire
4. Interfaçage avec les Entrées/Sorties
CHAPITRE I : Le microprocesseur 16 bits 8086/8088 ISET Mahdia

1. Introduction
Créé en 1978 par Intel, le 8086 a été l'un des premiers microprocesseurs 16 bits. Il dispose
d'un bus de données sur 16 bits, ce qui constituait à l’époque à la fois un avantage en raison de
cette puissance, et un inconvénient car les circuits spécifiques 16 bits d'accompagnement
n'existaient pas encore. Force était donc d’uti1iser les « anciens » circuits périphériques 8 bits
dans des montages plus complexes.
C'est ce qui a amené Intel à créer un sous-produit du 16 bits 8086 mais avec une
différence considérable : son bus de données externe est sur 8 bits. C’est le 8088, né en 1979.
Ainsi, le microprocesseur 16 bits en interne peut utiliser des circuits périphériques 8 bits dont
le double avantage est qu ils existaient et qu'ils étaient économiques.

C'est pourquoi le 8088 est désigné par « vrai-faux» 16 bits.

2. Les broches du 8086


Le microprocesseur 8086/88 possède cinq types (catégories) de pins : adresse, donnée,
contrôle/état, horloge et alimentation. Nous citons ci-après les principaux pins

2.1. Les lignes d’adresses et de données

Le prix d revient d’un circuit intégré dépend, pour beaucoup, du nombre de ses broches
avec les boîtiers DIP. Si l’on diminue le compte des broches, on réduit le prix. C’est ce qui a
incité divers fabricants à élaborer des astuces allant dans ce sens.
En fait, et dans tous les cas, cela consiste à faire passer plusieurs signaux par la même broche,
soit en les complémentant, soit en les multiplexant dans le temps. C’est effectivement le cas,
avec le 8086/88, en particulier avec des broches communes adresses et données notées AD.

* AD0 – AD15 : L’observation de départ est la suivante : lorsque le microprocesseur


émet une adresse sur le bus d’adresse, seule cette adresse est présente sur le bus car la donnée
n’est par encore nécessaire. On va demander au circuit destinataire de l’adresse de
l’échantillonner et de la verrouiller, c’est-à-dire de la mémoriser et de la prendre en compte.
Après, le bus d’adresse n’a plus aucun rôle à jouer et on peut impunément l’exploiter pour
faire transiter une donnée.

Puisque l’adresse et la donnée n’ont pas besoin d’être simultanément présents sur le
bus, on peut utiliser le même qui servira, à tour de rôle, à l’une ou à l’autre. C’est ce que l’on
appelle le multiplexage temporel (dans le temps, à des instants différents). La partie
multiplexée du bus est repérée par les lettres AD, pour adresses-données. Avec le 8088, il
s’agit de huit broches, notées AD0 à AD7. Pour le 8086 il s’agit de 16 broches AD0 à AD15.

Ces lignes peuvent donc être des lignes de sortie ou d’entrée selon qu’il sa d’écriture
ou de lecture. Elles se mettent en troisième état lors de l’acquittement dune interruption ou
d’un hold.

* A19 - A16 : Ces lignes possèdent une double fonction : la première l’adressage, au
début de chaque cycle machine, des quatre bits de plus forts poids de l’adresse matérielle à 20
bits. La seconde, une fois l’adresse est verrouillée :

Informatique Industrielle niveau 4 Med Ali KAMMOUN 2


CHAPITRE I : Le microprocesseur 16 bits 8086/8088 ISET Mahdia

A17 et A16 deviennent les lignes d’état S4 et S3 qui décodées donnent le segment en
cours.

A18 : devient la ligne S5 qui donne l’état du flag d’interruption.


A19 : devient la ligne d’état S6 (à 0 indique que le microprocesseur est sur le bus).

2.2. Le signal d’horloge

Pour ce signal on utilise le générateur d’horloge 8284 qui permet de fournir à l’entrée CLK le
tiers de la fréquence délivrée par un quartz connecté en résonance série.

2.3. Les lignes de contrôle et d’état

ALE : Le front descendant de ce signal permet de verrouiller l’adresse dans un latch afin de la
garder sur le bus jusqu’à la fin du cycle et permettre ainsi aux pins d’adresse de changer de
fonction. La ligne ALE n’est jamais mise en 3ième état.

RD : Ligne read, active à l’état bas indique que le microprocesseur est entrain de lire à partir
de la mémoire ou d’un port d’E/S.

WR : Ligne write, active à l’état bas indique que le microprocesseur est entrain d’écrire dans
la mémoire ou sur un port d’E/S.

IO / M : Ce signal spécifie si le cycle machine en cours est entrain d’adresser un port d’E/S
(niveau haut) ou une mémoire (niveau bas).

MN / MX : Cette entrée, mise à 1 configure le système dans le mode minimum (les lignes de
contrôle ont été définis dans ce cas); mise à 0, ces lignes changent de signification et le
système est configuré dans le mode maximum, le contrôleur de bus 8288 est alors
indispensable et s’il y a plusieurs processeurs, l’arbitre de bus 8289 sera en plus nécessaire.

DT / R : C’est une sortie qui décide pour le transmetteur (8286/8287) de la direction ces
données sur le bus : à l’état haut c’est le sens de l’écriture (Data transmit), à l’état bas c’est le
sens de la lecture par le microprocesseur (Data Receive). Ce signal est mis en 3ième état lors de
l’acquittement d’un hold.

HOLD/HLDA : A l’état haut c’est une demande par un autre maître pour le contrôle du bus.
Le microprocesseur répond l’acquittement HLDA (HOLD ACKNOWLEDGE à l’état haut) à
la fin de l’opération de transfert de donnée en cours. Le microprocesseur ne fait passer ce
signal à l’état bas qu’une fois le HOLD reçu est à 0.

INTR : C’est un signal de demande d’interruption, active à l’état haut. Sa présence est
automatiquement détectée lors du dernier cycle horloge de chaque instruction. Lorsqu’il est à
1, le µp saute à une routine d’exécution de l’interruption (via une table des vecteurs
d’interruptions se trouvant dans la mémoire du système) afin de servir le périphérique
demandeur. Ce signal est synchronisé intérieurement et devra être validé par la mise à 1 du bit
correspondant du registre de flags.

Informatique Industrielle niveau 4 Med Ali KAMMOUN 3


CHAPITRE I : Le microprocesseur 16 bits 8086/8088 ISET Mahdia

RESET : Ce signal sert à démarrer ou redémarrer le système : à son front positif, le µp termine
ses activités ; au front descendant tous les registres internes sont mis à 0 sauf CS à FFFFH. Le
signal RESET est fourni par le circuit 8284 qui possède un trigger de Schmitt interne dont
l’entrée RES est reliée à un circuit RC possédant une constante de temps d’au moins 50µs
(après que l’alimentation ait atteint 4,5V). L’hystérésis du trigger empêche la sortie RESET
d’osciller lorsque la tension d’entrée commute.

3. Segmentation de la mémoire

En assembleur, on appelle segment de mémoire le mécanisme de base de la gestion des


adresses pour des processeurs de type 80x86. Les instructions sont stockées dans le registre
IP. Il s'agit d'adresses dont la taille est de 16 bits. Or, avec 16 bits il n'est possible d'adresser
que 216= 64 Ko.

Les bus d'adresses récents possèdent toutefois 32 bits. Les adresses qu'ils véhiculent sont donc
constituées de deux composantes de 16 bits:

• un segment de 16 bits
• un déplacement (ou offset en anglais) de 16 bits

Les segments sont stockés dans des registres de 16 bits, dont les deux principaux sont:

• Le segment de données: DS (Data Segment)


• Le segment de code: CS (Code segment)

Le processeur utilise le segment CS pour lire le code d'une instruction. Lors de la lecture de
celui-ci il crée une adresse de 32 bits formée de la paire constituée par le registre segment CS
et le registre de déplacement IP, on note cette paire CS:IP.
Le registre segment CS est initialisé automatiquement au chargement du programme sur le
segment contenant la première instruction à exécuter.
Le segment DS permet au processeur d'aller chercher les données stockées à une adresse. Il
crée alors la paire constituée du registre segment DS et de l'adresse 16 bits indiquée dans
l'instruction. C'est au programmeur de définir dans le code source l'adresse du segment de
donnée à utiliser, en initialisant le registre DS.

4. Interfaces avec les entrées/sorties


Le 8086 et le 8088 acceptent tous les deux, pour les entrées/sorties, la projection E/S et la
projection mémoire. La projection E/S permet à un composant d’E/S de résider dans un
espace adresse séparé ou salé (les premiers 64KO de l’espace adresse) ; les instructions IN et
OUT seront alors utilisées pour la communication. La projection mémoire permet aux
composant d’E/S de résider en mémoire toutes les instructions du microprocesseur pourraient
être utilisées pour les E/S.

• Le 8086 accepte les composants E/S 8 bits et 16 bits. Un composant E/S 8 bits
peut être mis sur la partie basse ou sur la partie haute du bus de donnée (autant
mettre un nombre égal sur chacune des moitiés pour équilibrer la charge du bus).

Informatique Industrielle niveau 4 Med Ali KAMMOUN 4


CHAPITRE I : Le microprocesseur 16 bits 8086/8088 ISET Mahdia

• Lorsqu’un composant d’E/S est mis sur la moitié basse, toutes les adresses de ses
registres doivent être paires et il sera sélectionné à l’aide de A=0. De même un
composant d’E/S mis sur la moitié haute n’aura que des adresses impaires, la
sélection s’effectue par A0=1.

• Comme le 8088 possède un bus de donnée de 8 bits, il est normalement conçu


pour accepter des composants E/S 8 bits sans aucune restriction sur la parité de
l’adresse.

Informatique Industrielle niveau 4 Med Ali KAMMOUN 5


CHAPITRE II :

L’Interface Parallèle i8255

Plan :

1. Présentation
2. Les fonctions des lignes de contrôle du PPI 8255
3. Le mot de contrôle
4. Les modes de fonctionnement du 8255
CHAPITRE II : L’Interface Parallèle i8255 ISET Mahdia

1. Présentation
L’interface programmable 8255 est un circuit à liaison parallèle destiné à faire les
échanges des données entre un microprocesseur et divers dispositifs extérieurs. Puisque il est
programmable, on peut l’utiliser dans diverses configurations.
Le 8255 possède 24 bits d’entrées-sorties réparties sur 3 ports A, B et C. Ces derniers
peuvent être programmés indépendamment l’un de l’autre soit en entrées soit en sorties. Il
existe 3 modes de fonctionnement, et il est possible de les attribuer à certains ports
individuellement ou en regroupant certaines lignes des ports A ou B avec celles du port C.
En plus des caractéristiques communes aux trois ports, chacun de ceux-ci possède des
propriétés particulières permettant ainsi au 8255 de satisfaire de nombreux besoins.

• Le port A : possède deux mémoires tampon destinées à l’entrée et à la sortie de 8


bits de données. Il est donc possible de l'utiliser en mode bidirectionnel.
• Le port B : possède une seule mémoire tampon destinée aux entrées-sorties de 8
bits, complétée par un amplificateur tampon d'entrée de 8 bits.
• Le port C : c'est le plus complexe, il possède une mémoire tampon destinée aux
sorties et un amplificateur tampon d'entrée de 8 bits. Il possède la particularité de
pouvoir être divisé en deux ports d'entrée-sortie de 4 bits, qu'on peut associer aux
ports A et B. Il est possible de les utiliser pour générer les lignes d'état et de contrôle
nécessaires aux systèmes connectés au port A (ou B) et aux éventuels signaux
d’interruption destinés au microprocesseur. Dans ce mode de fonctionnement,
certains bits du registre d’accès au port C deviennent un masque d’interruption. Le
port C possède une autre particularité, qui est le pouvoir d’être modifié bit par bit par
une seule instruction de sortie.

Fig. 1: Schéma interne du 8255

Informatique Industrielle niveau 4 Med Ali KAMMOUN 7


CHAPITRE II : L’Interface Parallèle i8255 ISET Mahdia

La connexion avec le microprocesseur se fait par l’intermédiaire d’un bus de 8 bits et


de 6 lignes permettant le contrôle du 8255A. Le mode de fonctionnement est défini dans un
registre du mot de contrôle, chargé à travers un bus de 8 bits en utilisant la configuration
appropriée des lignes de contrôle.

Fig. 2 : Brochage du 8255

2. Les fonctions des lignes de contrôle du PPI 8255


Le PPI 8255 dispose de plusieurs lignes de contrôle dont nous allons succinctement
voir les fonctions. Ces lignes sont utilisées pour effectuer des opérations d'entrée-sortie ainsi
que pour le chargement du registre de contrôle.
• CS : C’est la broche de validation du boîtier (actif au niveau bas).
• RD : Un niveau bas appliqué sur cette entrée permet de lire l’état du groupe
sélectionné ou une donnée.
• WR : Un niveau bas appliqué sur cette entrée permet d’écrire dans le port de contrôle
ou d’envoyer une donnée sur l'un des ports.
• A0 et A1 : ces 2 entrées sont reliées aux lignes d’adresses A0 et A1 du bus de
l’ordinateur. Elles permettent de sélectionner l’un des 4 ports contenus dans le
boîtier (A, B, C ou le registre de contrôle).
• RESET : un niveau haut appliqué sur cette entrée de remise à zéro positionne les 3
ports en entrées et annule toute écriture réalisée dans le registre de contrôle.

3. Le mot de contrôle
Le 8255 dispose d'un mot de contrôle qui permet de configurer les 3 ports en entrées
ou en sorties. Ce mot est chargé dans un registre de 8 bits utilisant la combinaison appropriée
des lignes A et B. Ensuite les 24 lignes d'entrée-sortie de 8255 sont réparties en 2 groupes. Le
groupe A rassemble les 8 bits du port A et les bits 4 à 7 du port C. Le groupe B rassemble les
8 bits du port B et les bits 0 à 3 du port C.

Informatique Industrielle niveau 4 Med Ali KAMMOUN 8


CHAPITRE II : L’Interface Parallèle i8255 ISET Mahdia

Les combinaisons des lignes de contrôle sont représentées dans le tableau suivant:

A1 A0 RD WR CS OPERATION
0 0 0 1 0 Lecture port A
0 1 0 1 0 Lecture port B
1 0 0 1 0 Lecture port C ou du REG STATUS (modes 1 et 2)
0 0 1 0 0 Ecriture port A
0 1 1 0 0 Ecriture port B
1 0 1 0 0 Ecriture port B
1 1 1 0 0 Ecriture de mot de contrôle
X X X X 1 Non sélectionné
1 1 0 1 0 Etat interdit

3.1. Format du mot de contrôle pour la commande standard

Fig. 3 : Format du mot de contrôle


Exemple
Le mot 90H permet de programmer le 8255 en mode 0 avec le port A en entrée et les
ports B et C en sortie.

3.2. Format du mot de contrôle pour la commande Set/Reset du


port C

Les bascules du port C peuvent être mises à 1 ou 0 indépendamment : il s’agit d’une


commande dite SET/RESET. Dans ce cas le mot de commande doit être déterminé selon le
format suivant :

Informatique Industrielle niveau 4 Med Ali KAMMOUN 9


CHAPITRE II : L’Interface Parallèle i8255 ISET Mahdia

Fig. 4 : Format du mot de contrôle en mode Set/Reset


Exemple
Le mot 0BH permet de mettre à 1 le bit 5 du port C

4. Les modes de fonctionnement du 8255


Le 8255 possède trois modes de fonctionnement (mode 0, mode 1 et mode 2).

4.1. Mode 0 : Entrées/Sorties Parallèles

Le mode 0 permet des opérations simples d’entrée-sortie sur les trois ports. Il dispose
de 24 lignes d’entrées-sorties : port A, huit lignes ; port B, huit lignes ; port C, deux groupes
de quatre lignes (groupe haut et groupe bas)
Selon l'application souhaitée, chaque groupe devra être déclaré en entrée ou en sortie.
Pour chacun des quatre groupes, les lignes entrée/sortie peuvent être utilisées comme lignes
de données proprement dites ou comme signal. En plus de cette possibilité, les deux groupes
du port C permettent d’utiliser chaque entrée/sortie comme signal de commande pour générer
une impulsion (positive ou négative).
Dans ce mode, les données en sortie sont mémorisées dans le 8255. Elles restent
inchangées jusqu’à une nouvelle programmation, tandis que les entrées ne sont pas
mémorisées.
On attribue au bit concerné dans le mot de contrôle, l’état 1 pour le choix du mode
entrée et l’état 0 pour celui du mode de sortie. En mode de fonctionnement 0, il existe donc 16
configurations possibles. Il s’agit donc de déterminer le mot de commande en fonction de
l’application souhaitée qu’il faut programmer dans le registre de contrôle.

Remarque
Toute information lue sur un port programmé en sortie est sans signification et toute
tentative d’écriture sur un port programmé en entrée est sans action.

Cas particulier du port C: Si on utilise C-BAS en sortie et C-HAUT en entrée, ou


inversement ; on effectuera une instruction d’entrée ou de sortie sur le port complet (8 bits).
Seul les 4 bits correspondants (C-BAS ou C-HAUT) auront une signification lors d’une
opération de lecture, ou une action lors d’une opération d’écriture.

Informatique Industrielle niveau 4 Med Ali KAMMOUN 10


CHAPITRE II : L’Interface Parallèle i8255 ISET Mahdia

4.2. Mode 1 : Entrées/Sorties Parallèles avec Dialogue

Dans ce mode de fonctionnement, seuls les ports A et B sont disponibles pour te


transfert parallèle des données en entrée ou en sortie. Les 2x4 bits du port C servent aux
signaux de dialogue.
On distingue deux configurations : l’entrée et la sortie.

4.2.1. Mode 1 en entrée

Les ports A et B sont programmés en entrée. Les signaux de dialogue correspondants


sont respectivement PC3, PC4, PC5 et PC0, PC1, PC2. Les deux bits restants (PC6 et PC7)
peuvent être programmés soit en entrée soit en sorties.

Port A Port B

PA7- - PA0 PB7- - PB0


D7- - D0 D7- - D0
INTEA INTEB

PC4 PC2
STBA\ STBB\
PC5 PC1
IBFA IBFB

PC3 PC0
INTR INTR

RD\ PC7-6
RD\
2 E/S

Fig. 5 : Le 8255 en mode 1 en entrée

Signification des signaux de dialogue

• STB\ (STROBE) : signal en entrée permettant l’échantillonnage de la donnée présente


sur le port associé. Un niveau bas sur cette entrée autorise le passage, de la donnée
dans le registre d’entrée. celui-ci sera verrouillé au front montant de STB\.

• IBF (Input Buffer Full) : signal en sortie indicateur de prête en entrée du port. Cette
sortie est mise à 1 sur front descendant de STB\. Elle sera remise à 0 sur front montant
de RD\ : c’est à dire lorsqu’on aura effectué la lecture de la donnée.

• INTR lnterrup Request (Demande d’interruption) : signal en sortie pouvant être utilisé
pour effectuer une demande d’interruption au CPU. Elle passe à 1 sur le front montant
de STB\ si le masque qui lui est associé (INTE) est préalablement mis à 1. INTR est
remis à 0 sur le front descendant de RD\ (lecture de l’information).

Informatique Industrielle niveau 4 Med Ali KAMMOUN 11


CHAPITRE II : L’Interface Parallèle i8255 ISET Mahdia

Remarque
INTE est mis à 1 par une commande SET/RESET du bit du port C correspondant à son rang
dans le mot d’état (soit PC4 pour INTEA et PC2 pour INTEB).

Fonctionnement

Le périphérique place une donnée de 8 bits sur A7-A0 (ou B7-B0) puis génère un
strobe (STB\=0) qui charge cette donnée dans le latch d’entrée. Ceci a pour effet l’activation
du signal IBF à 1, indiquant au CPU que la donnée est prête à l’entrée du port.

Fig. 6 : Fonctionnement du 8255 en mode 1 Entrée

Mot de commande

Port A Port B
1 0 1 1 1/0 X X X 1 X X X X 1 1 X
1 : input
0 : output
Mot d’état (Port A/Port B) : adresse port C

Groupe A Groupe B
E/S E/S IBFA INTEA INTRA INTEB IBFB INTRB

4.2.2. Mode 1 en sortie

Les ports A et B sont programmés en sortie. Les signaux de dialogue correspondants sont
respectivement PC3, PC6. PC7 et PC0, PC1, PC2. Les deux bits restants (PC4 et PC5)
peuvent être programmés sait en entrée soit en sorties.

Informatique Industrielle niveau 4 Med Ali KAMMOUN 12


CHAPITRE II : L’Interface Parallèle i8255 ISET Mahdia

Port A Port B

PA7- - PA0 PB7- - PB0


D7- - D0 D7- - D0
INTEA INTEB

PC6 PC2
ACK ACK
PC7 PC1
OBFA OBFB
\

PC3 PC0
INTR INTR

WR\ PC5-4
WR\
2 E/S

Fig. 7 : Le 8255 en mode 1 en sortie

Signification des signaux de dialogue

• ACK\(Acknowledge) signal en entrée. Un niveau 0 sur cette entrée signale au 8255


que la donnée a été prise en compte.

• OBF\ (Output Buffer Full): signal en sortie indicateur de donnée prête en sortie du
port. Cette sortie est mise à 1 sur front montant de WR\ c’est à dire lors d’une
opération de sortie sur le port associé. Elle sera remise à 0 sur front descendant de
ACK\ (réponse du périphérique comme quoi il a bien reçu la donnée).

• INTR Demande d’interruption ; signal en sortie. Cette sortie passe à 1 sur front
montant de ACK\ si le masque qui lui est associé est à 1. Elle est remise à 0 sur e front
descendant de WR\.

Fonctionnement

Pour la sortie en mode 1, le microprocesseur écrit la donnée dans le port A (ou B). Le front
montant de WR\ fait cesser l’interruption du µP (INTR=0), et met OBF\=0 pour signifier au
périphérique que son buffer de sortie est plein et qu’il peut donc venir chercher une donnée
requis la donnée ce dernier répond par ACK\=0 qui a pour effet de faire cesser OBF\=1. De
nouveau ACK\=1, OBF\=1 et INTE=1 (par le bit SET/RESET de PC6 pour A et celui de PC2
pour B) fait interrompre le µP pour que celui-ci écrive la donnée suivante.

Informatique Industrielle niveau 4 Med Ali KAMMOUN 13


CHAPITRE II : L’Interface Parallèle i8255 ISET Mahdia

Fig. 8 : Fonctionnement du 8255 en mode 1 Sortie

Mot de commande

Port A Port B
1 0 1 0 1/0 X X X 1 X X X X 1 0 X

Mot d’état (port A/port B) : adresse port C

Groupe A Groupe B
OBFA INTEA E/S E/S INTRA INTEB OBFB INTRB

4.3. Mode 2 : Entrée/Bus bidirectionnelle

Le mode 2 permet d’avoir un bus bidirectionnel sur le port A. Cinq bits du port C sont utilisés
pour le status et le contrôle du port A permettant un handshake similaire à celui du mode 1.

Fig. 9 : Fonctionnement en mode 2

Informatique Industrielle niveau 4 Med Ali KAMMOUN 14


CHAPITRE II : L’Interface Parallèle i8255 ISET Mahdia

Port A

D7- - D0 PA7- - PA0

INTE1

PC6
ACK
PC7
OBFA\

WR\
PC3
INTR
RD\

PC5
IBFB\
PC4
STBA
INTE2

PC2-0 3 E/S

Fig. 10 : Le 8255 en mode 2

Mots de commande : port A

Port A
1 1 X X X 1/0 1/0 1/0

Mot d’état (port A/port B): adresse port C

Groupe A Groupe B
OBFA INTE1 IBFA INTE2 INTRA X X X

Informatique Industrielle niveau 4 Med Ali KAMMOUN 15


CHAPITRE III :

L’Interface Série i8251

Plan :

1. Présentation
2. Architecture du 8251
3. Programmation du 8251
CHAPITRE III : L’Interface Série i8251 ISET Mahdia

1. Présentation
Le 8251 est une interface série programmable en asynchrone et en synchrone (USART). C’est
un circuit capable de transmettre ou de recevoir des caractères de 5 à 8 bits.

2. Architecture du 8251

D7…D0 REG Mode 8254


RxC\ mode 3
SYNDET TxC\
TxE REG Contrôle CLK
RESET
TxRDY REG Status
RxRD
RxD
REG décalage récepteur
RD\ Entrée
WR\
REG Buffer IN DTR\
READY
DSR\ Vers
MODEM
RTS\
CTS\
DEC. REG Buffer OUT
ADR. CS\
TxD
REG décalage émetteur
A0 Sortie
C/D\

Fig. 11 : Structure interne du 8251

Le 8251 comprend, principalement, une interface de connexion au modem, un bloc


d’émission et un bloc de réception.

2.1. Interface de connexion au Modem

Cette interface est connectée au modem avec les signaux suivants :

• DSR: Data Set Ready (Modem prêt): signal d’entrée.


• DTR : Data Terminal Ready (Ordinateur prêt) : signal de sortie.
• RTS : Request To Send (Demande pour émettre) : signal de sortie.
• CTS : Clear To Send (Prêt pour émettre) : signal d’entrée.
• TxD : Transmit Data (Emission de données) : signal de sortie.
• RxD : Receive Data (Réception de données) : signai d’entrée.

2.2. Bloc d’émission

Ce bloc comprend :

Informatique Industrielle niveau 4 Med Ali KAMMOUN 17


CHAPITRE III : L’Interface Série i8251 ISET Mahdia

¾ Deux registres
• Un registre tampon (BUFFER OUT) qui reçoit du CPU les données parallèles.
• Un registre de transmission qui converti les données à transmettre en série et insère
des bits ou des caractères suivant le mode de fonctionnement.
¾ Une sortie série de caractères : TxD.
¾ Deux sorties d’état:
• TxRDY (Transmitter Ready)
Au niveau 1, cette sortie signale que le registre tampon est prêt à accepter un nouveau
caractère (pendant que le registre de transmission émet le précédent).
• TxE (Transmitter Empty)
Au niveau 1, cette sortie indique que la transmission du caractère est terminée et que le
registre de transmission est vide.
¾ Une entrée d’horloge de transmission TxC\ :
Cette horloge peut être égale à 1, 16 ou 64 fois la vitesse de transmission en Bauds dans le
mode asynchrone.

2.3. Bloc de réception

Ce bloc comprend :
¾ Deux registres :
• Un registre de réception qui transforme les données série en parallèle.
• Un registre tampon (Buffer IN) qui envoie au CPU les données parallèles.
¾ Une entrée série de caractères: RxD.
¾ Une sortie d’état: RxRDY (Receiver Ready)
Au niveau 1, cette sortie indique que le registre de réception est prêt à recevoir un caractère.
¾ Une entrée d’horloge de réception
Cette horloge peut être égale à 1, 16 ou 64 fois la vitesse de réception en Bauds dans le mode
asynchrone.
¾ Une borne SYNDET (Synchro detect) : utilisée en mode synchrone, elle peut émettre
ou recevoir suivant le mode de synchronisation choisit : interne ou externe.
• Synchro interne : cette borne délivre un niveau haut lorsque le 8251 a détecté le mot
de synchro.
• Synchro externe : cette borne reçoit un niveau haut lorsqu’il y a eu détection (par un
système extérieur) du mot de synchro.

3. Programmation du 8251
3.1. Accès aux registres

L’accès aux registres du 8251 s’effectue de la façon suivante

CS C / D = A0 RD WR Transfert
0 0 0 1 Lecture du registre buffer data in.
0 0 1 0 Ecriture dans le registre buffer data out.
0 1 0 1 Lecture du registre STATUS.
0 1 1 0 Ecriture dans le registre mode ou contrôle

Le reste des combinaisons met le bus de données en état haute impédance.

Informatique Industrielle niveau 4 Med Ali KAMMOUN 18


CHAPITRE III : L’Interface Série i8251 ISET Mahdia

3.2. Programmation

Avant l’utilisation, le 3251 doit recevoir successivement un mot de sélection de mode et un


mot de commande. Ceci ne peut être effectué que si l’USART a, au préalable, reçu le signal
RESET = 1 ou le mot de commande de RESET.

3.2.1. Mot de sélection de mode

Le mot de sélection de mode a le format suivant :

S2 S1 EP PEN L2 L1 B2 B1
( C / D = 1 et WR = 0 )

00 : mode synchrone
≠ 00 : mode asynchrone
Mode asynchrone

B2 B1 Vitesse en bauds
0 1 Fréquence clock
1 0 Fréquence clock/16
1 1 Fréquence clock/64

L2 L1 Longueur du caractère
0 0 5 bits
0 1 6 bits
1 0 7 bits
1 1 8 bits

PEN Parity Enable : autorisation de parité


0 Pas de génération de bit de parité
1 Bit de parité ajouté

EP Even Parity : parité paire


0 Parité impaire
1 Parité paire

S2 S1 Bits de stop
0 0 Invalide
0 1 1 bits
1 0 1.5 bits
1 1 2 bits

Mode synchrone

Seuls les bits S1 et S2 ont une signification différente.

S1 External Syrchro Detect : ESD


0 SYNDET est une sortie
1 SYNDET est une entrée

Informatique Industrielle niveau 4 Med Ali KAMMOUN 19


CHAPITRE III : L’Interface Série i8251 ISET Mahdia

S2 Single Character Synchro: SCS


0 Deux caractères de synchro
1 Un seul caractère de synchro

Remarque
Dans le cas du mode synchrone, le ou les caractères de synchronisation doivent être chargés
dans le 8251 (Ecriture avec C/D=1) immédiatement après l’envoie du mode.

3.2.2. Mot de commande

Quel que soit le mode choisi, ce mot est unique. Il a le format suivant :

EH IR RTS ER SBRK RxE DTR TxEN ( C / D = 1 et WR = 0 )

Bit Signification
TxEN Ce bit à 1 autorise la transmission.
DTR Un niveau 1 force la sortie DTR à 0.
RxE Ce bit à 1 autorise la réception.
SBRK Send Break caractère : Un niveau 1 force la sortie TxD à 0.
ER Error Reset : Un niveau 1 remet à 0 les indicateurs d’erreur du mot
d’état : PE — 0E — FE.
RTS Un niveau 1 force la sortie à 0.
IR Internal Reset : Un niveau 1 a la même action que l’entrée RESET et
permet de reprogrammer le 8251 en lui envoyant un nouveau mot de
sélection de mode.
EH Enter Hunt : Un niveau 1 autorise la recherche du mot de synchro en
mode synchrone.

Remarque
Lors de la mise sous tension la première 1 e 8251 peut se trouver au niveau du registre de
mode, caractère de synchronisation ou du registre de contrôle afin de garantir qu’il se trouve
bien au niveau du registre de contrôle avant l’émission de la commande de reset interne, le
constructeur recommande la séquence d’initialisation du cas pire : écriture de trois 00H
consécutifs à l’adresse A0=1 afin de configurer le 8251 dans le mode synchrone avec deux
caractères de synchronisation égales à 00H. Le reset interne pourrait alors suivre : écrire 40H
dans le registre de contrôle.
Une séquence d’initialisation pourrait être la suivante :

INIT PROC NEAR


MOV DX, CNT ; CNT=adresse du registre mode/contrôle
XOR AL, AL ; AL ← 00H
OUT DX, AL ; écriture
OUT DX, AL ; de 00H
OUT DX, AL ; trois fois
MOV AL, 40H ; puis le REST interne
OUT DX, AL
MCV AL, 7AH ; écriture du mot de sélection du mode

Informatique Industrielle niveau 4 Med Ali KAMMOUN 20


CHAPITRE III : L’Interface Série i8251 ISET Mahdia

OUT DX, AL
MOV AL, 37H ; écriture du mot de commande
OUT DX, AL
RET
INIT ENDP

3.2.3. Mot d’état

Le format du registre de STATUS est le suivant :

DSR SYNDET FE OE PE TxE RxRDY TxRDY ( C / D = 1 et RD = 0 )

Les cinq bits DSR, SYNDET, TxE, RXRDY et TXRDY ont la même signification que les
bornes du même type.

Les trois autres sont les indicateurs d’erreur :

Bit Signification
PE Parity error: Erreur de parité.
OE Overrun Error : Erreur de recouvrement. Ce bit est mis à 1 lorsqu’un
caractère reçu écrase le précédent pas encore lu par le CPU.
FE Framing Error : Erreur de format. Ce bit est mis à 1 lorsqu’un bit de stop
manque à la fin du caractère.

Ces indicateurs sont remis à 0 par le bit ER du mot de commande.

Informatique Industrielle niveau 4 Med Ali KAMMOUN 21


CHAPITRE IV :

Le Contrôleur d’Interruptions Programmable


i8259

Plan :

1. Définition
2. Affectation des interruptions dans le cas d’un PC
3. Architectures et registres du 8259
4. Programmation du 8259
CHAPITRE IV : Le Contrôleur d’Interruption Programmable i8259 ISET Mahdia

1. Définition
Pour recevoir des données et changer les états des ports d'Entrée/Sortie, il y a deux méthodes
disponibles.
La première consiste à sonder le port, donc à lire l'état du port à intervalles fixes, pour
déterminer si des données ont bien été reçues, ou si un changement d'état a eu lieu. On peut
alors se brancher sur un sous-programme pour effectuer le sous-programme souhaité.
Comme vous pouvez l'imaginer, cette méthode utilise beaucoup de temps processeur. Temps
qui pourrait être utilisé à d'autres tâches, comme rafraîchir l'écran, afficher l'heure,...
Une meilleure solution est l'utilisation des interruptions. Ici, le processeur peut effectuer les
tâches auxiliaires, comme rafraîchir l'écran, afficher l'heure,...
Lorsqu’un port d’Entrée/Sortie réclame votre attention, comme lors de la réception d’un octet,
ou que son état a changé, il envoie alors une demande d’interruption (IRQ) au processeur. Le
processeur arrête alors l’instruction qu’il était en train d’exécuter, sauvegarde le contenu de
ses registres dans la pile, et exécute la routine d’interruption correspondant à celle demandée,
laquelle pourra par exemple retirer l’octet du port et le placer dans un tampon. Une fois la
routine d’interruption terminée, le processeur restaure le contenu de la pile, et reprend sa
tâche, là où il s’était arrêté.
L’utilisation de cette méthode permet de ne pas gaspiller de temps CPU à scruter les ports
E/S. Par contre, cela oblige le périphérique à faire une demande d’interruption.

2. Affectation des interruptions dans le cas des PC


IRQ0 : Horloge temps réel (18,2Hz), sortie voie 0 du 8254.
IRQ1 : Interface clavier, contrôleur 8042.
IRQ2 : Réservé pour la mise en série d’un contrôleur d'interruption No2

-IRQ8 : Horloge dateur programmable 146818.

-IRQ9 : Cartes extension

-IRQ10 : Cartes extension.

-IRQ11 : Cartes extension.

-IRQ12 : Cartes extension.

-IRQ13 : 80287 en option.

-IRQ14 : Cartes extension (carte disque).

-IRQ15 : Cartes extension.

IRQ3 : Interface série COM2 + Cartes extension.


IRQ4 : Voie série COM1 + Cartes extension.
IRQ5 : Cartes extension.
IRQ6 : Contrôleur disquettes et Cartes extension.
IRQ7 : Interface parallèle imprimante et cartes extension.

Informatique Industrielle niveau 4 Med Ali KAMMOUN 23


CHAPITRE IV : Le Contrôleur d’Interruption Programmable i8259 ISET Mahdia

3. Architecture et registres du 8259


3.1. Architecture du 8259

Fig. 12 : Structure du 8259

3.2. Registres du 8259

Si le PIC a été réinitialisé, il doit être initialisé avec 2 des 4 mots (Initialization Command
Words ICW) avant qu'il ne puisse accepter et traiter des interruptions.
Ici vous trouvez les 4 mots d'initialisations possibles

3.2.1. Mot de commande d’initialisation 1 : Initialisation Command Word


1 (ICW1)
Bit(s) Fonction
7:5 Adresse du vecteur d’interruption en mode MCS-80/85
4 Doit être à “1” pour ICW1
1 Détection sur niveau
3
0 Détection sur front
1 Appel d’adresse en intervalle de 4
2
0 Appel d’adresse en intervalle de 8
1 Un seul PIC
1
0 En mode Cascade
1 On utilisera ICW4
0
0 Pas besoins de ICW4

Informatique Industrielle niveau 4 Med Ali KAMMOUN 24


CHAPITRE IV : Le Contrôleur d’Interruption Programmable i8259 ISET Mahdia

Le contrôleur d'interruptions programmable 8259 offre de nombreuses caractéristiques qui ne


sont pas utilisées dans le PC. Il est aussi compatible avec les processeurs MCS-80/85. Tout
ce dont nous avons à nous soucier est que le PC tourne en mode simple (un seul PIC) ou en
mode Cascade (plus d'un PIC) ainsi que de savoir si le mot de commande d'initialisation 4 est
nécessaire ou non. Si aucun ICW4 n'est utilisé, alors tous ses bits seront à 0. Comme nous
l'utilisons en mode 8086, nous devons utiliser un ICW4.

3.2.2. Mot de commande d’initialisation 2 : Initialisation Command Word


2 (ICW2)

L’ICW2 sélectionne quelle information sur les vecteurs est conservée sur le bus, lors de la
seconde impulsion INTA.
Lors de l'utilisation du mode 8086, seuls les bits de 3 à 7 sont utilisés: 00001000 pour PIC1 et
01110000 pour PIC2. Si vous souhaitez reloger la table des vecteurs d'IRQ, vous devez
utiliser ce registre.

Bit 8086/8080 Mode MCS 80/85 Mode


7 I7 A15
6 I6 A14
5 I5 A13
4 I4 A12
3 I3 A11
2 - A10
1 - A9
0 - A8

3.2.3. Mot de commande d’initialisation 3 : Initialisation Command Word


3 (ICW3)

Il y a deux ICW3 différents. Le premier est utilisé si le PIC est un maître, et l'autre est utilisé
pour les esclaves.
Le premier tableau donne l'ICW3 en maître:

Bit Fonction
7 IR7 est connecté à l’esclave
6 IR6 est connecté à l’esclave
5 IR5 est connecté à l’esclave
4 IR4 est connecté à l’esclave
3 IR3 est connecté à l’esclave
2 IR2 est connecté à l’esclave
1 IR1 est connecté à l’esclave
0 IR0 est connecté à l’esclave

Informatique Industrielle niveau 4 Med Ali KAMMOUN 25


CHAPITRE IV : Le Contrôleur d’Interruption Programmable i8259 ISET Mahdia

Et pour les esclaves :

Bit(s) Fonction
7 0
6 0
5 0
4 0
3 0
2:0 ID de l’esclave
000 Esclave 0
001 Esclave 1
010 Esclave 2
011 Esclave 3
100 Esclave 4
101 Esclave 5
110 Esclave 6
111 Esclave 7

3.2.4. Mot de commande d’initialisation 4 : Initialisation Command Word


4 (ICW4)

La encore, la plupart de ces fonctions spéciales ne sont pas utilisées avec le 8259 en mode
8086.

Bit(s) Fonction
7 0
6 0
5 0
1 Special Fully Nested Mode
4
0 Not Special Fully Nested Mode
3:2 0x Mode Non – Bufférisé
10 Mode Bufférisé - Esclave
11 Mode Bufférisé - Maître
1 Auto EOI (End Of Interruption)
1
0 Normal EOI
1 8086/8080 Mode
0
0 MCS-80/85

Special Fully Nested Mode :


0 : mode normal d'imbrication des interruptions. Le bit correspondant du registre des
interruptions en service ISR est mis à 1 et reste dans cet état jusqu'a ce qu'une fin

Informatique Industrielle niveau 4 Med Ali KAMMOUN 26


CHAPITRE IV : Le Contrôleur d’Interruption Programmable i8259 ISET Mahdia

d'interruption survienne ou, si la fin d'interruption automatique est programmée, jusqu'au


dernier front montant du signal INTA.
1 : ce bit autorise le mode spécial d'imbrication des interruptions ; dans ce mode, un esclave
qui a déjà une interruption en service pourra en faire prendre en compte d'autres par le maître,
si elles sont de plus forte priorité (dans le mode normal, le maître les ignore jusqu'a la
commande EOI).
Généralement ce bit est mis à 0 (non utilisé).

Non-Buffered mode et Normal EOI sont aussi à 0.


La seule chose à mettre à 1 est le mode 8086/8080, par le bit0.

3.2.5. Mot de contrôle d’opération 1 : Operation Control Word 1 (OCW1)

Une fois les mots de commande d'initialisation envoyés au PIC, vous pouvez traiter les
Operation Control Words, dans n'importe quel ordre et n'importe quand pendant le travail du
PIC.
Operation Control Word 1 (OCW1), est utilisé pour masquer les entrées du PIC.

Bit PIC 2 PIC 1


7 Masque IRQ15 Masque IRQ7
6 Masque IRQ14 Masque IRQ6
5 Masque IRQ13 Masque IRQ5
4 Masque IRQ12 Masque IRQ4
3 Masque IRQ11 Masque IRQ3
2 Masque IRQ10 Masque IRQ2
1 Masque IRQ9 Masque IRQ1
0 Masque IRQ8 Masque IRQ0

Un bit à 1 correspond à inhiber l'interruption portant le même numéro d'ordre ; un 0


correspond à l'autoriser

3.2.6. Mot de contrôle d’opération 2 : Operation Control Word 2 (OCW2)

Operation Control Word 2 permet de sélectionner la façon dont agit End of Interrupt (EOI).
La seule chose qui nous intéresse dans ce registre est la commande non spécifique à l'EOI que
nous devons écrire à la fin des ISR.

Informatique Industrielle niveau 4 Med Ali KAMMOUN 27


CHAPITRE IV : Le Contrôleur d’Interruption Programmable i8259 ISET Mahdia

Bit(s) Fonction
7:5 000 Arrêt de rotation automatique
001 Fin d'interruption
010 Pas d'opération
011 Fin d'interruption No
100 Rotation des priorités a chaque EOI
101 Rotation des priorités a chaque EOI non spécifique
110 La priorité la plus élevée est No
111 Rotation à chaque int.No
4 0
3 0
2:0 000 Action en IRQ 0 or 8
001 Action en IRQ 1 or 9
010 Action en IRQ 2 or 10
011 Action en IRQ 3 or 11
100 Action en IRQ 4 or 12
101 Action en IRQ 5 or 13
110 Action en IRQ 6 or 14
111 Action en IRQ 7 or 15

3.2.7. Mot de contrôle d’opération 3 : Operation Control Word 3 (OCW3)

Les bits 0 et 1 permettent de lire l'état du registre Interrupt Request Register (IRR) et du
registre In-Service Register (ISR). Ceci est fait en configurant comme précisé ci-dessous ces
bits, puis en lisant le registre à l'adresse de base.
Par exemple nous voulions lire le registre In-Service Register (ISR), et donc les bits 0 et 1
sont mis à 1. La lecture au registre de base va renvoyer l'état du registre In-Service Register.

Bit(s) Fonction
7 0
6 ESMM
5 SMM
4 0
3 1
1 Poll Command
2 (P)
0 No Poll Command
1:0 00 Reservé
01 Reservé
10 Lecture du Interrupt Request Register
11 Lecture du In-Service Register

ESMM : (Enable Special Mask Mode) à 1, ce bit autorise SMM, sinon le bit SMM est ignore.

Informatique Industrielle niveau 4 Med Ali KAMMOUN 28


CHAPITRE IV : Le Contrôleur d’Interruption Programmable i8259 ISET Mahdia

SMM : (Special Mask Mode)


1 : mode spécial sélectionné,
0 : mode spécial arrêté.

Le mode spécial de masquage permet de résoudre des problèmes d'occupation abusive du


CPU par une routine d'interruption ; en effet, lorsque l'une d'elle demande un temps
d'exécution important, elle bloque toutes celles qui ont une priorité plus faible.
Il n'est pas toujours possible de placer ces routines longues en faible priorité car il peut être
nécessaire d'exécuter une tache importante au début de la procédure d'interruption.

Par contre, une fois cette tache accomplie, il est possible d'accepter les priorités plus faibles
avant la fin de la procédure.
Pour cela, il faut exécuter la séquence d'opération suivante :
- Masquer uniquement le bit correspondant à la routine en cours.
- Mettre le 8259 en mode spécial de masquage à l'aide de OCW3.
- Autoriser les interruptions : toutes les interruptions sont alors autorisées sans tenir compte de
leur priorité plus faible.
Avant de sortir de la routine, il faut exécuter une séquence inverse :
- Bloquer le mode spécial de masquage.
- Rétablir un masquage normal.

P : (Poll command = commande de scrutation)


- 0 : mode normal
- 1 : le signal INT est inhibe ; chaque lecture du microprocesseur est considérée comme une
reconnaissance d'interruption ; durant cette lecture le 8259 met sur le bus le mot suivant :

B7 B6 B5 B4 B3 B2 B1 B0
I X X X X W2 W1 W0

W2 à W0 : est le numéro de la demande d'interruption de plus haute priorité.


I : est à 1 lorsqu'une interruption a été demandée.

3.2.8. IRR : (Interrupt Request Register = registre demande d'interruption)

Ce registre 8 bits mémorise les demandes suivant leur numéro d'interruption IRQ ; chaque bit
est actif (demande d'interruption) à l'état 1.

3.2.9. ISR : (In Service Register = registre interruption en service)

Registre de 8 bits. Le bit d'IRR de plus haute priorité est inscrit dans ISR tandis qu'il est remis
à 0 dans IRR.
Dans le mode automatique, le bit de ISR est remis à zéro des que le vecteur d'interruption a
été lu (voir bit AEOI de ICW4) : la demande d'interruption est considérée comme servie ;
dans le cas contraire, un mot de commande est nécessaire pour effacer le bit concerne.

4. Programmation du 8259
La programmation de ce circuit comprend deux types de commandes :

Informatique Industrielle niveau 4 Med Ali KAMMOUN 29


CHAPITRE IV : Le Contrôleur d’Interruption Programmable i8259 ISET Mahdia

- Les commandes d'initialisation effectuées par une séquence dans l'ordre


ICW1, ICW2, ICW3, ICW4
- Les commandes d'opérations générées à tout moment après les commandes d'initialisation :
OCW1, OCW2, OCW3.
Début

Ecriture de ICW1 sur CSR

Ecriture de ICW2 sur Port

Non
Mode Cascade ?

Oui

Ecriture de ICW3 sur Port

Ecriture de ICW4 sur Port

Fin

Fig. 13 : Organigramme d’initialisation du 8259

Après un reset, le contrôleur est dans l'état suivant :


- la détection des interruptions est remise à zéro,
- le masque d'interruption est efface,
- la priorité la plus basse est IRQ7,
- l'adresse du mode esclave est mise a 7,
- le mode de masque spécial est efface.

Informatique Industrielle niveau 4 Med Ali KAMMOUN 30


CHAPITRE V :

Le Timer Programmable le i8253/8254

Plan

1. Introduction
2. Structure Interne
3. Accès aux registres
4. Modes de fonctionnement
CHAPITRE V : Le Timer Programmable i8253/8254 ISET Mahdia

1. Introduction
Lorsqu’on veut effectuer des mesures selon des intervalles de temps précis (cas de la
conversion analogiques numériques), l’utilisation de l’horloge interne du PC ou des fonctions
de temporisation fournies par les langages de programmation, reste insuffisante. En effet,
beaucoup de cartes d’acquisition sont munies d’une horloge indépendante et de compteurs ou
plutôt décompteurs programmables (timer).
Ce circuit établit des intervalles de temps avec précision ou compte des événements,
puis émet une interruption à l’issue de son programme. Il pourra servir de :
¾ générateur de rythme programmable.
¾ Compteur d’événements.
¾ Multiplicateur de rythme binaire.
¾ Horloge temps réel.
¾ Monostable.
¾ Contrôleur de moteur
¾ Générateur de Bauds en communication série
¾ Etc.
Son buffer 8 bits est à trois états ; le microprocesseur l’adresse de façon classique, par
exemple à l’aide de ses instructions d’entrées-sorties (IN et OUT). Les données reçues par le
8253 ont 3 fonctions :
1 – programmer les modes de fonctionnement.
2 – charger les registres de comptage.
3 – lire les valeurs comptées.

2. Structure interne
Cette interface est constituée de trois circuits de comptage identiques possédant,
chacun deux entrées « CLK » et « GATE » (gâchette) et une sortie « OUT ». Chacun possède
également un registre de contrôle, un registre d’état (STATUS), un registre compteur « CR »
pour recevoir le compte initial, un élément compteur «CE » effectuant le comptage mais
accessible par le microprocesseur et un latch de sortie « OL » pour verrouiller le contenu du
compteur CE et le rendre disponible pour la lecture.
CR, CE et OL sont des paires de registre 8 bits.

D7 1 24 Vc c
D7 2 23 WR
D7 3 22 RD
D7 4 21 CS
D7 5 20 A1
D7
D7
6
7
8253 19
18
A0
CLK 2
D7 8 17 GATE 2
CLK 0 9 16 OUT 2
OUT 0 10 15 CLK 1
GATE 0 11 14 GATE 1
GND 12 13 OUT 1

Fig. 14 : Brochage du 8253

Informatique Industrielle niveau 4 Med Ali KAMMOUN 32


CHAPITRE V : Le Timer Programmable i8253/8254 ISET Mahdia

Fig. 15 : Architecture du 8253

Compteur 0
Registre Contrôle STATUS CLK

Compte (CR) Oct. Haut Oct. Bas


GATE
Compteur (CE) Oct. Haut Oct. Bas
OUT
Latch (OL) Oct. Haut Oct. Bas

Compteur 1

Compteur 2

D7..D0 RD\ WR\ CS\ A0 A1

Fig. 16 : Structure interne du 8253/8254

3. Accès aux registres


3.1. Adresses

L’accès aux registres du 8254 s’effectue de la façon suivante :

Informatique Industrielle niveau 4 Med Ali KAMMOUN 33


CHAPITRE V : Le Timer Programmable i8253/8254 ISET Mahdia

CS RD WR A1 A0 fonction
0 1 0 0 0 Chargement compteur 0
0 1 0 0 1 Chargement compteur 1
0 1 0 1 0 Chargement compteur 2
0 1 0 1 1 Ecriture mot de mode
0 0 1 0 0 Lecture compteur 0
0 0 1 0 1 Lecture compteur 1
0 0 1 1 0 Lecture compteur 2
0 0 1 1 1 Pas d’opération : 3e état
1 X X X X Inhibitions 3e état
0 X X X X Pas d’opération : 3e état

Le chargement du compteur i se fait en écrivant dans son registre CR

3.2. Mot de commande

Le format du mot de commande est le suivant :

3.2.1. Procédure d’écriture

Pour la procédure d’écriture, il faut se rappeler de deux conventions :

• Pour chaque compteur, il faut écrire dans l’ordre : le mot de contrôle puis le compte
initial.
• Le compte initial doit se conformer au format binaire ou BCD indiqué par le mot de
contrôle

3.2.2. Procédure de lecture

On distingue deux types de commande :

Informatique Industrielle niveau 4 Med Ali KAMMOUN 34


CHAPITRE V : Le Timer Programmable i8253/8254 ISET Mahdia

La commande Counter Latch (CL) :


A pour effet de verrouiller, dans le registre OL correspondant, le contenu de l’élément
compteur (CE) spécifié par les 2 MSB (bits plus significatifs) du mot de commande suivant

SC1 SC2 0 0 X X X X

La commande Read Back :


Elle permet la lecture soit du compte soit du status (validés par 0) du compteur dont le bit est
validé par 1 dans le mot de commande suivant

1 1 Count\ Status\ CNT2 CNT1 CNT0 0

Cette commande permet de préparer le mot de status dont le format recopie les 6 bits de
faibles poids du mot de contrôle :

Out RW1 RW0 M2 M1 M0 BCD

Etat du pin out CR Æ CE


0 : chargé
1 : non chargé

4. Modes de fonctionnement
GATE = 1: valide le comptage (décomptage)
GATE = 0 : le suspend mais n’a aucun effet sur la sortie OUT.

4.1. Mode 0 : Envoi d’une demande d’interruption en fin de


décomptage

Après chargement de la valeur à décompter et temporisation d’une impulsion d’horloge, le


décomptage commence. La sortie est au niveau bas. Lorsque le décomptage atteint 0, la sortie
passe au niveau 1. Ce qui se traduit par l’émission d’une demande d’interruption. Elle reste à
1 jusqu’au changement d’un nouveau mode ou d’une nouvelle valeur. Le décomptage se
poursuit.

CLK

WR\ N=4

GATE

4 3 2 1 0
OUT

Informatique Industrielle niveau 4 Med Ali KAMMOUN 35


CHAPITRE V : Le Timer Programmable i8253/8254 ISET Mahdia

4.2. Mode 1 : Re-déclenchement par impulsion extérieur

En position d’attente, la sortie est au niveau haut. Un front montant sur la gâchette
GATE déclenche le décompte au top d’horloge qui suit. Alors la sortie passe à 0 et s’y
maintient jusqu’à ce que le décompte arrive à 0.

Chaque front montant sur GATE relance le processus à partir du compte initial (si celui-
ci n’a pas été modifié). En mode 1 le 8254 fonctionne en monostable.

CLK

WR\ N=4

GATE

4 3 2 1 0
OUT

4.3. Mode 2 : Timer d’intervalle périodique

Après le chargement de CR par N, à la prochaine impulsion d’horloge s’effectue le transfert


de CR à CE et le décomptage commence. Mais au contraire du mode 1 la sortie reste au
niveau haut. Lorsque le compte arrive à 1 elle passe à zéro et y reste pendant une période et
retourne à 1. Le décompteur repart alors à partir du compte initial pour un autre cycle
identique. On génère ainsi des tops à intervalles réguliers.

Le décompte est suspendu par le passage de GATE à 0 et reprend, depuis e compte initial, par
son passage à 1.

CLK

WR\ N=4

GATE

4 3 2 1 0 4 3 4 3…
OUT

Informatique Industrielle niveau 4 Med Ali KAMMOUN 36


CHAPITRE V : Le Timer Programmable i8253/8254 ISET Mahdia

4.3.1. Mode 3 : Générateur d’ondes carrées

Ce mode est similaire au mode 2 sauf que OUT passe au niveau bas lorsque la moitié du
compte initial est atteinte, soit N/2, et reste dans cet état jusqu’à ce que le compte arrive à 0 et
le cycle recommence. Comme pour le mode 2, un niveau 1 sur GATE valide le décompte et
un niveau 0 l’inhibe alors qu’un front montant le réinitialise.

De ce fait, une valeur impaire amène (N+l)/2 avec sorties au niveau haut et (N-1)/2 au niveau
bas.

On utilise ce mode pour la génération de Bauds.

CLK

WR\

4 3 2 1 0 4 3 2 1 0
OUT N=4

5 4 3 2 1 05 4 3 2 1
OUT N=5

4.3.2. Mode 4 : Strobe déclenché par logiciel

Ce mode est similaire au mode 0 sauf que OUT est au niveau haut pendant le décomptage et
produit une seule impulsion négative lorsque le compte devient nul.

CLK

WR\ N=4 N=4

GATE

4 3 2 1 0 4
OUT

Informatique Industrielle niveau 4 Med Ali KAMMOUN 37


CHAPITRE V : Le Timer Programmable i8253/8254 ISET Mahdia

4.3.3. Mode 5 : Strobe déclenché par matériel (hardware)

Après le chargement de CR, un front montant sur GATE fait transférer CR dans CE à la
prochaine impulsion d’horloge. Comme dans le mode 4, OUT reste à 1 pendant le
décomptage puis passe à 0 pendant une période d’horloge lorsque le compte est nul. GATE
peut réinitialiser le décomptage à tout moment.

CLK

WR\ N=4

GATE

4 3 2 1 0 4
OUT

Informatique Industrielle niveau 4 Med Ali KAMMOUN 38


Bibliographie
[1] Intel Corporation, 8255A/8255A-5 Programmable Peripheral Interface, Aout 1991.
[2] Intel Corporation, 8251A Programmable Communication Interface, Novembre 1986.
[3] Intel Corporation, 8259A Programmable Interrupt Controller, Décembre 1988.
[4] Intel Corporation, 8253/8253-5 Programmable Interval Timer, Novembre 1986.

www.chipdocs.com

39

S-ar putea să vă placă și