Documente Academic
Documente Profesional
Documente Cultură
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
.
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.
DE
LAS
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.
.
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}
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}
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 MANEJO DE INTERRUPCIONES.
6.1 INSTRUCCIONES DESHABILITAR INTERRUPCIONES PARA
.
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.
DE
LAS
9 REGISTROS DE INTERRUPCIONES
CONTROL
DE
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.
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
.
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.
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
Fig. 12 Fig. 16
.
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. 26
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.
Fig. 22
13 REFERENCIAS
[1]
ftp://ece.buap.mx/pub/profesor/academ06/dsPIC/DSPICS_ RAG.pdf
[2] Micontroladores digitales programacin y aplicaciones. de seales, arquitectura