Técnicas de Entrada y Salida en Microprocesadores: Puertos, Direccionamiento y Dispositivos
Técnicas de Entrada y Salida en Microprocesadores
Puertos de Entrada/Salida
Se tienen dos técnicas para E/S:
- E/S mapeada en memoria: Los microprocesadores que usan parte del espacio en memoria para E/S se dice que usan E/S mapeada en memoria. Los microprocesadores 6800, 6802, 6805, 6809 y el 68000 usan esta técnica.
- E/S mapeada en E/S: El 8086/8088 no utiliza esta técnica, todo el espacio de memoria del sistema puede ser utilizado para memoria. El sistema de E/S tiene su propio espacio de direccionamiento. A una arquitectura de E/S como esta se le conoce como E/S mapeada en E/S.
Una operación de E/S puede definirse de la siguiente manera:
- INPUT: Cuando el microprocesador lee datos desde una fuente que no es la memoria del sistema.
- OUTPUT: Cuando el microprocesador escribe datos a un destino que no es la memoria del sistema.
El Bus de Control
El bus de control define el tipo de comunicación que ocurre. En otras palabras, si el sistema utiliza E/S mapeada en E/S, hay líneas de control separadas para la E/S de la memoria del sistema.
Direccionamiento de E/S
Puerto: Es un lugar único utilizado para leer o escribir datos, no es la memoria del sistema.
A cada puerto en el sistema de E/S se le da una dirección única, llamado código de selección de puerto.
Las líneas en el bus de control de sistema durante una operación de memoria de una de las dos líneas del bus de control de memoria de lectura o memoria de escritura está activa. Durante una operación de E/S una de las dos líneas del bus de control INPUT READ o OUTPUT WRITE está activa. Las direcciones 00F8h a 00FFh no deben utilizarse ya que Intel las ha reservado para desarrollo de futuros productos.
¿Qué es un dispositivo de E/S?
Un dispositivo de E/S puede ser definido como hardware de E/S controlado por el sistema.
Instrucción INPUT
Se utiliza para leer datos desde un puerto de entrada, su estructura es IN Acumulador
, pero si el puerto es de 8 bits, el dato captado queda en el registro AL. Si el puerto es de 16 bits el dato captado queda en el registro AX.
Instrucción OUTPUT
Se utiliza para transferir datos del microprocesador a un puerto de salida, su escritura es: OUT puerto, acumulador A
.
Direcciones a través de una constante
Dando la instrucción (1 byte) y la dirección del puerto (1 byte), con este método podemos acceder a un puerto ubicado en las primeras 256 localidades IN AL, 03h
OUT 04h, AL
.
Líneas a través del registro X
Con ellas podemos direccionar un puerto ubicado en cualquiera de las 65535 localidades asignadas a puertos MOV DX 03h
IN AL
MOV DX 04h
IN AL
.
Dispositivos de E/S Paralelo (PIO) 8255
Es un dispositivo de E/S programable utilizado en un sistema microcomputador para controlar hardware periférico.
Descripción del 8255
Es un circuito LSI encapsulado en un CI de 40 patas. Está diseñado para realizar una gran variedad de funciones de interface en el medio ambiente de microprocesadores. Hay varios modos distintos de operación del 8255, los cuales deben ser definidos por la palabra de control que él escribe en el dispositivo.
Note que el grupo C consiste de 2 puertos de 4 bits. Uno de los grupos de 4 bits es asociado con el grupo de control A y el otro con el grupo de control B.
- Buffer de datos
- Lógica de control de LECTURA/ESCRITURA
Estos 2 bloques proporcionan la interface eléctrica entre el microprocesador y el 8255.
El Buffer del bus de datos del 8255 se conecta al DB del Microprocesador. La Lógica de control de Lectura /Escritura enruta el dato hacia / donde el registro interno (AL/AX) con la sincronización adecuada.
Dispositivo de E/S Serial (Receptor/Transmisor, Sincrónico/Asincrónico Universal 8251A, USART)
Proporciona 2 funciones básicas:
- En el modo de Transmisión: Serializa el dato paralelo del Microprocesador (insertando en forma asíncrona) o caracteres de sincronía (en el modo sincrónico).
- En el modo Receptor: Convierte el dato serie a paralelo y verifica errores de paridad, encuadre (frame errors) y sobre escritura de datos (overrun).
Este circuito integrado (IC) tiene un bus de datos bidireccional, el cual permite al microprocesador programar su funcionamiento vía uno de tres bytes de control.
La figura 1 muestra un diagrama a bloques y descripción de patas del USART.
Nótese que el IC cuenta con un transmisor y un receptor separados, cada uno con sus propias entradas de reloj (RXD y TXD).
- RXD: Es la entrada de datos serial (recibe datos).
- TXD: Es la salida de datos serial (transmite datos).
Las señales de estatus RYRDY y TXRDY indican que los buffers de datos del receptor y transmisor están listos para leerse o escribirse respectivamente.