Hola psicopic,
He trabajado frecuentemente con bus 485, incluso con 100 nodos en un mismo cable, pero nunca he funcionado de forma tan eficiente como la que pretendes. La experiencia que tengo es de hacer pooling desde el PC hasta los nodos consecutivamente y estos van respondiendo de su estado. Para aproximadamente 100 nodos a 9600 vengo tardando unos 4 segundos en hacer una ronda por todos los nodos. Esto n es tiempo real, pero para muchas aplicaciones podría ser tiempo real. Si el número de nodos desciende el tiempo de muestreo desciende y nos aproximamos más al llamado tiempo real.
En primer lugar planteas el tema de full duplex. Esto va a encarecer tu hardware, ya que necesitas 2 MAX485 o uno doble, también el cableado y la instalación es más cara. Pero si es necesario, pues se hace y ya está. Circuito Full Duplex lo encuentras en el Data Sheet de Maxim.
En segundo lugar el modo de funcionamiento debe ser multimaster, es decir, cada uno transmite cuando tiene algo que decir. Esto produce momentos que la red está sin tráfico y otras que se satura. Es el precio que hay que pagar por el desorden y la inmediatez. Nunca he ensayado algo así, pero lo veo del siguiente modo: creo quehabría que implementar un comando de "cojo línea" y "libero línea". De este modo supongamos que la linea está en reposo, entonces sucede un evento en un nodo, ese nodo antes de transmitir info manda un "cojo linea" despues transmite la información a una dirección y cuando termina dice "libero línea" De este modo todos los nodos saben que la línea está cojgida o no y si la pueden usar. El problema son las colisiones que las habrá, pero esto se puede hacer con un pequeño retardo aleatorio en cada nodo de modo que es muy dificil que coincidan dos, pero aun así habrá colisiones. Tambien hay que tener en cuenta si se van a enviar grandes cantidades de información fijar unos tiempos máximos de ocupación consecutivos para impedir monopolizar la línea.
Creo que el mayor trabajo que hay que hacer aquí es en un protocolo robusto con un control de acceso al medio por soft.
Pienso que habría que definir bien las necesidades reales:
1.- Numero máximo de nodos en el sistema.
2.- Cantidad de información a enviar
3.- Velocidad necesaria para transmitir esa información.
4.- Definición del protocolo y control de acceso al medio
Bueno, esto que se escribe tan pronto puede llevar varias semanas de desarrollo y pruebas. Es una idea para empezar.
Saludos
Ricky
Madrid - España.