Ejemplo de dispositivo de E/S Interfaz Periférico Programable 8255 • • • • Características Diagrama de bloques Direcciones y registros de control Modos de funcionamiento: – Modo 0 (E/S programada) – Modo 1 (E/S por interrupciones) – Modo 2 (E/S bidireccional) • Emulación interfaz centronics (puerto paralelo impresora) mediante un 8255 Arquitectura de Computadores (35) Interfaz Periférico Programable 8255 Características • Dispone de tres puertos de E/S (A, B y C): – dos de tamaño byte (A y B) – y uno de tamaño 2x4 bits (C) con control bit a bit • Los puertos pueden ser configurados como entrada, salida o bidireccionales • Dispone de líneas de protocolo Arquitectura de Computadores (36) 1 Interfaz Periférico Programable 8255 Diagrama de bloques Arquitectura de Computadores (37) Interfaz Periférico Programable 8255 Direcciones y registros de control Arquitectura de Computadores (38) 2 Interfaz Periférico Programable 8255 Modo 0 (E/S Programada) • Se utilizan los tres puertos (A,B,C) como simples registros donde leer y escribir. La CPU y el/los dispositivo/s externo/s correspondiente/s se encarga/n de leer/escribir de acuerdo a un determinado protocolo previamente definido ¾El puerto A (8 bits) se configura como entrada o salida con el bit D4 del registro de control ¾El puerto B (8 bits) se configura como entrada o salida con el bit D1 del registro de control ¾El puerto C alto (4 bits) se configura como entrada o salida con el bit D3 del registro de control ¾El puerto C bajo (4 bits) se configura como entrada o salida con el bit D0 del registro de control Arquitectura de Computadores (39) Interfaz Periférico Programable 8255 Cronograma Modo 0 Arquitectura de Computadores (40) 3 Interfaz Periférico Programable 8255 Modo 1 (E/S por interrupciones) • En este modo se utiliza el protocolo Handshake ¾El puerto A (8 bits) se configura como entrada o salida con el bit D4 del registro de control ¾El puerto B (8 bits) se configura como entrada o salida con el bit D1 del registro de control ¾El puerto C contiene las señales del protocolo Arquitectura de Computadores (41) Interfaz Periférico Programable 8255 Modo 1 (E/S por interrupciones). Configuración de entrada Señales de protocolo cuando el puerto está configurado como entrada STBA (strobe input): Un cero en esta línea de entrada indica que hay dato disponible en el puerto A (activada por el dispositivo externo) IBFA (input buffer full): Un uno en esta línea de salida indica que el dato ya ha sido cargado en el registro del puerto A. IBFA se desactiva cuando se desactiva STBA (el dispositivo externo da su confirmación) y se produce el flanco de subida de la señal RD (dato leído por la CPU) Las señales STBB , IBFB son funcionalmente equivalentes Arquitectura de Computadores (42) 4 Interfaz Periférico Programable 8255 Modo 1 (E/S por interrupciones) Configuración de salida Señales de protocolo cuando el puerto está configurado como salida OBFA (output buffer full): esta línea de salida se pone a cero (activa en baja) para indicarle al dispositivo que la CPU ha escrito un dato en el puerto A. Se activa con el flanco de subida de la señal WR (escritura finalizada) y se desactiva con la confirmación del dispositivo (ACKA) ACKA (acknowledge input): un cero en esta entrada indica que los datos del puerto A han sido leídos por el dispositivo externo. Esencialmente es una respuesta del dispositivo periférico indicando que ha sido recibido el dato enviado por la CPU Las señales OBFB y ACKB son funcionalmente equivalentes Arquitectura de Computadores (43) Interfaz Periférico Programable 8255 Modo 1 (E/S por interrupciones). Interrupciones Interrupciones • Señales de interrupción se pueden generar en los puertos A y B tanto si están configurados como entrada (la CPU debe leer un dato) como si lo están como salida (la CPU ya puede escribir un nuevos dato) • El bit 4 del puerto C (PC4) es el bit de habilitación de interrupción del puerto A:INTEA. El del puerto B es el bit 2 (PC2): INTEB • Para que el 8255 genere una interrupción asociada al puerto A (señal INTRA) cuando está configurado como entrada, se debe cumplir que: STBA es 1, IBFA es 1 e INTEA es 1 (semejante para el puerto B) • Para que el 8255 genere una interrupción asociada al puerto A (señal INTRA) cuando está configurado como salida, se debe cumplir que: ACKA es 1, OBFA es 1 e INTEA es 1 (semejante para el puerto B) Arquitectura de Computadores (44) 5 Interfaz Periférico Programable 8255 Modo 1 (E/S por interrupciones). Registros y señales Arquitectura de Computadores (45) Interfaz Periférico Programable 8255 Cronograma Modo 1 1 2 Comienzo de la ejecución de los manejadores de interrupción 5 3 4 1 2 4 3 5 Arquitectura de Computadores (46) 6 Interfaz Periférico Programable 8255 Modo 2 (E/S bidireccional) • El PUERTO A funciona de forma bidireccional. Es como un doble modo 1. El PUERTO B no tiene este modo ¾ Los cinco líneas superiores del puerto C contienen las señales de protocolo Señales de protocolo (semejantes a las descritas en el modo 1) STB (strobe input) IBF (input buffer full) ACK (acknowledge) OBF (output buffer full) INTR Arquitectura de Computadores (47) Interfaz Periférico Programable 8255 Modo 2 (E/S bidireccional). Registro y señales Arquitectura de Computadores (48) 7 Interfaz Periférico Programable 8255 Cronograma Modo 2 Arquitectura de Computadores (49) Interfaz Periférico Programable 8255 Emulación interfaz centronics (puerto paralelo impresora) Arquitectura de Computadores (50) 8