Vous êtes sur la page 1sur 16

Gestion des Demandes dInterruptions Matrielles Cas du Contrleur Programmable dInterruptions (PIC 8259 A)

Resp. Dr. Mohamed Feredj Courriel : archiFeredj@gmail.com

0) Introduction
Comment identifier la source dune demande dinterruption ? Il existe diffrentes mthodes de dtection de la source dune interruption : a) Par Polling (par sondage) : Solution logicielle Cette technique utilise un programme dfini au pralable pour de dterminer les priorits des interruptions. Est adquate pour un petit nombre de sources dinterruption, sinon le temps didentification des sources devient trs important.

b) Par Daisy Chain (Interruption chanes ou priorits chanes) : Solution matrielle Cette technique utilise un composant matriel (contenant des portes logiques) pour identifier la source dinterruption. Avantages : Pas de programmation pour dterminer la priorit dune interruption ; Ralisation trs simple : Ncessite des bloc logiques trs simples concevoir ; Ajout et suppression dautres sources dinterruption est trs simple. Inconvnients : On ne peut pas modifier lordre de priorit des interruptions par programmation.

Dans ce chapitre, nous prsentons le PIC (Programmable Interrupt Controller) 8259 dIntel. C

Cours Archi II

Dr. Mohamed FEREDJ

1) Dfinition
Le PIC est un circuit qui dcharge le P de la gestion des demandes dinterruption matrielle provenant de lextrieur. En effet, Sa fonction se rsume par : 1. Rception des demandes dinterruption sur ses lignes dentre (IRQ0, , IRQ7) ; 2. Dtermination de linterruption la plus prioritaire ; 3. Informer le P. Le PIC gre au maximum 8 demandes dinterruption. Cependant, il est cascadable, ce qui permet la gestion de 64 demandes. C'est--dire un PIC matre peut recevoir les sorties de 8 autres PICs esclaves.

CS WR RD D7 D6 D5 D4 D3 D2 D1 D0 CAS0 CAS1 GND

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Indicateur de position

8259

28 27 26 25 24 23 22 21 20 19 18 17 16 15

Vcc A0 INTA IRQ7 IRQ6 IRQ5 IRQ4 IRQ3 IRQ2 IRQ1 IRQ0 INT SP/EN CAS2

Entres de demandes dinterruption

2) Description des signaux (broches) du PIC


VCC : GND : Broche dalimentation lectrique 5 volts ; La masse ; Botier Slectionne qui rveille le circuit (PIC). Donc, si le P veut sadresser au PIC, il doit envoyer sur cette broche un 0 ;

CS (Chip Select) :

0 : PIC slectionn Donc, CS = 1 : PIC non slectionn

Si par exemple on a CS0 et CS1

on doit envoyer 1 et 0 pour slectionner un Circuit

WR (Write) :

Ecriture (ligne de commande) ;

Cours Archi II

Dr. Mohamed FEREDJ

RD (Read) :

Lecture (ligne de commande) ; Bus de donnes bidirectionnel ;

D0-D7 :

Exemple : Si @ du PIC est 20H alors OUT 20H, AL ; CS = 0 et WR = 0 Si AL = 03H D0=D1=1 et D2=0=D7=0; CAS0-CAS2 : IRQ0-IRQ7 : Pour cascader les PICs et servent comme moyen de communication ; Pour connecter 8 priphriques pouvant demander des interruptions. Si on veut plus on doit connecter sur chaque IRQi (maximum 8) un PIC esclave. Le PIC matre peut accder aux PICs esclaves par les lignes CAS0-CAS2. Exemple : 000=PIC0, 001=PIC1, 111=PIC7.

SP / EN

(SP=Slave Program/EN=Enable Buffer) : Est une broche double fonction : 0 : PIC esclave 1) Si SP / EN programme en entre : 1 : PIC matre Donc, on branche SP / EN la masse ou 5 volts 2) Si SP / EN programme en sortie, cela pour commander des transmetteurs de type 8286

INT :

Cest la ligne par laquelle le PIC transmet la demande dinterruption au P, sur lentre INTR ;

INTR :

Permet au PIC de recevoir les acquittements du P. Ds que ce signal est reu, le PIC saura quil doit placer sur le BD les informations servant au P se brancher la table des vecteurs.

Est utilise en conjonction avec CS , RD et WR . Cette broche est connecte sur A0 du BA et permet de slectionner un des registres internes du PIC. Exemple : La premire utilisation des PICs en cascade est ralise avec le P 80286 : A0 :
PIC Matre : IRQ0 IRQ1 IRQ2 IRQ3
Cours Archi II

Timer Clavier PIC esclave COM2

Dr. Mohamed FEREDJ

IRQ4 IRQ5 IRQ6 IRQ7 PIC Esclave : IRQ23 IRQ24

COM1 LPT2 Lecteur Disquette LPT1

Coprocesseur Mathmatique Disque Dur

3) Architecture Interne du PIC

3.1) Registres Internes du PIC : 1. 2. 3. 4. IRR (Interrupt Request Register) : Registre de demandes dinterruption ; ISR(Interrupt Service Register) : Registre dInterruption en Service ; PR (Priority Resolver) : Le rsolveur de priorit ; IMR (Interrupt Mask Register) : Registre de Masquage des Interruptions ;

Cours Archi II

Dr. Mohamed FEREDJ

5. RWL (Read/Write Logic) : La logique de Lecture/Ecriture. Ce bloc contient : a) 4 ICW(1-4): Initialization Command Words (Mots de Commande dInitialisation) b) 3 OCW(1-3) : Operation Command Words (Mots de Commande des Oprations)

IRR (Interrupt Request Register) : (Registre de demandes dinterruption) Est un registre sur 8 bits qui reoit les 8 lignes de demandes dinterruption et mmorise chacune delles (demandes interruption), en positionnant 1 le bit correspondant : 1 : Prsence demande d' interruption sur IRQi IRRi = 0 : Pas de demande d' interruption sur IRQi

ISR (Interrupt Service Register) : (Registre dInterruption en Service) Est un registre sur 8bits marquant les interruptions en service, en positionnant 1 le bit correspondant : 1 : Interruption de IRQi en service ISRi = 0 : Sinon Remarque : Une fois quune interruption est mise en service, son bit sur IRR passe automatiquement zro.

Exemple :
ISR7 ISR6 ISR5 ISR4 ISR3 ISR2 ISR1 ISR0

Les interruptions correspondent aux IRQ5 et IRQ2 sont en cours de traitement

IMR (Interrupt Mask Register) : Registre de Masquage des Interruptions Est un registre sur 8 bits permettant de masquer les demandes dinterruption :

Cours Archi II

Dr. Mohamed FEREDJ

1 : Demandes sur IRQi sont masques IMRi = 0 : Sinon

PR (Priority Resolver) : (Rsolveur de Priorit) Il slectionne parmi les demandes dinterruption non masques mmorises dans IRR quelle est celle possdant la plus haute priorit.

Remarque : Le P envoie toujours 2 signaux conscutifs sur INTA : 1. Ds la rception du 1er Signal, le PIC effectue : ISRi = 1 (au front descendant) et IRRi = 0 (au front montant) 2. Ds la rception du 2me Signal, le PIC effectue : Emettre le Type(n) dIt sur son bus de donnes au P (au front descendant) et ISRi = 0 (au front montant). Pour la remise de ISRi 0, il est prfrable de le faire dans la routine dinterruption juste avant IRET.

4) Programmation du PIC
Programmer le PIC, cest de lui transmettre par le P une squence doctets qui sera range dans les mots ICWi (i=1-4) et OCWi (i=1-3) : ICWi pour linitialisation ; OCWi pour le contrle de certaines fonctionnalits.

Remarque : La diffrence entre les ICWi et les OCWi est fondamentale : 1. Les ICW prcdent tout usage du PIC ; 2. Les OCW peuvent intervenir au cours du droulement du programme.

4.1) La squence dinitialisation : Linitialisation du PIC consiste mettre une squence de 4 octets. Les 2 premiers sont obligatoires dans tous les cas.

Remarque : 1. Lordre dinitialisation des ICWi est important. Par contre celui des OCWi non ;

Cours Archi II

Dr. Mohamed FEREDJ

2. Linitialisation des ICWi se fait une fois (au dmarrage de la machine) et on ne peut pas le faire car le BIOS nous prcde. Pour le rinitialiser, on doit passer au mode protg.

ICW1

Le PIC est il seul ou cascad? Dtection des demandes dIt se fait sur les fronts ou sur les niveaux ? ICW4 sera il utilis ou non ?

A0 0

B7 B6 B5 B4 B3 B2 B1 B0 B7 B6 B5 B4 B3 B2 B1 B0 0 0 0 1 LTIM 0 SNGL IC4

Pour les PC, ces bits sont tjrs 0

1 = Type It sur 4bits, 0 = sur 8 bits0 1 : Prsence avec ICW4 IC4 = 0 : Absence de ICW4

1:PIC seul SNGL(Single)= 0:PIC cascad 1 : Dclenchement par niveau sur IRQi LTIM (Level Triggered Input Mode) = 0 : Dclenchement par front sur IRQi Exemple : MOV AL, 11h OUT 20H, AL

ICW2

Comment va-t-on constituer le n (type) dIt pour accder la table de vecteurs ?

ICW2 permet de gnrer le N de linterruption correspond la ligne IRQi qui a provoqu linterruption.

A0 1

B7 T7

B6 T6

B5 T5

B4 T4

B3 T3

B2 ?

B1 ?

B0 ?

IRQi / i= ???

Cours Archi II

Dr. Mohamed FEREDJ

En, effet, le PIC positionne que les bits B0, B1 et B2 du ICW2 correspondent lIRQi. Cependant, les bits T3-T7 correspondent aux 5 derniers bits du N de lIt sont fixs par lutilisateur. Exemple : MOV AL, 10h OUT 21H, AL

ICW3

Si le PIC est matre, comment peut-on savoir sur quelle IRQi les PICs esclaves sont connects? Si le PIC est esclave, comment peut-on savoir sur quelle IRQi du matre est connect ?

1) ICW3 du PIC Matre

A0 1

B7 B6 B5 B4 B3 B2 B1 B0 B B7 B6 B5 B4 B3 B2 B1 S7 S6 S5 S4 S3 S2 S1 S0

Si = 1 : Un PIC esclave est connect IRQi Si = Si = 0 : Sinon

1) ICW3 du PIC Esclave

A0 1

B7 B6 B5 B4 B3 B2 B1 B0 B B7 B6 B5 B4 B3 B2 B1 0 0 0 0 0 ID2 ID1 ID0

ID2ID1ID0 = Code didentification du PIC esclave. Ce code (entre 0 et 7) reprsente le numro de lIRQ du PIC matre sur laquelle est connect le PIC esclave.

Cours Archi II

Dr. Mohamed FEREDJ

Remarque : Le PIC esclave sera activ ds quil reoit ce code sur ses lignes CAS0CAS2.

ICW4

Avec quel P fonctionne le PIC ? Comment sera gr le signal de fin dIt ? Sagit-t-il dun matre ou dun esclave ? Comment est programme la ligne SP / EN ?

A0 1

B7 B6 B5 B4 B3 B2 B1 B0 B B7 B6 B5 B4 B3 B2 B1 0 0 0 SFNM BUF M/S AEOI P

1 : P 8086 ou plus P = 0 : 8080/8085 1 : Fin d' interruption automatique AEOI = 0 : Fin d' interruption normal
1 : SP/ EN en sortie (commande des transmetteurs) BUF = 0 : SP/ EN en entre (selectionne le mode maitre/esclave)

1 : PIC maitre M/S (avec BUF = 1) = 0 : PIC esclave


avec BUF = 0 ==> M/S est ignor

1 : Mode emboitable complet SFNM(Special Fully Nested Mode = 0 : Mode emboitable partiel

Remarque : 1) SFNM est utile dans le cas dexistence de PIC esclave. Donc, - SFNM = 1 Ordre de priorit des Its du PIC esclave est gr par le PIC

Cours Archi II

Dr. Mohamed FEREDJ

matre.

PIC matre accepte plus dune demande dIts de lesclave PIC matre accepte une seule demande dIts de lesclave la fois

- SFNM = 0

Squence dinitialisation :

ICW1 Initialisation obligatoire ICW2


(SNGL=1) Non

Mode cascad ?

Oui (SNGL=0)

ICW3
(IC4=0) Non

ICW4 ncessaire?

Oui (IC4=1)

ICW4
Le PIC est prt traiter les demandes dinterruption

Exemple : Soit 2 PICs : PIC matre a les adresses 20H et 21H et PIC esclave a les adresses 0A0H et 0A1H. Le PIC esclave est connect sur la ligne IRQ2 du PIC matre. La dtection des demandes dIts se fait par front montant pour les deux PICs. Ecrire la squence dinstructions assembleur permettant linitialisation des 2 Pics.

Cours Archi II

10

Dr. Mohamed FEREDJ

4.2) La manipulation des mots de commande dopration (OCW) :

OCW1 : Ce registre permet de positionner les bits du registre IMR Pour masquer dmasquer les interruptions.

A0 1 Avec,

B7 B7 M7

B6 B6 M6

B5 B5 M5

B4 B4 M4

B3 B3 M3

B2 B2 M2

B1 B1 M1

B0 B0 M0

1 : Masquer les deemandes d' interruptions sur IRQi Mi = 0 : Accepter les demandes d' interruptions sur IRQi

OCW2 : Ce registre permet : De positionner le ISRi 0 dans le cas o IRET ne peut pas le faire ; De traiter lordre des priorits des Its ;

A0 0

B7 B7 R

B6 B5 B4 B6 B5 B4 SL EOI 0

B3 B3 0

B2 B2 L2

B1 B1 L1

B0 B0 L0

Les bits : R = Rotate : Pour commander les rotations L2L1L0 sont pris en compte SL = Select Level : Si SL = 1 EOI = End Of Interruption, Dfinit le mode de fin dinterruption Sont utiliss ensemble. L2L1L0 : indiquent le niveau dinterruption cibl par lopration. Ils sont actifs si le bit SL = 1

Cours Archi II

11

Dr. Mohamed FEREDJ

Voici toutes les combinaisons possibles :

R
Fin interruption

SL
0 1 0 0 0 1 1 1

EOI
1 1 1 0 0 1 0 0

DESCRIPTION
Veut dire mettre le bit ISRi de la routine la plus prioritaire 0 EOI non spcifique (lordre de priorit est le mme) EOI spcifique (mettre le ISR de la routine du niveau L2L1L0 0) Mettre ISRi 0 et lui donner la priorit la plus faible (Rotation de priorits sur EOI non spcifique) Rotation de priorit sur chaque EOI automatique Arrt de rotation sur les EOI automatiques (EOI sans changement dordre des priorits) Mettre ISR de linterruption du niveau L2L1L0 0 et lui donner la priorit la plus faible. (Rotation sur EOI spcifique) Etablissement dun ordre de priorit Pas dopration

0 0 1

Rotation Automatique

1 0 1 1 0

Rotation spcifique

Les plus utiliss

OCW3 : Il permet : La lecture des registre IRR et ISR Ltablissement du mode Polling Ltablissement du mode spcial de masquage

A0 0

B7 0

B6
ESMM

B5
SMM

B4 0

B3 1

B2 B1
P RR

B0
RIS

Remarque : 1. Cest le bit B3 qui fait la distinction entre OCW2 et OCW3. Donc - B3=1 OCW3 - B3=0 OCW2

Cours Archi II

12

Dr. Mohamed FEREDJ

RR (Read Register Command) : Si RR = 1 La lecture du registre IRR ou ISR est autorise. Le choix du registre lire dpend de la valeur du bit RIS

RIS (Read In Service) : Ce bit est utilis pour choisir le registre ISR ou IRR. 1 : ISR est slectionn RIS = 0 : IRR est slectionn

Voici les combinaisons possibles de RR et RIS : RR 0 0 1 1 RIS 0 1 0 1 Description Pas de lecture Pas de lecture Lecture IRR Lecture ISR

Exemple : Pour lire ISR MOV AL, 0BH ; Pour lire ISR OUT 20H, AL IN AL, 20H ; Lecture de ISR

Remarque : 1. Si RD = 0, CS = 0 et A0 = 0 alors le PIC renvoie le contenu du registre slectionn (IRR ou ISR) sur le BD ; 2. Un choix du registre lire restera effectif jusqu lenvoi dun autre mot de commande dopration.

P (Poll Command) : Pour quelle prenne effet, il faut que RR soit 0 Cest une commande qui permet la prise en charge des interruptions par balayage. Dans ce mode, cest le P qui a linitiative de dclencher les interruptions, celles-ci sont traites par le PIC mais il ne peut interrompre le microprocesseur (Bit IF 0).

Cours Archi II

13

Dr. Mohamed FEREDJ

Ainsi linitiative du microprocesseur, un mot de commande OCW3, ayant P = 1, est mis, le PIC traite alors la prochaine lecture ( RD =0 et CS =0) comme une reconnaissance dinterruption. Durant cette lecture, le PIC envoi sur le bus de donnes le mot suivant :

B7 I

B6 X

B5
X

B4 X

B3 X

B2 W2

B1 W1

B0 W0

Avec , 1 : Prsence d' une demande d' interruption I= 0 : Pas de demande d' interruption Et W2W1W0 = N de lIRQ

Remarque : 1. Pour ce mode, on peut avoir plusieurs PIC connects (mais non cascads) autant quadresses existes ; 2. On peut grer plus de 64 niveaux dinterruption.

ESMM (Enable SMM) : Si ESMM = 1 alors prendre en compte le bit SMM Sinon SMM est ignor.

SMM (Special Mask Mode) : Mode Masque Spcial dinterruption Si ESMM = 1 SMM prend effet.

En effet, les bits sont utiliss ensemble.

Cours Archi II

14

Dr. Mohamed FEREDJ

Voici toutes les combinaisons possibles :

ESMM 1 1 0 0

SMM 0 1 0 1

Description Annuler le masque spcial dinterruption Etablir le masque spcial dinterruption Aucun effet Aucun effet

a sert quoi le mode masque spcial ? Permet de rsoudre le problme doccupation abusive du microprocesseur par une routine dinterruption particulire.

Solution

le SMM sert autoriser les interruptions de tout niveau diffrent de celui

de linterruption en service intervenir. Ainsi, ce ne seront plus seulement les interruptions les plus prioritaires qui seront prises en compte mais galement les moins prioritaires.

Comment tablir le mode masque spcial ?

Il faut excuter la squence doprations suivante: Masquer uniquement le bit correspondant la routine dinterruption en cours dexcution. Pour cela, On doit utiliser OCW1 ; Mettre le PIC en mode spcial de masquage laide du registre OCW3 ; Autoriser les interruptions (IF=1).

Remarque :

Juste avant la fin de la routine dinterruption, il faut : 1. Annuler le mode masque spcial

Cours Archi II

15

Dr. Mohamed FEREDJ

Exemple :

Prog en cours dexec IRQ5 STI;IF=1 Routine dIt5 ;IF=0 Pas dIts

STI ;IF=1,laisser les Its passent ;IRQ0,1,2,3,4 autorises ;IRQ5,6,7 non Masquer IRQ5; OCW1=00100000 (a)

ESMM=SMM=1; Etablir SMM ;IRQ0,1,2,3,4 autorises ;IRQ6,7 autorises ;IRQ5 non ESMM=1 SMM=0; Annuler SMM

(b)

Dmasquer IRQ5; OCW1=00000000 ;IRQ0,1,2,3,4 autorises ;IRQ5,6,7 non EOI; ISR5=0, IRQ0-7 autorises

IRET

: Prsence de lIRQ5 : Lancement de la routine dIRQ5 : Retour au programme interrompu : Reprise de lexcution du prog interrompu (a) : Partie importante. Pas SMM (b) : Masque spcial

Cours Archi II

16

Dr. Mohamed FEREDJ

Vous aimerez peut-être aussi