sesión 07: interrupciones. 2009/1 circuitos digitales iii 2010/1 circuitos digitales iii 2010/1...

33
Sistemas Digitales Sesión 07: Interrupciones

Upload: arturo-marin-rico

Post on 24-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

Sistemas Digitales IISesión 07: Interrupciones

Page 2: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Antes de ComenzarAntes de Comenzar

Procesamiento en paralelo CPU/Periféricos

CPUCPU

00111001SerialSerial

1001110001100011

Metodología de Excepciones/Interrupciones

Señor CPU, estoy libre ahora mismo

Listo, ya le envío un nuevo dato para Tx

Ok, he finalizado, otro dato más para Tx?

Muy bien, acá va el siguiente datoRevisandopuertos…

Haciendo op. matemáticas

Cambiando algunasSalidas…

Nada más por hacerDormir entonces…

Page 3: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Agenda para la claseAgenda para la clase

11Interrupciones Caso especial de las excepciones, relacionadas con HW

22Procesamiento Interrupciones Cómo son tratadas por parte de la CPU

33Excepciones e Interrupciones en los PICs Cómo trata la CPU estos eventos

44Programación de la IRQ Ejemplo de cómo emplear la interrupción más simple

Page 4: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

A continuación…A continuación…

Programación de la IRQ

Excepciones e Interrupciones

Procesamiento de Interrupciones

Interrupciones en una CPUInterrupciones en una CPU

Page 5: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

InterrupcionesInterrupciones

Denominadas también Excepciones Externas. Generadas por periféricos conectados a la CPU

(requieren atención de la CPU): Internos: UART, A/D, SCI, TIMERs, I2C… Externos: Líneas de IRQ…

Básicamente se trata de una transición generada en una línea de IRQ: Interrupt Request.

Page 6: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Tenga en cuenta La CPU ejecuta normalmente su programa… Cuando hay transición de la línea IRQ, se pasa a

ejecutar una subrutina especial… La subrutina le debe decir en algún momento al

periférico que retire la petición en IRQ… Finalmente la subrutina especial finaliza y el

programa continúa su ejecución normal…

CPUCPUPeriféricoPeriféricoLínea IRQ

Línea ACK

InterrupcionesInterrupciones

Instrucción 1

Instrucción 2

Instrucción 3

Instrucción 4

Instrucción 5

Instrucción n

Volver a 3

Programa principal

Instrucción 3

Instrucción 1

Instrucción 2

Instrucción 3

Instrucción 4

Rec. ACK 5

Instrucción 6

Retorno

Código Especial

Page 7: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

InterrupcionesInterrupciones

En el procesamiento intervienen: Petición por parte del periférico IRQ. Máscara de Interrupción. Atención por parte de la CPU. Detener la ejecución actual. Prioridad. Qué pasa si se dan varias al tiempo? Almacenamiento de contexto. Vector de Interrupción Ejecutar subrutina de atención a interrupción.

• Reconocimiento por parte del software.

Retorno a la ejecución normal.

Page 8: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

A continuación…A continuación…

Programación de la IRQ

Excepciones e Interrupciones

Procesamiento de Interrupciones

Interrupciones en una CPU

Procesamiento de Interrupciones

Page 9: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Línea IRQ

Procesamiento de INTsProcesamiento de INTs

Petición por parte del periférico IRQ. Máscara de Interrupción.

PP MaskMask CPUCPULínea IRQ

Máscara Deshabilitada

Línea IRQPP MaskMask CPUCPULínea IRQ

Máscara Habilitada

MaskMask

Máscara Deshabilitada

Page 10: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Procesamiento de INTsProcesamiento de INTs

Atención por parte de la CPU. Detener la ejecución actual. Prioridad. Qué pasa si se dan varias al

tiempo?

CPUCPU

Instrucción 1.Instrucción 2.Instrucción 3.

…Instrucción 4.

Volver a 1.

Instrucción 1.Instrucción 2.Instrucción 3.

…Instrucción 4.

Volver a 1.

Instrucción 1.Instrucción 2.Instrucción 3.

…Instrucción 4.

Volver a 1.

Instrucción 1.Instrucción 2.Instrucción 3.

…Instrucción 4.

Volver a 1.

Me han interrumpido, debo detener la ejecución

actual y evaluar la prioridad…

Me han interrumpido, debo detener la ejecución

actual y evaluar la prioridad…

Page 11: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Procesamiento de INTsProcesamiento de INTs

Almacenamiento de contexto.

CPUCPU

Instrucción 1.Instrucción 2.Instrucción 3.

…Instrucción 4.

Volver a 1.

Instrucción 1.Instrucción 2.Instrucción 3.

…Instrucción 4.

Volver a 1.XX$XXXX PCXX$XXXXXX$XXXXXX$XXXXXX$XXXXXX$XXXX

EstadoReg. 2Reg. 3Reg. 4

Se almacena en la pila del

sistema

Pila del Sistema

Para saber donde estoy,

guardo el Contexto

Para saber donde estoy,

guardo el Contexto

Page 12: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Procesamiento de INTsProcesamiento de INTs

Vector de Interrupción Ejecutar subrutina de atención a interrupción.

CPUCPU

Busco en los vectores de excepción la instrucción a

ejecutar

Busco en los vectores de excepción la instrucción a

ejecutar

Asociada con cada fuente

de INT.

Asociada con cada fuente

de INT.

$8000Vector de RESET$8200Vector de IRQ$835AVector de TE SCI$8A00Vector de RF SCI

$8200 Inst 1.$8202 Inst 2.

…Retorno de Excepción.

$8200 Inst 1.$8202 Inst 2.

…Retorno de Excepción.

$8200

Page 13: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

CPUCPUPeriféricoPeriféricoLínea IRQ

Línea ACK

Procesamiento de INTsProcesamiento de INTs

Reconocimiento desde Software Se hace escribiendo o leyendo

determinado registro del periférico.

Page 14: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Procesamiento de INTsProcesamiento de INTs

Retorno de Subrutina

CPUCPU

Instrucción 1.Instrucción 2.Instrucción 3.

…Instrucción 4.

Volver a 1.

Instrucción 1.Instrucción 2.Instrucción 3.

…Instrucción 4.

Volver a 1.XX$XXXX PCXX$XXXXXX$XXXXXX$XXXXXX$XXXXXX$XXXX

EstadoReg. 2Reg. 3Reg. 4

Se toma de la pila del sistema

Se toma de la pila del sistema

Pila del Sistema

Instrucción 1.Instrucción 2.Instrucción 3.

…Instrucción 4.

Volver a 1.

Instrucción 1.Instrucción 2.Instrucción 3.

…Instrucción 4.

Volver a 1.

Ahora recupero el

contexto para continuar

Ahora recupero el

contexto para continuar

Page 15: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

A continuación…A continuación…

Programación de la IRQ

Excepciones e Interrupciones

Procesamiento de Interrupciones

Interrupciones en una CPU

Excepciones e Interrupciones

Page 16: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

InterrupcionesInterrupciones

La CPU realiza ejecución secuencial de instrucciones. Primer paso, se genera cuando se da la petición de

Excepción… Segundo paso, en caso propiamente de interrupciones,

se reconoce si está habilitada… Tercer paso, reconocimiento por parte de la CPU… Aquí, se detiene la ejecución normal del programa y se

comienza el procesamiento…

Page 17: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

InterrupcionesInterrupciones

Reconocimiento por parte de la CPU Momento en que se detecta la Excepción. Asíncrono: Se suspende la ejecución de toda

instrucción de manera inmediata.• Reset Externo.• Reset Interno: WatchDOG, PowerOnReset y LVI.

Ejemplo: La instrucción instruc1 requiere 4 ciclos para ejecutarse.

Se da un Reset Externo… Instrucción suspendida en el momento de la

Excepción

Instrucción instruc1

Ciclo 1Ciclo 2Ciclo 3Ciclo 4

Excepción

No se ejecuta el cuarto ciclo

de instruc1

No se ejecuta el cuarto ciclo

de instruc1

Page 18: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

InterrupcionesInterrupciones

Reconocimiento por parte de la CPU Momento en que se detecta la Excepción. Síncrono: La atención se hace en el último ciclo de

ejecución de la instrucción actual.• Reset Interno: Illegal Address.• Interrupciones.

Instrucción instruc1

Ciclo 1Ciclo 2Ciclo 3Ciclo 4

ExcepciónReconocer

Reconocimiento por parte de la

CPU

Reconocimiento por parte de la

CPU

Ejemplo: La instrucción instruc1 requiere 4 ciclos para ejecutarse.

La instrucción no se suspende al darse la INT. Se reconoce en el último ciclo. ¿Qué ocurre si la INT se presenta en el último ciclo?

• La CPU la reconoce en el último ciclo de la siguiente instrucción.

Page 19: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

InterrupcionesInterrupciones

Prioridad de las Interrupciones: El RESET (Interno – Externo) tiene la mayor prioridad. El resto de interrupciones tiene una prioridad asignada

por el fabricante. A menor número, mayor prioridad. RESET tiene prioridad 0, SWI 0, IRQ 1, etc.

CPU08CPU08

IRQ1

IRQ1

TIMER6

TIMER6

KBI15

KBI15

SCI13

SCI13

ACK

ACK

ACK

ACK

El orden de atención será IRQ,

TIMER, KBI

El orden de atención será IRQ,

TIMER, KBI

Antes de atender a TIMER, se requiere

que IRQ desaparezca

Antes de atender a TIMER, se requiere

que IRQ desaparezca

Ejecutando Subrutina de IRQ

Ejecutando Subrutina de TIMER

Mientras se ejecuta esta ISR,

aparece una nueva petición…

Mientras se ejecuta esta ISR,

aparece una nueva petición…

¿Qué interrupción se atiende luego?

¿Qué interrupción se atiende luego?

Ejecutando Subrutina de SCI

Ejecutando Subrutina de KBI

Page 20: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

InterrupcionesInterrupciones

Almacenamiento del Contexto Después de almacenar Registro de códigos de

condición en la pila, la bandera I es llevada a ‘1’. Pero, ¿Quién es I?

• Máscara de Interrupción Global.• Cuando está en ‘1’, no se admiten interrupciones.• Cuando está en ‘0’, se admiten las interrupciones

que tengan su máscara individual desactivada.• CLI: I = ‘0’, SEI: I = ‘1’.

¿Para qué se pone en ‘1’ al procesar una INT? ¿Todas las interrupciones son enmascarables?

CPU08CPU08

IRQIRQ TIMERTIMER KBIKBI SCISCI SPISPIADCADC

MASKADC

MASKIRQ

MASKTIMER

MASKKBI

MASKSCI

MASKSPI

MASKGLOBAL

MASKKBI

I = ‘0’I = ‘0’

MASKGLOBAL

I = ‘1’I = ‘1’

La petición no desaparece hasta

hacer ACK

La petición no desaparece hasta

hacer ACK

CLII = ‘0’

CLII = ‘0’

Page 21: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

InterrupcionesInterrupciones

Ejecución de la subrutina de atención a INT Y ahora, ¿Qué porción de código debe ejecutar la CPU

para atender la Interrupción? Cada interrupción debe tener una porción de código

que se ejecute en respuesta a ella. ¿Cómo sabe la CPU cuál porción ejecutar?

#INT_EXT // $8150ext_isr(){

inst1;…

Int main (void){ // $8000inst1;… #INT_TIMER0 // $8243

timer_isr(){inst1;…

Instrucción a ejecutarse después

del RESET

Instrucción a ejecutarse después

del RESET

Instrucción a ejecutarse cuando

se da la IRQ

Instrucción a ejecutarse cuando

se da la IRQ

Instrucción a ejecutarse cuando se

da la INT de TIMER

Instrucción a ejecutarse cuando se

da la INT de TIMER

Page 22: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

InterrupcionesInterrupciones

Vector de Interrupción Zona de Memoria. Cada vector está asociado a una fuente de

interrupción. Cada vector corresponde a dos direcciones de

memoria (Ej, $FFFE-$FFFF). En cada vector se almacena la dirección de la primera

instrucción que se debe ejecutar. El contenido corresponde a la dirección de la primera

instrucción de la subrutina de atención a Interrupción.

#INT_EXT // $8150ext_isr(){

inst1;…

Int main (void){ // $8000inst1;… #INT_TIMER0 // $8243

timer_isr(){inst1;…

$XXXXVector de RESET $FFFE-$FFFF

$XXXXVector de IRQ $FFFA-$FFFB$XXXX

$XXXX$XXXX$XXXX$XXXXVector de TIMER OV $FFF2-$FFF3

$FFF4-$FFF5$FFF6-$FFF7$FFF8-$FFF9

$FFFC-$FFFD

$8243

$8150

$8000

Page 23: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

InterrupcionesInterrupciones

Subrutina de Atención a Interrupción Código que se ejecuta en respuesta a una interrupción. La dirección donde está ubicada su primera instrucción

debe ser almacenada en el vector de interrupción respectivo.

El código de una subrutina normalmente es muy corto ¿Por qué?• Reconocimiento, Salvar Registros, Código Propio de la

Subrutina, Recuperar Registros, Retornar.

Page 24: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Atención de INT’sAtención de INT’s Las interrupciones

Son atendidas basándose en un diagrama de flujo.

Page 25: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

A continuación…A continuación…

Programación de la IRQ

Excepciones e Interrupciones

Procesamiento de Interrupciones

Interrupciones en una CPU

Programación de la IRQ

Page 26: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Interrupción Externa IRQInterrupción Externa IRQ

Características de la IRQ Pin dedicado, algunos MCU cuentan con dos. Programación para flanco de caída o flanco de

caída y nivel. PullUp Interno (En algunos MCU se puede quitar).

Descripción funcional Un ‘0’ lógico en el Pin de IRQ activa una

interrupción de IRQ.

Page 27: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Interrupción Externa IRQInterrupción Externa IRQ

Funcionamiento Flanco Caída

Cada petición de interrupción es tomada si: La máscara de interrupción está deshabilitada. Se ha hecho previamente reconocimiento por

software.

IRQ

PP IRQIRQ

INTRequest

INTRequest

INTRequest

Page 28: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Interrupción Externa IRQInterrupción Externa IRQ

Funcionamiento Flanco Caída y Nivel

Útil para eventos periódicos: La máscara es habilitada periódicamente. Imagínese un Reloj!!! Cuando se ajustan los

minutos...

IRQ

PP IRQIRQ

Peticiones continuas de IRQ

Page 29: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Interrupción Externa IRQInterrupción Externa IRQ

Funcionamiento Flanco Caída y Nivel: Utilidad Peticiones solo cuando se desactiva la máscara. Interrupciones activan máscara, TIMER las

deshabilita.

IRQ

PP IRQIRQ

INT Req.

INT Req.

INT Req.

INT Req.

INT Req.

Máscara Deshabilitada

Máscara habilitada

TIMER_INTERRUPT

IRQ_INTERRUPT

Page 30: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Interrupción Externa IRQInterrupción Externa IRQ

En Flanco, la señal de interrupción se mantiene activa hasta que se genere: Vector fetch. Software clear. Reset.

En Flanco y nivel, la señal de interrupción se mantiene activa hasta que se cumplan las siguientes dos condiciones: Retorno del pin de IRQ a ‘1’ Lógico. Vector fetch o Software clear.

Page 31: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

‘0’

‘1’‘1’

‘0’

‘1’‘1’

‘1’

‘1’

‘0’‘0’

‘0’

‘1’‘1’

‘1’

‘0’‘0’

‘0’

‘0’‘0’

Interrupción Externa IRQInterrupción Externa IRQ

Page 32: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Interrupción Externa IRQInterrupción Externa IRQ

Retirar la petición mediante Software. El registro de estado y control tiene la bandera

ACK. Al poner ACK en ‘1’ se retira la petición de

interrupción, es decir, se lleva a ‘0’ la bandera IRQF.

Page 33: Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad

Sistemas Digitales IIFin de la Sesión 07