1. De microprocesador a periférico (salida):
* BUS de datos: El microprocesador coloca los datos que desea enviar al periférico al bus de datos. Este bus es un conjunto de cables que llevan los bits de datos reales.
* BUS DE DIRECCIONES: Simultáneamente, el microprocesador coloca la dirección del periférico en el bus de direcciones. Esto le dice al sistema qué periférico es el objetivo de los datos. Cada periférico tiene una dirección de memoria única o una dirección de puerto de E/S.
* BUS de control: El microprocesador afirma señales de control en el bus de control. Estas señales pueden incluir cosas como "Write Enable" (indicando que los datos se están enviando a las líneas periféricas) o Select Select (CS) para activar el periférico específico. Otras señales pueden especificar el tipo de transferencia de datos (por ejemplo, 8 bits, 16 bits).
* interfaz periférica: El circuito de interfaz del periférico (que a menudo involucran registros dentro del periférico) recibe la información de datos y direcciones. Si la dirección coincide con la dirección del periférico y se afirma la señal de escritura, el periférico acepta los datos y lo almacena internamente.
2. De periférico a microprocesador (entrada):
* BUS DE DIRECCIONES: El microprocesador coloca la dirección del periférico en el bus de direcciones, especificando qué datos del periférico desea leer.
* BUS de control: El microprocesador afirma las señales de control en el bus de control, como "Habilitar de lectura" (lo que indica que los datos se solicitan desde el periférico) y posiblemente otras señales relevantes.
* interfaz periférica: El periférico, al recibir la dirección correcta y la señal de lectura, coloca los datos que desea enviar al bus de datos.
* BUS de datos: Los datos se transfieren desde el periférico, a través del bus de datos, al microprocesador.
* Microprocesador: El microprocesador luego lee los datos del bus de datos y los procesa.
Diferentes métodos de comunicación:
Los detalles de este proceso varían según el tipo de periférico y el método de comunicación utilizado:
* E/S mapeada de memoria: Los periféricos se asignan direcciones dentro del espacio de direcciones de memoria del microprocesador. El microprocesador los accede al igual que accede a las ubicaciones de memoria.
* I/o mapped I/o: Los periféricos tienen direcciones de E/S separadas distintas de las direcciones de memoria. Se utilizan instrucciones especiales de E/S para acceder a ellas.
* Acceso de memoria directa (DMA): Para transferencias de datos de alta velocidad (por ejemplo, tarjetas de video, discos duros), un controlador DMA maneja la transferencia de datos directamente entre el periférico y la memoria, minimizando la participación del microprocesador. Esto evita la CPU, haciendo que la transferencia sea mucho más rápida.
* interrumpe: Los periféricos pueden interrumpir el microprocesador para indicar que tienen datos listos o requieren atención. Esto permite la comunicación asincrónica. La línea de solicitud de interrupción (IRQ) en el bus de control desencadena la interrupción. El microprocesador luego maneja la interrupción al servicio del periférico.
* Comunicación serie: Para la comunicación a distancias más largas (por ejemplo, UART, SPI, I2C), los datos se transmiten bit a bit o byte por byte, a menudo requieren hardware adicional (por ejemplo, chips UART) para administrar los protocolos de comunicación serie.
En resumen, el flujo implica el uso coordinado de la dirección, los datos y los buses de control para garantizar que los datos correctos se muevan hacia y desde el microprocesador y sus periféricos de manera controlada y eficiente. Los detalles exactos dependen de la arquitectura específica, los periféricos y los mecanismos de comunicación utilizados.