Make your own free website on Tripod.com

ARQUITECTURA EXTERNA DEL MICROPROCESADOR 8088


 

Bus de dirección, datos y control.

En el 8088 el bus de dirección, datos y control se divide en tres partes:

a. Los 8 bits menos significativos de dirección/datos (AD0 – AD7) Multiplexados entre direcciones y datos.

b. Los 8 bits centrales (A8 – A15) No multiplexados.

c. Los 4 bits más significativos (A16 – A19) Multiplexados entre direcciones y señales de control.

Se puede trabajar con los buses multiplexados o demultiplexados.

AD7 – AD0, bus de dirección y datos: Están multiplexadas entre buses de direcciones (T1) y de datos (T2, T3, Tw, T4) y contienen los 8 bits menos significativos: Permanecen en estado de alta impedancia durante el reconocimiento de interrupción y de solicitud de bus.

A15 – A8, bus de dirección: Tiene la mitad superior de las direcciones (T1, T2, T3, Tw, T4), no están multiplexadas y permanecen en alta impedancia durante el reconocimiento de interrupción y de solicitud de bus.

A19 – A16 / S6 – S3, bus de dirección y de estatus: Están multiplexadas entre los 4 bits más significativos de direcciones (T1) y  status (T2, T3, Tw, T4)

En el caso I/O durante T1 permanecen en cero.

S6 siempre está en 0.

S5 indica la condición de la bandera de interrupción IF.

S3 y S4 indican a cuál segmento se está accediendo.

RD, lectura: Cuando está en 0 (T2, T3, Tw) indica que el bus de datos puede recibir datos. Se garantiza que durante T2 estará en alto hasta que el bus del 8088 quede en alta impedancia.

Permanece en alta impedancia durante el reconocimiento de solicitud de bus. READY, listo. Es entrada y cuando la activamos genera pulsos de reloj (Tw) para prolongar el ciclo de bus

INTR, petición de interrupción: Entrada que se muestra en el último ciclo de reloj de cada interrupción para determinar si el 8088 debe entrar en una operación de reconocimiento de interrupción. Puede ser enmascarada. Se sincroniza y es activa en alto.

TEST, prueba: Es una entrada que la usa la instrucción WAIT. Si TEST=0, WAIT funciona como una NOP. Si TEST=1, WAIT espera a que TEST pase a 0. Se usa para sincronizar con dispositivos externos.

NMI, interrupción no enmascarable: Es una entrada activa por flanco positivo que causa una interrupción del tipo 2. La interrupción se cumple al final de la instrucción actual y está internamente sincronizada.

RESET, restauración: Para restauración debe permanecer en alto por lo menos 4 ciclos de reloj y se activa en el flanco negativo.

CLK, reloj: Entrada de reloj que debe tener un ciclo de trabajo de 33%.

VCC, alimentación: 5V ± 10%, referencia para la lógica digital.

GND, tierra: 0V, referencia para la lógica digital.

MN/MX, modo mínimo, modo máximo.

El 86/88 va a poder trabajar en uno de dos modos posibles definidos como: Modo Máximo y Modo Mínimo. El modo a seleccionar dependerá de la aplicación concreta que se vaya a implementar.

Modo Mínimo: Aplicaciones simples para pequeños sistemas; se comporta similar a un Microprocesador de 8 bit pero de 16 internamente.

Modo Máximo: Aplicaciones más complejas, genera casi todas las señales compatibles para la implementación de la norma Multibus. Permite soportar varios procesadores en el Bus. El CPU no puede generar directamente las señales de control del sistema y se auxilia del controlador de Buses 8288.

Existe un terminal denominado MN/MX que selecciona el modo de trabajo.

Si MN/MX = 1 => Modo Máximo.

Si MN/MX = 0 => Modo Mínimo.

IO/M, línea de estados de memoria o E/S: Indica si la dirección es de memoria o de I/O. Permanece en alta impedancia durante un reconocimiento de solicitud de bus.

WR, escritura. Es una salida que indica que el 8088 va a escribir a memoria o a E/S.

Se activa (bajo) durante T2, T3 y Tw de un ciclo de escritura e indica que el bus contiene datos válidos.

Permanece en alta impedancia durante un reconocimiento de solicitud de bus.

INTA, reconocimiento de interrupción.

Salida que se activa (bajo) durante T2, T3 y Tw de cada ciclo de reconocimiento de interrupción. Es una respuesta a la entrada INTR y se usa como pulso de lectura en un ciclo de reconocimiento de interrupción.

ALE, habilitación del cerrojo de dirección: Salida que indica (estando en alto durante la parte baja del reloj de T1) que en el bus hay una dirección válida. ALE nunca queda en estado de alta impedancia.

DT/R, transmite/recibe datos: Indica que el bus de datos transmite datos (DT/R=1) o los recibe (DT/R=0) Esta señal es necesaria para habilitar los circuitos de acoplamiento del bus de datos externo.

Permanece en alta impedancia durante un reconocimiento de solicitud de bus.

DEN, habilitación de datos.

Salida que se emplea para habilitar los circuitos de acoplamiento del bus de datos

externo.

Se activa en bajo durante cada acceso a memoria y ciclos de inte-rrupción.

Para lectura o ciclos INTA, se activa desde la mitad de T2 hasta la mitad de T4.

Para ciclos de escritura, se activa desde el comienzo de T2 hasta el medio de T4.

Permanece en alta impedancia durante un reconocimiento de solicitud de bus.

HOLD, solicitud de acceso directo a memoria.

Si HOLD=1, el 8088 deja de ejecutar el programa actual y lleva su bus de direcciones, datos y control a alta impedancia.

Si HOLD=0, el 8088 ejecuta los programas normalmente.

Requiere sincronización externa.

HLDA, respuesta a la petición de acceso directo a memoria: Salida que indica (HLDA=1) que el 8088 ha concedido los buses (es la respuesta del 8088

a la entrada HOLD)

SSO, línea de estatus: Esta señal de salida se combina con IO/M y DT/R para decodificar la función del ciclo de bus actual.

El ciclo de bus consiste de al menos 4 ciclos de reloj, los cuales se denominan

T1, T2, T3 y T4, como se muestra en la siguiente Figura

M IO

Las direcciones son emitidas durante T1 y la transferencia de datos ocurre entre T3 y T4.

En T1: Se envían las direcciones y se proporcionan las señales de control ALE, DT/ R y IO/M.

En T2: Se proporcionan las señales DEN, RD (lectura) o WR (escritura) En el caso de escritura aparecen los datos que se van a escribir en el bus de datos. Al final de T2 se muestra la señal READY.

En T3: Se da tiempo a la memoria para acceder a los datos. En el caso de que sea un ciclo de lectura el bus de datos se muestra al final de T3.

En T4: Se desactivan todas las señales de control para prepararse para el siguiente ciclo de bus. En este momento, el flanco positivo de WR transfiere datos a la memoria, los cuales se activan y escriben cuando la señal WR retorna a 1.

Ciclo de escritura

Empieza con la aparición de la señal ALE y la emisión de las direcciones. La señal

IO/M se suministra para indicar si es a memoria o a I/O.

En T2: Después de la emisión de las direcciones, el 8088 emite el dato a escribir en la locación direccionada. Este dato permanece válido al menos hasta la mitad de T4.

Durante T2, T3 y Tw, el 8088 envía la señal de control de escritura (WR) que se pone en estado activo en el comienzo de T2. Los datos se escriben en la memoria en el flanco positivo de WR.

La señal de RD en la lectura está un poco más retrasada que la de WR en la escritura para dar tiempo a que el bus quede en alta impedancia.

Ciclo de lectura

Comienza en T1 con la aparición de la señal ALE, cuyo flanco negativo se usa para cerrojar las direcciones, que son válidas en el bus de direcciones/datos (AD0 – AD7)

Las líneas de direcciones A8 – A15 no necesitan ser cerrojadas ya que permanecen válidas en todo el ciclo de bus.

De T1 a T4, la señal IO/M indica si es una operación a memoria o a un dispositivo de E/S.

En T2 las direcciones se sacan del bus de direcciones/datos y el bus se pone en alta impedancia (AD0 – AD7)

La señal de control de lectura (RD) aparece en T2 y causa que el dispositivo direccionado habilite su bus de datos.

Un tiempo después, debe estar disponible el dato válido sobre el bus.

Cuando el 8088 retorna la señal RD a un nivel alto, el dispositivo direccionado pondrá en alta impedancia su salida de datos.

CIRCUITO PARA GENERAR EL PULSO DE RELOJ.

Además del circuito para la señalización del μP que propone el fabricante (8284A), que se utiliza para RELOJ y RESET, podemos utilizar otros circuitos, uno de ellos, se propone a continuación:

Tomamos de la hoja de especificaciones del microP la frecuencia de operación y el % del ciclo de trabajo. Para bajas velocidades, podemos tomar 50% como ciclo de trabajo; como la oscilación la determina la red RC, proponemos el valor de C y

calculamos R, ajustando el valor obtenido al valor comercial próximo.

Por lo general, usamos inversores para este ejemplo de cálculo: tomamos una frecuencia igual a 2MHz, como inversor un schmitt trigger MC74HC14AC y como capacitor uno cerámico de 0.001μF. El circuito a utilizar se muestra a continuación:

Para el cálculo de la resistencia R, se consideran los datos anteriores y los correspondientes al schmitt trigger, los cuales se obtuvieron de las tablas de referencia y son: VT+ = 2.7V VCC = 4.5V VT- = 1.8V

La fórmula de la frecuencia está dada por:

Sustituyendo valores:

Despejando a R y sustituyendo los valores de f y C:

CIRCUITO PARA GENERAR LA SEÑAL DE RESET.

El μP requiere que el tiempo de duración mínimo en esta terminal sea 50 μs. Por lo tanto, podemos utilizar el circuito integrado 8284A de la familia Intel que genera

el pulso de reloj y el de reset o bien, hacerlo utilizando un inversor y una red RC que garantice el tiempo de duración de 50 μs.

Debemos diseñar un circuito RC para garantizar al menos 50 μs de duración con un disparador schmitt trigger (inversor) considerando los parámetros VT+ y VT- de dicho inversor.

En el diseño ocuparemos las fórmulas del efecto transitorio, considerando los datos del schmitt trigger como: VT- = 1.8V = VC y VCC = 5V.

Para la red RC con disparador Schmitt, se tiene el siguiente desarrollo:

Proponemos C = 0.1 μF y despejando a R:

El circuito para restauración es:

CIRCUITO PARA DEMÚLTIPLEXAR EL BUS DE DIRECCIÓN DEL BUS DE DATOS Y DE CONTROL.

Demultiplexaje de canales.

El canal de dirección y de datos del 8086/8088 está multiplexado para reducir el número de terminales requeridas en el circuito integrado. Desgraciadamente, esto aumenta el trabajo del diseñador con la tarea de múltiplexar la información contenida en estas terminales.

¿Por qué no dejar multiplexados los canales? La memoria y la E/S requieren que la dirección siga siendo válida y establece un ciclo de lectura o escritura. Si los canales están multiplexados hay cambios de dirección en la memoria y en la E/S lo que hace leer o escribir datos en las localidades erróneas.

Todos los sistemas de computadora tienen tres canales: 1) Un canal de direcciones que proporciona la dirección de memoria al número de puerto para la E/S; 2) un canal de datos que transfiere los datos entre el microprocesador y la memoria y la E/S en el sistema y 3) un canal de control que aplica señales de control en la memoria y E/S lo que hace leer o escribir datos en localidades erróneas.

Demultiplexaje del 8088.

En la Figura siguiente se muestra el microprocesador 8088 y los componentes requeridos para demultiplexar sus canales. En este caso, se utilizan dos registros transparentes 74LS573 para demultiplexar las conexiones AD7-AD0 del canal de direcciones y datos en las terminales multiplexadas A19 y S6-A16/S3.

Estos registros, con multivibradores tipo D que son como alambres, cuando la señal de habilitación (ALE) de dirección se vuelva un 1 lógico transfiere las entradas a las salidas.

Después de un corto tiempo, ALE regresa al 0 lógico, lo cual hace que los registros recuerden las entradas en el momento del cambio a un 0 lógico. En este caso, ~recuerden~ de A7-A0 en el registro inferior y a A19 hasta A16 en el registro superior.

Esto produce un canal de direcciones independientes para las terminales A19 hasta A0 que permiten que el 8088 direccione 1MB de espacio de memoria. El hecho de que el canal de datos esté separado permite conectarlo con cualquier dispositivo periférico de 8 bits de memoria.

En la Figura siguiente se ilustra un 8088 con los tres canales multiplexados: Direcciones (A19 hasta A0 y BHE), el de datos (D15 hasta D0) y el de control (IO/M, RD y WR)

Demultiplexaje del 8086.

El 8086 requiere canales separados de direcciones, datos y control. La diferencia principal es el número de terminales multiplexadas. En el 8088 sólo están multiplexadas AD7 hasta AD0, A19 y S6 hasta A16 y S3. En el caso del 8086, las terminales multiplexadas incluyen AD15-AD0 y A19 y S6 hasta A16 y S3 BHE/S7. Hay que demultiplexar todas estas señales.

Para el 8086, el circuito es casi idéntico al de la Figura siguiente excepto que se agregará un 74LS573 adicional para demultiplexar las terminales de direcciones/datos del canal AD15-AD8 y BHE/SE7, se agregó a la entrada del 74LS573 de la parte superior para seleccionar el banco alto en el sistema de memoria de 16 bits del 8086. Aquí la memoria y el sistema de E/S ven al 8086 como un dispositivo con un canal de direcciones o de 20 bits (A19-A0), un canal de datos de 16 bits (D15-D0) y un canal de control de tres líneas (IO/M, RD y WR)

El sistema acoplado.

Si hay más de 10 cargas lógicas conectadas en cualquier terminal de un canal, hay que acoplar la totalidad del sistema 8086 o del 8088. Las terminales demultiplexadas ya están acopladas con los registros transparentes 74LS573, que se han diseñado para manejar los canales de alta capacitancia que se encuentran en los sistemas de microcomputadoras. Se han aumentado las corrientes de salida de los registros a fin de que se puedan manejar más unidades de carga TTL; un 0 lógico de salida proporciona hasta 32mA de disipación de corriente y una salida en 1 lógico proporciona hasta 5.2mA de corriente.

Una vez que hemos demultiplexado el bus de dirección del de datos y control, podemos conectar bloques de RAM y/o PROM y puertos de E/S paralelo o tarjetas conteniendo varios puertos de E/S paralelos. También podemos conectar puertos seriales, tal como se describió en el tema de memorias y E/S.

 

REFERENCIA BIBLIOGRAFICA

L. Urieta  y P. Fuentes (2002). Arquitectura del Microprocesador 8088. [Documento en línea]. Disponible: http://azul2.bnct.ipn.mx/~computacion5/Arquitectura%20del%20microprocesador/microprocesador_8088.pdf. [Consultada: 2005, Noviembre 23]

 

 

 


Web diseñada y Administrada por: Irlenys Tersek (Ingeniero Electrónico en Computación)
E-mail: irlenys@hotmail.com, irlenyst@yahoo.com,  irlenystersek@cantv.net

Fecha y Hora de Actualización:17/12/2005 05:56:26 p.m.