Вы находитесь на странице: 1из 4

El controlador de interrupciones es un mdulo que tiene por funcin gestionar las interrupciones de entrada/salida para el procesador.

Tambin proporciona flexibilidad porque permite idealmente, gestionar un nmero ilimitado seales de interrupcin El controlador recibe el conjunto de seales de interrupcin procedentes de los dispositivos, toma la decisin de cual es la ms prioritaria, y enva una nica seal al procesador. La respuesta del procesador es transmitida al dispositivo y el propio controlador se encarga de depositar en el bus el vector de la interrupcin. En un sistema basado en la familia de procesadores 8086, esta labor la realiza el chip 8259. Este chip admite hasta 8 seales de interrupcin, pero tambin admite ser configurado en cascada de modo que un conjunto de controladores 8259 pueden gestionar hasta un mximo de 8*8 seales de interrupcin procedentes de otros tantos dispositivos de entrada salida.

DESCRIPCIN DEL INTEGRADO 8259 Este circuito integrado est especialmente diseado para controlar las interrupciones en sistemas basados en el 8080/8085 y en el 8086. Puede controlar hasta 8 interrupciones vectorizadas. Adems, a un 8259 se le pueden conectar en cascada un mximo de 8 chips 8259 adicionales, lo que permite gestionar sistemas con hasta 64 interrupciones. CS: Habilita la comunicacin con la CPU. WR: Permite al 8259 aceptar comandos de la CPU. RD: Permite al 8259 dejar la informacin en el bus de datos. D7..D0: Bus de datos bidireccional, por el que se transmite la informacin de control/estado y el nmero de vector de interrupcin. CAS0..CAS2: Lneas de cascada, actan como salida en el 8259 maestro y como entrada en los 8259 esclavos, en un sistema con varios 8259 interconectados, constituyendo un bus local. SP/-EN: Pin de doble funcin: en el buffered mode del 8259 actuar como -EN, para habilitar los buffers del bus; en el modo normal indicar si el 8259 es maestro o esclavo (-SP). INT: Conectado a la patilla INT de la CPU para producir la interrupcin cuando llegue el momento.

IR0..IR7: Lneas asncronas de peticin de interrupcin. Una peticin de interrupcin se ejecuta manteniendo IR en alto hasta que se recibe el reconocimiento (modo por flancos) o simplemente poniendo en alto la lnea IR (modo por niveles). -INTA: Lnea de reconocimiento de interrupcin, por medio de esta lnea se fuerza al 8259 a depositar en el bus la informacin del vector de interrupcin. INTA es independiente de -CS. A0: En conjuncin con -CS, -WR y -RD es empleada para enviar las palabras de comando al 8259 y para solicitar informacin al mismo. Suele ir conectada a la lnea A0 de la CPU.

CICLO DE RECONOCIMIENTO DE INTERRUPCIN Antes de describir la estructura y programacin del controlador resultar interesante conocer en qu consiste un ciclo de reconocimiento de interrupcin en el 8086. 1.- Tras la activacin de una lnea IR, el controlador activa la salida INTR sealndole a la CPU la existencia de una interrupcin activada. 2.- Al recibir la seal, el procesador da un pulso en su salida INTA indicando que comienza un ciclo de reconocimiento de interrupcin. (En el modo mximo la respuesta ser el cdigo de reconocimiento de interrupcin en las seales S0-2 que ser utilizado por el controlador de bsqueda generar la seal INTA) 3.- Al recibir el controlador el pulso por su entrada INTA comienza a arbitrar las interrupciones recibidas y selecciona la ms prioritaria. 4.- Se emite un segundo pulso por la lnea INTA del procesador (o controlador de bus) que utiliza el controlador para depositar en el bus el vector correspondiente a la interrupcin de mayor prioridad. 5.- El procesador obtiene la direccin de la rutina de interrupcin a partir de este dato y salta a ella. Almacena el registro de flags y la direccin de retorno, deshabilita las interrupciones y comienza a ejecutar la rutina.

ESTRUCTURA DEL CONTROLADOR

El controlador dispone de un conjunto de registros internos para realizar sus funciones: IRR/ISR: Interrupt request register/Interrupt service register: Cuando se activan una o varias de las entradas IR, estas quedan reflejadas en los bits correspondientes del IRR. Entonces el controlador usa este registro para decidir a qu interrupcin atender. De aquellos bits activados en el IRR el ms prioritario queda reflejado en el bit correspondiente del ISR. Mientras la interrupcin est siendo atendida este bit se mantiene activo. Este bit se desactiva, bien automticamente o bien despus de recibir el controlador una orden de EOI (fin de interrupcin, emitido antes del IRET). Cuando se configura para que lo haga automticamente, el controlador desactiva la interrupcin en el flanco de bajada de la segunda seal INTA procedente del procesador. IMR: Interrupt mask register. El programador puede enmascararalgunas interrupciones de manera que si se activase la IR correspondiente, el controlador la ignorar (nunca alcanzar el ISR). El mecanismo de arbitraje es programable y admite algunas variantes en la resolucin Modo completamente anidado: es el modo de prioridad bsica consistente en asignar mayor prioridad a la interrupcin 0 y menor prioridad a la interrupcin 7. En este modo, cuando un bit est activo en el ISR indicando que tal interrupcin est siendo atendida (desactivado, por lo tanto el EOI automtico), ninguna interrupcin de prioridad igual o inferior va a ser considerada por el controlador. Sin embargo si entrase una interrupcin de prioridad superior, sta s pasar al registro ISR y se emitir el aviso correspondiente al procesador. (En el procesador se interrumpir la ejecucin de la rutina de atencin a la interrupcin anterior para cargar la nueva rutina, ms prioritaria. Al finalizar sta se reanudar la primera). Modo de rotacin automtica.: en este modo, cada vez que una interrupcin es atendida, como la de mxima prioridad, queda degradada al rango de menor prioridad para la siguiente ocasin. Ello permite que ninguna

interrupcin pueda acaparar la atencin del procesador. Rotacin especfica: es un tercer modo en el cual el programador puede indicarle al controlador, por medio de un comando, cual es el orden de prioridad que desea darle a las interrupciones, concretamente le indica cual es la interrupcin de mayor prioridad y el resto se ordenarn entorno a ella. (Por ejemplo, si decide que la IR5 va a ser la de mayor prioridad, la IR6 ser la siguiente, despus IR7 y a continuacin IR0, etc.)

Вам также может понравиться