Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Administración de memoria e interrupciones (página 2)




Enviado por Mart�nez Lucia



Partes: 1, 2

 

Funcionamiento del mecanismo de
interrupciones

Cada dispositivo que desea comunicarse con el procesador por
interrupciones debe tener asignada una línea única
capaz de avisar a éste de que le requiere para una
operación. Esta línea es la llamada IRQ ("Interrupt
ReQuest", petición de interrupción).

Las IRQ son líneas que llegan al controlador
de interrupciones
, un componente hardware dedicado a la
gestión
de las interrupciones, y que puede estar integrado en el
procesador principal o ser un circuito separado conectado al
procesador principal.

El controlador de interrupciones debe ser capaz de
habilitar o inhibir líneas de interrupción
(operación llamada comúnmente enmascarar por
la utilización de una mascara ), y establecer prioridades
entre las distintas interrupciones habilitadas.

Cuando varias líneas de petición de
interrupción se activan a la vez, el controlador de
interrupciones utilizará estas prioridades para escoger la
interrupción 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.

Un procesador principal (sin controlador de
interrupciones integrado) suele tener una única
línea de interrupción llamada habitualmente INT.
Esta línea es activada por el controlador de
interrupciones cuando tiene una interrupción que servir.
Al activarse esta línea, el procesador consulta los
registros del
controlador de interrupciones para averiguar qué IRQ es la
que ha de atender. A partir del número de IRQ busca en el
vector de interrupciones qué rutina debe llamar para
atender una petición del dispositivo asociado a dicha
IRQ.

Las rutinas de interrupción generalmente toman un
pequeño tiempo de
ejecución y la mayoría no pueden ser interrumpidas
cuando se están atendiendo, porque al entrar en ellas se
almacena el estado de
los registros en una pila y si se interrumpen muchas veces, la
pila se puede desbordar.

Mecanismo de interrupciones en un PC

Un ordenador PC típico dispone en su placa
base

de un controlador de interrupciones 8259 de Intel o de
un circuito integrado análogo. Este dispositivo
electrónico dispone de hasta 16 líneas IRQ,
numeradas desde el 00 hasta el 15. En las nuevas placas base este
circuito está integrado junto con el resto del
chipset.

Al mismo tiempo, interrupción funciona como
catalizador de un sistema en
desarrollo a
través de diversas formas de ser responsable.

Un computador
debe disponer de los elementos suficientes para que el
programador tenga un control total
sobre todo lo que ocurre durante la ejecución de su
programa. La
llegada de una interrupción provoca que la
CPU suspenda la ejecución de un programa
e inicie la de otro (rutina de servicio de
interrupción). Como las interrupciones pueden producirse
en cualquier momento, es muy probable que se altere la secuencia
de sucesos que el programador había previsto inicialmente.
Es por ello que las interrupciones deber controlarse
cuidadosamente.

De esta forma, podemos resumir todas las etapas
seguidas ante una interrupción en un sistema dotado de
vectorización. Estos pasos son los
siguientes:

1.- El dispositivo envía la solicitud de
interrupción mediante la línea INTR.

2.- El procesador termina la ejecución de la
instrucción en curso y analiza la línea de
petición de interrupción, INTR. Si esta
línea no está activada continuará
normalmente con la ejecución de la siguiente
instrucción, en caso contrario se pasa a la etapa
siguiente.

3.- La CPU reconoce
la interrupción, para informar al dispositivo de ello,
activa la línea de reconocimiento de interrupción,
INTA.

4.- El dispositivo que reciba la señal INTA
envía el código
de interrupción por el bus de datos.

5.- La CPU calcula la dirección de memoria donde se
encuentra la rutina de servicio de interrupción (vector de
interrupción).

6.- El estado del
procesador, y en particular el contador de programa, se salva en
la pila de la misma forma que en una llamada a procedimiento.

7.- La dirección de la rutina de servicio de
interrupción se carga en el contador de programa, con lo
que se pasa el control a la citada rutina.

8.- La ejecución continúa hasta que el
procesador encuentre la instrucción de retorno de
interrupción.

9.- Cuando se encuentre la instrucción de retorno
de interrupción se restaura el estado del procesador, en
especial el contador de programa, y se devuelve el control al
programa interrumpido.

Normalmente la primera instrucción de la rutina
de servicio tendrá como fin desactivar las interrupciones
para impedir el anidamiento, por otra parte, antes de devolver el
control al programa interrumpido se volverán a habilitar
si es necesario.

Las interrupciones constituyen quizá el mecanismo
más importante para la conexión del
microcontrolador con el mundo exterior, sincronizando la
ejecución de programas con
acontecimientos externos.

    El funcionamiento de las
interrupciones es similar al de las subrutinas de las cuales se
diferencian principalmente en los procedimientos
que las ponen en marcha. Así como las subrutinas se
ejecutan cada vez que en el programa aparece una
instrucción ,
las interrupciones se ponen en marcha al aparecer en cualquier
instante un evento externo al programa, es decir por un mecanismo
hardware.

El PIC16C84/PIC16F84 dispone de 4 posibles fuentes de
interrupción:

  1. Activación del pin
    RB0/INT
  2. Desbordamiento del temporizador
    TMR0
  3. Cambio de estado en uno de los 4 pines de más
    peso (RB7:RB4) del PORTB

  4. Finalización de la escritura en la EEPROM de
    datos
    .

Cuando se produce cualquiera de los sucesos indicados
anteriormente, se origina una petición de
interrupción, que si se acepta, guarda el valor del PC
actual en la Pila, pone a cero el bit GIE (Global
Interrupt Enable
), lo que prohíbe cualquier otra
interrupción y se carga el PC con el valor 0004H , que es
la posición del vector de interrupción, y comienza
a ejecutarse el programa de atención a la interrupción que se
encuentra a partir de esta dirección.

Cada causa de interrupción está controlada
mediante dos bit. Uno de ellos actúa como
señalizador o flag que indica si se ha producido o no la
interrupción, y la otra funciona como bit de permiso o
prohibición de la interrupción en sí, tal y
como se muestra en la
siguiente  figura.

    Los bits de control que se encuentran
en el registro
INTCON
(0Bh ó 8Bh) habilitan y configuran las
interrupciones. Para que se pueda producir interrupción
por alguna de estas fuentes, el bit correspondiente debe estar a
1, mientras que los bits señalizadores o flags que
están en los registros INTCON
y EEDATA
(08h) informan si se ha producido la interrupción
cuando se ponen a 1. Cualquiera de las interrupciones
también puede sacar al procesador del modo de
reposo.

    El bit GIE
(Global Interrupt Enable) es el de
activación global del permiso de interrupción, y se
borra automáticamente cuando se reconoce una
interrupción para evitar que se produzca ninguna otra
mientras se está atendiendo a la primera. Al retornar de
la interrupción con una instrucción RETFIE,
el bit GIE se vuelve a activar poniéndose a 1. Para el
resto de los bit de indicación de interrupción (es
decir, el resto de los flags) no se ha previsto mecanismo de
puesta a cero, por lo que es el programa de atención a la
interrupción el que debe realizar el tratamiento de la
correspondiente interrupción y además, el que debe
poner el o los flags de indicación de interrupción
a 0. De no ser así, no se podrá salir de la rutina
de atención a la interrupción.

    El microcontrolador solo dispone de
un vector de interrupción en la dirección 0004h;
esto quiere decir que, sea cual sea la fuente de la
interrupción, el PC se carga con 0004h. Por lo tanto, el
programa de atención a la interrupción debe
encargarse de comprobar el estado de cada uno de los flags para
saber cual es el dispositivo que produce la interrupción y
actuar según el caso

 

Martínez Lucía

Reyes Yismely

PUERTO LA CRUZ, JUNIO 2006

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter