Interrupciones y Excepciones

También podría gustarte

Está en la página 1de 8

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

.


1
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,


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. 1: Tabla de vector 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}



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.
INSTITUTO SUPERIOR TECNOLGICO SUDAMERICANO, CAP.11 INTERRUPCIONES Y EXCEPCIONES.

.


2
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}



TABLA 1. excepciones.


TABLA 2. Interrupciones parte 1




TABLA 2. Interrupciones parte 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}

4.2 PRIORIDADES DE LAS
INTERRPCIONES

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.

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

.


3
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}

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 MANEJO DE INTERRUPCIONES.

6.1 INSTRUCCIONES PARA
DESHABILITAR INTERRUPCIONES

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 1-
6
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 DE UNA
INTERRUPCION.

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}

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
INSTITUTO SUPERIOR TECNOLGICO SUDAMERICANO, CAP.11 INTERRUPCIONES Y EXCEPCIONES.

.


4
instruccin siguiente a la que provoc el estado
SLEEP o ILDE en la CPU(PWRSAV). {2}

7 TIEMPO DE PROCESO DE LAS
INTERRUPCIONES

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.
er
Ciclo: Activa el flag de estado.
2.
do
Ciclo: Salva el contenido del PC y SRL temporales.
Trata de un ciclo ejecutado como instruccin NOP, solo
salva el valor del PC.
3.
er
Ciclo: Carga el PC con valor de tabla de vectores
de interrupciones.
4.
to
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.



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:
1.
er
Ciclo: Carga en la pila los 8 bits ms significativos
del PC y todos los del SFL.
2.
do
Ciclo: Carga pila los 16 bits menos significativos del
PC.
3.
er
Ciclo: Usa buscar la direccin de la interrupcin.

En la siguiente figura 4 observamos el retorno de
interrupcin.



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. 5: Configuracin y tratamiento de una interrupcin


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

.


5
9 REGISTROS DE CONTROL DE
INTERRUPCIONES

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. 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.


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


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.


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


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. 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.


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


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

.


6
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.

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. 11

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


Fig. 12


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.


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. 15

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


Fig. 16

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

.


7

ICP2: Registro 2 de control de prioridad de interrupcion.
Figura 17


Fig. 17

ICP3: Registro 3 de control de prioridad de interrupcin.
Figura 18


Fig. 18

ICP4: Registro 4 de control de prioridad de interrupcin.
Figura 19.


Fig. 19

ICP5: Registro 5 de control de prioridad de interrupcin.
Figura 20.


Fig. 20

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


Fig. 21

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


Fig. 22


ICP8: Registro 8 de control de prioridad de interrupcin.
Figura 22.


Fig. 22

ICP9: Registro 9 de control de prioridad de interrupcin.
Figura 23


Fig. 23

ICP10: Registro 10 de control de prioridad de
interrupcin. Figura 24


Fig. 24

ICP11: Registro 11 de control de prioridad de
interrupcin. Figura 25


Fig. 26

11 RECOMENDACIONES
Todas las instrucciones deben ser ledas y
entendidas para su correcto manejo para los
dispositivos dsPIC30F.

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.
INSTITUTO SUPERIOR TECNOLGICO SUDAMERICANO, CAP.11 INTERRUPCIONES Y EXCEPCIONES.

.


8
13 REFERENCIAS

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

También podría gustarte