PDF de programación - Tema 8 Bis. Puertos de E/S y su interfaz Interrupciones 8259A y Timer - Microprocesadores

Imágen de pdf Tema 8 Bis. Puertos de E/S y su interfaz Interrupciones 8259A y Timer - Microprocesadores

Tema 8 Bis. Puertos de E/S y su interfaz Interrupciones 8259A y Timer - Microprocesadoresgráfica de visualizaciones

Publicado el 20 de Febrero del 2021
338 visualizaciones desde el 20 de Febrero del 2021
356,7 KB
27 paginas
Creado hace 10a (07/01/2014)
Microprocesadores 1121060

Tema 8 Bis. Puertos de E/S y su

interfaz

Interrupciones 8259A y Timer.

Tema 8. Interrupciones y Timer 8254A.

1.

Interrupciones.
1.1 Procesamiento básico de las
Interrupciones
1.2 Interrupciones por hardware en el 8086
1.3 Controlador de Interrupciones 8259A

2. Timer 8254A

Controlador de Interrupciones
Programable 8259A

-CS: Habilita la comunicación con la CPU.
-WR: Permite al 8259 aceptar comandos de la CPU.
-RD: Permite al 8259 dejar la información en el bus de datos.
D7..D0: Bus de datos bidireccional, por el que se transmite la información de

control/estado y el número de vector de interrupción.

CAS0..CAS2: Líneas de cascada, actúan como salida en el 8259 maestro y

como entrada en los 8259 esclavos, en un sistema con varios 8259
interconectados, constituyendo un bus local.

-SP/-EN: Pin de doble función: en el buffered mode del 8259 actuará como -
EN, para habilitar los buffers del bus; en el modo normal indicará si el
8259 es maestro (1) o esclavo (0).

INT: Conectado a la patilla INT de la CPU para producir la interrupción

cuando llegue el momento.

IR0..IR7: Líneas asíncronas de petición de

interrupción. Una petición de interrupción se
ejecuta manteniendo IR en alto hasta que se
recibe el reconocimiento (modo por flancos) o
simplemente poniendo en alto la línea IR
(modo por niveles).

-INTA: Línea de reconocimiento de interrupción, por

medio de esta línea se obliga al 8259 a
depositar en el bus la información del vector de
interrupción. INTA es independiente de -CS.

A0: En conjunción con -CS, -WR y -RD es empleada
para enviar las palabras de comando al 8259 y
para solicitar información al mismo. Suele ir
conectada a la línea A0 de la CPU.

Controlador de Interrupciones Programable 8259A
Registros Internos

IRR: Registro de Solicitud de

Interrupción (Interrupt Request
Register) almacena todas las solicitudes
de interrupción pendientes

ISR: Registro de Servicio de Interrupción
(In Service Register). Almacena todas
las interrupciones que están siendo
atendidas en un momento dado.

La lógica de gestión de prioridad

determina qué interrupción, de las
solicitadas en el IRR, debe ser atendida
primero: cuando lleguen las señales
INTA dicha interrupción será la primera
procesada y su bit correspondiente se
activará en el ISR.

El IMR: Registro de Máscara de

Interrupción (Interrupt Mask
Register), se utiliza para enmascarar
(inhibir) la correspondiente entrada de
interrupción.

El buffer del bus de datos conecta al 8259 con el bus de datos del procesador su diseño en 3 estados

permite desconectarlo cuando sea necesario; a través de este bus circulan las palabras de control y
la información de estado. La lógica de lectura y escritura acepta los comandos que envía la
CPU: aquí hay registros para almacenar las palabras de inicialización y operación que envía el
procesador; también sirve para transferir el estado del 8259 hacia el bus de datos. El buffer de
cascada/comparador almacena y compara las identificaciones de todos los 8259 que posea el
sistema: el 8259 maestro envía la identificación del 8259 esclavo en las líneas CAS, los 8259
esclavos la leen y el implicado en la operación coloca en el bus de datos la dirección (vector) de la
rutina que atenderá la interrupción en los 2 próximos ciclos INTA.

Controlador de Interrupciones Programable 8259A
Intrfaz



Para interconectar con el procesador, la salida INT se
conecta a la entrada INTR del 8086 y su entrada INTA-
se conecta a la salida INTA- del 8086.
La salida EN- se usa para deshabilitar al tranceptor
HC245 cuando el PIC debe enviar un dato hacia la CPU.
Las líneas CAS0-CAS2 no se conectan, pues éstas sólo
se usan cuando varios 8259s se conectan en cascada,
cosa que aquí no ocurre.
El 8259A cuenta con tres registros: el registro IRR salva
todos los niveles que están pidiendo servicio; el registro
ISR salva todos los niveles que están recibiendo
servicio; y el registro IMR salva los niveles de
interrupción que están permitidos.
Cuando una o más de las señales IRQx está en "1", el
PIC pone en "1" los bits correspondientes. A
continuación el 8259 evalúa dichas peticiones y si
procede activa la salida INT para avisar a la CPU. Si así
procede la CPU reconoce la interrupción activando la
señal INTA- (un pulso) por lo que el 8259A pone a "1"
el bit de más prioridad del registro ISR y el
correspondiente bit del registro IRR es regresado a "0".
El 8086 manda un segundo pulso por su salida INTA-
con lo que el 8259A envía el número de interrupción
(ocho bits) por el bus de datos.
Para que el 8259A regrese a "0" el bit del registro ISR
debe recibir el comando EOI (fin de interrupción) desde
la CPU, a menos que esté funcionando en el modo AEOI,
en cuyo caso regresa dicho bit a "0" en cuanto recibe el
segundo pulso en INTA-.

Controlador de Interrupciones Programable
8259A
Intrfaz Maestro-Esclavo

Se pueden interconectar hasta 8 esclavos al

8259 maestro para contar con un total de
64 dispositivos que interrumpan.

Controlador de Interrupciones Programable 8259A
Programación

Programación del 8259
• El 8259 acepta dos tipos de

comandos generados por la CPU:

– ICW (Inicialization Command

Word) palabras que inicializan el
8259,

– OCW (Operation Command

Word) que permiten cambiar la
modalidad de funcionamiento por
default.

• La comunicación con el 8259

emplea las líneas /WR y /RD, así
como A0. El hecho de que exista
una sola línea de direcciones
implica que el 8259 sólo ocupa
dos direcciones de puerto de E/S
en el espacio de entrada y salida
del procesador.

Controlador de Interrupciones Programable 8259A
Programación

Palabras ICW’s

Notas:

Si SNGL es 1 significa que el 8259 es único en el sistema y no

será enviada ICW3. Si IC4 es 0, tampoco será enviada ICW4. En el
8080/85, las diversas interrupciones generan CALL's a 8 direcciones
adyacentes separadas 4 u 8 bytes (según indique ADI): para
componer la dirección, el 8259 inserta A0..A4 (o A0..A5)
convenientemente, según la interrupción que se trate. En el 8086,
A7..A5 y ADI son ignoradas.

Controlador de Interrupciones Programable 8259A
Programación

ICW2:Se envía con A0=1, para

diferenciarlo de ICW0 (hacer OUT a la
siguiente dirección de puerto).

Notas:T7..T3 determinan los cinco bits más

significativos del número de vector de
interrupción a invocar (los 3 bajos los
suministra el 8259 según la entrada
interrupción que se trate).

Controlador de Interrupciones Programable 8259A
Programación

– Formato de ICW3 a enviar a un 8259 maestro:

Se utiliza para indicar al maestro en qué entradas tiene conectados esclavos

8259’s

ICW3:Se envía sólo en el caso de que haya más de un 8259 en el sistema
(bit SNGL de ICW1 a cero), en caso contrario en su lugar se enviaría ICW4.

–Formato de ICW3 a enviar a un 8259 esclavo
para que memorice de qué línea IR del maestro
se conecta:

Controlador de Interrupciones Programable 8259A
Programación

ICW4:Se envía sólo si el bit IC4=1 en ICW1, con objeto de

colocar el 8259 en un modo de operación distinto del
establecido por defecto (que equivale a poner a “0” todos los
bits de ICW4, empleado en los µp 8080/8085).

Nótese que con el 8086 es obligatorio enviar ICW4 para

seleccionar esta CPU.

Controlador de Interrupciones Programable 8259A
Programación

OCW’s (Palabras de control de operación)
• Una vez inicializado, el 8259 está listo para procesar las

interrupciones que se produzcan. Sin embargo, durante su
funcionamiento normal está capacitado para recibir comandos de
control por parte de la CPU.

• OCW1:Este comando activa y borra bits en el IMR (Interrupt Mask

Register), lo cual enmascara o desenmascara las entradas
correspondientes de solicitud de interrupción del 8259A. Un bit
en 1 significa interrupción enmascarada (inhibida) y en 0,
interrupción habilitada.

Controlador de Interrupciones Programable 8259A
Programación

La palabra OCW2 solo se programa
cuando se selecciona el modo NORMAL
AEOI para el 8259 en la palabra ICW4.
En este caso, la OCW selecciona la
forma en que el 8259A responde a una
interrupción. Esos modos son los
siguientes:
Final no específico de la interrupción. Un
comando enviado por el procedimiento
de servicio de la interrupción para
señalar el final de interrupción. El 8259
determina en forma automática cual
nivel de interrupción estaba activo y
restablece el bit correspondiente del
registro de estado de las interrupciones.
Al restablecer al bit en el registro de
estado se permite que la interrupción
actúe de nuevo o que se produzca una
interrupción de menor prioridad.
Final específico de la interrupción. Un
comando que permite restablecer una
solicitud específica de interrupción. La
posición exacta se determina con los
bits L2-L0 de OCW2.

Rotación con EOI no específico. Un comando que funciona como el comando no específico de fin de interrupción, salvo que rota las
prioridades después de restablecer su bit en el registro de estado de interrupciones. El valor restablecido por este comando se vuelve
interrupción de mínima prioridad. Por ejemplo, si se acaba de dar servicio a IR4 con este comando, se convierte en la entrada de
interrupción de mínima prioridad y IR5 se vuelve de máxima prioridad.
Rotación con EOI automático. Un comando que selecciona un EOI automático con prioridad para la rotación. Este comando sólo se debe
enviar al 8259 una vez, si se desea este modo. Si se va a apagar este modo, se debe emplear el comando para borrar.
Rotar con EOI específico. SU función es similar a la EOI específico, excepto que selecciona una prioridad de rotación.
Inicializar prioridad. Permite al programador inicializar la entrada de interrupción de mínima prioridad con el empleo de los bits L
  • Links de descarga
http://lwp-l.com/pdf18879

Comentarios de: Tema 8 Bis. Puertos de E/S y su interfaz Interrupciones 8259A y Timer - Microprocesadores (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad