Múltiples sensores de salida UART en un puerto serie [cerrado]

Me gustaría conectar 4 sensores de salida UART a un puerto serie de mi controlador. La distancia entre los sensores y el controlador será de unos 10 m. Inicialmente estaba pensando en usar 485 como capa física (transceptores SP3485). Sensor UART --> SP3485 -- (485 capas) -- SP3485 --> Controlador UART. Un circuito separado controlado por corriente hará el trabajo de selección del sensor habilitando la salida de transmisión para cada sensor (pines DE/RE' SP3485) 2,5mA - Habilitar transmisión desde el sensor 1 7,5mA - Habilitar transmisión desde el sensor 2 12,5mA - Habilitar transmisión del sensor 3 17,5mA - Habilitar transmisión del sensor 4

¿Hay otras ideas o sugerencias?

¿Por qué no estándar RS232? La distancia de 10 m no es mucha con cables blindados decentes. Pero dependerá de su tasa de baudios.
Además de ser diferencial, generalmente se considera que RS485 tiene transmisores que se pueden desactivar para permitir el cableado en bus, mientras que RS232 no lo es. Sin embargo, uno puede hacer remezclas personalizadas, incluso (en el caso de corto alcance) usando niveles de salida de MCU, ya que prácticamente cualquier línea de transmisión de MCU UART moderna se puede desactivar reconfigurándola como una entrada GPIO.
Si habilita los transmisores de forma asíncrona desde cualquier sentido de cuando están tratando de hablar, es posible que deba tener un código para identificar y eliminar los mensajes fragmentados de ellos. También necesitará algún tipo de forma de saber quién está hablando, si no hay una identidad codificada en sus mensajes. La mayoría de las configuraciones RS485 en bus utilizan un protocolo de nivel de software en el que los dispositivos esclavos hablan solo cuando el maestro los consulta (en direcciones lógicas configuradas).
¡Muchas gracias por tu apoyo! RS232 es una opción, pero pensé en usar 485 para un mejor aislamiento del ruido (la velocidad en baudios será de 9600). El controlador siempre solicitará información/estado/datos de medición de los sensores, ¡pero solo el sensor 'activo' transmitirá la respuesta!
Tenga en cuenta que un comportamiento requerido de los controladores y receptores RS485 es que proporcionen una alta impedancia cuando están apagados (de hecho, un dispositivo sin alimentación se vuelve casi invisible para el bus). RS232, por otro lado, no tiene tal requisito, y un dispositivo sin alimentación probablemente cargará el bus, dejándolo inutilizable.
Usar dinosaurio RS232 para cualquier propósito es una idea bastante mala. No hay ninguna razón por la que no deba usar RS422/RS485, a menos que necesite compatibilidad con versiones anteriores.

Respuestas (2)

Finalmente probaré la comunicación RS232 (ya que hay un puerto RS232 disponible en el controlador...

Cirquit en el lado del controlador...ingrese la descripción de la imagen aquí

Circuito en el lado del sensor...

ingrese la descripción de la imagen aquí

¿Es esta una respuesta o parte de la pregunta?

No lo he probado a larga distancia, pero puedes hacer esto:

Desde el lado del controlador, la línea TX puede ir a todos los sensores RX. En el lado del controlador, levanta la línea RX con una resistencia (el UART inactivo es 1 lógica). Para cada sensor, conecta un diodo Schottky con el cátodo en el sensor TX. Esto le brinda una operación OR que es mejor que confiar en los sensores para liberar la línea a Z alto y no requiere que se cambie su código para hacerlo. Siempre que los sensores siempre digan algo después de emitir un comando, puede usar una sola línea para la comunicación, como en la respuesta aquí Comunicación Tx/Rx UART entre 2 MCU en 1 línea