Me gusta diseñar una sola aplicación maestra, varias esclavas (hasta 100) y buscar un bus multipunto confiable (hasta 30 metros). Se prefiere uno o dos carriles, usaré la topología en cadena, por lo tanto, USB no es adecuado y también es una exageración.
Mi tasa de datos es baja e intermitente, una vez cada 3-5 segundos y probablemente <10 KB. Los esclavos no están sincronizados.
Pensé en usar RS232 e implementar un algoritmo donde el esclavo transmite si no hay tráfico. (Similar a Ethernet). Prefiero algo un poco más robusto.
Además, el pensamiento actual es despertar a todos los esclavos cuando el maestro transmita donde todos los esclavos reciben el mensaje, todos lo analizan, pero el que apuntamos toma medidas. No es muy eficiente, pero funcionaría.
La mayoría de las sugerencias hasta ahora se basan en el uso de la señalización diferencial RS422 según mi comentario original, utilizada de varias maneras y/o protocolos que se basan en ella. Si desea "rodar el suyo", encontrará que RS422 es un excelente lugar para comenzar a buscar. El hardware está disponible y tiene un buen precio y el rendimiento bajo varias cargas y distancias está bien descrito en la literatura.
RS422 - [Pandoras box] (todos los enlaces a páginas web) RS422 multipunto como arriba
REFERENCIA RÁPIDA PARA RS485, RS422, RS232 Y RS423
Tutorial de Maxim 723 Selección y uso de estándares de datos en serie RS-232, RS-422 y RS-485
Página de productos TI RS422 - muy valiosa - incluso si no usa sus circuitos integrados en última instancia Referencia cruzada - Notas de aplicación - Capacitación - Herramientas y software - Diagramas de bloques Analog eLAB ™
Ellos dicen
RS485.COM - Página comercial pero MUY útil
Notas de aplicación NatSemi RS485
Descripción general de NatSemi RS485
Otro:
Un autobús popular en los campos del automóvil y la industria es CAN Bus . También se está utilizando en la industria marina donde se implementa como parte de NMEA 2000 .
Un estándar relacionado es el bus LIN , que a menudo se usa con CAN y es una subred más lenta y económica.
También hay una versión superior de CAN con redes troncales duales para redundancia que utilizan BMW y otros (lo siento, no recuerdo el nombre de esa versión).
Los tres de estos buses interoperan y cuentan con un amplio apoyo de los principales fabricantes de semiconductores. Dado que está diseñado para sistemas de seguridad en automóviles, los chips son baratos y están disponibles en rangos de temperatura ampliados. Muchos microcontroladores tienen CAN integrado.
Aquí hay un documento técnico de TI, Introducción a la red de área del controlador (CAN)
Pensé que podría aportar la solución que encontré. ( también puede documentarlo en algún lugar xD )
Recientemente tuve que conectarme a dos "esclavos" RS232 conectados a un solo "maestro" RS232 que siempre inicia la comunicación y los esclavos a los que se dirige responden.
Dado que RS232 está diseñado para punto a punto, inicialmente iba a convertir a RS485 y crear un bus en RS485 y luego volver a convertir a RS232, pero no tenía suficientes convertidores a mano, así que se me ocurrió el siguiente circuito.
Después de algunas pruebas, descubrí que el pin Rx de un USB típico a RS232 parece tener un "pull-up" de 10k a GND, lo que hace que se vea una caída de voltaje cuando el maestro debería ver un voltaje negativo. Las resistencias están diseñadas para minimizar la caída de voltaje mientras limitan la corriente a 15 mA entre dos esclavos cualquiera en el peor de los casos (+25 --> -25V) --> 50V/3k3 ~ 15mA. También usé diodos 1N4448 en lugar de 1N4148 que está en el esquema porque los tenía a mano y tienen una caída de voltaje más baja.
simular este circuito : esquema creado con CircuitLab
Esto es extensible a muchos más, pero probablemente tendrá que jugar con el valor de la resistencia dependiendo de la corriente de fuente disponible que tengan sus esclavos... y también dependiendo del maestro, cada esclavo también tendrá algo de carga en el pin TXout.
Tal vez esto pueda ayudar a alguien más en el futuro.
Russel McMahon
Russel McMahon
ktc