Suponiendo que se permite que cualquiera de los dos direccione un bus común, y esto no está claro en la descripción, entonces puede transferir bloques de datos con dos bits de semáforo. Los bits en la RAM implican un acceso compartido sin colisión. Pero los bits pueden estar en los pines del puerto, ver más abajo.
Muchas lunas desde la última vez que hice esto, pero debería ser tan simple como
- Maestro: datos de depósito. Establecer "Datos listos"
- Esclavo: leer datos. Establecer "Datos tomados"
- Maestro: Restablecer "Listo" (primero). Restablecer "tomado"
ciclo completo.
Si su hardware no lo permite directamente, puede implementar un dispositivo de hardware que cambie de bus a bus utilizando un protocolo similar con los "bits" en los pines del puerto. (Ligero cambio en el apretón de manos pero el mismo principio). (M: Toma esto, S: OK, M: Observado, S: Gracias = p. Ej., GPIB)
PERO : ¿por qué limitarse a la "RAM compartida genuina" cuando puede lograr un resultado funcionalmente equivalente con un enlace COMS? La velocidad puede ser una razón. ¿Cuánta velocidad necesitas? Algunos de los métodos a continuación pueden ser muy rápidos.
Hay una gran cantidad de esquemas de interconexión en serie que permiten este tipo de interacción, algunas hechas para el uso del intérprete y otras bastante fáciles de adaptar. SPI, IIC (multimaster), RS485 (... CAN) e incluso / por supuesto RS232. Cuando todo lo demás falla, hay "Ethernet" en todas sus variantes (hasta ~ Gb / s) o USB (hasta cientos de Mb / s.)