Professional Documents
Culture Documents
2/ 21
Objectives
Les objectifs de ce chapitre sont:
- Expliquer comment IBM-PC excute les interruptions en utilisant
Section 9.1: Section 9.2: programmable Section 9.3: Section 9.4: PCs
Les interruptions avec le P8088/86 Le Contrleur dinterruption PIC8259 Le PIC8259 dans 8088-IBM PC/XT Les interruptions avec les P80x86-
donne
- Dcrire la fonction de chaque PIN du PIC 8259. - Expliquer lobjectif des 4 mots de contrle du PIC 8259 et
IBM PC/AT
R. Beguenane, UQAC, 2002/2003 Systmes microprocesseurs R. Beguenane, UQAC, 2002/2003 Systmes microprocesseurs
3/ 21
4/ 21
CS IP
INT FF
Cest un avnement extrieure qui informe la CPU quun circuit externe (DMA, E/S, ) a besoin de son service.
Le P8088/86 est muni dun total de 256 interruptions: INT 00, INT FF, appels parfois TYPEs. INT N Quand une interruption est excute, le P automatiquement sauvegarde Dans la pile les registres FR, IP, et CS, et se dirigera vers une location Mmoire dont ladresse physique est : 00004 x NN, NN tant le numro de linterruption [NN = 0 FF].
INT 00 INT 01 INT 02 INT NN INT FF
Addresse Logique
0000:0000 0000:0004 0000:0008 0000:[00NNx4] 0000:03FC
CS IP CS IP CS IP
NMI
Single_Step
/0
4. Call Far sauvegarde CS et IP de la prochaine instruction alors que INT NN, sauvegarde aussi FR. 5. Call Far RETF INT NN IRET Systmes microprocesseurs
Rachid Beguenane
5/ 21
6/ 21
Interruptions Hardware
Output de CPU Input vers CPU et Masque par CLI et STI Input vers CPU et non Masque Finir linstruction en cours. PUSH FR, CS, IP dans la pile Saute la Table des vecteurs dInterruptions Chercher CS:IP pour excuter lISR associ A la fin dISR linstruction IRET de la pile FR CS, IP. CPU POPer
Interruptions et le registre FR
Une INT02 (embarqu) est dsigne par Intel dans les P80x86 pour NMI. Quand NMI est active (haut), CPU location mmoire 00008 pour obtenir CS:IP (00008:0000B) de la ISR associ NMI. Avec INTR plusieurs types sont associs (INT NN), via PIC8259. 2. 3. 4. 5. 6.
15
11
OF
IF et TF 0 Le systme ignore les INTR et dsactive les Single-Stepping pendant lexcution de ISR CS Pile (SP SP 2), IP Pile (SP SP 2). Le type dINT (NN) x 4 pour obtenir ladresse (CS:IP) de lISR de la Table des vecteurs dInterruptions. CPU commence excuter le programme ISR ( partir de CS:IP) La dernire instruction dISR est IRET pour: Pile CS, IP, FR.
Ignorer INTR, pas deffet sur NMI CLI IF=0 STI IF=1 Permettre les INTR
Systmes microprocesseurs
Systmes microprocesseurs
7/ 21
8/ 21
CS:IP
F000:FF54 / F000:FEA5 F000:F987 / /
Objectif
Imprimer lecran Rservs IRQ0 de PIC8259 (INT BIOS Timer) IRQ1 de PIC8259 (INT BIOS Clavier) IRQ2 de PIC8259 (Rserv) IRQ3 de PIC8259 (Rserv pour Port Srie COM2) IRQ4 de PIC8259 (Rserv pour Port Srie COM1) IRQ5 de PIC8259 (Rserv pour Disque Dur XT)
0000:0000 E8 56 2B 02 56 07 70 00 C3 E2 00 F0 56 07 70 00 0000:0010 56 07 70 02 . 0000:0020 A5 FE 00 F0 . ISR(INT00) CS:IP = 022Bh:56E8h
EXEMPLE
C> debug -D 0000:0000-002F
INT 00
INT 01 (Single-Stepping)
1. 2.
TF du FR 1 CPU CS:IP = 00004 pour chercher ladresse de ISR associ (DUMPer le contenu des registres sur lcran) CPU CS:IP = 00008 ISR associe
F000:EF57 0070:0147
IRQ6 de PIC8259 (Lecteur Disquette) IRQ7 de PIC8259 (Port Parallle Imprimante LPT1) BIOS Vido E/S
ISR(NMI)
CS:IP = F000h:E2C3h
ISR(INT08)
CS:IP = F000h:FEA5h
Debuguage
8 x 4 = 20H
INT 04 (Dpassement)
Dpassement de capacit pour les nombres signs Linstruction INTO tester OF. Si 1 INT04 activ (CS:IP=00010H) Sinon INTO NOP
MOV AL, +87h MOV BL, +64h ADD AL, BL INTO
/ /
NOTE: INT00 07998H Espace MS DOS NMI FE2C3H Espace BIOS ROM
Message affich
Systmes microprocesseurs
Rachid Beguenane
9/ 21
10/ 21
Section 9.2:
Pourquoi PIC?
1 2
28
PIC 8259A
14 15
VCC A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP/EN CAS 2
A0
P I/F
A0 0
D7 0 ICW1
D6 0 0 1
......
LTIM
D0 ICW4
CS
0 0 1
NOTE:
A0
0 1 x
Initialisation
ICW1 ICW2, ICW3, ICW4 8259 non slectionn
8259A
Toujours 1 pour ICW1 ( diffrencier de OCW2) 1 Trig Niveau (IRx) Sinon Trig Edge
Si A7-A1 = 0010011 permettent de slectionner PIC8259 les adresses de ICW1, 2, 3, 4 sont: 26H 27H ICW1 et ICW2, 3, 4
A0 1
D7 T7 ICW2
D6 T6 T5 T4
...... T3
D2 T2
D1 T1
D0 T0
A noter que ICW2, 3, 4 ont une mme adresse Aprs la programmation de ICW1, cest autour de ICW2, ensuite ICW3, ensuite ICW4 (au besoin).
IR0-IR7: Interruptions Hardware. Si 1, le P8088/86 saute vers la location de linterruption correspondante. Pour chaque IR existe une adresse physique correspondante dans la Table des vecteurs dInterruptions R. Beguenane, UQAC, 2002/2003 Systmes microprocesseurs
INT NN
IR X (X = 000
111)
11/ 21
12/ 21
(Besoin du ICW4, PIC Seul, 0 pour x86, IRx Trig Niveau, 1, 000 pour x86) (000
IR0, 0101 0000 INT 50H)
ICW2 ICW3
000 111 : Numro de IR du PIC Matre qui est connect vers Ce PIC Esclave
Pas Besoin, un seul PIC est utilis (P8088/86, Normal EOI avant IRET, Mode Buffer Esclave, Non Imbriqu, 000 )
A0 1
D7 0
D6 0 0 0
...... 0
D2 ID2
D1 ID1
D0 ID0
ICW4
A0
0 1
Initialisation
BUF A0 1 D7 0 ICW4 PM = 1 pour P80x86 sinon 8085 AEOI = 1 auto EOI sinon normal EOI
(Automatic End Of Interrupt, sinon Instruction EOI avant IRET dans ISR)
MS
x 0 1
Modes: (Non)Buffer Mode NonBuffer Mode Buffer Esclave Mode Buffer Matre
0 0
ICW1
ICW4
AEH AFH
D6 0 0
......
SFNM BUF
D2 MS
D1
AEOI
D0 PM
0 1 1
ICW2, ICW3,
(Pour des systmes qui ncessitent des Buffers pour leur bus de donnes avec BiDirec Transceivers)
Note: Si INT 50H est assign IR0 IR1 IR7 INT 51H INT 57H Adresses Logiques (des IR0:IR7): 0000:0140H R. Beguenane, UQAC, 2002/2003
Systmes microprocesseurs
Rachid Beguenane
13/21
14/ 21
rle du OCW A0
0 1 x
Aprs Initialisation (avec ICW1, ICW2, ICW4), le P8088/86 est prt pour recevoir des interruptions, via les pins IRx du PIC8259. Ensuite OCW est envoye pour masquer nimporte quel IRx, ou bien changer la priorit assigne chacun des IRx (7 0). Il est noter lexistence de 3 registres dans le PIC8259 ISR, IRR, et IMR
Bus Interne
Initialisation
OCW2, OCW3 OCW1 8259 non slectionn
Exemple: Si 011
Niveau des Priorits: IR3, IR4, IR5, IR6, IR7, IR0, IR1, IR2 (A noter que: Dans IBM PCs 00100000B est le contenu par dfaut de OCW2)
OCW2
1
NOTE:
XXX
Fonction
Commande EOI non spcifique Commande EOI spcifique Rotation sur Commande EOI non spcifique Rotation dans le mode EOI automatique (Valide) Rotation dans le mode EOI automatique (Non Valide) Rotation sur Commande EOI spcifique Valider une commande de priorit
Si A7-A1 = 0010011 permettent de slectionner PIC8259 les adresses de OCW1, 2, 3 sont: 26H 27H OCW2 et OCW3 OCW1
IR7
Logique de Contrle
OCW1
ISR
In-Service Register
IRR
Rsolution
Priorit
A0 1
Si IRx donne est servie elle devient la plus basse priorit Jusqu ce que les autres seront servis viter la monopolisation.
OCW1
1 Interruption Masque
dfaut: IR0
IR7
IMR Interrupt Mask Register Diagramme Interne du PIC8259 R. Beguenane, UQAC, 2002/2003
Si nous dsirons savoir lesquelles IRx sont actives ou pas Lire OCW1 (IN AL, 27H) contenu de IMR
Systmes microprocesseurs
Systmes microprocesseurs
15/ 21
16/ 21
Pourquoi? 1. 2. 3. 4. 5. Assumant que PIC8259 est initialis sa configuration par dfaut: IR0 IR7 (Fully Nested Mode) IR3 active et la CPU rpond par INTA et va vers la table des vecteurs dinterruptions et ISRIR3 Une fois INTA reue, PIC8259 met 1 le bit associ IR3 dans le registre ISR (In-Service Register) pour indiquer que IR3 est en service. Linstruction EOI (MOV AL, 20H et OUT 26H, AL) permet de RESETer 0 le bit associ IR3 dans le registre ISR, pour permettre IR3 de revenir la prochaine fois. Sinon pour le PIC lIR3 est en train de sexcuter, et la CPU en allant au programme principal, aprs le IRET de ISRIR3, ne peut servir nouveau IR3 car le bit associ IR3 dans le registre ISR est toujours 1. Par consquent les autres IRx de moindre priorits (IR4 IR7) seront empches dtre servis galement. Mais les IR2 IR0 seront servis, puisque prioritaires, pendant que IR3 est faussement servis.
A0 0
D7 0
D6 ES M M S M M 0
......
D2 P
D1 RR
D0 RIS
OCW3
11 01 Lire ISR Lire IRR
6.
Systmes microprocesseurs
Rachid Beguenane
17/ 21
18/ 21
S1, S2, S3
VCC S0 S2 MCE/PDEN DEN CEN INTA IORC AIOWC IOWC
000
1 1 1 1
0 0 0 0
0 0 0 0
0 0 0 0
0 1 0 1 0 1 0 1
X XXX0 0 0 0 0 0 0 0 01 0 0 0 00 0 0 0 01
20 21 20 21
8259A
CS RD WR
LS138
G2A G2B G1
VCC A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP/EN CAS 2
28
1 2
PIC 8259A
15 14
8288
9 10
12 11
Cest la fonction de ICW2 dinformer 8259 quelles INT?? Correspondent les IRQ0 IRQ7 Autrement ICW2 est le numro dinterruption INT pour IR0 qui dans le cas dIBM PC/XT est INT08.
ICW1 ICW2 ICW3 ICW4 000 1 0 0 1 1 00001 000 13H (Besoin du ICW4, PIC Seul, 0 pour x86, IRx Trig Edge, 1, 000 pour x86) 08H, (INT 08H
IRQ0, INT 09H IRQ1, INT 0FH IRQ7) MOV AL, 13H OUT 20H, AL MOV AL, 8 OUT 21H, AL MOV AL, 9 OUT 21H, AL ; ICW1 ; ICW1 ; INT08 ; ICW2 ; ICW4
CPU 8086
(16-BITS Int.)
P8088/86
19 20
22 21
Pas Besoin, un seul PIC est utilis (plusieurs PICs en mode Esclave/Matre seulement pour 80x86)
0000 1001
09H (P8088/86, Normal EOI avant IRET, Mode Buffer Esclave, Non Imbriqu, 000 )
Cet octet sera dcod (INT NN x4) pour calculer le vecteur dinterruption correspondant.
19/ 21
20/ 21
28
INTA
PIC 8259
Esclave
SP/EN
INT
IR2
62-Slot Expansion
IRQ2 Rserv IRQ3 Port Srie COM2) IRQ4 Port Srie COM1 IRQ5 Port Parallle LPT2 IRQ6 Contrleur Lecteur Disquette IRQ7 Port Parallle Imprimante LPT1
PIC 8259
Maitre
SP/EN
P 80x86
NMI
(IBM PC/AT)
MOV AL, 11H ; ICW1, Edge, ICW4 OUT 20H, AL ; Port adresse ICW1 MOV AL, 8 ; ICW2, INT type 8 (8-F)
NMI
Pas besoin de INTA et ne peut tre masque (CLI) contrairement INTR (IR0:IR7)
OUT A0H, AL ; Port adresse ICW1 MOV AL, 70H ; ICW2, INT type 70 (70-77) OUT A1H, AL ; Port adresse ICW2 MOV AL, 02H ; ICW3, Esclave niveau 2 OUT A1H, AL ; Port adresse ICW3 MOV AL, 01H ; ICW4, NonBuffer, Mode x86 OUT A1H, AL ; Port adresse ICW4
OUT 21H, AL ; Port adresse ICW2 MOV AL, 04H ; ICW3, Matre niveau 2 OUT 21H, AL ; Port adresse ICW3 MOV AL, 01H ; ICW4, NonBuffer, Mode x86 OUT 21H, AL ; Port adresse ICW4
Rachid Beguenane
21/ 21
IRQ3 Port Srie COM2) IRQ4 Port Srie COM1 IRQ5 Port Parallle LPT2 IRQ6 Contrleur Lecteur Disquette IRQ7 Port Parallle Imprimante LPT1 IRQ8 CMOS Horloge IRQ9 Re-direction SW vers INT10 (IRQ2)
IRQ11 Valable Utilisateur IRQ12 Souris (PS/2) IRQ13 Co-Proc Math IRQ14 Contrleur Disque Dur IRQ15 Valable Utilisateur
Examen final
Chapitre 4: Programmation 32-bit pour machines 386/486 Chapitre 7 (Mmoires), Chapitre 8 (Timer) et Chapitre 9 (PIC)
Rachid Beguenane
36-Slot Expansion
62-Slot Expansion
IRQ2 Rserv