Documente Academic
Documente Profesional
Documente Cultură
Arquitectura de Computadoras
Clase 14 -A
Controlador Programable de Interrupciones i8259
(PIC 8259 = programmable interrupt controller)
Funciones
Estructura externa (esquema de conexin)
Estructura interna
Secuencia de reconocimiento de una
interrupcin
Conexin en cascada entre varios i8259
Programacin del i8259
Modos de operacin
Ejemplo de programacin del i8259
25/05/2014
25/05/2014
25/05/2014
ESTRUCTURA INTERNA
Registros Internos
ESTRUCTURA INTERNA
25/05/2014
5.
6.
Una o ms lneas IRQ son activadas por los perifricos conectados al PIC y
esto activa los correspondientes bits IRR
El 8259 evala la prioridad de estas interrupciones (mediante el codificador de
prioridad) y solicita una interrupcin a la CPU activando la lnea INT.
Cuando la CPU reconoce la interrupcin enva la seal INTA.
Entonces el PIC, recibida la seal INTA, activa el bit correspondiente a la
interrupcin de mayor prioridad (la que va a ser procesada) en el ISR y borra
ese mismo bit en el IRR. En este ciclo, el 8259 an no controla el bus de
datos.
Cuando la CPU enva un segundo ciclo INTA, el 8259 deposita en el bus de
datos un valor de 8 bits que indica el nmero de vector de interrupcin (type
code= offset o base de interrupciones del PIC + n de IRQ). La CPU multiplica
este valor por 4 para buscar en esa direccin de memoria la direccin de
comienzo de la RTI.
En el modo AEOI del PIC, el bit de la interrupcin en el ISR es borrado
automticamente nada ms acabar el segundo pulso INTA. En caso contrario,
este bit permanece activo hasta que la CPU enve el mandato (comand) EOI
(End of Interrupt) al final de la rutina que trata la interrupcin (esto es lo ms
normal).
25/05/2014
6.
25/05/2014
25/05/2014
25/05/2014
ICW4 (A0 = 1): se enva cuando se quiere que el PIC trabaje en un modo de
operacin diferente al establecido por defecto. (previamente hay que poner
el bit IC4 de ICW1 a 1).
SFNM: Bit que activa el Special Fully Nested Mode.
BUF: Bit que activa el Buffered Mode.
M/S: l cuando se trata del NC maestro, y 0 cuando se trata de un NC esclavo.
AEOI: Bit que activa el modo auto EOI.
MD: Bit que seala si trabajamos con el modo del PIC para el 8086.
Fully Nested Mode, modo por defecto, que ordena las IR por prioridades
(IR0, mxima IR7, mnima). Equivale a enviar ICW4 con todos sus bits a
cero.
Buffered Mode, el 8259 tiene una serie de buffers internos para almacenar
los datos antes de volcarlos al bus.
Modos de EOI, bajar el bit del registro ISR al final de la seal INTA (AEOI) o
paraque no se baje de forma manual usando OCW2.
25/05/2014
10
25/05/2014
11
25/05/2014
El EOI (End Of lnterrupt) sirve para bajar el bit del ISR que representa la
interrupcin que est siendo procesada.
El EOI puede producirse automticamente (AEOI) al final de la ltima seal
INTA que enva la CPU.
Como la mayora de los sistemas requieren una gestin de prioridades en las
interrupciones, es mejor que el EOI lo enve el propio procesador al 8259 a
travs de OCW2 cuando termine la RTI (rutina de tratamiento de la
interrupcin).
En un sistema con varios PIC, el EOI debe ser enviado al 8259 esclavo y
tambin al maestro. Hay dos modalidades de EOI:
No especifico: el 8259 borra el bit ms significativo que est activo en el registro ISR,
que se supone que es el correspondiente a la ltima interrupcin producida (la de
mayor prioridad y que est siendo procesada). Esto es suficiente para un sistema
donde se respeta el Fully Nested Mode.
Especifico: si el 8259 es incapaz de determinar cul fue el ltimo nivel de interrupcin
procesado (no se respeta el Fully Nested Mode), la RTI debe enviar un EOI
especfico al PIC indicndole qu bit hay que borrar en el ISR.
12
25/05/2014
13
25/05/2014
Carlos Canto Q.
14
25/05/2014
Carlos Canto Q.
Carlos Canto Q.
15
25/05/2014
Ejemplo de inicializacin.
MOV
OUT
MOV
OUT
MOV
OUT
AL,13H
20H,AL
AL,08H
21H,AL
AL,09H
21H,AL
AL,10111100b
21H,AL
; IRQ 0, 1 y 6 permitidas
AL,20H
20H,AL
; Retorno de la rutina de Interrupcin
16
25/05/2014
; Deshabilita interrupciones
AX,0
ES,AX
DI,24H ; Punto de entrada para la interrupcin del tipo 09h
AX,OFFSET KBINT
; Movimiento ascendente
; Pone el Offset de la Rutina de atencin a la INT.
AX,CS
; Pone el CS de la Rutina de atencin a la INTAL,0FCH ;Pone la mascara de interrupciones
21H,AL
; Habilita Interrupciones
17