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.

Slides:



Advertisements
Presentaciones similares
Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
Advertisements

MICROCONTROLADORES NOCIONES BÁSICAS.
Fernando Escribano Pro 1º de Bachillerato
Integrantes: Moyolehuani Tatéi Temai
RESUMEN: Softmicro de 8 bits Xilinx
Sistemas en estratos. Descripción: se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otro que tiene menor jerarquía.
Modelo de procesos de dos estados
COMUNICACIÓN SERIAL Javier Garcia Ramos.
Ejecución de Programas
Programación básica de la interfase RS232 C
Introducción a los MCU´s de Motorola
Funcionamiento de una Computadora
Composición Interna de un Procesador
UML Diagramas. Diagramas de Interacción Muestran como los objetos de la aplicación cooperan e interactúan para cumplir con los requisitos. Suele construirse.
Lenguaje Ensamblador integrantes: Esthela Vianey Vázquez Medina No.30
Microcomputadores Prof : Tatiana Marín R.. Sistema basado en microprocesador de 8 bits.
Registros y Contadores
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
Microcontroladores PIC16F84A.
INTERRUPCIONES Y TEMPORIZADORES Programación en C para electrónica.
Unidad 2: Organización del CPU
Unidad 7 Entrada/Salida
Secciones y Segmentos STARTUP
Maquinas Digitales  La idea principal es dividir el procesamiento de cada una de las instrucciones en una serie de pasos totalmente independientes.
Overview Sistemas Computacionales
Esquemas de Interrupción
MICROCONTROLADORES NOCIONES BÁSICAS. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
Computación II Unidad X Manejo de Excepciones. Presentación de la Unidad Objetivos: –Saber manejar situaciones inesperadas dentro de un programa –Comprender.
Introducción al tiempo real en sistemas empotrados
Departamento de Informática. Curso ENTRADA Y SALIDA LECCIÓN 12 ORGANIZACIÓN DE ENTRADA Y SALIDA.
Ing. Jorge A. Abraham Técnicas Digitales II
Puertos I/O Los puertos son los encargados de enviar y recibir la información en un computador, pero como hace el procesador para hacer este intercambio.
Funcionamiento de la CPU
Gestión de procesos Sistemas Operativos Edwin Morales
MICROCONTROLADORES NOCIONES BÁSICAS COMPUTO II. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
I2C (Inter-Integrated Circuit) (Modo Maestro-Esclavo )
Microcomputadores Prof: Tatiana Marín R.. Lenguaje máquina = lenguaje binario InstrucciónLenguaje máquina (binario)OP ( hex)Nemónico Restar F0SUB.
Unidad 2: Segmentación Excepciones en la Segmentación Docente: Ing. José Díaz Chow ARQUITECTURA DE MÁQUINAS COMPUTADORAS III.

MICROCONTROLADORES COMPATIBLES CON 8XC51
 En computación es un conjunto de líneas de señal que el microprocesador o CPU utilizan para intercambiar datos con otros componentes como teclados,
Sesión 11: - Comparador, Captura y PWM. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.
Sesión 09: TIMER como base de tiempo.
Sesión 10: Conversión Análoga a Digital
Sesión 08: Interrupciones - IRQ. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.
La unidad central de procesos o CPU
Diseño lógico secuencial con VHDL
Clase 14: Memoria EEPROM.
Programación Básica con NQC Patricio A. Castillo 10/05/2008.
Tema 4: El microcontrolador PIC16F876
Clase 13: Protocolo de Comunicación I 2 C. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos.
Hecho por: M.C. Luis Fernando Guzmán Nateras v3 Organización de Computadoras Preparación: Examen 1 JEOPARDY.
Maquinas Digitales Funciones del Procesador Buscar instrucciones Interpretar instrucciones Buscar datos Procesar datos Escribir datos.
Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas.
1.1 Introducción A Los Sistemas Informáticos
NOCIONES BÁSICAS COMPUTO II
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE INGENIERÌA INDUSTRIAL FUNDAMENTO DE COMUTACIÒN TEMA: IRQ INTERRUPCIONES INTEGRANTES: ELIANE GRANDA KIARA TOBAR.
PROGRAMACIÓN ESTRUCTURADA LOS DIAGRAMAS DE ESTADO
PICOBLAZE RESUMEN.
RESUMEN: Softmicro de 8 bits Xilinx
INTERRUPCIONES – ABRAZO MORTAL
Alumno: Gerardo Mario Valdés Ortega
Licenciatura Tecnologías de la Información y Comunicación
LA CPU Ing. Manuel Andrés Belalcázar S. Corporación Universitaria Autónoma del Cauca.
José Alvarado – Cristian Anzola
ò Unidad Aritmético-Lógica ò Unidad de Control ò Buses internos ò Registros ò Puntero de Instrucciones (IP o PC) ò Acumulador ò De uso Generales ò.
Curso: Fundamentos de Computación
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Arquitectura de Computadores Clases Interrupciones de software y hardware IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica.
Transcripción de la presentación:

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 Santo Tomás Antes de Comenzar  Procesamiento en paralelo CPU/Periféricos CPU Serial 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 dato Revisando puertos… Haciendo op. matemáticas Cambiando algunas Salidas… Nada más por hacer Dormir entonces…

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Agenda para la clase 11 Interrupciones Caso especial de las excepciones, relacionadas con HW 22 Procesamiento Interrupciones Cómo son tratadas por parte de la CPU 33 Excepciones e Interrupciones en los PICs Cómo trata la CPU estos eventos 44 Programación de la IRQ Ejemplo de cómo emplear la interrupción más simple

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás A continuación… Programación de la IRQ Excepciones e Interrupciones Procesamiento de Interrupciones Interrupciones en una CPU

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupciones  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, I 2 C…  Externos: Líneas de IRQ…  Básicamente se trata de una transición generada en una línea de IRQ: Interrupt Request.

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas 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… CPU Periférico Línea IRQ Línea ACK Interrupciones 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

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupciones  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.

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás A continuación… Programación de la IRQ Excepciones e Interrupciones Procesamiento de Interrupciones Interrupciones en una CPU Procesamiento de Interrupciones

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Línea IRQ Procesamiento de INTs  Petición por parte del periférico IRQ.  Máscara de Interrupción. P P Mask CPU Línea IRQ Máscara Deshabilitada Línea IRQ P P Mask CPU Línea IRQ Máscara Habilitada Mask Máscara Deshabilitada

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Procesamiento de INTs  Atención por parte de la CPU.  Detener la ejecución actual.  Prioridad. Qué pasa si se dan varias al tiempo? CPU 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…

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Procesamiento de INTs  Almacenamiento de contexto. CPU 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 PC XX $XXXX XX $XXXX XX $XXXX XX $XXXX XX $XXXX Estado Reg. 2 Reg. 3 Reg. 4 Se almacena en la pila del sistema Pila del Sistema Para saber donde estoy, guardo el Contexto

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Procesamiento de INTs  Vector de Interrupción  Ejecutar subrutina de atención a interrupción. CPU Busco en los vectores de excepción la instrucción a ejecutar Asociada con cada fuente de INT. $8000 Vector de RESET $8200 Vector de IRQ $835A Vector de TE SCI $8A00 Vector de RF SCI $8200  Inst 1. $8202  Inst 2. … Retorno de Excepción. $8200  Inst 1. $8202  Inst 2. … Retorno de Excepción. $8200

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás CPU Periférico Línea IRQ Línea ACK Procesamiento de INTs  Reconocimiento desde Software  Se hace escribiendo o leyendo determinado registro del periférico.

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Procesamiento de INTs  Retorno de Subrutina CPU 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 PC XX $XXXX XX $XXXX XX $XXXX XX $XXXX XX $XXXX Estado Reg. 2 Reg. 3 Reg. 4 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

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás A continuación… Programación de la IRQ Excepciones e Interrupciones Procesamiento de Interrupciones Interrupciones en una CPU Excepciones e Interrupciones

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupciones  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…

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupciones  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 1 Ciclo 2 Ciclo 3 Ciclo 4 Excepción No se ejecuta el cuarto ciclo de instruc1

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupciones  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 1 Ciclo 2 Ciclo 3 Ciclo 4 Excepción Reconocer 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.

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupciones  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. CPU08 IRQ 1 IRQ 1 TIMER 6 TIMER 6 KBI 15 KBI 15 SCI 13 SCI 13 ACK El orden de atención será IRQ, TIMER, KBI 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… ¿Qué interrupción se atiende luego? Ejecutando Subrutina de SCI Ejecutando Subrutina de KBI

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupciones  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? CPU08 IRQ TIMER KBI SCI SPI ADC MASK ADC MASK IRQ MASK TIMER MASK KBI MASK SCI MASK SPI MASK GLOBAL MASK KBI I = ‘0’ MASK GLOBAL I = ‘1’ La petición no desaparece hasta hacer ACK CLI I = ‘0’ CLI I = ‘0’

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupciones  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// $8150 ext_isr(){ inst1; … Int main (void){// $8000 inst1; … #INT_TIMER0// $8243 timer_isr(){ inst1; … 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 INT de TIMER

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupciones  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// $8150 ext_isr(){ inst1; … Int main (void){// $8000 inst1; … #INT_TIMER0// $8243 timer_isr(){ inst1; … $XXXX Vector de RESET $FFFE-$FFFF $XXXX Vector de IRQ$FFFA-$FFFB $XXXX Vector de TIMER OV$FFF2-$FFF3 $FFF4-$FFF5 $FFF6-$FFF7 $FFF8-$FFF9 $FFFC-$FFFD $8243 $8150 $8000

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupciones  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.

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Atención de INT’s  Las interrupciones  Son atendidas basándose en un diagrama de flujo.

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás A continuación… Programación de la IRQ Excepciones e Interrupciones Procesamiento de Interrupciones Interrupciones en una CPU Programación de la IRQ

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupció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.

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupció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 P P INT Request INT Request INT Request

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupció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 P P Peticiones continuas de IRQ

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupció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 P P INT Req. Máscara Deshabilitada Máscara habilitada TIMER_INTERRUPT IRQ_INTERRUPT

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupció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.

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás ‘0’ ‘1’ ‘0’ ‘1’ ‘0’ ‘1’ ‘0’ Interrupción Externa IRQ

2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Interrupció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.

Fin de la Sesión 07