Se me recomendó usar RS485 ya que tengo aproximadamente 7 dispositivos que necesitan hablar entre ellos (y no puedo hacer que CAN funcione).
Aunque quiero comenzar de manera simple (dos dispositivos donde uno envía y otro recibe), más adelante podría haber varios remitentes. Uno de los puede ser visto como Maestro, pero otros también deberían poder iniciar mensajes. Así que necesito algún tipo de protocolo de sondeo.
El problema es que, en RS-485, cada vez que un dispositivo envía un mensaje, todos los dispositivos lo 'escucharán' y tendrán que procesarlo (aunque la mayoría está comprobando un byte para saber que no está diseñado para ellos).
Pero si obtendría unos 100.000 mensajes por segundo (en el peor de los casos), esto todavía costaría mucho tiempo de procesamiento. Y el dispositivo maestro (que es el que más inicia) necesita hacer bastante procesamiento no relacionado con la comunicación.
¿Cómo puedo reducir el sondeo? Estaba pensando en desacoplar el dispositivo maestro directamente de RS-485 agregando algún tipo de dispositivo de comunicación que pase RS-485 atrás / adelante del maestro (por ejemplo, a través de SPI). Sin embargo, esto parece una solución extraña (convertir / reenviar todos los mensajes a través de SPI, también se verá afectada la latencia).
O usando alguna línea dedicada (como una de las líneas RS485-A / B) que los dispositivos pueden configurar ALTO para anunciar que tienen datos. Pero no estoy seguro de si debo tratar esto como una señal RS-485 (por lo que esencialmente tiene 1.5 señales RS-485).