Professional Documents
Culture Documents
....
Memoria
0000:0008
principal
0000:0006
0000:0004
32 F0 Segmento
0000:0002
50 8A Offset
0000:0000
Número de interrupción:
Internas : implícito
Externas : Enviado por el periférico solicitante
Software : indicado en la propia instrucción
INTERRUPCIONES
INT 32
INT 33
INT 34
Utilizables por el usuario
INT 255
Retorno de interrupción:
IRET
Reservadas
Son necesarias en el modo protegido
Fallos de página
Nivel de privilegio insuficiente
Violación de límite de segmento
Software
Cualquier interrupción se puede disparar mediante la instrucción
INT n
INTERRUPCIONES
Hardware
NMI
NMI activa en flanco de subida
INTR
CPU
INTR activa a nivel alto
REQ0
INTA
.... Lógica
REQ4
INTR
INTA
Reconocimiento Petición vector
D0 .. D7 Nº de vector
INTERRUPCIONES
INT INTA
BUFFER
D0..D7 LÓGICA DE CONTROL
BUS DE
DATOS
IRQ2
INTERRUPCIONES
ÁRBITRO
INTERRUPCIÓN
EN SERVICIO
IRQ3
REGISTRO DE
PETICIÓN DE
REGISTRO
DE
IRQ4
CAS0 IRQ5
CAS1 CONTROL IRQ6
CAS2 DE IRQ7
CASCADA
SP/EN
IMR
REGISTRO DE MÁSCARA
INTERRUPCIONES
Proceso de una interrupción en el PIC
1. Un periférico solicita interrupción
IRR
0 0 0 1 0 0 0 0
IRQ0
IRR IRQ1 Se activa el bit
IRQ2 INT correspondiente en ISR
INTERRUPCIÓN
IRQ3
REGISTRO DE
PETICIÓN DE
IRQ4
IRQ5
IRQ6
IRQ7
IRR ISR
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
Es programable
ISR
0 0 0 1 0 1 0 0
Líneas Líneas
activas bloqueadas
STI
STI
PERMITIDAS
STI IRQ2
IRQ1
PERMITIDAS IRQ0
TODAS LAS
INTERR.
IRQ3
IRQ1
EOI EOI
IRET IRET
PONE
A 0 PONE
A 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0
ISR ISR ISR
INTERRUPCIONES
Gestión de prioridades
1. Modo ANIDADO
• IR0 prioridad más alta
• IR7 prioridad más baja
• Peticiones de menor prioridad que la que está
siendo atendida se ignoran
ISR ISR
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Prioridad Prioridad
PIC IRQ0
MAESTRO IRQ1 IRQ2
INTA# IRQ3
A0 IRQ4 IRQ5
CS#
INT IRQ6
CAS0 CAS1 CAS2
IRQ7
DIRECCIONES
SP/EN
CONTROL
DATOS
Vcc
PIC IRQ0
ESCLAVO 1 IRQ1
IRQ2
INTA# IRQ3
A0 IRQ4
CS# IRQ5
INT IRQ6
IRQ7
CAS0 CAS1 CAS2
SP/EN
PIC IRQ0
ESCLAVO 2 IRQ1
IRQ2
INTA# IRQ3
A0 IRQ4
CS# IRQ5
INT IRQ6
IRQ7
CAS0 CAS1 CAS2
SP/EN
Lógica de
selección
MODO CASCADA
INTERRUPCIONES
Gestión de prioridades
Modo ANIDADO ESPECIAL
Cuando se conectan varios PIC en cascada
Permite gestionar las prioridades de forma correcta
PIC IRQ0
PIC IRQ0 ESCLAVO IRQ1
MAESTRO IRQ1 IRQ2
IRQ2 IRQ3 INT
IRQ3 IRQ4
IRQ4 IRQ5 IRQ5
INT IRQ6
IRQ6 IRQ7
CAS0 CAS1 CAS2
IRQ7
CAS0 CAS1 CAS2
SP/EN
ISR esclavo
SP/EN 0 0 0 1 0 0 0 0
Vcc
ISR Maestro
0 0 1 0 0 0 0 0
ISR Maestro
0 0 1 0 0 0 0 0 ?
INTERRUPCIONES
Gestión de prioridades
Comando de sondeo (“POLL”)
PIC IRQ0
MAESTRO IRQ1
INT
IRQ3 IRQ2
IRQ4
IRQ5
INT INT
CAS0 CAS1 CAS2
IRQ7 IRQ6
SP/EN
ISR Maestro
0 1 0 0 0 1 0 0
IRQ0
ISR IRR IRQ1
PRIORIDADES
IRQ2
INTERRUPCIONES
ÁRBITRO
INTERRUPCIÓN
EN SERVICIO
IRQ3
REGISTRO DE
PETICIÓN DE
REGISTRO
DE
IRQ4
IRQ5
IRQ6
IRQ7
IMR
REGISTRO DE MÁSCARA
OCW1 IMPAR -
OCW2 PAR Bit 3 = 0 , Bit 4 = 0
OCW3 PAR Bit 3 = 1 , Bit 4 = 0
ICW1 ⇒ A0 = 0 D4 = 1
¿Modo
cascada?
Es
necesaria
ICW4
En sistemas basados en procesadores
Intel XX86 siempre es necesaria ICW4
Escribir ICW4
FIN
INTERRUPCIONES
ICW1 1 LTIM SINGL ICW4
1 = Se necesita ICW4
0 = No se necesita ICW4
1 = Modo SINGLE
0 = Modo CASCADA
ICW2 T7 T6 T5 T4 T3
Número INT de interrupción que
se asigna a IRQ0
ICW3 S7 S6 S5 S4 S3 S2 S1 S0
(Maestro)
Se detecta porque:
IMR
M7 M6 M5 M4 M3 M2 M1 M0 A0 = 1
1 = Activar máscara
0 = Desactivar máscara
INTERRUPCIONES
La programación del PIC 8259
Palabra de operación OCW2
Se detecta cuando:
Específico
Fin de interrupción
No específico
Rotación automática
Gestión de prioridades
Rotación específica
H SL EOI 0 0 L2 L1 L0
Se detecta cuando:
Se escribe en posición PAR (A0 = 0)
El byte que se escribe tiene D4 = 0 y D3 = 1
0 0 1 P RR RIS
RR RIS Acción
1 0 Lee IRR
1 1 Lee ISR
1 = Comando Poll
I W2 W1 W0
En otros:
PIC IRQ8
PIC IRQ0 ESCLAVO IRQ9
MAESTRO IRQ1 IRQ2 IRQ10
IRQ11
IRQ3 IRQ12
IRQ4 IRQ13
IRQ5 INT IRQ14
IRQ6 IRQ15
CAS0 CAS1 CAS2
CAS0 CAS1 CAS2
IRQ7
SP/EN
SP/EN
Vcc
Interrupciones reservadas: