Reservadas por INTEL (modo protegido). Utilizables por el usuario. Cada vector: 4 bytes. Dirección del vector: 0: INT x 4. La tabla ocupa 256x4 = 1024 bytes (1 ...
INTERRUPCIONES Tres tipos de interrupciones: • Internas (TRAPS) • Externas (HARDWARE) • Software Existen 256 interrupciones En el modo real cada una tiene un vector asociado Vectores de 4 bytes: segmento + offset
....
Memoria principal
0000:0008 0000:0006 0000:0004 0000:0002 0000:0000
32 50
F0 8A
Segmento Offset
Vector INT 0 = F032:8A50 (dirección donde comienza la rutina de atención)
Número de interrupción: Internas : implícito Externas : Enviado por el periférico solicitante Software : indicado en la propia instrucción
INTERRUPCIONES
INT 0
Error de división por 0
INT 1
Ejecución paso a paso
INT 2
NMI (No enmascarable)
INT 3
Instrucción INT
INT 4
Desbordamiento (INTO) Reservadas por INTEL (modo protegido)
INT 32 INT 33 INT 34 Utilizables por el usuario
INT 255 Cada vector: 4 bytes La tabla ocupa 256x4 = 1024 bytes (1 Kbyte) Dirección del vector: 0: INT x 4
INTERRUPCIONES Proceso de una interrupción: 1. Guarda registro F en la pila 2. IF=0, TF=0 3. Guarda CS en la pila 4. CS = NUM_INT x 4 + 2 5. Guarda IP en la pila 6. IP = NUM_INT x 4 Retorno de interrupción: IRET Realiza el proceso inverso
INTERRUPCIONES Internas 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
4
Desbordamiento (INTO)
Produce una interrupción cuando se ejecuta la instrucción INT (1 byte) - BREAKPOINTS Si el flag O está activado se dispara al ejecutar la instrucción INTO
Reservadas Son necesarias en el modo protegido Fallos de página Nivel de privilegio insuficiente Violación de límite de segmento No deben utilizarse en el modo real IBM las utilizó en el PC
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
La CPU genera dos impulsos de reconocimiento de interrupción REQ0 INTA .... REQ4
Lógica
INTR INTA Reconocimiento
D0 .. D7
Petición vector Nº de vector
INTERRUPCIONES Interconexión de varios dispositivos a la línea de interrupción
El PIC 8259 (“Programmable Interrupt Controller”)
ESQUEMA INTERNO DE BLOQUES INT
INTA
BUFFER
LÓGICA LECTURA/ ESCRITURA
ISR
CS#
CAS0 CAS1 CAS2
CONTROL DE CASCADA
SP/EN
IMR REGISTRO DE MÁSCARA
IRR REGISTRO DE PETICIÓN DE INTERRUPCIÓN
A0
Bus interno (8 bits)
ÁRBITRO DE PRIORIDADES
RD# WR#
LÓGICA DE CONTROL
BUS DE DATOS
REGISTRO INTERRUPCIONES EN SERVICIO
D0..D7
IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7
INTERRUPCIONES Proceso de una interrupción en el PIC 1. Un periférico solicita interrupción
REGISTRO DE PETICIÓN DE INTERRUPCIÓN
IRR
IRQ0 IRQ1 IRQ2
IRR 0 0 0 1 0 0 0 0 Se activa el bit correspondiente en ISR
INT IRQ3
IRQ4 IRQ5 IRQ6 IRQ7
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
IRR
ISR
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
5. La CPU envía el segundo pulso de INTA 6. El PIC coloca un puntero de 8 bits en el bus de datos El valor del puntero es distinto para cada entrada IRQ Es programable 7. A partir de entonces comienza a ejecutarse la rutina de atención
INTERRUPCIONES
Fin de interrupción (EOI) Los bits activos de ISR bloquean futuras peticiones por esa línea
ISR 0 0 0 1 0 1 0 0
Líneas activas
Líneas bloqueadas
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 puntero en 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
INTERRUPCIONES RUTINA SERV. A IRQ3
PROGRAMA PRINCIPAL
RUTINA SERV. A IRQ1
STI STI STI PERMITIDAS TODAS LAS INTERR.
PERMITIDAS IRQ2 IRQ1 IRQ0
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
2. Modo de ROTACIÓN AUTOMÁTICA • Ú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
ISR
ISR
0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0
menor
mayor
7 6 5 4 3 2 1 0
Prioridad
mayor menor 2 1 0 7 6 5 4 3
Prioridad
3. Modo de ROTACIÓN ESPECÍFICA • Se le indica en el EOI cuál es el dispositivo que adquiere la menor prioridad
INTERRUPCIONES PIC MAESTRO
IRQ0 IRQ1
INTA# A0 CS# INT
IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 SP/EN
DATOS
Vcc
IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7
PIC ESCLAVO 1 INTA# A0 CS# INT CAS0 CAS1 CAS2
SP/EN
IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7
PIC ESCLAVO 2 INTA# A0 CS# INT CAS0 CAS1 CAS2
SP/EN
Lógica de selección
CONTROL
CAS0 CAS1 CAS2
DIRECCIONES
IRQ2
MODO CASCADA
INTERRUPCIONES Gestión de prioridades Modo ANIDADO ESPECIAL Cuando se conectan varios PIC en cascada Permite gestionar las prioridades de forma correcta
IRQ6 IRQ7
CAS0 CAS1 CAS2
IRQ0 IRQ1 IRQ2 IRQ3
PIC ESCLAVO
IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5
PIC MAESTRO
IRQ5 IRQ6 IRQ7
INT
INT IRQ4
CAS0 CAS1 CAS2
ISR esclavo
SP/EN
0 0 0 1 0 0 0 0
SP/EN Vcc
ISR Maestro 0 0 1 0 0 0 0 0
IRQ6 IRQ7
CAS0 CAS1 CAS2
IRQ0
PIC ESCLAVO
IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5
PIC MAESTRO
IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7
INT
INT IRQ1
CAS0 CAS1 CAS2
SP/EN
0 0 0 1 0 0 1 0
SP/EN Vcc
ISR Maestro 0 0 1 0 0 0 0 0
ISR esclavo
?
INTERRUPCIONES Gestió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.
PIC MAESTRO
IRQ0 IRQ1 IRQ3 IRQ4 IRQ5
INT
IRQ7
CAS0 CAS1 CAS2
SP/EN
ISR Maestro 0 1 0 0 0 1 0 0
No se envían las peticiones
INT IRQ2
INT IRQ6
INTERRUPCIONES
IRR REGISTRO DE PETICIÓN DE INTERRUPCIÓN
REGISTRO INTERRUPCIONES EN SERVICIO
ISR
ÁRBITRO DE PRIORIDADES
El registro de máscara IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7
IMR REGISTRO DE MÁSCARA
Permite enmascarar individualmente cada entrada: 1
Prohibe interrupciones por esa línea
0
Permite interrupciones por esa línea
INTERRUPCIONES La 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ón 3 OCW Palabras de operación
COMANDO
DIRECCIÓN
Se distingue por
ICW1 ICW2 ICW3 ICW4
PAR IMPAR IMPAR IMPAR
Bit 4 = 1 Sigue a ICW1 Sigue a ICW2 Sigue a ICW3
OCW1 OCW2 OCW3
IMPAR PAR PAR
Bit 3 = 0 , Bit 4 = 0 Bit 3 = 1 , Bit 4 = 0
Palabra que se escribe (8 bits)
INTERRUPCIONES La 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
INTERRUPCIONES La programación del PIC 8259 Secuencia de inicialización Escribir ICW1
ICW1 se escribe en la dirección PAR con A0 = 0 y D4 = 1
Escribir ICW2
ICW1, ICW2 e ICW3 se escriben en la dirección IMPAR
¿Modo cascada?
Escribir ICW3
Si hay varios PIC en cascada es necesario escribir ICW3, en caso contrario puede omitirse
Es necesaria ICW4 En sistemas basados en procesadores Intel XX86 siempre es necesaria ICW4 Escribir ICW4
FIN
INTERRUPCIONES 1
ICW1
LTIM
SINGL ICW4
1 = Se necesita ICW4 0 = No se necesita ICW4 1 = Modo SINGLE 0 = Modo CASCADA 1 = Entradas activas al NIVEL 0 = Entradas activas al FLANCO
ICW2
T7 T6 T5 T4 T3 Número INT de interrupción que se asigna a IRQ0
ICW3 (Maestro)
S7 S6 S5 S4 S3 S2 S1 S0 1 = Esta entrada tiene PIC esclavo 0 = Esta entrada no tiene esclavo
ICW3 (Esclavo)
0
0
0
0
0 ID2 ID1 ID0 Entrada IRQ del maestro a la que se encuentra conectado
ICW4
0
0
0
SFNM BUF
M/S AEOI
86
Debe estar a “1” para indicar funcionamiento en modo 8086
1 = fin de interrupción automático 0 = fin de interrupción normal
Control del modo BUFFER
Control de anidamiento especial
INTERRUPCIONES La 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
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: Se escribe en posición PAR (A0 = 0) El byte que se escribe tiene D4 = 0 y D3 = 0 Controla los modos de: 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
Número de IRQ al que se refiere 001 011 101 100 000 111 110 010
EOI no específico EOI específico No válido
Rotación No válido
INTERRUPCIONES La 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
1.
Primero se escribe en posición PAR
0
0
1
P
RR RIS
RR RIS
Acción
1 1
Lee IRR Lee ISR
0 1
1 = Comando Poll
2.
A continuación se lee en posición PAR En comando POLL I
W2 W1 W0
En otros: Lectura de IRR o ISR directamente
INTERRUPCIONES Las interrupciones en el PC Desde la arquitectura AT hay dos PIC
Temporizador (Timer) Teclado Reloj de tiempo real Errores del coprocesador Controlador de disco duro Puerto serie COM1 Puerto serie COM2 Controlador de diskette Puerto paralelo
Al inicio del sistema se especifica: PIC MAESTRO PIC ESCLAVO
datos un valor de 8 bits que indica el número de vector de interrupción (type code. = offset o base de interrupciones del PIC + nº de IRQ). La CPU multiplica este.
8 jun. 2010 - Utilizado en las primeras computadoras (Apple II) o en algunos sistemas embebidos. La CPU sondea periódicamente al dispositivo para ver ...
13 feb. 2017 - Irazú, Trinidad, Fontenova, Pan de azúcar, El Oasis, Villa Aurora, Los. Alpes, Malabar. Veredas: Ancón. Tesorito, Alaska, La Coqueta, Santa.
13 feb. 2017 - Vereda San Antonio Parte Baja. 13/02/2017 ... Guamal, Villa Restrepo, Puerto Perú,. Pastales ..... Mariquita. Sector del barrio San Sebastian.
10 feb. 2017 - Ramirez, San Diego, Boca de. Tetuán,. Guatavita, .... Planta de Tratamiento de Agua, Isla del Sol, Isla Corprado, Antena. Colombia Móvil.
2Estudiante de Ingeniería Eléctrica, Universidad Politécnica Salesiana. Autor para correspondencia u: rrobalino@ups. edu.ec. 3Docente de la Carrera de ...
31 ene. 2017 - Puente Cemento, San Rafael, Salitre, Los. Pastos, Laureles, Dantas y ... Belalcazar, Antonio Nariño, Viveros, La Ceiba,. Sector del Gaitan, San ...
31 ene. 2017 - Pan de Azúcar, El Oasis, Villa Aurora, Los. Alpes, Malabar. Veredas: Ancón Tesorito,. Alaska, La Coqueta, Santa Teresa, La Vega. 05/02/2017 ...
La tecnología y seguridad ABB ... ABB específica para locales médicos de ... médico, ABB suministra los cuadros eléctricos QSO premontados, tanto en su.