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