Download Electrónica Digital III MICROPROCESADOR 8085

Document related concepts
no text concepts found
Transcript
Electrónica Digital III
MICROPROCESADOR 8085
1. Descripción General
El microprocesador 8085 fabricado por Intel, con tecnología MOS canal N, presenta una
versión mejorada de su predecesor el up 8080, algunas de las características introducidas
por Intel en este up, fueron mantenidas en posteriores diseños de up de 16 y 32 bits (
como el 8086, 80286, etc.).
Si bien desde el punto de vista de programación el up 8085 utiliza las mismas
instrucciones que el 8080, salvo dos específicas del 8085, que le permiten manejar el
hardware adicional que este up posee. Desde el punto de vista del hardware el avance
entre el 8080 y el 8085 fue notable.
Con anterioridad a su aparición un sistema de microcómputo estaba compuesto como
mínimo por más de una docena de C.I. entre dispositivos LSI, MSI y SSI. El gran
adelanto que experimentó la fabricación de C. I. permitiendo integrar en una pastilla una
gran cantidad de funciones, hizo que un sistema mínimo basado en el 8085, pudiera
estar compuesto por solo 3 chips, el 8085 y dos circuitos integrados de la familia,
diseñados para acoplarse con el, como son: el 8155 que posee 2048 bits de RAM
organizados en 256 bytes, tres puertos de entrada /salida, dos de 8 bits y el restante de 6
bits que puede usarse como puerto o bien como línea de control para los dos puertos
principales, además este dispositivo posee un temporizador o timer.
El otro chip es el 8355 o bien el 8755, el primero con 2K bytes de ROM y el segundo
con 2K bytes de EPROM y ambos con dos puertas de 8 bits c/u para entrada/salida.
En el up 8085, Intel integró además de la arquitectura básica del 8080, el generador de
clock, el controlador del bus, potenció la capacidad de interrupciones y agregó una
entrada y salida serie en el mismo chip.
Electrónica Digital III APUNTE 8085 Ing. Carlos G. Gil, Ing. Gustavo Ensinck
1
Electrónica Digital III
Diagrama en bloques de la arquitectura de intel 8085
Las principales diferencias entre el up 8080 y el 8085 son las siguientes:
a- El generador de pulsos de reloj está integrado en el 8085 y solo se necesita conectar
un cristal o una red RC a los pines 1 y 2 para estabilizar la frecuencia de oscilación,
elimina el uso del 8224 que era necesario en el 8080.
b- Controlador y adaptador del bus incorporado, no es necesario el uso del 8228 como
en el 8080.
c- Alimentación única de 5 volts en vez de +5, -5, y 12 del 8080.
d- Cuatro líneas adicionales de pedido de interrupciones, TRAP, RST 7.5, RST 6.5 y
RST 5.5.
e- Dispone de dos líneas para comunicación serie de datos.
f- Bus de control completo disponibles en los pines del 8085.
g- Bus de direcciones parte baja multiplexado en el tiempo con el bus de datos,
sincronizado con la señal de control ALE.
h- Dos instrucciones adicionales a las del 8080 RIM y SIM que permiten leer y escribir
el registro de máscara de interrupciones.
Electrónica Digital III APUNTE 8085 Ing. Carlos G. Gil, Ing. Gustavo Ensinck
2
Electrónica Digital III
2. Descripción de los pines del 8085
Pin 1,2 X1, X Entradas de reloj. A estos pines debe conectarse un cristal o una red RC
para excitar el oscilador interno. El pin X1, puede usarse como entrada de un
reloj externo implementados con compuertas. La frecuencia de funcionamiento
del procesador, se obtiene dividiendo por dos la frecuencia de entrada en todos
los casos.
Pin 3 RESETOUT Salida de reset. Se activa cuando la CPU realiza un ciclo de reset,
es decir RESETIN está activa, esta señal está sincronizada con el reloj interno de
la CPU, por lo tanto su duración será una cantidad entera de períodos de reloj.
Puede ser utilizada para inicializar los demás dispositivos que componen el
sistema de microcómputo y que necesiten de una señal de inicialización.
Pin 4 SOD Línea de salida de datos serie(Serial Ouput Data) Su nivel dependerá del
estado del bit 7 del acumulador cuando se ejecutó la última instrucción SIM.
Pin 5 SID Línea de entrada de datos serie (Serial Input Data) El estado de este pin
será transferido al bit 7 del acumulador cuando se ejecute la instrucción RIM.
Pin 6 TRAP Es una línea de pedido de interrupción no enmascarable, se evalúa en el
mismo momento que los otros pedidos de interrupción, es de máxima prioridad y
activa por flanco.
Pin 7,8 y 9 RST 7.5, 6.5 y 5.5 Entradas de pedido de interrupción individualmente
enmascarables, de mayor prioridad que la INT. Cada una de
ellas tiene una
dirección asociada para su rutina de servicio.
Electrónica Digital III APUNTE 8085 Ing. Carlos G. Gil, Ing. Gustavo Ensinck
3
Electrónica Digital III
Pin 10 INTR Entrada de interrupción vectorizada, funciona en forma similar a la
INT del 8080
Pin 11 INTA Reconocimiento de interrupción (Interrup Acknowledge) Se utiliza como
reconocimiento a la interrupción vectorizada INTR.
Pin 12-19 AD0 -AD7 Bus de datos y direcciones multiplexado (Multiplexed
Address/Data). En estos 8 bits durante el primer ciclo de reloj de un ciclo de
máquina aparece la dirección baja de memoria o los 8 bits de una dirección
de una puerta de entrada/salida. Durante los dos ciclos de reloj siguientes se
convierte en bus de datos bidireccional. En los ciclos de máquina
correspondientes a Hold y Halt estas líneas se ponen en 3° estado.
Pin 21-28 A8 - A15 Bus de direcciones (Address Bus). Salida, en este bus aparecen
los 8 bits mas significativos de una dirección de memoria o los 8 bits de una
dirección de entrada/salida. Estas líneas se ponen en alta impedancia durante los
ciclos de HOLD y HALT.
Pin 29 y 33 S0 y S1 Líneas de salida que indican el tipo de ciclo de máquina que se
está ejecutando, estas señales son válidas al comienzo de cada ciclo de máquina.
La señal S1 puede considerarse como señal de lectura/escritura , adelantada en el
tiempo con la señal R/W.
Las posibles combinaciones son:
S1
S0
0
0
Ciclo de HALT
0
1
Escritura en memoria o periférico
1
0
Lectura de memoria o periférico.
1
1
Ciclo de búsqueda de un código de operación (lectura)
Pin 30 ALE Señal de salida para activar el latch de direcciones (Address Latch
Enable). Esta señal se activa durante el primer ciclo de reloj de un ciclo de
máquina, permitiendo que los dispositivos conectados al bus de direcciones
/datos, capturen la dirección de memoria presente en el mismo, el flanco
descendente de ALE puede servir para considerar las líneas de estado de S0
y S1 estables. Esta señal no se pone en alta impedancia.
Pin 31 WR Señal de salida que controla la escritura de datos (write), un nivel activo
en esta línea “0” indica que los datos presentes en el bus de datos deben ser
capturados por la memoria o por la puerta de salida seleccionada. Los datos se
transfieren con el flanco de subida de esta señal. Esta señal esta en alta
impedancia en los ciclos de hold, halt y reset.
Pin 32 RD
Señal de salida, controla la lectura de datos (read), activa en cero, un
nivel activo en este pin, indica que un lugar de memoria o un dispositivo
periférico de entrada seleccionado será leído y que el bus de datos está
configurado como entrada.
Esta señal esta en alta impedancia en los ciclos de hold, halt y reset.
Pin 34 IO/M Señal de salida, indica si la transferencia de lectura o escritura se hacen
Electrónica Digital III APUNTE 8085 Ing. Carlos G. Gil, Ing. Gustavo Ensinck
4
Electrónica Digital III
con memoria o periféricos, cuando está en alto las transferencias son a los
periféricos, y cuando está en bajo las transferencias son a la memoria. Esta señal
aparece al
principio de un ciclo de máquina y se mantiene estable durante
todo el ciclo, ídem a S1 y S2. Esta línea junto con RD y WR se utiliza para
determinar las señales que habilitan la lectura en memoria o periférico y la
escritura en memoria o periféricos.
Esta señal se mantiene en alta impedancia para los ciclos de hold y halt.
Pin 35 READY Señal de listo. Si esta señal esta en alto durante un ciclo de lectura y
escritura indica que la memoria o el periférico esta disponible para enviar o
recibir datos. Si ready se pone en bajo la CPU espera un número entero de ciclos
de reloj hasta que ready se ponga en uno para completar el ciclo de
lectura/escritura.
Esta señal sirve para sincronizar la CPU con dispositivos de I/O o memoria,
cuyos tiempos de acceso sean mayores a los de la CPU.
Pin 36 RESETIN Entrada de inicialización (RESET) pone en cero el contador de
programa y resetea los flip flops de habilitación de interrupciones y de
reconocimiento de hold HLDA. Las líneas de datos y direcciones se mantienen
en alta impedancia durante este estado o ciclo de máquina. Debido a la
naturaleza asincrónica del reset, los registros y flags de la CPU pueden variar su
contenido luego de este estado.
El pin de resetin va a la entrada de una compuerta un disparador de Schmitt, lo
que permite que con una red RC pueda inicializarse el microprocesador en el
encendido.
Pin 37 CLK Salida de reloj. Puede utilizarse como reloj de sistema para sincronizar
las operaciones. La frecuencia de salida es la mitad de la entrada x1.
Pin 38 HLDA Salida de reconocimiento de estado de retención (Hold Acknowledge).
Esta salida indica que un pedido de estado de retención Hold ha sido aceptado
por la CPU y que a partir del próximo ciclo de reloj liberara los buses
colocándolos en alta impedancia, cuando la línea vuelva a su estado inactivo
(bajo), la CPU tomará nuevamente el control de los buses en el ciclo de reloj
siguiente.
Pin 39 HOLD Entrada de petición de retención (Hold). Un valor activo en esta línea
indica que alguna otra unidad inteligente (por ejemplo un contador de DMA),
está solicitando los buses del sistema, la CPU libera el uso de los buses cuando
finalice el ciclo de máquina que está ejecutando aunque podría continuar con
algún procesamiento interno, la CPU aceptará este pedido, activando la línea
HLDA, La CPU colocará el bus de datos y direcciones, como también
las
líneas RD, WR y IO/M en alta impedancia.
Sistema de interrupciones del 8085
El 8085 dispone de cinco líneas de pedido de interrupciones. La tradicional línea de
pedido de interrupción vectorizada INTR cuyo funcionamiento es similar a la INT del
8080, con la única diferencia de que el 8085 la línea de reconocimiento INTA se
Electrónica Digital III APUNTE 8085 Ing. Carlos G. Gil, Ing. Gustavo Ensinck
5
Electrónica Digital III
corresponde con un pin físico de la CPU. Debe tenerse en cuenta también que esta línea
de pedido es la de menor prioridad.
Las cuatro nuevas líneas de pedido de interrupción son RST 5.5, RST 6.5, RST 7.5 y
TRAP, las tres primeras son enmascarables, mientras que la línea TRAP no, este hecho
de ser no enmascarable, implica que ésta línea debe ser activa por flanco, ya que de otra
manera el sistema no podría funcionar.
Las interrupciones no enmascarables se utilizan en caso de máxima prioridad como
podría ser una emergencia producida por una interrupción de la energía de alimentación
del procesador, lo que produciría un pedido de interrupción, la rutina de servicio
asociada debería salvaguardar datos importantes en un medio seguro o bien activar una
fuente auxiliar de alimentación.
Las denominaciones de las otras entradas de interrupciones RST 5.5, RST 6.5 y RST 7.5
aunque su nombre se parece al de las instrucciones de restablecimiento es distinto ya
que no son vectorizadas aunque se podría considerar que cada una de ellas le
corresponde un único vector. El funcionamiento de estas líneas de pedido es el
siguiente:
ante un pedido de algunas de ellas, si está habilitada termina la ejecución de la
instrucción en curso, luego inicia un ciclo de aceptación de la interrupción lo que
comprende 3 tareas.
a- Deshabilita interrupciones.
b- Salvaguarda el PC (dirección de retorno) en la memoria pila (dos ciclos de
máquina de escritura en memoria).
c- Carga en el PC la dirección de bifurcación asociada a la línea de pedido
correspondiente.
En el caso de la interrupción no enmascarable (TRAP) el proceso es similar al descripto
con la salvedad en lo que se refiere al análisis de la habilitación como es de suponer.
Con respecto a las líneas de pedido RST 5.5, 6.5 y 7.5, tienen distinta forma de
funcionamiento, las dos primeras al igual que la INTR o la INT del 8080, son activas
por nivel mientras que la RST 7.5 es sensible por flanco, lo que implica que un simple
pulso en este pin es suficiente para activar un flip flop interno que registrará el pedido,
este biestable permanece activo hasta que la interrupción es atendida, en este caso se
resetea en forma automática, este flip flop puede ser reseteado por el programador
utilizando la instrucción SIM (escritura en la máscara de interrupciones), también se
limpia el FF cuando se resetea el microprocesador atravez de la entrada de reset
RESETIN.
Las interrupciones en el 8085, como en cualquier sistema de interrupción multilínea,
respetan un orden preestablecido de prioridad dado por el fabricante, esto es
fundamental para determinar, en el caso de que mas de un pedido este activo, cual será
atendido primero. Para el caso del 8085 el orden de prioridad es el siguiente: TRAP, (de
mayor prioridad) RST 7.5, RST 6.5, RST 5.5 y la INTR de menor prioridad.
Este orden preestablecido es solo valido en el momento de la competencia entre líneas
cuando una interrupción va a ser aceptada y no priva por ejemplo que una interrupción
por INTR puede interrumpir a la rutina de servicio de la línea RST 6.5 si en esta rutina
se habilitaron las interrupciones.
La entrada TRAP es sensible al flanco y al nivel. La entrada TRAP debe ponerse en
nivel alto y conservarlo hasta ser reconocida. No volverá a ser reconocida mientras no
retorne a nivel bajo y adquiera otra vez el nivel alto. Esto evita cualquier disparo
erróneo por ruido o por fallos lógicos.
Electrónica Digital III APUNTE 8085 Ing. Carlos G. Gil, Ing. Gustavo Ensinck
6
Electrónica Digital III
Al ejecutarse cualquier interrupción (TRAP, RST 7.5, 6.5, 5.5, INTR) se inhiben todas
las interrupciones futuras (excepto las TRAPs) mientras no se habiliten nuevamente
ejecutando una instrucción EI.
La interrupción TRAP es especial, por cuanto inhibe las interrupciones, pero preserva el
status de habilitación de interrupciones precedentes a la TRAP. Ejecutando la primera
instrucción RIM a continuación de una interrupción TRAP se puede determinar si las
interrupciones estaban habilitadas o inhibidas antes de la TRAP. Todas las instrucciones
RIM siguientes proporcionan el status de activación de interrupciones actuales. Si se
ejecuta una instrucción RIM a continuación de INTR o RST 7.5, 6.5, 5.5, se tendrá el
status de activación actual, indicando las interrupciones pendientes que estén
inhabilitadas.
Dirección de las interrupciones
TRAP
RST 7.5
RST 6.5
RST 5.5
INTR
0024H
003CH
0034H
002CH
Idem 8080
Entrada y salida serie
Los pines de entrada y salida serie del 8085, ayudan a minimizar la cantidad de chips en
el diseño de sistemas pequeños, proporcionando un puerto para interfaz en serie. La
instrucción especial RIM transfiere los datos del pin de entrada serie (SID) al bit 7 el
acumulador.
Un solo bit en serie puede aparecer a través del pin de salida serie (SOD) utilizando la
instrucción SIM, el bit que se exterioriza en el pin SOD es el bit 7 del AC siempre y
cuando este en 1 el bit 6 del AC.
Instrucción RIM
La instrucción RIM carga en el acumulador los datos relacionados con las interrupciones
y con la entrada serie. Estos datos contienen la siguiente información:
• El estado actual de la mascara de habilitación de las interrupciones, RST 7.5, 6.5 y
5.5.
• Las interrupciones pendientes (por ejemplo, señales recibidas, pero todavía no han
sido servidas ), en las líneas RST 5.5, 6.5 y 7.5
• Datos de entrada serie
Inmediatamente después de una interrupción TRAP, si se ejecuta una instrucción RIM
como parte de la rutina de servicio, en este único caso, el bit 3 del acumulador es
cargado con la bandera de estado de habilitación de interrupciones (IE) que existía antes
de la interrupción TRAP. Esta operación debe ser realizada siempre a los fines de poder
restituir antes del retorno de la TRAP, el bit de habilitación de interrupciones (IE), en el
estado en que se encontraba previo a su activación.
Electrónica Digital III APUNTE 8085 Ing. Carlos G. Gil, Ing. Gustavo Ensinck
7
Electrónica Digital III
Contenido del AC después de una RIM
SID
I7.5
I6.5
I5.5
IE
M7.5
M6.5 M5.5
Mascara de interrupción
Bandera de habilitación de
Interrupción
Interrupciones pendientes
Datos de entrada serie
Instrucción SIM
La ejecución de la instrucción SIM utiliza el contenido del acumulador (el cual ha sido
cargado previamente) para realizar las siguientes funciones.
• Programar la mascara de interrupción para las interrupciones de hardware RST 5.5,
6.5 y 7.5
• Poner en cero el flip flop de entrada de RST 7.5
• Cargar el seguro de salida SOD
Durante la ejecución de la instrucción SIM, el contenido del acumulador será utilizado
para programar la mascara de interrupciones. Los bit 0-2 del AC colocarán los bits de
máscara para RST 5.5, 6.5 y 7.5 si el bit 3 es 1. El bit 3 cumple la función de permitir o
no la escritura de la máscara.
Cuando se pone en uno una máscara se deshabilita la correspondiente interrupción.
El flip flop interno de RST 7.5 será reseteado si el bit 4 del AC = 1.
SIM puede cargar la salida del latch de SOD. El bit 7 del acumulador es cargado en el
latch de SOD si el bit 6 del AC esta en uno. El latch no es afectado si el bit 6 es cero.
RESETIN coloca el latch de SOD en cero.
SOD
SOE
X
Datos de salida en Serie
Habilitación de SOD
Indefinido
Reset RST 7.5
Electrónica Digital III APUNTE 8085 Ing. Carlos G. Gil, Ing. Gustavo Ensinck
R7.5
MSE
M7.5
M6.5 M5.5
Mascara RST 5.5
Mascara RST 6.5
Mascara RST 7.5
Habilitación de mascara
8
Electrónica Digital III
Utilización de la ALE para demultiplexar direcciones y Datos
Sistema básico de temporización
Electrónica Digital III APUNTE 8085 Ing. Carlos G. Gil, Ing. Gustavo Ensinck
9
Electrónica Digital III
Electrónica Digital III APUNTE 8085 Ing. Carlos G. Gil, Ing. Gustavo Ensinck
10