Arqui

Enviado por Programa Chuletas y clasificado en Otras materias

Escrito el en español con un tamaño de 8,64 KB

 
Interrupciones

PROPÓSITO
• Permiten a un dispositivo obtener la atención de la CPU
MECANISMO DE ACCIÓN
• Existen señales especiales de interrupción conectadas a la CPU, cuando una o más de estas señales se presentan, la CPU es
interrumpida
• Cuando es interrumpida, la CPU deja de ejecutar el código actual y salta a una rutina de atención a la interrupción (ISR).
• La ISR ejecuta código para comunicarse con el dispositivo solicitante
• Cuando la ISR termina, la CPU resume la tarea que estaba haciendo antes de ser interrumpida

POLLING
El “polling” no es realmente una característica, son las acciones que se deben realizar para un microcontrolador que no cuenta con un esquema de interrupciones.
El “polling” es una técnica de software, donde el microcontrolador continuamente pregunta al dispositivo si necesita servicio. El periférico enciende una bandera cuando está listo para transferir datos, entonces el microcontrolador salta a diferentes rutinas de atención.
POLLING
Ventajas:
• El software para implementar el polling es relativamente sencillo
Desventajas:
• La CPU debe interactuar con el dispositivo aún cuando no sea necesario el servicio
• La respuesta en tiempo del polling puede ser larga
• Existe un retardo entre la necesidad de atención del dispositivo y la respuesta de la CPU
• Entre más dispositivos sean “polleados”, más largo será el tiempo de respuesta
Ventajas
• La CPU interactua con el dispositivo solo cuando este necesita servicio
• El tiempo de respuesta de la interrupción es usualmente más corto que el tiempo de respuesta con polling
Desventajas.
• El software para implementar la interrupción es usualmente más complejo que para implementar el polling.

Manejando Interrupciones. Enmascaramiento

• Existen bits de enmascaramiento en la arquitectura del microcontrolador
• Una interrupción es enmascarada cuando la CPU es instruida para ignorar la interrupción
• Una interrupción es desenmascarada cuando la CPU es instruida a considerar la interrupción
• Excepto el RESET, todas las interrupciones son enmascarables
Tipos de interrupciones...
Interrupciones no enmascarables
Las interrupciones no enmascarables pueden siempre interrumpir a la CPU.
Ejemplo Interrupciones no enmascarables en el 68HC11
• RESET
• Software Interrupt, SWI
• Clock Monitor Fail
• Computer Operating Properly (COP) Failure
• Illegal Opcode Fetch
• External, non-maskable interrupt request: XIRQ


Manejando interrupciones
Proceso de interrupción
• Los dispositivos se programan para generar interrupciones
• Las interrupciones se desenmascaran
• Las interrupciones ocurren
• La CPU espera a completar la instrucción actual
• la CPU introduce algunos registros en la pila.
• La CPU selecciona un vector de interrupción y salta hacia la rutina de atención (ISR) especificada por el vector.
• La ISR atiende al dispositivo que interrumpió
• La ISR retorna al programa desde donde fue interrumpido utilizando la instrucción RTI
• La Instrucción RTI saca los registros introducidos en la pila y salta de regreso a la siguiente instrucción en el programa desde donde fue interrumpido
Manejando interrupciones...
Vectores de Interrupción
Muchos procesadores soportan interrupciones con vectores
Un vector de interrupción es una dirección de una rutina de servicio (ISR) que está almacenada en memoria
Cada vector de interrupción está asociado con una fuente específica de interrupción

Prioridades
• Muchos procesadores soportan fuentes múltiples de interrupciones
• ¿Que sucede cuando dos o más fuentes de interrupción ocurren al mismo tiempo?
• Las prioridades de las interrupciones son predefinidas por el CPU y las interrupciones son atendidas en orden de prioridad
• Algunas prioridades de las interrupciones pueden ser cambiadas por el usuario
• Algunas prioridades de las interupciones no pueden ser cambiadas por el usuario


¿Que hacer antes de una interrupción?
• LOPP:JMP LOOP; Ciclos infinitos
• WAI (wait for interrupt); Introduce algunos registros en la pila para reducir el tiempo de atención
• WAIT mode (consume menos potencia)
• STOP (Para el reloj); para el reloj del M68HC11, reduciendo la potencia.

INTERRUPCIONES EN EL 8031/8051/8751
El 8031 proporciona 6 fuentes de interrupción diferentes con cinco vectores.
- 2 interrupciones externas (EX0 y EX1).
- 2 interrupciones de los contadores/temporizadores (ET0 y ET1).
- La interrupción del puerto serial (ES).
Cada una de las fuentes de interrupción en el 87C51 puede ser individualmente habilitada o deshabilitada, fijando a uno o a cero los bits correspondientes en el registro IE (Interrupt Enable). Este registro también contiene un bit de deshabilitación global de todas las interrupciones (Figura 12).


PRIORIDADES DE LAS INTERRUPCIONES EN EL 8051
Cuando dos o más fuentes de interrupción están en el mismo nivel de prioridad y suceden al mismo tiempo, el 8031 considera un nivel de atención a cada interrupción de acuerdo con un “POLLING” (escrutinio) el cual se puede apreciar en la figura anterior. Por ejemplo, si una tecla es oprimida y el usuario desea comunicarse por el puerto serie al mismo tiempo, de acuerdo con el “POLLING” la interrupción que será atendida es la del teclado (suponiendo que ambas están en el mismo nivel de prioridad).

HABILITACIÓN DE LA INTERRUPCIONES
REGISTRO IE
EA.- Deshabilita todas las interrupciones. Si EA=0, la interrupción no es reconocida. Si EA=1, cada
fuente de interrupción puede ser individualmente habilitada o deshabilitada fijando a uno o cero el bit correspondiente.
-.- No implementado. Poner en cero.
ET2.- Habilita o deshabilita la interrupción provocada por el sobreflujo del timer 2 o interrupción de captura (8052 solamente).
ES.- Habilita o deshabilita la interrupción provocada por el puerto serial.
ET1.- Habilita o deshabilita la interrupción provocada por el sobreflujo del timer 1.
EX1.- Habilita o deshabilita la interrupción externa 1.
ET0.- Habilita o deshabilita la interrupción provocada por el sobreflujo del timer 0.
EX0.- Habilita o deshabilita la interrupción externa 0.

PRIORIDADES DE LAS INTERRUPCIONES PARA EL 8031/8051/8751

Cada fuente de interrupción en el 8031 puede ser individualmente programada en uno de dos niveles de prioridad, alta o baja, fijando a uno o a cero respectivamente el bit correspondiente en el registro IP (Interrupt Priority), de acuerdo con el formato de la figura. Un uno lógico en cualquiera de los bits anteriores asigna un nivel de alta prioridad y un cero asigna baja prioridad.
-.- No implementado. Poner en O.
-.- No implementado. Poner en O.
PT2.- Define el nivel de prioridad de interrupción del timer 2 (8052 solamente).
PS.- Define el nivel de prioridad de interrupción del puerto serial.
PT1.-Define el nivel de prioridad de interrupción del timer 1.
PX1.-Define el nivel de prioridad de la interrupción externa 1.
PT0.-Define el nivel de prioridad de interrupción del timer 0.
PX0.-Define el nivel de prioridad de la interrupción externa 0.

Entradas relacionadas: