You are on page 1of 8

INSTITUTO SUPERIOR TECNOLGICO SUDAMERICANO, CAP.11 INTERRUPCIONES Y EXCEPCIONES.

CAPITULO 11 INTERRUPCIONES Y EXCEPCIONES.


Eduardo Luis Romero Len.
edurom.pollo@hotmail.com

Cristian Patricio Alama Gutierrez.


cris_alama02@hotmail.com

RESUMEN: En el siguiente formato damos a conocer cmo podemos proceder cuando nos ocurre diferentes interrupciones; as mismo donde podemos dar a conocer sus diferentes tipos de excepciones. Tenemos que las interrupciones y excepciones tiene niveles de prioridad con la cual sabremos cual de todas de estas se las puede ejecutar o atender inmediatamente; estas tambin tienen un tiempo de demora muy bajo, en donde lo daremos a conocer en el siguiente documento. PALABRAS CLAVE: Mascareo, nivel de interrupcin,

2 CONCEPTOS GENERALES:
Las interrupciones y excepciones son acontecimientos que provocan las desviaciones del flujo de control de la CPU. Las interrupciones son provocadas generalmente por acontecimientos externos. Las excepciones son desviaciones del flujo de control provocadas automticamente como consecuencia de alguna anomala en la CPU producida. Al manejar las interrupciones y excepciones los dsPIC30F dispone de una n Los dsPIC30F disponen de un vector de interrupcin por cada tipo de interrupcin o excepcin. IVT tiene 62 entradas distintas, adems dispone de una AIVT como podemos observar en la Fig.2 {2}

1 INTRODUCCIN:
Los dsPIC30F tienen un sistema priorizado de interrupciones donde podemos decir que cada fuente de interrupcin tiene su propio vector, y se puede asignar dinmicamente uno de siete niveles de prioridad. La tabla de interrupciones (IVT) fig.1 reside en la parte baja de la memoria del programa.{1}

Fig. 2: AIVT

3 TABLA DE VECTORES DE INTERRUPCION Y EXCEPCION IVT


El procesador dispone de una IVT que contiene 62 entradas. La IVT reside en la memoria del programa, en la direccin 00000004H. Los 8 primero vectores de la IVT estn reservados para excepciones o interrupciones no mascarables. Los 54 restantes son interrupciones mascarables. Cada vector de interrupcin guarda 24 bits de la direccin de comienzo de la rutina de atencin. El tratamiento de interrupciones en una rutina asociada llamada ISR, se dispone en marcha cuando CPU atiende una interrupcin.

Fig. 1: Tabla de vector de interrupcin.

INSTITUTO SUPERIOR TECNOLGICO SUDAMERICANO, CAP.11 INTERRUPCIONES Y EXCEPCIONES.

.
AIVT se encuentra en la memoria de programa detrs IVT. Se accede a ella mediante el bit ALTIVT si esta en 1, las interrupciones TABLA 2 y excepciones TABLA 1 usaran la tabla alternativa. {2}

4 NIVELES DE PRIORIDAD.
4.1 PRIORIDADES DE LA CPU
Excepciones e Interrupciones admiten 16 niveles de prioridad. Para poder inicializar el proceso de Interrupciones o Excepciones la causa o fuente que llama a la CPU debe tener un nivel de prioridad mayor que el CPU en ese instante. Inicialmente la CPU ser el ms bajo de todos, el nivel 0; se podr ser modificado manualmente escribiendo sobre los bits IPL. Tambin se modificara el nivel automticamente cuando se esta ejecutando una ISR. . Los 16 niveles se dividen en 2 grupos Nivel 0 al nivel 7: interrupciones externas (perifricos). CPU tiene 1 nivel. Nivel 8 al nivel 15: excepciones internas, no mascarables que se tienen que atender en el momento que se producen. Las excepciones tienen niveles de prioridad superior a las interrupciones no mascarables. Nivel de prioridad de la CPU, bits de estado: IPL<2:0> del registro SR<7:5> y IPL3 del registro CORCON<3>. Las interrupciones se pueden deshabilitar poniendo los bits IPL=111, quedaran deshabilitadas las interrupciones externas que sean inferiores al nivel 7. Las excepciones al estar en niveles superiores al 7 no se deshabilitaran. Bit IPL3 indica si la interrupcin es mascarable o no; si IPL3 esta activo. {2}

TABLA 1. excepciones.

4.2 PRIORIDADES INTERRPCIONES

DE

LAS

TABLA 2. Interrupciones parte 1

Cada interrupcin externa es asignada a uno de los 7 niveles de prioridad por el usuario; estos 7 niveles tienen un orden de prioridad natural dado por IVT. El motivo de asignar niveles de prioridad debe a que el usuario puede asignar a distintas fuentes de interrupcin niveles de prioridad iguales. La prioridad natural de las interrupciones y excepciones viene dada en el orden de colocacin dentro de las tablas de vectores de interrupcin (IVT), mientras menor sea el nmero de vector mayor prioridad tendr. {2}

5 TIPOS DE EXCEPCIONES.
Las excepciones se consideran interrupciones no mascarables; su nivel de prioridad es desde 8 al 15(siempre tienen el IPL3 a 1). Tiene la funcin que avisar al usuario que se ha producido una operacin errnea y debe corregirla tanto a nivel software como hardware. La rutina de excepcin podr corregir la causa de la excepcin antes de la re inicializacin. Existe 4 fuentes de excepciones agrupadas en: Excepciones Software: Fallo de pila. Error aritmtico.

TABLA 2. Interrupciones parte 2

INSTITUTO SUPERIOR TECNOLGICO SUDAMERICANO, CAP.11 INTERRUPCIONES Y EXCEPCIONES.

.
Excepciones Hardware: Error en el direccionamiento. Fallo del oscilador. Las excepciones solo se detectarn cuando ya han ocurrido. La instruccin que provoca la excepcin tiene dos opciones de finalizacin: Acabar la instruccin antes de lanzar la excepcin, si se trata de excepcin software. No se la permite acabar en excepcin hardware. {2}

5.1 EXCEPCIONES SOFTWARE


Fallo de pila Se inicializa en 0x0800 al resetear la maquina; la direccin del Puntero de Pila de ser inferior a 0x0800. Registro limite de la Pila, SPLIM, cuando se escribe SPLIM se activa la deteccin de sobre pasamiento de la pila y cuando se intenta escribir en una direccin est fuera del limite se provoca una excepcin. Las direcciones efectivas, EA, se compara al valor contenido en SPLIM; que genera una excepcin cuando los clculos de las EA sobrepasen el final del espacio para datos(0xFFFF). Este tipo de excepcin se detecta por la activacin del bit STKERR del INTCON 1 <2>. Errores aritmticos Son excepciones causadas por: Sobre pasamiento del acumulador A. Sobre pasamiento del acumulador B. Sobre pasamiento catastrfico de acumulador. Divisin por 0. El desplazamiento del acumulador (SPTAC) excede en +/- 16 bits. Existen tres bits en INTCON1 para habilitar las tres excepciones de sobre pasamiento. La excepcin aritmtica se detecta por la activacin del bit MATHER de INTCON1. {2}

Es posible deshabilitar interrupciones mediante la instruccin DISI, que se ejecutan con mas de 16.384 ciclos. DISI desactiva interrupciones que estn en los niveles 16 Las instrucciones del nivel 7 y las excepciones se podrn atender aun estando activa la instruccin DISI. La instruccin trabaja junto a un registro llamado DISICNT, cuando este no vale 0 las instrucciones de los niveles 1-6 se deshabilitan. Registro DISICNT comienza una cuenta atrs hasta que llegue a 0 y habilita las interrupciones anteriores. {2}

6.2 FUNCIONAMIENTO INTERRUPCION.

DE

UNA

Cuando hay una interrupcin IRQ, pendiente se sealiza poniendo el bit del flag a 1 en el registro IFS, que ser atendida si el bit IECx del registro de permiso correspondiente esta a 1. Las interrupciones se evalan los niveles de prioridad. Una IRQ pendiente con un nivel de prioridad mayor que el proceso actual tiene en la CPU. El valor del controlador de programa, PC. El byte bajo del registro de estado (SRL). El bit de estado IPL3. La rutina de atencin de la interrupcin terminar con la instruccin RETFIE. {2}

6.3 INTERRUPCIONES ANIDADAS


Cualquier ISR que este en proceso puede ser interrumpida por otra fuente de interrupcin con mayor nivel de prioridad. El bit NSTDIS del registro INTCON1 esta en 1, las interrupciones anidadas estarn habilitadas. Entonces se fuerza a la CPU al nivel 7, IPL=111, descartndose las interrupciones de menor nivel al 7, si NSTDIS esta en 0, el anidamiento de instrucciones quedar deshabilitado. Los bits IPL son escribibles cuando NSTDIS a 1 para poder aumentar el nivel de la CPU, si NSTDIS esta en 0, impedir la escritura de IPL(solo ser legible) para poder impedir que el usuario ponga a la CPU a un nivel muy bajo de prioridad lo que habilitara otra vez el anidamiento de interrupciones . {2}

5.2 EXCEPCIONES HARDWARE


Las excepciones Software y Hardware consiste en que las ultimas fuerzan la atencin de la CPU antes que la instruccin culpable de la excepcin haya finalizado su ejecucin. Las excepciones Software permite que la instruccin finalice. Las excepciones Hardware puede ser: Errores de direccionamiento, prioridad 13. Errores del oscilador, prioridad 14. Cuando ocurre una excepcin Hardware la maquina se reinicia automticamente y el bit de estado TRAPR (RCON<15>) se pone a 1. {2}

6.4 DESPERTAR LA CPU DE ESTADO SLEEP O IDLE.


Las interrupciones pueden despertar el procesador, cuando despierta del modo SLEEO o IDLE se produce una de las dos acciones siguientes: El nivel de prioridad de la interrupcin es mayor que la prioridad de la CPU, entonces el procesador atender la interrupcin. Si el nivel de prioridad de la interrupcin es menor o igual al nivel de la CPU, entonces continuar la ejecucin comenzando con la

6 MANEJO DE INTERRUPCIONES.
6.1 INSTRUCCIONES DESHABILITAR INTERRUPCIONES PARA

INSTITUTO SUPERIOR TECNOLGICO SUDAMERICANO, CAP.11 INTERRUPCIONES Y EXCEPCIONES.

.
instruccin siguiente a la que provoc el estado SLEEP o ILDE en la CPU(PWRSAV). {2} En la siguiente figura 4 observamos el retorno de interrupcin.

7 TIEMPO DE PROCESO INTERRUPCIONES

DE

LAS

7.1 LATENCIA DE UNA INTERRUPCION.


Latencia de una interrupcin consta de 4 ciclos de interrupcin, refiere a una interrupcin producida cuando el CPU est atendiendo 1 instruccin de un ciclo, como si es de dos ciclos.

7.2 PROCESO DE UNA INTERRUPCION. 4 CICLOS


1. Ciclo: Activa el flag de estado. do 2. Ciclo: Salva el contenido del PC y SRL temporales. Trata de un ciclo ejecutado como instruccin NOP, solo salva el valor del PC. er 3. Ciclo: Carga el PC con valor de tabla de vectores de interrupciones. to 4. Ciclo: Carga el PC con el valor de la direccin de la rutina de atencin a la interrupcin. Todo este proceso lo podemos observar en la figura 3.
er

Fig. 4: retorno de una interrupcin.

8 EJECUCION DE UNA INTERRIPCION


8.1 MODO DE FUNCIONAMIENTO
CPU ejecuta el programa principal puede darse el caso si se ha programado el DsPic, que se d una interrupcin y/o excepcin. En ese momento la CPU guardara automticamente los registros. Si al estar ejecutando una ISR se produce una peticin de interrupcin de mayor prioridad ser atendida de forma similar y se volvern a repetir todos los pasos anteriores. Tenemos un organigrama sobre la configuracin y tratamiento de una interrupcin. Como se muestra en la siguiente figura 5

Fig. 3: proceso de interrupcin 4 ciclos.

7.3 RETORNO DE LA INTERRUPCION


Retorno de interrupcin se lleva a cabo medio de la instruccin RETFIE. Para regresar de una interrupcin necesitan tres ciclos de instruccin: er 1. Ciclo: Carga en la pila los 8 bits ms significativos del PC y todos los del SFL. do 2. Ciclo: Carga pila los 16 bits menos significativos del PC. er 3. Ciclo: Usa buscar la direccin de la interrupcin.

Fig. 5: Configuracin y tratamiento de una interrupcin

INSTITUTO SUPERIOR TECNOLGICO SUDAMERICANO, CAP.11 INTERRUPCIONES Y EXCEPCIONES.

9 REGISTROS DE INTERRUPCIONES

CONTROL

DE

2.- Registro SR: Registro de estado de la CPU. Figura 8

Los registros que controlan las interrupciones y su estado se dividen en seis grupos: 1.- Tenemos los registros INTCON1 y INTCON2. a) INTCON1: Contiene los flags y bits de control de las interrupciones. Figura 6

Fig. 8 IPL <0:2>: Bit de estado para nivel de prioridad de las interrupciones. 111: CPU 7 o (15) 110: CPU6 o (14) 101: CPU5 o (13) 100: CPU4 o (12) 011: CPU3 o (11) 010: CPU2 o (10) 001: CPU1 o (9) 000: CPU0 o (8) Los bits estn relacionados con el Bit IPL3. 3.- Registro CORCON: Contiene el bit de estado IPL3. IPL3: Bit de estado indica el nivel de prioridad de interrupcin de la CPU , esto es en 1 y 0. Figura 9.

Fig. 6 1.- NSTDIS: Deshabilita las interrupciones anidadas. 2.- OVATE: Bit que habilita la excepcin de sobre pasamiento del acumulador. 3.- OVBTE: Bit habilita la excepcin de sobre pasamiento del acumulador B. 4.- COVTE: Bit habilita la excepcin de sobre pasamiento catastrfica. 5.- MATHERR: Bit de estado de error aritmtico. 6.- ADDRERR: Bit de estado de error de direccionamiento. 7.- STKERR: Bit de estado de error de pila. 8.- OSCFAIL: Bit de estado de fallo de oscilador.

Fig. 9 4.- IFSx: Registro de estado del flag de interrupcin. 5.-IECx: Registros de control de permiso de interrupciones. 6.-ICPx: Registros de control de prioridad de interrupciones.

b) INTCON2: Contiene los bits de control de las interrupciones externas. Figura 7.

10 ANEXOS.
Tenemos que: A1.1 IFSx: Registro de Estado de flags de interrupcin. Figura 10.

Fig. 7 ALTIVT: Bit que habilita la tabla de vectores de Interrupcin Alternativa. DISI: Bit de estado de la instruccin DISI. INT4EP: Interrupcin externa nmero 4. INT3EP: Interrupcin externa nmero 3. INT2EP: Interrupcin externa nmero 2. INT1EP: Interrupcin externa nmero 1. INT0EP: Interrupcin externa nmero 0. Fig. 10

INSTITUTO SUPERIOR TECNOLGICO SUDAMERICANO, CAP.11 INTERRUPCIONES Y EXCEPCIONES.

.
CNIF: Flag encarga indicar se produce un cambio de estado. MI2CIF: Sealizar se ha producido una colisin. SI2CIF: Complementa la transferencia mediante el bus IC. NVMIF: Activacin del flag. ADIF: Indica se a finalizado la conversin A/D. U1TXIF: Sealiza produccin transmisin de comunicacin UART1. U1RXIF: Recepcin de comunicacin UART1. SPI1IF: Flag sealiza la interrupcin en SPI1. T3IF: El timer 3. T2IF: El timer 2. OC2IF: Bit que emplea sealizar la salida. IC2IF: Bit que activa el flag entrada del modulo de Captura2. T1IF: Interrupcin timer 1. OC1IF: Salida del comparador 1. IC1IF: Entrada de modulo Captura 1. INT0IF: Interrupcin externa num.0. A2 ICEx: Registros de control de habilitacin de interrupciones. IEC0: Registro 0 de control de habitacin de interrupciones. Figura 13.

Fig. 13 ICEC1: Registro 1 de control de habilitacion de interrupciones. Figura 14.

Son tres registros, IFS0 IFS2. Estos registros almacenan el estado de la interrupcin. Se encuentra en 1 y 0. IFS1: REGISTRO DE ESTADO 1 DE FLAGS DE INTERRUPCION. Figura 11. Fig. 14 IPCx: Bits de control de privilegio de interrupcion. Son 12 registros, del ICP0 al ICP11. Cada un de los campos de estos registros controlan el nivel de prioridad de las interrupciones y se componen de 3 bits. 111 110 101 100 011 010 001 000 ICP0: Registro 0 de control de prioridad de interrupcion. Figura 15

Fig. 11

IFS2: REGISTRO DE ESTADO 2 DE FLAGS DE INTERRUPCION. Figura 12.

Fig. 15 IPC1: Registro 1 de control de prioridad de interrupcin. Figura 16.

Fig. 12 Fig. 16

INSTITUTO SUPERIOR TECNOLGICO SUDAMERICANO, CAP.11 INTERRUPCIONES Y EXCEPCIONES.

.
ICP2: Registro 2 de control de prioridad de interrupcion. Figura 17 ICP8: Registro 8 de control de prioridad de interrupcin. Figura 22.

Fig. 22 Fig. 17 ICP3: Registro 3 de control de prioridad de interrupcin. Figura 18 ICP9: Registro 9 de control de prioridad de interrupcin. Figura 23

Fig. 23 Fig. 18 ICP4: Registro 4 de control de prioridad de interrupcin. Figura 19. ICP10: Registro 10 interrupcin. Figura 24 de control de prioridad de

Fig. 19 ICP5: Registro 5 de control de prioridad de interrupcin. Figura 20. ICP11: Registro 11 interrupcin. Figura 25

Fig. 24 de control de prioridad de

Fig. 20 ICP6: Registro 6 de control de prioridad de interrupcin. Figura 21

Fig. 26

11 RECOMENDACIONES Todas las instrucciones deben

ser ledas y entendidas para su correcto manejo para los dispositivos dsPIC30F.

Fig. 21 ICP7: Registro 7 de control de prioridad de interrupcin. Figura 22

Deben asegurarse que instruccin es la correcta para controlar una interrupcin o excepcin.

12 CONCLUCIONES
Despus de haber analizado nos a quedado muy claro que al momento de nosotros utilizar el dispositivo dsPIC30F siempre se va a generar cualquier tipo de interrupcin, pero as mismo tenemos como poder manejarlas y controlarlas con las diferentes instrucciones que ya hemos mencionado.

Fig. 22

INSTITUTO SUPERIOR TECNOLGICO SUDAMERICANO, CAP.11 INTERRUPCIONES Y EXCEPCIONES.

13 REFERENCIAS
[1]

ftp://ece.buap.mx/pub/profesor/academ06/dsPIC/DSPICS_ RAG.pdf
[2] Micontroladores digitales programacin y aplicaciones. de seales, arquitectura

You might also like