Você está na página 1de 7

Bachillerato en Ingeniera Electrnica Diseo de Sistemas III

Controlador de interrupciones 8259

Realizado por: Sonia Espinoza Brenes

Profesor: Eduardo Sanabria

San Jos, 2010

1. Qu es y para que funciona el 8259? El 8259 es in controlador de interrupciones programable, diseado para un sistema en donde la principal arquitectura sea un microprocesador, ya sea 8085 u 8086. Su funcin es la de multiplexar varias seales de interrupcin de entrada en una nica interrupcin de salida, tomando la ms importante para ser enviada al procesador. 2. Cal es la descripcin de las patillas? CS: Chip select. Debe estar activa para que el controlador pueda ser programado o leer datos de estado. WR: Escritura. RD: Lectura D0-7: Bus de datos. Por medio de l se programa el controlador, se leen los registros y el controlador puede hacer llegar al procesador el vector de interrupcin adecuado. CAS 0-7: Bus privado cuando hay una configuracin en cascada. Proceden del controlador maestro (el que se conecta directamente al procesador) y se dirigen a las mismas lneas en el esclavo. Sirven, en modo cascada, para habilitar al controlador del cual procede la interrupcin original. Cuando un controlador esclavo recibe una interrupcin, activa su salida INT que a su vez alimenta una IR del maestro. Entonces el maestro activa las lneas CAS de manera que el controlador esclavo quede habilitado para colocar en el bus el vector de interrupcin. SP, EN: Estas lneas tienen doble funcin segn la configuracin: modo no buffered: Indican al controlador si es un maestro (0) o un esclavo (1) modo buffered: En este modo el controlador puede conectar el bus directamente al procesador o hacerlo a travs de un buffer. Si se utiliza el buffer, esta seal es de salida y sirve para habilitar el buffer en la direccin adecuada. INT: interrupcin: Procedente del controlador se dirige a la entrada INTR del procesador. Procedente de un esclavo se dirige a una de las entrada IR del maestro. IR 0-7: Interrupciones: Entradas de interrupcin al controlador procedente de los dispositivos e/s o de otros controladores (modo cascada).Se pueden configurar como activas por nivel o activas por flanco (de subida). INTA: Interrupt acknowledge: Procede del procesador e indica al controlador que aquel ha entrado en un ciclo de reconocimiento de interrupcin. A0: direccin: El controlador tiene dos puertos de lectura/escritura. Esta lnea distingue entre ambos puertos. 3. Cal es la estructura del controlador 8259? El PIC 8259 tiene un conjunto de registros internos, los cuales se describen a continuacin. 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. 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 enmascarar algunas interrupciones de manera que si se activase la IR correspondiente, el controlador la ignorar. 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. 4. Describa los modos de operacin del controlador 8259. El modo es seleccionado por un bit en el registro de control de interrupciones, llamado bit CAS. Si este toma el valor de un 1 lgico, el controlador de interrupciones es conectado a los controladores de interrupciones programables 8259A esternos. Si CAS tiene un valor de un 0 lgico, es seleccionado el controlador de interrupciones interno. -Modo esclavo: Utiliza hasta 2 controladores de interrupcin programables para la expansin de entradas de interrupcin. Las entradas INT0 e INT1 se utilizan como conexiones externas a las salidas de solicitud de interrupcin, INT2 e INT3 se utilizan como seales de aceptacion de interrupcin de los controladores externos.

5. Diagrama del chip

6. Qu son interrupciones vectorizadas? Son interrupciones tambin llamadas de localidad fija, esto significa que ellas harn que el programa brinde siempre una localidad de memoria especfica e invariable. Puede hacer que el procesador brinque a cualquier nmero de diferentes localidades dependiendo de la seal en un puerto de interrupcin que es interrogado por el procesador siguiendo una interrupcin. Esta caracteristica la posee en controlador de instrucciones 8259.

7. A que se refiere cuando se dice que el 8259 prioriza interrupciones? El controlador de interrupciones es capaz de habilitar o inhibir lneas de interrupcin y establecer prioridades entre las distintas interrupciones habilitadas. As, cuando varias lneas de peticin de interrupcin se activan a la vez, el controlador de interrupciones utilizar estas prioridades para escoger la interrupcin sobre la que informar al procesador principal. Sin embargo hay interrupciones que no se pueden enmascarar o deshabilitar, las conocidas como interrupciones no emascarables o NMI. 8. Qu son NMI? Es un tipo especial de interrupcin usada en la mayora de de los microprocesadores. Una interrupcin no enmascarable causa que el CPU deje lo que est haciendo, cambie el puntero de instruccin para que apunte a una direccin particular y contine ejecutando el cdigo de esa direccin. Se diferencia de los otros tipos de interrupciones en que los programadores no pueden hacer que el CPU las ignore, aunque algunos ordenadores pueden por medios externos bloquear esa seal, dando un efecto similar al resto de las interrupciones. 9. Explique el modo de programacin del controlador 8259. El 8259 acepta dos tipos de comandos generados por la CPU: los ICW (Inicialization Command Word) que inicializan el 8259, y los OCW (Operation Command Word) que permiten programar la modalidad de funcionamiento. Antes de que los 8259 de un sistema comiencen a trabajar deben recibir una secuencia de ICW que los inicialice. Los ICW y OCW constan de secuencias de 2 a 4 comandos consecutivos que el 8259 espera recibir secuencialmente, unos tras otros, a travs del bus de datos, segn sea necesario (el propio 8259 se encarga de contarlos midiendo los pulsos de la lnea -WR). Los OCW pueden ser enviados en cualquier momento, una vez realizada la inicializacin. La comunicacin con el 8259 emplea las lneas -WR y -RW, as como A0. El hecho de que exista una sola lnea de direcciones implica que el 8259 slo ocupa dos direcciones de puerto de E/S en el espacio de entrada y salida del ordenador. 10. Escriba los comandos de inicializacin del controlador 8259. ICW1: En esta primera orden de inicializacin reseteamos el estado del 8259 y especificamos algunas caractersticas tales como si empleamos vectores de interrupcin o especificamos las direcciones de comienzo de la RSI (lo cual depende de si estamos utilizando un 8086 o 8080/8085 como procesador). Tambin indicaremos si las interrupciones sern activadas por flanco o bien por nivel. En caso de utilizar un 8080/8085 tendremos que indicar si el intervalo entre dos RSIs es de 4 u 8 bytes. Indicaremos si tenemos un nico 8259 conectado a los distintos perifricos o si por el contrario utilizamos varios 8259 en cascada

para ampliar el nmero de peticiones de interrupcin que podemos tratar (modo cascada). Finalmente tendremos que especificar si enviaremos una cuarta seal de inicializacin que tiene algunas configuraciones iniciales interesantes como ya veremos en ICW4. ICW2: Con este comando de configuracin nos permite fijar los distintos vectores de interrupcin para cada lnea de peticin de interrupcin (cada nivel de prioridad). ICW3: Esta sentencia de inicializacin solo se especificar en caso de que en ICW1 hallamos indicado que estamos trabajando con varios 8259 en cascada, en otro caso no ser necesario su especificacin. Con este comando configuraremos cada 8259 indicando quin es el maestro (a este se le especificarn que lneas de peticin de interrupcin tiene ocupadas con otros 8259 que sern los esclavos). Para especificar que un 8259 es maestro bastar con poner a 1 la seal SP#/EN# o bien tener las seales BUF = 1 y M/S = 1 en caso de que queramos "abrir" el bufer triestado para comunicarnos con el bus de datos). A cada esclavo habr que indicarle qu nmero identificativo tiene y este se corresponde con el nmero de la "patilla" con el que se conecta al maestro. ICW4: Permite realizar algunas configuraciones importantes sobre el 8259 pero estas solo se tendrn que especificar si en ICW1 indicamos que se enviara este comando de configuracin. Permite configurar un fin de interrupcin automtico, esto es, no se tendr que especificar la orden EOI cada vez que acabemos de procesar una interrupcin. Tambin nos permite habilitar los bufer triestado que se comunican con el bus de datos, pero en caso de usar esta configuracin si tenemos varios 8259 conectados en cascada deberemos indicar mediante la seal M/S quienes son esclavos y quin es el maestro. Por ltimo se nos permite tambin especificar al 8259 que queremos que funcione en modo completamente anidado especial y esto es interesante cuando tenemos una conexin en cascada de varios 8259 ya que en el modo normal si un esclavo recibe una determinada peticin se quedar bloqueado hasta que termine su procesamiento independientemente de que llegue otra ms prioritaria. En el caso del modo especial este defecto se subsana permitiendo que otras ms prioritarias puedan interrumpir la actual en curso. 11. Escriba los comandos de operacin del controlador 8259. OCW1: Con este comando se especifican cada uno de los valores de los bits del registro de mscara (IMR). El bit ms significativo est fijado a 1. Recordemos que si un bit del IMR est a 1 significa que las interrupciones asociadas a dicho nivel de prioridad quedarn inhibidas. OCW2: Nos permite configurar el modo de finalizacin de interrupcin, es decir, si queremos emplear un EOI especfico (hay que indicar qu interrupcin hemos tratado) o no especfico (no hace falta especificar que interrupcin ha finalizado ya que se tratar de la ms prioritaria que est activa en ese momento).Hay que tener en cuenta que esto solo podr establecerse si en la etapa de inicializacin no especificamos un fin de interrupcin automtico (AEOI). As mismo dedica algunos bits para decidir la poltica de prioridad que aplicaremos en las

interrupciones, por ejemplo, si especificaremos cul es la menos prioritaria o bien estableceremos un turno rotatorio de prioridades de tal manera que al finalizar el tratamiento de una interrupcin su lnea asociada pasar a ser la menos prioritaria, la siguiente a esta ser la ms prioritaria y as se irn estableciendo todas las prioridades, por ejemplo, supongamos que tenemos 5 lineas de interrupcin (0,1,2,3,4) siendo la 0 la ms prioritaria. Supongamos adems que tenemos establecido una rotacin de prioridades automtica, y consideremos que se produce una peticin por la lnea 2. Una vez que la CPU trate dicha interrupcin la lnea 2 pasar a ser la menos prioritaria y las prioridades quedaran de la siguiente manera: 3,4,1,2 siendo la 3 la ms prioritaria. El bit ms significativo de la palabra de control est fijado a 0. OCW3: Esta ltima palabra de control sirve para especificar si el 8259 funcionar en modo de mscara especial o usando "polling" y nos permite, adems, leer todos los registros internos (IMR, ISR, IRR). Podemos configurar al 8259 para que trabaje en modo de mscara especial, es decir, el dispositivo no considerar niveles de prioridad simplemente aplicar como restriccin los bits del registro de mscara pero a otros efectos los niveles tienen la misma prioridad. Por otro lado, se nos permite especificarle al 8259 que queremos que trabaje con seales de "polling" de esta manera el dispositivo no generar seales de interrupcin a la CPU si no que pondr en el bus de datos si hay alguna interrupcin pendiente y tambin especificar cual es el nivel ms prioritario que la solicita. Por ltimo esta palabra de control nos permite consultar el contenido de los registros internos lo cual puede ser interesante a la hora de emplear tcnicas de sondeo.

Você também pode gostar