ipn - esime zacatenco computaciÓn v diseÑo de una

23
Profr. Salvador Saucedo 1 IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA MICROCOMPUTADORA DIDÁCTICA RESUMEN Se presenta el diseño de un sistema didáctico para enseñaza y experimentación con base en el microprocesador 8088 de INTEL, con 16 KBytes de memoria EPROM, 8 KBytes de memoria RAM, salida y entrada paralela, teclado, despliegue de cristal líquido, circuito contador temporizador, sali- da audible, interrupciones de hardware, área de experimentación, interfaz RS-232C para comunica- ción serial asíncrona, fuente de poder estándar y dos conectores de expansión. 1. Características Generales Se usará el microprocesador 8088 por su bajo costo y facilidad de encontrarlo en el mercado. Para reducir el número de circuitos integrados se empleará el modo mínimo del 8088. Los circuitos de soporte a emplear son: el generador de reloj 8284A-1, el controlador programable de interrupciones 8259A-2, la inter- faz paralela programable 8255A-5 y el temporizador programable 82C54. Se tendrán dos circuitos integrados de memoria EPROM 27C64, de 8KB cada uno, para obtener 16KB de memoria EPROM, donde residirá el programa monitor. Se tendrá memoria RAM poniendo el circuito integrado 6164 de ocho Kbytes de capacidad. Se contará con despliegue de cristal líquido con dos líneas de caracteres ASCII de veinte posiciones cada una, esto es, se pueden exhibir hasta 40 caracteres alfanuméricos al mismo tiempo. El dispositivo de entrada para el usuario será un teclado de 20 teclas para ejecutar los comandos que brindará el programa monitor. Se emplea la USART 8251 de INTEL para tener comunicación serial asíncrona a través de un conec- tor macho DB9. 2. Generador de reloj Se usará el circuito integrado 8284A-1 de INTEL que produce tres señales que se aplican directa- mente al 8088 y que son: 1) La señal RELOJ que es un tercio de la frecuencia del cristal usado, esto es, 4.9M/3 = 1.63MHz; 2) la señal INIC que arranca al 8088, haciendo que éste ejecute la instrucción en la loca- lidad física FFFF0h y 3) la señal LISTO que al estar activa hace que el 8088 trabaje a velocidad normal, pero si se hace "0", entonces el 8088 inserta estados de espera, reduciendo, en consecuencia, su velocidad de operación. Figura 1 Generación de señales de inicio y de reloj.

Upload: others

Post on 29-Jun-2022

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

1

IPN - ESIME ZACATENCO COMPUTACIÓN V

DISEÑO DE UNA MICROCOMPUTADORA DIDÁCTICA RESUMEN

Se presenta el diseño de un sistema didáctico para enseñaza y experimentación con base en el microprocesador 8088 de INTEL, con 16 KBytes de memoria EPROM, 8 KBytes de memoria RAM, salida y entrada paralela, teclado, despliegue de cristal líquido, circuito contador temporizador, sali-da audible, interrupciones de hardware, área de experimentación, interfaz RS-232C para comunica-ción serial asíncrona, fuente de poder estándar y dos conectores de expansión. 1. Características Generales

Se usará el microprocesador 8088 por su bajo costo y facilidad de encontrarlo en el mercado. Para reducir el número de circuitos integrados se empleará el modo mínimo del 8088. Los circuitos de soporte a emplear son: el generador de reloj 8284A-1, el controlador programable de interrupciones 8259A-2, la inter-faz paralela programable 8255A-5 y el temporizador programable 82C54.

Se tendrán dos circuitos integrados de memoria EPROM 27C64, de 8KB cada uno, para obtener 16KB de memoria EPROM, donde residirá el programa monitor.

Se tendrá memoria RAM poniendo el circuito integrado 6164 de ocho Kbytes de capacidad.

Se contará con despliegue de cristal líquido con dos líneas de caracteres ASCII de veinte posiciones cada una, esto es, se pueden exhibir hasta 40 caracteres alfanuméricos al mismo tiempo.

El dispositivo de entrada para el usuario será un teclado de 20 teclas para ejecutar los comandos que brindará el programa monitor.

Se emplea la USART 8251 de INTEL para tener comunicación serial asíncrona a través de un conec-

tor macho DB9. 2. Generador de reloj

Se usará el circuito integrado 8284A-1 de INTEL que produce tres señales que se aplican directa-mente al 8088 y que son: 1) La señal RELOJ que es un tercio de la frecuencia del cristal usado, esto es, 4.9M/3 = 1.63MHz; 2) la señal INIC que arranca al 8088, haciendo que éste ejecute la instrucción en la loca-lidad física FFFF0h y 3) la señal LISTO que al estar activa hace que el 8088 trabaje a velocidad normal, pero si se hace "0", entonces el 8088 inserta estados de espera, reduciendo, en consecuencia, su velocidad de operación.

Figura 1 Generación de señales de inicio y de reloj.

Page 2: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

2

El 8284A produce además otras dos señales: una es OSC que no se usa en el sistema, pero si se envía al conector de expansión; la otra señal es RELP que es el reloj de periféricos y cuya frecuencia es la sexta parte del valor del cristal.

El 8284A recibe por su entrada RES- la señal que activa, tras cierto lapso, a la señal INIC que inicia a la CPU.

La entrada RDY1 es activa alta y sirve para indicar que el dato ya se recibió o que él está disponible. Para que RDY1 pueda pasar la entrada AEN1- debe estar activa (en bajo). Los dispositivos lentos deben inactivar la señal RDY1 para insertar estados de espera en la CPU.

Las entradas RDY2 y AEN2- se comportan de manera idéntica a las anteriores. En este caso se in-activa a esta última pareja conectando AEN2- a "1". 3. Amplificación de señales

Con el fin de poder conectar algunas señales a varios circuitos integrados se hace necesario darles mayor capacidad de entregar corriente por lo que se empleará el circuito integrado 74HCT367 que puede lograr que una señal lógica se pueda conectar hasta a quince compuertas TTL.

Figura 2 Acondicionamiento de señales.

En este caso se acondicionan las señales IO/M-, RD-, WR- e INIC, que ya amplificadas reciben los nombres ES/M-, LEER-, ESCR- e INICIO, respectivamente.

Quedan disponibles dos entradas para amplificar otras dos señales lógicas del sistema.

El 74HCT367 es un buffer no inversor de tres estados de tecnología CMOS de alta velocidad.

La señal IO/M- cuando está en "1" indica que se hará una transferencia de datos con algún puerto; y cuando está en "0" indica que se hará una transferencia de datos con memoria.

La señal LEER- es activa baja, por lo que si está en "0" indica que la CPU tomará un dato externo a ella. Del mismo modo, si la señal ESCR- es la que está activa (en bajo) la CPU enviará un dato hacia afuera de ella. Ambas señales nunca están activas al mismo tiempo. 4. Generación de direcciones de puertos

Para poder direccionar los puertos de entrada salida se propone el empleo del circuito integrado 74HC138, que activa sólo una de sus salidas cuando la señal ES/M- está en alto y la línea de dirección Y8 se encuentra en su nivel bajo.

En la tabla siguiente se dan las direcciones para cada uno de los dispositivos que están en la tarjeta principal de la computadora.

Page 3: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

3

Figura 3 Generación de señales para seleccionar puertos.

DISPOSITIVO SEÑAL DIR. TECLADO STEC- 00H PIC 8259 S59- 20H TEMPORIZADOR S54- 40H PPI 8255 S55- 60H DESPLIEGUE SLDC- 80H USART S51- E0H

Las líneas de selección A0H- y C0H- se envían al conector de expansión para su uso en el desarrollo

de experimentos. 5. El microprocesador 8088

Este microprocesador tiene un ducto de datos de ocho bits y un ducto de direcciones de 20 bits, por lo que su espacio de direcciones es de un megabyte. Internamente tiene un ducto de 16 bits y su juego de instrucciones es el mismo que el del 8086.

Figura 4 CPU de INTEL en modo mínimo.

El 8088 tiene cuatro registros aritméticos, cuatro registros índices, cuatro registros de segmento, re-

gistro de banderas y cola de instrucciones.

Page 4: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

4

Puede trabajar en uno de dos modos: máximo (usando el 8288) o mínimo (como aquí) que no re-quiere del controlador de ductos 8288.

Puede direccionar 64K localidades de E/S, cuenta con doce modos de direccionamiento y se puede

interfazar con un coprocesador numérico. En la actualidad está obsoleto desde el punto de vista comercial, pero como elemento de aprendizaje conserva mucha importancia, tomando en cuenta que INTEL preserva el juego de instrucciones en los procesadores más nuevos.

Notar que la entrada INTR recibe la señal INTR proveniente del controlador de interrupciones, lo que significa que la CPU reconoce interrupciones de hardware, cuando su bandera de interrupciones está en "1". La CPU indica al 8259 que ha reconocido una interrupción activando la señal INTA-. La entrada para la inte-rrupción no mascarable, NMI, se desactiva conectándola a tierra lógica, pues dicha interrupción queda sin uso.

Como la CPU no tiene otro procesador que le solicite el control de los ductos del sistema, la entrada HOLD es también desactivada conectándola a tierra lógica. 6. Controlador programable de interrupciones

Para controlar las interrupciones de hardware en un esquema de niveles de prioridad se emplea el 8259A que permite habilitar hasta ocho interrupciones en forma individual.

Figura 5 Controlador Programable de interrupciones.

La figura muestra la manera de conectarlo al sistema: su salida INT se conecta a la entrada INTR del

8088 y su entrada INTA- se conecta a la salida INTA- del 8088.

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 servi-cio; 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 regre-sado a "0".

Page 5: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

5

El 8088 manda un segundo pulso por su salida INTA- con lo que el 8259A envía el tipo de interrup-ción (ocho bits) por el ducto de datos.

Para que el 8259A regrese a "0" el bit del registro ISR debe recibir el comando EOI (fin de interrup-ció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-.

La programación del 8259A es algo complicada pero vale la pena el esfuerzo pues es la única mane-ra de poder hacer aplicaciones en tiempo real con la computadora (y también en una PC). 7. Transceptor de datos y cerrojo de direcciones

Para poder demultiplexar las ocho líneas más bajas de dirección es necesario usar un cerrojo que permita capturar el valor de la dirección durante el pulso de reloj en que dicha información está presente. Se usará para ello el cerrojo de tres estado 74HCT573, que se comporta igual que el 74HCT373, pero que tiene todas las entradas de un solo lado del paquete y todas sus salidas en el otro lado, para facilitar el diseño del circuito impreso.

Figura 6 Demultiplexaje de datos y direcciones. Tranceptor de datos.

El HCT573 captura la dirección cuando se activa la señal ALE (Address Latch Enable) que se activa

justamente cuando el valor de la dirección está presente.

Algo semejante sucede con el tranceptor de datos 74HCT245 que, como su nombre lo indica, permi-te transferir la información en los dos sentidos.

El circuito HCT245 está controlado por dos señales: la señal DEN- producida por el 8088 le indica que es momento de transferir un dato, por lo que el tranceptor sólo se activa cuando dicha señal está activa (en bajo). La señal EN-, generada por el PIC, impide que la señal DEN- actúe sobre el tranceptor pues EN- se activa cuando el 8259A usa el bus local para transferir un dato. La otra señal que afecta al HCT245 es DT/R- que fija la dirección del flujo de información, cuando es "1" transmite de A a B, y en caso contrario recibe de B a A.

En el diagrama general se aprecia que se usan otros dos cerrojos 74HCT573 para abarcar a todas

Page 6: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

6

las líneas de direccionamiento. 8. Puertos de entrada/salida paralela

Para dotar al sistema de capacidad de salida paralela se propone el uso del CI 8255A-5 que es una interfaz programable con 24 terminales de entrada o salida. Se usará a dicho dispositivo en el modo 0, de tal suerte que el puerto A es siempre de entrada y los puertos B y C son siempre de salida (palabra de control = 90H).

Figura 7 Puertos paralelos (PPI).

La forma de operar del 8255A se da en la siguiente tabla.

Y1 Y0 LEER- ESCR- S55- Operaciones de lectura 0 0 0 1 0 Pto. A ⇒ ducto de datos 0 1 0 1 0 Pto. B ⇒ ducto de datos 1 0 0 1 0 Pto. C ⇒ ducto de datos

Operaciones de escritura 0 0 1 0 0 Ducto de datos ⇒ pto. A 0 1 1 0 0 Ducto de datos ⇒ pto. B 1 0 1 0 0 Ducto de datos ⇒ pto. C 1 1 1 0 0 Ducto de datos ⇒ control

Funciones de deshabilitar x x x x 1 Salida de datos a 3er edo 1 1 0 1 0 Condición ilegal x x 1 1 0 Salida de datos a 3er edo

En la figura se ilustra la forma de conectar la interfaz PPI al sistema. La entrada RESET se conecta a

la señal INICIO la que al ponerse en "1" limpia los tres registros A, B y C y al registro de control. Define a A, B y C como entradas.

El 8255A es un medio muy poderoso para poder conectar un sistema digital a muchos periféricos, ta-

Page 7: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

7

les como impresoras, monitores, convertidores A/D y D/A, etc.

En este caso se envían doce de sus líneas de E/S hacia un conector de expansión para aplicaciones de tipo experimental. 9. Temporizador programable

El dispositivo 82C54 es un contador/temporizador diseñado para resolver problemas de generación precisa de eventos en tiempo real en microcomputadoras. Cuenta con tres contadores independientes, cada uno de 16 bits, capaces de recibir entradas de reloj de hasta 10 MHz. Cada canal puede trabajar en cual-quiera de los seis modos de operación.

La siguiente tabla muestra cómo se opera al dispositivo.

Y1 Y0 LEER- ESCR- S54 Operación 0 0 1 0 0 Escribe contador 0 0 1 1 0 0 Escribe contador 1 1 0 1 0 0 Escribe contador 2 1 1 1 0 0 Escribe reg de control 0 0 0 1 0 Lee contador 0 0 1 0 1 0 Lee contador 1 1 0 0 1 0 Lee contador 2 1 1 0 1 0 No hay operación 3er edo x x x x 1 No hay operación 3er edo x x 1 1 0 No hay operación 3er edo

El canal 0 se usará en el modo 2 (Generador de interrupciones) el cual envía un pulso negativo con

duración de un pulso de reloj cada vez que transcurren N pulsos de reloj, donde N es el valor cargado en el contador.

El canal 2 se usará en el modo 3 que genera una señal periódica cuadrada y se empleará para exci-tar una pequeña bocina.

El canal 1 se programará en el modo 2 con la idea de medir la duración de eventos externos, pues su señal de compuerta, G1, viene desde el conector de expansión.

Page 8: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

8

Figura 8 Temporizador programable. Altavoz.

Cuando un contador es escrito, toda su lógica de control es iniciada y su salida OUT se pone en un

estado conocido, sin que se requieran pulsos en su entrada CLK. 10. Memoria EPROM

El programa monitor debe residir en memoria que no pierda su contenido cuando se desenergiza el sistema. Ello se logra poniendo memoria de sólo lectura que pueda ser grabada en un programador comer-cial estándar. Dicha memoria es conocida como memoria EPROM.

El sistema emplea dos circuitos integrados 27C64, cada uno de los cuales tiene una capacidad de 8Kx8, que son 16 Kbytes en total de memoria permanente. En tal memoria radicará el firmware de la compu-tadora. En la siguiente figura se muestra como se conecta la memoria mencionada.

Page 9: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

9

Figura 9 Memoria de sólo lectura.

Como la memoria permanente debe estar en la parte más alta del espacio de memoria se usa una compuerta NAND de cuatro entradas, la 74HC20 que genera el permisivo general para poder acceder a ambos CIs.

Para evitar colisiones, en la excitación para activar cualquiera de las salidas de datos se incluye a la señal LEER- con el fin de que si se hace una operación de escritura sobre dichos dispositivos, éstos perma-nezcan con su salida de datos en el estado de alta impedancia.

Las localidades de la memoria de la izquierda van de la FC000H a la FDFFFH con espejo de la FE000H a la FFFFFH, por lo que es aquí donde debe residir el programa monitor, incluyendo el salto inicial grabado en la localidad física FFFF0H.

Las localidades de la memoria de la derecha van de la F8000H a la F9FFFH con espejo de la

FA000H a la FBFFFH, por lo que es aquí donde debe residir la aplicación del usuario, que pueden ser ruti-nas aritméticas, control de dispositivos externos, etc.

La existencia del espejo se explica porque Y13 no se usa para direccionar a la memoria. 11. Memoria de trabajo

Toda computadora requiere de memoria que pueda leer y también escribir para poder salvar datos que necesita procesar. Por dicha razón se agrega memoria volátil conocida como RAM.

Se propone usar la memoria RAM 6164 que tiene una organización de 8Kx8, esto es, tiene una ca-pacidad de 8 KB. Ver la siguiente figura.

Page 10: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

10

Figura 10 Memoria volátil (RAM).

En virtud de que los vectores de interrupción necesitan ser colocados en la parte más baja del espa-cio de memoria, para producir el permisivo general para acceder a esta memoria, se usa una compuerta OR de tres entradas, la HC4075, cuya salida se combina con las señales Y16 y ES/M- para seleccionar al CI 6164.

La memoria 6164 comprende las localidades 00000H a 01FFFH, con varios espejos, entre los que está el que va de la localidad 02000H a la localidad 03FFFH. La señal SELM-, para expansión, elige locali-dades a partir de la dirección 10000H. 12. Teclado

El sistema contará con un teclado de veinte teclas controlado mediante el circuito integrado 74C923, según muestra la siguiente figura. Al oprimirse y soltarse una tecla se genera la interrupción IRQ0 hacia el 8259A, mismo que activa la señal INTR para que la CPU efectúe la lectura de la tecla oprimida

Page 11: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

11

Figura 11 Teclado con el 74C923.

Los comandos que tendrá el programa monitor son los siguientes:

ER Comando para examinar y modificar los registros. DAR Comando para despliegue automático de registros. EM Comando para examinar y modificar localidades de memoria. DAM Comando para despliegue automático de memoria. MBM Comando para mover bloques de memoria. CBM Comando para comparar bloques de memoria. ABCD Comando para exhibir los registros AX, BX, CX y DX. DESC Comando para exhibir los registros DS, ES, SS y CS. IPSP Comando para exhibir los registros IP, SP, SI y DI. PAS Comando para ejecutar sólo una instrucción. RUP Comando para insertar un punto de ruptura o removerlos todos. FLAG Comando para ver las banderas y el registro BP. EJ Comando para correr un programa. USU Comando para ejecutar comando del usuario. E/S Comando para leer y escribir puertos.

Uso de las teclas

La tecla ESC sirve para abortar el comando en que se encuentra trabajando el usuario. La tecla EJEC sirve para terminar el comando normalmente. Las teclas + y - sirven para avanzar o retroceder una localidad o un registro al estar examinando/modificando memoria o registros.

Page 12: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

12

13. Despliegue de cristal líquido

Figura 12 Despliegue de cristal líquido.

Para examinar el estado del sistema se emplea un despliegue de 40 caracteres alfanuméricos en

dos hileras de 20 posiciones cada una. En la siguiente figura se muestra como se conecta el dispositivo LCM2020 que permite desplegar la información sobre el sistema. El LCM requiere de una inicialización y cuenta con varios modos de operación. 14. Conectores de expansión y de E/S

Figura 13 Conectores para expansión y puertos paralelos.

El sistema contará con posibilidad de ser expandido, para poder agregarle más memoria o más puer-

tos mediante un conector de expansión.

También cuenta con doce líneas de E/S usando un conector de entradas y salidas paralelas.

Además, contará con una pequeña área para alambrar dentro de la tarjeta principal.

Page 13: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

13

HOJA RAIZ Revisado: Octubre 18, 2003 COMPUTADORA DIDACTICA Revisión: Lista de Materiales Octubre 18, 2003 12:24:07

Item Cantidad Referencia Parte

1 1 BZ1 Zumbador 2 1 C1 1µF 3 2 C21, C27 10n 4 1 C24 .18 5 1 C25 1.8 6 1 JP3 Header 17x2 7 1 JP4 Header 12x2 8 1 R1 10K 9 1 R’ 470

10 1 R? 330 11 1 U1 8284A-1 Generador de reloj 12 1 U2 8088MIN Microprocesador 13 3 U3 74HCT245 Tranceptor octal 14 1 U4, U5, U6 74HCT573 Cerrojo de 3 estados 15 1 U7 82C59A Controlador de interrupción 16 1 U8 74HCT367 Buffer de 3 estados 17 1 U9 74HC00 NAND de 2 entradas 18 1 U10 74ACT138 Codificador 3 a 8 19 1 U11 74HC04 Inversor séxtuple 20 1 U12 8255A-5 Interfaz programable 21 1 U13 82C54 Contador / Temporizador 22 1 U14 74HCT32 OR de 2 entradas 23 2 U15, U16 27C64 EPROM de 8kx8 24 1 U17 74HC20 NAND de 4 entradas 25 1 U18 74HC4075 NOR de 3 entradas 26 1 U19 6164 SRAM de 8kx8 27 1 U20 USART 8251 28 2 U21, U28 74LS74 Flip Flor tipo D 29 1 U25 74C923 Controlador teclado 30 1 U22 LCM2020 Display C. líquido 31 1 U23 7438 NAND colector abierto 32 2 U24,U26 SN75150 intefaz RS232 33 1 U27 SN75154 inter RS232 31 1 Y1 4.9 MHz Cristal

Figura 14 Usar una fuente de PC para el prototipo.

15. El controlador programable de interrupciones 8259A

Este dispositivo maneja hasta ocho interrupciones vectorizadas, bajo un esquema de priorida-des, para la CPU. Se pueden conectar hasta ocho 8259A's en cascada, para obtener 64 interrupciones

Page 14: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

14

con niveles de prioridad, sin necesidad de circuitería adicional. El dispositivo no necesita señal de reloj para sincronizarse con la CPU. En la figura se ofrece un diagrama a bloques del controlador.

Figura 15 Diagrama a bloques del PIC.

Diagrama a bloques del 8259A

El controlador programable de interrupciones funciona como un administrador en un sistema cu-

yo ambiente es manejado a base de interrupciones. Acepta peticiones provenientes de equipos periféri-cos (como el teclado, el manejador de disquete, las comunicaciones, etc.), determina cual de las inte-rrupciones tiene la mayor prioridad, compara dicha prioridad con la prioridad de la interrupción que está siendo atendida y, si es aún mayor, envía una interrupción a la CPU.

La rutina de servicio es el módulo del programa asociado a una interrupción particular, por lo que el 8259A debe informar al 8088 de cual interrupción se trata. Eso lo hace enviando a la CPU un byte durante la secuencia de reconocimiento (aceptación) de interrupción.

En referencia a la figura vista, se tiene el registro de peticiones, IRR, que registra todos los ni-veles de interrupción que solicitan servicio en el momento actual. El registro de servicio, ISR, que indi-ca los niveles de interrupción en servicio, es decir aquellos cuya rutina de servicio está en ejecución. El arbitro de prioridades determina los niveles de prioridad de los bits en "1" del registro IRR. La más alta prioridad es elegida y el bit correspondiente es puesto a "1" en el registro ISR, durante el ciclo de bus INTA-.

El registro de enmascaramiento de interrupciones, IMR, contiene los bits que inhiben indivi-dualmente a los niveles de interrupción. El registro IMR opera sobre el registro IRR. La inhibición de una entrada de alta prioridad no afecta a las inferiores.

La señal de interrupción, INT, se conecta directamente a la CPU. INT es activa alta, es decir, se pone a "1" para indicar una interrupción.

La señal de reconocimiento de interrupción, INTA-, es sensada por la lógica de control de 8259A para saber si la activación de INT ha sido contestada positivamente por el 8088, y que se ha ini-ciado el ciclo INTA-, de reconocimiento de interrupción.

La lógica de control de lectura escritura se emplea para aceptar los comandos del 8088, me-

Page 15: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

15

diante instrucciones OUT, que se almacenan en los registros ICWs, palabras de inicialización, y los OCWs, palabras de operación que salvan los diferentes formatos de control. Esta lógica también trans-fiere el estado del 8259A hacia el bus de datos local.

La señal de selección del dispositivo, CS-, indica en su estado activo (bajo) al dispositivo que se hará una lectura o escritura de sus registros. La escritura se indica activando la señal WR-, mientras que una lectura se indica activando la señal RD-. Las señales WR- y RD- son activas bajas. La entrada A 0 se combina con WR- o RD- para escribir comandos a los diferentes registros de comando, o bien para leer alguno de los registros de estado.

La lógica para cascada salva y compara las IDs de todos los 8259As usados en el sistema. Tie-ne tres terminales (CAS0-2) asociadas a esta lógica son salidas cuando el 8259A es definido como maestro, y son entradas cuando es definido como esclavo. El 8259A que es maestro debe enviar por dichas señales la ID del esclavo cuya interrupción será servida. El esclavo seleccionado de este modo debe responder al ciclo de INTA- iniciado por la CPU, y poner en el bus de datos el vector de la inte-rrupción. Dicho vector se le preprograma por la CPU.

Programación del 8259A

El 8259A acepta dos tipos de comando desde el 8088: palabras de inicialización, ICWs, antes de que empiece la operación normal, y que son de 2 a 4 bytes, enviados al 8259A en ciclos de escritura de E/S; y palabras de comandos de operación, OCWs, que colocan al 8259A en uno de los siguientes mo-dos de operación:

a.- Modo completamente anidado b.- Modo de prioridad rotatoria c.- Modo de inhibición especial d.- Modo encuesta (desactiva a INT)

Un comando con A 0 = 0 y D 4 = 1 es interpretada por el 8259A como el inicio de la secuencia de

inicialización. La palabra ICW1 arranca la inicialización y automáticamente se limpia el registro de inhibi-ción IMR, y limpia las peticiones existentes. Ver siguiente figura

Page 16: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

16

Las palabras de comando de operación, OCWs, pueden enviarse al 8259A después de que éste ha

sido inicializado. Mediante los comandos de operación se puede cambiar el modo de operación del contro-lador de interrupciones, según muestra la figura:

Page 17: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

17

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • • • A0 D7 D6 D5 D4 D3 D2 D1 D0 • • ••••••••••••••••••••••••••••••••••••• MASCARA DE INT. • • • 1 •M7 •M6 •M5 •M4 •M3 •M2 •M1 •M0 • •••••••••••• • • ••••••••••••••••••••••••••••••••••••• •1: INHIBE • • • OCW1 ••••••••••••••••••••••••••••••••••0: PERMITE• • • •••••••••••• • • • • A0 D7 D6 D5 D4 D3 D2 D1 D0 NIVEL IR A AFECTAR • • ••••••••••••••••••••••••••••••••••••• ••••••••••••••••••• • • • 0 • H •SL •EOI• 0 • 0 •L2 •L1 •L0 • • 0 1 2 3 4 5 6 7 • • • ••••••••••••••••••••••••••••••••••••• ••••••••••••••••••• • • OCW2••• • • • • •••••••0•1•0•1•0•1•0•1•• • • • ••••• • • •••••••••••0•0•1•1•0•0•1•1•• • • • • ••••••• •••••••••••••••0•0•0•0•1•1•1•1•• • • • • • ••••••••••••••••••• • • • • • ••••••••••••••••••• • • ••••••••••••••••••••••••••••••••••••••••••••••••••••• • • • 0•0•1• COMANDO EOI NO ESPECIFICO •• FIN DE • • • • 0•1•1• COMANDO EOI ESPECIFICO •• INTERRUP. • • • • 1•0•1• ROTAR EN MODO EOI NO ESPECIF •• ROTACION • • • • 1•0•0• ROTAR EN MODO EOI AUTO (PONE)) • AUTOMA- • • • • 0•0•0• ROTAR EN MODO EOI AUTO (QUIT •• TICA • • • • 1•1•1• ROTAR EN EOI ESPECIFICO * •• ROTACION • • • • 1•1•0• PONER PRIORIDAD * •• ESPECIF. • • • • 0•1•0• NO OPERACION * COMBINA CON L2-0 • • • ••••••••••••••••••••••••••••••••••••••••••••••••••••• • • LEE REGISTROS• • A0 D7 D6 D5 D4 D3 D2 D1 D0 ••••••••••••••••••••• • • ••••••••••••••••••••••••••••••••••••• •NO ACCION•LEE •LEE • • • • 0 • 0 •ESM•SMM• 0 • 1 • P •RR •RIS• • •IRR •ISR • • • ••••••••••••••••••••••••••••••••••••• ••••••••••••••••••••• • • OCW3 •••••• • • • •••••• 0 • 1 • 0 • 1 • • • • •••••••• • •••••••••• 0 • 0 • 1 • 1 • • • •••••••••••••••••••••••• ••••••••••••••••••••• • • • 0 0 NO ACCION •• •••••••••••••••••• • • • 0 1 NO ACCION •••••••••••••••1:MODO ENCUESTA • • • • 1 0 QUITA MASC ESP. • •0: MODO NORMAL • • • • 1 1 PONE MASCARA ESP• •••••••••••••••••• • • •(MASCARA ESPECIAL) • (POLL) • • ••••••••••••••••••••••• • • • •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

Formato de las palabras de comando de operación.

El modo completamente anidado consiste en que cuando la señal INT es reconocida la petición de más alta prioridad es elegida y su vector es puesto en el bus de datos. Además, el bit que corresponde al nivel servido se pone a "1" en el registro de interrupción en servicio, ISR. Dicho bit permanece puesto hasta que el microprocesador envía el comando EOI (fin de interrupción), justamente antes de finalizar la rutina de servicio o, si el bit AEOI (fin de interrupción automático) está activo, hasta el último filo del postrer pulso re-cibido en INTA. Mientras el bit de ISR esté puesto todas las interrupciones de igual o menor prioridad esta-rán inhibidas, mientras que las de mayor, podrán generar una interrupción (siempre que la bandera IF haya sido habilitada por software).

Al ser inicializado, el 8259A tiene la más alta prioridad en IR0, y la más baja en IR7.

El comando de fin de interrupción EOI lo envía la CPU antes de terminar la rutina de servicio al controlador de interrupciones. El comando EOI debe ser enviado dos veces cuando hay varios 8259As en cascada, una vez al maestro, u una vez al esclavo implicado.

Page 18: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

18

Existen dos formas del comando EOI: específico y no específico. El primero consiste en que la CPU determina cual bit del registro ISR poner a "0"; mientras que en el no específico, el comando EOI es enviado al 8259A el que automáticamente pondrá a "0" el bit de más alta prioridad en servicio.

El fin automático de interrupción ocurre cuando el 8259A opera en el modo AEOI. En este caso no se requiere recibir el comando EOI desde la CPU, sino que el bit de ISR se regresa a "0" al recibir el último filo de la secuencia de reconocimiento de interrupción, por la terminal INTA.

La rotación automática de prioridades se usa cuando se quiere dar la misma prioridad a todos los dispositivos conectados al sistema. En este modo, un dispositivo después de ser servido recibe la prioridad más baja, así que un dispositivo que solicita servicio deberá esperar, en el peor de los casos, hasta que cada uno de los otros siete dispositivos es servido una vez.

La rotación específica de prioridades puede ser usada por el programador para fijar la prioridad más baja, lo que fija el resto de las prioridades, por ejemplo si se fija a IR4 como la más baja, IR5 será la más alta, seguida por IR6, etc.

Cada petición de interrupción puede ser inhibida individualmente por el registro de enmascara-miento de interrupciones IMR, programado a través de OCW1. Cada bit en IMR inhibe un canal de inte-rrupción si está en "1". El bit 0 inhibe a IR0, el bit 1 a IR1, y así sucesivamente.

El modo de enmascaramiento especial se usa cuando se desea habilitar a interrupciones de me-

nor nivel que la que se está ejecutando. En este caso el nivel que se ejecuta queda inhabilitado y todos los demás que no estén inhabilitados por el IMR, quedan habilitados, por lo que una interrupción de nivel inferior puede interrumpir.

El modo de encuesta no usa la señal INT o la CPU tiene la bandera IF desactivada, lo que inhabilita las interrupciones. El servicio a los dispositivos la hace la CPU mediante el comando Poll.

El 8259A responde a dicho comando, durante el ciclo de lectura subsiguiente, con el canal que ne-cesita ser servido, si procede.

La lectura del estado del 8259A consiste en leer los registros IMR, ISR e IRR. El primero, el registro de enmascaramiento, puede ser leído mediante OCW1, pero ejecutando un ciclo de lectura, con la instruc-ción IN. El registro ISR, puede ser leído cuando, antes del consabido pulso de lectura, se le envía un co-mando OCW3 con RR=1 y RIS=1. Lo mismo se hace para IRR, pero aquí se usa RR=1 y RIS=0.

Los modos de filo y nivel de disparo se eligen en ICW1 y fijan si las interrupciones se generan cuando las IRs tienen una transición de bajo a alto, en el modo de filo; o generan interrupciones por estar en el nivel alto, en el modo de nivel. En ambos casos, las entradas IR deben permanecer en alto hasta después del primer filo negativo en INTA. En el modo de nivel, la petición debe ser removida antes de que se reciba el EOI, para evitar que se genere una segunda interrupción.

El modo especial completamente anidado se usa cuando en el sistema existen uno o varios 8259As esclavos y se desea conservar las prioridades dentro de cada esclavo. En este caso, el modo com-pletamente anidado debe programarse en el maestro, con ICW4.

Cuando una petición de interrupción proveniente de cierto esclavo está en servicio, dicho esclavo no queda bloqueado en la lógica de prioridad del maestro y cualquier interrupción posterior de mayor prioridad que la que está en servicio, proveniente del mismo esclavo será atendida. (En el modo normal, un esclavo es enmascarado cuando una de sus interrupciones es atendida).

Antes de terminar la rutina de servicio, el software debe indagar si la rutina en servicio era la única de ese esclavo. Eso se hace enviando a tal esclavo un EOI no específico y leer a continuación su ISR. Si todos los bits son "0", enviar un EOI no específico al maestro, también. Si hay algún "1", no enviar EOI algu-no.

Page 19: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

19

MODO EN CASCADA

El 8259A puede conectarse fácilmente en cascada hasta un máximo de ocho esclavos, para tener

hasta 64 niveles de prioridad. El maestro controla a los esclavos a través de las tres líneas CAS, que funcio-nan como selectoras de esclavo, durante la secuencia INTA-, de reconocimiento de interrupción. En la configuración en cascada las salidas INT de los esclavos se conectan a las entradas IR del maestro. Ver próxima figura Cada 8259A del sistema debe seguir una inicialización separada y pueden programarse para trabajar en modos diferentes. El decodificador de direcciones de E/S debe generar señales de selección separadas para los diferentes 8259As.

Page 20: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

20

Page 21: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

21

Page 22: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

22

Page 23: IPN - ESIME ZACATENCO COMPUTACIÓN V DISEÑO DE UNA

Profr. Salvador Saucedo

23