Requisitos previos: 8259 PIC
8259 PIC está diseñado para las series de microprocesadores 8085 y 8086.
Necesidad de PIC en 8085 y 8086:
- En 8086 tenemos dos pines para el manejo de interrupciones, es decir, NMI e INTR. Si usamos NMI para corrupción de datos o errores de hardware no recuperables y un pin de interrupción, INTR para otras interrupciones de software.
- En un sistema cuando tenemos múltiples interrupciones de diferentes dispositivos de entrada o salida, entonces necesitamos un PIC (controlador de interrupción de prioridad) que pueda manejar múltiples interrupciones de diferentes dispositivos y priorizarlas de acuerdo con los requisitos del sistema, y enviarlas a un solo pin de interrupción en el procesador.
Características de 8259 :
- Un solo 8259 maneja 8 interrupciones, mientras que una configuración en cascada en la que 1 maestro y 8 esclavos pueden manejar hasta 64 interrupciones.
- Puede manejar interrupciones de activación de nivel de borde.
- Su estructura de prioridades se puede modificar fácilmente.
- En 8259, las interrupciones se pueden enmascarar individualmente.
- La dirección del vector de las interrupciones se programa fácilmente.
- Debe inicializarse dando comandos para determinar varias propiedades como números de vector, prioridad, enmascaramiento, activación, etc.
Modos de funcionamiento del 8259:
Los diferentes modos de funcionamiento del 8259 se pueden programar alterando los bits de los comandos ICW u OCW del 8259.
Modo completamente anidado :
- Es el modo de funcionamiento predeterminado del 8259.
- Aquí, IR 0 tiene la prioridad más alta e IR 7 tiene la prioridad más baja. Cuando ocurre cualquier solicitud de interrupción, la solicitud de interrupción de mayor prioridad se atiende primero y su dirección de vector se coloca en el bus de datos y su bit correspondiente en el registro ISR se establece hasta que el procesador ejecuta el comando EOI antes de devolver la rutina de servicio de interrupción o AEOI (finalización automática). se establece el bit de interrupción) hasta la caída del último INTA’.
- Cuando el bit ISR se establece para una interrupción, todas las interrupciones de igual y menor prioridad se enmascaran, pero puede ocurrir una solicitud de interrupción de mayor nivel y que se reconocerá solo si la interrupción del microprocesador habilita el indicador IF = 1.
- Es adecuado para una sola configuración 8259.
- El mecanismo de prioridad se puede programar fácilmente.
Modo totalmente anidado especial (SFNM):
este modo lo utiliza el maestro 8259 en un modo en cascada. Su estructura de prioridad es fija y es la misma que la del modo completamente anidado (es decir, IR 0 tiene la prioridad más alta e IR 7 tiene la prioridad más baja).
En un modo especial totalmente anidado, el maestro solo atenderá la interrupción de mayor prioridad de un esclavo, cuya otra interrupción está actualmente en servicio.
Modos de prioridad rotatoria:
Hay dos modos de prioridad rotatoria:
1. Modo de rotación automática
- Se utiliza cuando varias fuentes de interrupción tienen la misma prioridad. En este modo, después de que se repara un dispositivo, obtiene la prioridad más baja. Todas las demás prioridades rotan de acuerdo con él.
- Ejemplo : si el IR 4 acaba de recibir servicio, obtendrá la prioridad más baja.
2. Modo de rotación específico
- Aquí, el programador puede alterar las prioridades programando la prioridad más baja y fijando así todas las demás prioridades.
- Por ejemplo : si IR 6 está programado como la prioridad más baja, entonces IR 7 tendrá la prioridad más alta.
Modo de máscara especial (SMM):
- En SMM, 8259 habilita interrupciones de todos los niveles (inferior o superior) excepto el que está actualmente en servicio.
- Debido a que estamos enmascarando especialmente la solicitud del nivel de prioridad de interrupción, que es el mismo que el nivel de prioridad de interrupción actual, por lo tanto, se llama modo de máscara especial .
Modo de sondeo:
aquí no se utiliza el pin INT del 8259, por lo que el 8259 no puede interrumpir el µp. En su lugar, el µP proporcionará un comando de sondeo al 8259 usando OCW 3 . En respuesta, 8259 proporciona una palabra de sondeo al µP. La palabra de encuesta indica la interrupción de mayor prioridad que necesita servicio de µP. A partir de entonces, el µP da servicio a la interrupción.
Ventaja:
el programa de µP no se interrumpe. Se puede usar cuando ISR es común para muchas interrupciones. Se puede utilizar para aumentar el número de interrupciones más allá de 64 (es decir, en el caso de una configuración en cascada).
Inconveniente :
si el intervalo de sondeo es largo, las interrupciones serán atendidas después de un largo período. Si el intervalo de sondeo es corto, es posible que se desperdicie el tiempo en sondeos innecesarios.
EOI – (fin de interrupción):
cuando el microprocesador reconoce una solicitud de interrupción enviando la primera señal INTA, el 8259 establece el bit correspondiente en el registro en servicio (ISR). Esto inicia el servicio de la interrupción.
Cuando se borra este bit en el ISR, se conoce como el final de la interrupción (EOI) .
Modos EOI :
1. Modo EOI normal:
aquí, un comando EOI es obligatorio. El programador escribe el comando EOI al final de la ISR. Hace 8259 para restablecer el bit de ISR. El comando EOI adicional es de dos tipos:
- Comando EOI no específico Aquí el programador no especifica el número de bit que se restablecerá en el ISR. El propio 8259 restablece el bit de mayor prioridad de ISR.
- Comando EOI específico: aquí el programador determina el número de bit que se restablecerá desde ISR.
2. Modo EOI automático (AEOI):
en este modo, no se requiere el comando EOI. En su lugar, el 8259 borrará el bit correspondiente de ISR al final del segundo pulso INTA.
Modo disparado por borde y nivel :
si el bit LTIM de ICW 1 = 0, entonces se establece el modo de interrupción disparado por borde; de lo contrario, las interrupciones se disparan por nivel.
Lectura 8259 Estado :
El estado de los registros puede ser leído por este modo. Aquí, el OCW 3 se usa para leer IRR e ISR y el OCW 1 se usa para leer IMR.
Modo con búfer:
8259 envía una señal de búfer habilitado en el pin SP’/EN’ cuando los datos se colocan en el bus de datos.
Publicación traducida automáticamente
Artículo escrito por goutamnagpal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA