View
247
Download
0
Category
Preview:
Citation preview
INTERRUPCIONES
Tres tipos de interrupciones:
• Internas (TRAPS)• Externas (HARDWARE)• Software
Existen 256 interrupcionesEn el modo real cada una tiene un vector asociadoVectores de 4 bytes: segmento + offset
32 F050 8A
0000:00000000:00020000:00040000:00060000:0008
.... Memoriaprincipal
Vector INT 0 = F032:8A50(dirección donde comienza la rutina de atención)
SegmentoOffset
Número de interrupción:
Internas : implícitoExternas : Enviado por el periférico solicitanteSoftware : indicado en la propia instrucción
INTERRUPCIONES
INT 0
INT 1
INT 2
INT 3
INT 4
INT 32
INT 33
INT 34
INT 255
Error de división por 0
Ejecución paso a paso
NMI (No enmascarable)
Instrucción INT
Desbordamiento (INTO)
Reservadas por INTEL (modo protegido)
Utilizables por el usuario
Cada vector: 4 bytes
Dirección del vector: 0: INT x 4La tabla ocupa 256x4 = 1024 bytes (1 Kbyte)
INTERRUPCIONES
Proceso de una interrupción:
1. Guarda registro F en la pila2. IF=0, TF=03. Guarda CS en la pila4. CS = NUM_INT x 4 + 25. Guarda IP en la pila6. IP = NUM_INT x 4
Retorno de interrupción:
IRET
Realiza el proceso inverso
INTERRUPCIONESInternas
0 Error de división por 0 El cociente no cabe en el registro destino
1 Ejecución paso a paso Se produce una interrupción cada vez que se ejecuta una instrucción si el flag T está activado
2 NMI (No enmascarable) Interrupción hardware (NMI)
3 Instrucción INT Produce una interrupción cuando se ejecutala instrucción INT (1 byte) - BREAKPOINTS
4 Desbordamiento (INTO) Si el flag O está activado se dispara al ejecutar la instrucción INTO
Reservadas
Son necesarias en el modo protegido
Fallos de páginaNivel de privilegio insuficienteViolación de límite de segmento
No deben utilizarse en el modo realIBM las utilizó en el PC
Software
Cualquier interrupción se puede disparar mediante la instrucción
INT n
INTERRUPCIONES
Hardware
CPU
NMI
INTR
NMI activa en flanco de subida
INTR activa a nivel alto
La CPU genera dos impulsos de reconocimiento de interrupción
Lógica
REQ0
....REQ4
INTA
Nº de vector
Reconocimiento Petición vector
INTR
INTA
D0 .. D7
INTERRUPCIONES
Interconexión de varios dispositivos a la línea de interrupción
El PIC 8259 (“Programmable Interrupt Controller”)
BUFFER
BUS DEDATOS
LÓGICALECTURA/
ESCRITURA
CONTROLDE
CASCADA
LÓGICA DE CONTROL
REG
ISTR
OIN
TER
RU
PCIO
NES
EN S
ERVI
CIO
ÁRBI
TRO
DE
PRIO
RID
ADES
REG
ISTR
O D
EPE
TIC
IÓN
DE
INTE
RR
UPC
IÓN
ISR IRR
IMRREGISTRO DE MÁSCARA
IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7
D0..D7
RD#WR#
A0
CS#
Bus interno (8 bits)
CAS0CAS1CAS2
ESQUEMA INTERNO DE BLOQUES
INT INTA
SP/EN
INTERRUPCIONESProceso de una interrupción en el PIC
0 0 0 1 0 0 0 0IRR
INT
REG
ISTR
O D
EPE
TIC
IÓN
DE
INTE
RR
UPC
IÓN
IRR IRQ0IRQ1IRQ2
IRQ3IRQ4IRQ5IRQ6IRQ7
1. Un periférico solicita interrupción
2. El PIC solicita interrupción a la CPU (INT)
3. La CPU reconoce la petición con un primer pulso de INTA
4. Se activa el bit correspondiente de ISR y se desactiva en IRR
5. La CPU envía el segundo pulso de INTA
6. El PIC coloca un puntero de 8 bits en el bus de datos
7. A partir de entonces comienza a ejecutarse la rutina de atención
Se activa el bitcorrespondiente en ISR
0 0 0 0 0 0 0 0IRR
0 0 0 1 0 0 0 0ISR
El valor del puntero es distinto para cada entrada IRQ
Es programable
INTERRUPCIONES
Fin de interrupción (EOI)
Los bits activos de ISR bloquean futuras peticiones por esa línea
Deben ponerse a 0 al terminar la rutina de servicio: (EOI)
Formas de poner a 0 el bit de ISR:
1. Programar el modo automático (AEOI)
El bit se pone a 0 automáticamente al colocar el punteroen el bus de datos
2. Enviar al PIC el comando EOI:
No específico : pone a 0 el de más prioridad
Específico: pone a 0 el que se le indica
Generalmente se envía el EOI justo antes del IRET
0 0 0 1 0 1 0 0ISR
Líneasactivas
Líneasbloqueadas
INTERRUPCIONES
PERMITIDASTODAS LAS
INTERR.
STIPERMITIDAS
IRQ2IRQ1IRQ0
STI
STI
EOI
IRET
EOI
IRET
IRQ3
IRQ1
PROGRAMAPRINCIPAL
RUTINA SERV.A IRQ3
RUTINA SERV.A IRQ1
0 0 0 0 0 0 0 0
ISR0 0 0 0 1 0 0 0
ISR0 0 0 0 1 0 1 0
ISR
PONEA 0 PONE
A 0
INTERRUPCIONESGestión de prioridades
1. Modo ANIDADO
2. Modo de ROTACIÓN AUTOMÁTICA
3. Modo de ROTACIÓN ESPECÍFICA
• IR0 prioridad más alta• IR7 prioridad más baja• Peticiones de menor prioridad que la que está siendo atendida se ignoran
• Útil cuando todos los dispositivos tienen idéntica prioridad• Cuando se atiende una IRQ se le asigna la prioridad menor• En el caso peor se espera que se atiendan a los otros 7
0 0 0 1 0 0 0 0
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0
2 1 0 7 6 5 4 3
ISR ISR
Prioridad Prioridad
menor mayor mayor menor
• Se le indica en el EOI cuál es el dispositivo que adquiere la menor prioridad
INTERRUPCIONES
PICMAESTRO
PICESCLAVO 1
PICESCLAVO 2
DIR
ECC
ION
ES
CO
NTR
OL
DAT
OS
INTA#A0CS#INT
INTA#A0CS#INT
INTA#A0CS#INT
IRQ0IRQ1
IRQ3IRQ4
IRQ6IRQ7
IRQ2
IRQ5
IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7
IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7
VccSP/EN
SP/EN
SP/EN
CAS0 CAS1 CAS2
CAS0 CAS1 CAS2
CAS0 CAS1 CAS2
Lógi
ca d
ese
lecc
ión
MODO CASCADA
INTERRUPCIONESGestión de prioridades
Modo ANIDADO ESPECIAL
Cuando se conectan varios PIC en cascadaPermite gestionar las prioridades de forma correcta
PICMAESTRO
PICESCLAVO
INT
IRQ0IRQ1IRQ2IRQ3IRQ4
IRQ6IRQ7
IRQ5
IRQ0IRQ1IRQ2IRQ3
IRQ5IRQ6IRQ7
VccSP/EN
SP/ENCAS0 CAS1 CAS2
CAS0 CAS1 CAS2
INTIRQ4
0 0 0 1 0 0 0 0ISR esclavo
0 0 1 0 0 0 0 0ISR Maestro
PICMAESTRO
PICESCLAVO
INT
IRQ0IRQ1IRQ2IRQ3IRQ4
IRQ6IRQ7
IRQ5
IRQ0
IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7
VccSP/EN
SP/ENCAS0 CAS1 CAS2
CAS0 CAS1 CAS2
INTIRQ1
0 0 0 1 0 0 1 0ISR esclavo
0 0 1 0 0 0 0 0ISR Maestro
?
INTERRUPCIONESGestión de prioridades
Comando de sondeo (“POLL”)
1. Cuando se activa no se pasan las peticiones de interrupción a la CPU
2. El procesador debe interrogar al PIC para saber si se ha producido petición de interrupción
3. La gestión de las interrupciones, y las prioridades se lleva a cabo mediante software.
PICMAESTRO
SP/EN
CAS0 CAS1 CAS2
0 1 0 0 0 1 0 0ISR Maestro
IRQ0IRQ1
IRQ3IRQ4IRQ5
IRQ7
INTIRQ2
INTIRQ6
INT
No se envían las peticiones
INTERRUPCIONESEl registro de máscara
REG
ISTR
OIN
TER
RU
PCIO
NES
EN S
ERVI
CIO
ÁRBI
TRO
DE
PRIO
RID
ADES
REG
ISTR
O D
EPE
TIC
IÓN
DE
INTE
RR
UPC
IÓN
ISR IRR
IMRREGISTRO DE MÁSCARA
IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7
Permite enmascarar individualmente cada entrada:
1 Prohibe interrupciones por esa línea
0 Permite interrupciones por esa línea
INTERRUPCIONESLa programación del PIC 8259
Solamente 2 puertos de E/S disponibles
(A0=0, A0=1) Posición par e impar respectivamente
Existen un total de 7 comandos
4 ICW Palabras de inicialización3 OCW Palabras de operación
COMANDO DIRECCIÓNCOMANDO DIRECCIÓN Se distingue porSe distingue por
ICW1ICW2ICW3ICW4
OCW1OCW2OCW3
PARIMPARIMPARIMPAR
IMPARPARPAR
Bit 4 = 1Sigue a ICW1Sigue a ICW2Sigue a ICW3
-Bit 3 = 0 , Bit 4 = 0Bit 3 = 1 , Bit 4 = 0
Palabra que se escribe (8 bits)
INTERRUPCIONESLa programación del PIC 8259
Palabras de inicialización (ICW)
Se utilizan en el reinicio del sistema para configurar el PIC
ICW1 da comienzo a la secuencia de inicialización
ICW1 ⇒ A0 = 0 D4 = 1
Automáticamente, al recibirlo, el PIC:
• Pone a 0 el registro de máscara
• Asigna prioridad 7 a IRQ7
• Pone a 0 los registros IRR e ISR
• Espera por las siguientes palabras de inicialización
Generalmente se utilizan cuando el sistema arranca
INTERRUPCIONESLa programación del PIC 8259
Secuencia de inicialización
Escribir ICW1
Escribir ICW2
Escribir ICW3
Escribir ICW4
¿Modocascada?
Esnecesaria
ICW4
FIN
ICW1 se escribe en la dirección PARcon A0 = 0 y D4 = 1
ICW1, ICW2 e ICW3 se escriben enla dirección IMPAR
Si hay varios PIC en cascada es necesario escribir ICW3, en casocontrario puede omitirse
En sistemas basados en procesadoresIntel XX86 siempre es necesaria ICW4
INTERRUPCIONES
1 = Se necesita ICW40 = No se necesita ICW4
1 = Modo SINGLE0 = Modo CASCADA
1 = Entradas activas al NIVEL0 = Entradas activas al FLANCO
1 LTIM SINGL ICW4
T7 T6 T5 T4 T3
Número INT de interrupción quese asigna a IRQ0
S2 S1 S0S7 S6 S5 S4 S3
1 = Esta entrada tiene PIC esclavo0 = Esta entrada no tiene esclavo
ID2 ID1 ID00 0 0 0 0
Entrada IRQ del maestro a la que se encuentra conectado
M/S AEOI 860 0 0 SFNM BUF
Debe estar a “1” para indicar funcionamiento en modo 8086
1 = fin de interrupción automático0 = fin de interrupción normal
Control del modo BUFFER
Control de anidamiento especial
ICW1
ICW2
ICW3(Maestro)
ICW3(Esclavo)
ICW4
INTERRUPCIONESLa programación del PIC 8259
Palabras de operación (OCW)
Se pueden enviar en cualquier momento
Son tres : OCW1, OCW2 y OCW3
OCW1 ⇒ se corresponde con el registro IMR
Se detecta porque:
A0 = 1 (escritura o lectura en posición IMPAR)
Mediante OCW1 se pueden activar o desactivar los bits de la máscara de interrupción
M2 M1 M0M7 M6 M5 M4 M3
1 = Activar máscara0 = Desactivar máscara
IMRA0 = 1
INTERRUPCIONESLa programación del PIC 8259
Palabra de operación OCW2
Se detecta cuando:
Se escribe en posición PAR (A0 = 0)El byte que se escribe tiene D4 = 0 y D3 = 0
Controla los modos de:
Fin de interrupción
Gestión de prioridades
Específico
No específico
Rotación automática
Rotación específica
L2 L1 L0H SL EOI 0 0
0 0 1 EOI no específico0 1 1 EOI específico1 0 1 No válido1 0 0 0 0 01 1 1 Rotación1 1 00 1 0 No válido
Número de IRQ al que se refiere
INTERRUPCIONESLa programación del PIC 8259
Palabra de operación OCW3
Se detecta cuando:
Se escribe en posición PAR (A0 = 0)
El byte que se escribe tiene D4 = 0 y D3 = 1
Permite el sondeo y la lectura de STATUS
P RR RIS0 0 1
1 = Comando Poll
1. Primero se escribe en posición PAR
2. A continuación se lee en posición PAR
RR RIS Acción
1 0 Lee IRR1 1 Lee ISR
W2 W1 W0I
En comando POLL
En otros:
Lectura de IRR o ISR directamente
INTERRUPCIONESLas interrupciones en el PC
PICMAESTRO
PICESCLAVO
INT
IRQ0IRQ1
IRQ3IRQ4IRQ5IRQ6IRQ7
IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15
VccSP/EN
SP/ENCAS0 CAS1 CAS2
CAS0 CAS1 CAS2
IRQ2
Desde la arquitectura AT hay dos PIC
PIC MAESTRO Dir E/S = 20h, 21hPIC ESCLAVO Dir E/S = A0h, A1h
Interrupciones reservadas:
IRQ0 Temporizador (Timer)IRQ1 TecladoIRQ8 Reloj de tiempo realIRQ13 Errores del coprocesadorIRQ14 Controlador de disco duroIRQ3 Puerto serie COM1IRQ4 Puerto serie COM2IRQ6 Controlador de disketteIRQ7 Puerto paralelo
Al inicio del sistema se especifica:
PIC MAESTRO INT = IRQ + 8PIC ESCLAVO INT = IRQ + 70h
Recommended