Академический Документы
Профессиональный Документы
Культура Документы
Sistemas digitales y
perifricos
Nombre de la Licenciatura
Ingeniaran en sistemas Computacionales
Nombre del alumno
Matrcula
Nombre de la Tarea
Interrupciones
Unidad #5
Elementos para el manejo de
perifricos
Nombre del Tutor
Luis Manuel Ramos Sandoval
Fecha
17/11/2016
Unidad 5. Elementos para el manejo de perifricos
Interrupciones
INTERRUPCIONES
Introduccion___________________________________________________________
Las interrupciones son generadas por los dispositivos perifricos habilitando una seal del CPU (llamada IRQ
del ingls "interrupt request") para solicitar atencin del mismo. Una interrupcin es un mecanismo que
permite ejecutar un bloque de instrucciones interrumpiendo la ejecucin de un programa, y luego restablecer
la ejecucin del mismo sin afectarlo directamente. De este modo un programa puede ser interrumpido
temporalmente para atender alguna necesidad urgente del computador y luego continuar su ejecucin como si
nada hubiera pasado.
Desarrollo_______________________________________________________________________
Cul es la diferencia entre una interrupcin hardware y una llamada a subrutina? Cuando se da una
interrupcin por hardware, es porque se ha producido una seal elctrica causada por algn
dispositivo fsico del equipo, siendo este mismo un suceso que es externo al procesador, este
cambia el flujo normal de ejecucin y se convierte en un evento asncrono. Dicha seal hace un
informe al CPU de que dicho dispositivo requiere de su atencin. Gracias a esta seal el CPU
detendr el proceso que est ejecutando para que la interrupcin sea atendida. Una vez terminada la
interrupcin, el CPU reanudara la ejecucin desde donde fue interrumpida, ejecutando el proceso
que se detuvo originalmente u otro proceso.
Subrutina o subprograma (tambin llamada procedimiento, funcin o rutina), como idea general, se
presenta como un subalgoritmo que forma parte del algoritmo principal, el cual permite resolver una
tarea especfica. Algunos lenguajes de programacin, como Visual Basic .NET, utilizan el nombre
funcin para referirse a subrutinas que devuelven un valor.
(MORRIS, 2005)
MORRIS. (2005). FUNDAMENTOS DE DISEO LGICO Y DE COMPUTADORAS.
(CASILLAS. L GINESTA, s.f.) (CORPORATION, 2012)
(DONKO_LIBRAR11, s.f.)
2
Unidad 5. Elementos para el manejo de perifricos
Interrupciones
Una subrutina al ser llamada dentro de un programa hace que el cdigo principal se detenga y se
dirija a ejecutar el cdigo de la subrutina, en cambio cuando se llama a una macro, el compilador
toma el cdigo de la macro y lo implanta donde fue llamado, aumentando as el cdigo fuente y por
consiguiente el objeto.
Interrupcin (tambin conocida como interrupcin hardware o peticin de interrupcin) es una seal
recibida por el procesador de un ordenador, indicando que debe interrumpir el curso de ejecucin
actual y pasar a ejecutar cdigo especfico para tratar esta situacin.
Una interrupcin supone la ejecucin temporaria de un programa, para pasar a ejecutar una
subrutina de servicio de interrupcin, que pertenece al BIOS (Basic Input Output System).
Las interrupciones surgen de las necesidades que tienen los dispositivos perifricos de enviar
informacin al procesador principal de un sistema de computacin. La primera tcnica que se emple
fue que el propio procesador se encargara de sondear (polling) el dispositivo cada cierto tiempo para
averiguar si tena pendiente alguna comunicacin para l. Este mtodo presentaba el inconveniente
de ser muy ineficiente, ya que el procesador constantemente consuma tiempo en realizar todas las
instrucciones de sondeo.
Cules son las diferencias bsicas entre una bifurcacin, una llamada a subrutina y una
interrupcin de programa?
(MORRIS, 2005)
MORRIS. (2005). FUNDAMENTOS DE DISEO LGICO Y DE COMPUTADORAS.
(CASILLAS. L GINESTA, s.f.) (CORPORATION, 2012)
(DONKO_LIBRAR11, s.f.)
3
Unidad 5. Elementos para el manejo de perifricos
Interrupciones
generarse una interrupcin se denomina Rutina de Atencin a interrupcin (ISR). Cuando hay una
interrupcin el programa principal se detiene y salta a atender la llamada a interrupcin (subrutina).
Interrupcin de programa: Las interrupciones por software son aquellas generadas por un programa
en ejecucin. Para generarlas, existen distintas instrucciones en el cdigo mquina que permiten al
programador producir una interrupcin, las cuales suelen tener nemotcnicos tales como INT (por
ejemplo, en DOS se realiza la instruccin INT 0x21 y en Unix se utiliza INT 0x80 para hacer llamadas
de sistema).
La interrupcin por software, tambin denominadas llamadas al sistema, son aquellas generadas por
un programa mientras este est ejecutndose. En general, actan de la siguiente manera:
(MORRIS, 2005)
MORRIS. (2005). FUNDAMENTOS DE DISEO LGICO Y DE COMPUTADORAS.
(CASILLAS. L GINESTA, s.f.) (CORPORATION, 2012)
(DONKO_LIBRAR11, s.f.)
4
Unidad 5. Elementos para el manejo de perifricos
Interrupciones
Internas
Las genera la propia CPU cuando se produce una situacin anormal como puede ser una divisin
entre 0 (INT 0h), paso a paso (INT 1h), puntos de ruptura (INT 3h), desbordamiento (INT 4h),
operacin indefinida (INT 6h)
Un ejemplo claro de este tipo de interrupciones es la que actualiza el contador del reloj interno de la
computadora, el hardware hace el llamado a esta interrupcin varias veces durante un segundo para
mantener la hora actualizada
(MORRIS, 2005)
MORRIS. (2005). FUNDAMENTOS DE DISEO LGICO Y DE COMPUTADORAS.
(CASILLAS. L GINESTA, s.f.) (CORPORATION, 2012)
(DONKO_LIBRAR11, s.f.)
5
Unidad 5. Elementos para el manejo de perifricos
Interrupciones
Aunque no podemos manejar directamente esta interrupcin (no podemos controlar por software las
actualizaciones del reloj), es posible utilizar sus efectos en la computadora para nuestro beneficio,
por ejemplo para crear un "reloj virtual" actualizado continuamente gracias al contador del reloj
interno. nicamente debemos escribir un programa que lea el valor actual del contador y lo traduzca
a un formato entendible para el usuario.
Interrupciones internas
Externas
Interrupciones externas las generan los dispositivos perifricos, como pueden ser: teclado,
impresoras, tarjetas de comunicaciones, etc. Tambin son generadas por los coprocesadores.
(MORRIS, 2005)
MORRIS. (2005). FUNDAMENTOS DE DISEO LGICO Y DE COMPUTADORAS.
(CASILLAS. L GINESTA, s.f.) (CORPORATION, 2012)
(DONKO_LIBRAR11, s.f.)
6
Unidad 5. Elementos para el manejo de perifricos
Interrupciones
Estas interrupciones no son enviadas directamente a la UCP, sino que se mandan a un circuito
integrado cuya funcin es exclusivamente manejar este tipo de interrupciones. El circuito, llamado
PIC 8259A, si es controlado por la UCP utilizando para tal control una serie de vas de comunicacin
llama
Las interrupciones externas son generadas por los dispositivos perifricos, tales como teclados,
impresoras, tarjetas de la comunicacin, etc. Tambin son generadas por coprocessors. No es
posible desactivar interrupciones externas. das puertos.
AVR por el pin INT0, se le har llegar una seal la cual cambiar su estado entre altos y bajos con la
ayuda de un fotorresistor, cuando se ilumine el fotorresistor su resistencia disminuir y al pin INT0 le
llegar un alto, cuando el fotorresistor no se ilumine su resistecia ser alta y al pin INT0 le llegar un
bajo. Se programar para que la interrupcin externa AVR ocurra por flanco de bajada, esto es
cuando la seal que llega al pin INT0 pase de un alto a un bajo; cada vez que se produzca la
interrupcin se cambiar el estado del pin PB0 lo cual ser visible mediante un led
El microcontrolador tiene una rutina permanente que es hacer un blink en el led conectado a RA0 a
intervalos de 0.25 segundos. Cuando el botn haga una transicin de 0 a 1 (Rising edge) se activar
INT0, la cual activar una rutina que encender o apagar el led conectado a RA1 durante 1
segundo. Posteriormente, el microcontrolador continuar con la rutina del blink hasta que se
produzca una nueva interrupcin INT0.
Encender un LED con un flanco de bajada y apagarlo con un flanco de subida en INT0
(MORRIS, 2005)
MORRIS. (2005). FUNDAMENTOS DE DISEO LGICO Y DE COMPUTADORAS.
(CASILLAS. L GINESTA, s.f.) (CORPORATION, 2012)
(DONKO_LIBRAR11, s.f.)
7
Unidad 5. Elementos para el manejo de perifricos
Interrupciones
Conclusin________________________________________________________________________
Entre las utilidades de las interrupciones podemos encontrar cosas tan simples como cambiar el
valor de un puerto de 0 a 1, hasta cosas tan complejas como lo es un despachador de tareas, he all,
el poder de este recurso.
Las interrupciones pueden tener fuentes internas y externas. Una fuente de interrupcin interna
puede ser por ejemplo, un error por overflow o la finalizacin de un contador; una fuente externa,
puede ser un botn de reset, tambin una seal de control o un detector de cambios de nivel como el
KBI o el IRQ.
(MORRIS, 2005)
MORRIS. (2005). FUNDAMENTOS DE DISEO LGICO Y DE COMPUTADORAS.
(CASILLAS. L GINESTA, s.f.) (CORPORATION, 2012)
(DONKO_LIBRAR11, s.f.)