Comunicación por cable de 1 atmel a muchos nodos

0

Ahora mismo estoy buscando una mejor manera de comunicarme con nuestros nodos cableados en un proyecto en el que estamos trabajando.

Actualmente hay 1 nodo principal al que todos los demás nodos hablan, que a su vez maneja todos los datos a una sola computadora. Los nodos hablan al nodo principal a través de Full Duplex 485.

Puedo hacer 4 nodos de esta manera al tener 4 controladores separados 485 compartiendo el mismo puerto serie para proporcionar información a los nodos a través del RS-485 ...

La topología es la siguiente:

computer ----> main Node--> rs-485 --> daughter node
                       |--> rs-485 --> daughter node
                       |--> rs-485 --> daughter node
                       |--> rs-485 --> daughter node
                       |--> rs-485 --> daughter node
                       |--> rs-485 --> daughter node

(hay hasta 12 nodos en este momento con los que necesito comunicarme, pero eventualmente se crearán más)

el rs-485 en el nodo principal comparte el segundo puerto serie en el dispositivo que se está utilizando (hay 2 puertos serie y el otro se envía a la computadora).

Si coloco un quinto dispositivo en el puerto que está activo, la señal del puerto serial en el dispositivo de la atmósfera se desvía de ~ 4.2V a aproximadamente 2.9-3V para una señal digital alta sin incluir ningún ruido adicional del cable múltiple corre.

La longitud de los cables varía de 60 pies a 200 pies.

cada nodo tiene una ejecución de cable dedicada que termina al final de la ejecución.

¿Cuál es una forma recomendada de hacer la comunicación entre un solo nodo principal y muchos nodos secundarios y permitir que los nodos secundarios hablen con el nodo principal, pero no entre ellos?

    
pregunta Friendlyghost89

2 respuestas

1

¿Podrías configurar tus nodos hijos como esclavos de la red? Usando un protocolo Maestro-Esclavo y configurando a las hijas como esclavas, solo responderán si han sido consultadas.

Si no me equivoco, utilizar una topología de red multipunto con una sola terminación (en lugar de un cable con terminación dedicada para cada nodo), debería evitar la gran caída de voltaje.

    
respondido por el Javi
1

La solución que propone @Javi es idéntica a un sistema de control que implementé a principios de la década de 1980 para el control de proyectores, máquinas de cintas de video, etc. en un entorno de estudio de televisión. Fue diseñado contra un borrador de estándar SMPTE, pero no veo nada en la web que sugiera que alguna vez se haya convertido en un estándar completo. De memoria, las especificaciones fueron:

  1. Se trabajó sobre varios cientos de metros de longitud de cable
  2. cable de par trenzado de audio estándar
  3. Comunicación asíncrona de 37kbaud (los micros modernos podrían hacerlo mejor)
  4. Sólo se requieren UART estándar
  5. Un maestro y hasta 32 esclavos en el autobús.
  6. Protocolo simple de máquina de estado. La "ruptura" (una baja larga en el bus) pondría a todos los esclavos en una configuración conocida. Maestro encuestó a los esclavos regularmente y les preguntó si tenían algún dato. El Maestro iniciará la transferencia.
  7. Capacidad para decirles a los esclavos que eran parte de un grupo, luego el maestro podría emitir comandos de grupo.

RS485 es razonablemente tolerante con una topología en estrella, pero le sugiero que mida el tramo más largo del cable y calcule el tiempo de reflexión (use una velocidad de luz de 0.6 * como la velocidad del cable). Si el tiempo de reflexión es inferior al 10% del tiempo de un bit, debería estar bien. La solución real es ejecutar un solo cable con un conjunto de resistencias de terminación en el esclavo más alejado.

    
respondido por el kiwiron

Lea otras preguntas en las etiquetas