Línea de señal común

0

Ya tengo una solución para prevenir el sondeo de RS485 ( question ), sin embargo, dado que eventualmente tendré algunos dispositivos y me gustaría una latencia rápida, creo que prefiero una línea adicional de 'sondeo / señal'.

  • Tengo entre 3 y 20 dispositivos (?).
  • Quiero la mejor 'latencia', es decir, cuando un dispositivo quiere enviar algo, debe enviarse lo antes posible (el mensaje es en su mayoría muy pequeño).

Idea:

  • El dispositivo que desea que el token RS485 establezca una línea de señal ALTA.
  • Esta señal está conectada a todos los dispositivos (como el RS485 RX / TX).
  • El 'Maestro' lo lee y sondea todos los dispositivos (no sabe quién envió la señal)
  • Cuando el dispositivo esclavo tiene el token, envía sus datos y establece la señal BAJA.

Mi pregunta:

¿Puedo usar este circuito?

simular este circuito : esquema creado usando CircuitLab

Preguntas:

  1. Supongo que los diodos son 'obligatorios'?
  2. Probablemente usaré MCU de 3.3V (STM32). ¿Qué pasa si 10 dispositivos comienzan a poner su GPIO_Output alto? ¿Esto causará problemas?
  3. ¿También debo conectar la línea de señal a todos los dispositivos con un GPIO_Input y no enviarla en ALTO cuando ya esté en ALTA? Aunque no me gusta una solución de software que pueda arruinar mis STM32s.
  4. La longitud completa del cable es de aproximadamente 1 metro / yarda ... Todos los dispositivos estarán uno al lado del otro.
pregunta Michel Keijzers

1 respuesta

1

Aquí está mi recomendación para lo que vale.

Si tiene que sondear a todos los esclavos para configurar un token para un esclavo en particular para que, a su vez, pueda enviar su mensaje, también puede sondear continuamente a todos los esclavos según un sistema esclavo maestro convencional.

Esto también puede funcionar de igual a igual porque todos los esclavos pueden leer todos los demás datos de maestro y esclavo y responder directamente (si es necesario) al esclavo que origina el mensaje. El esclavo de origen aún enviaría su mensaje cuando el maestro los encuestara.

Esto podría significar que una vez que el esclavo de origen potencial es encuestado por el maestro, puede tomar el control del bus y dirigir directamente un mensaje a otro esclavo. Cuando esto sucede, el esclavo seleccionado puede responder directamente al esclavo de origen O, puede esperar hasta que llegue su encuesta principal antes de responder. Se llama protocolo de diseño .

En la pregunta anterior un punto a Se discutió el sistema de pares donde un dispositivo (llamarlo maestro) configuró un sistema de intervalos de tiempo; uno para cada otro dispositivo El noveno dispositivo esperaría hasta el noveno intervalo de tiempo y, si todos los intervalos de tiempo anteriores estuvieran inactivos, iniciaría un mensaje. La desventaja de esto es que 20 intervalos de tiempo ocupan espacio en lo que pueden ser períodos ocupados y, por lo tanto, la tasa de carga útil general puede sufrir.

Si desea usar una línea común, el proceso de arbitraje de la franja horaria (discutido en la pregunta anterior) podría ser reubicado desde el bus principal a este bus secundario y el arbitraje podría, teóricamente, tener lugar durante las transmisiones regulares de datos en la barra principal. autobús.

    
respondido por el Andy aka

Lea otras preguntas en las etiquetas