¿Qué tipo de componente necesitaría para interrumpir un bus RS-485?

Me gustaría tener algún tipo de interruptor controlado electrónicamente (transistor, relé, relé de estado sólido, etc.) que actúe como un freno en un bus RS-485. El efecto que me gustaría es dividir opcionalmente el bus en dos mitades, aislando una mitad de la otra. Obviamente, las señales RS-485 deberían transmitirse claramente (incluso señales de alta velocidad de más de 2 Mbps) cuando el interruptor está en el estado "encendido" y no debería pasar ninguna señal cuando la señal está en el estado "apagado".

¿Qué tipo de componente debo usar y cómo debo conectarlo?

PD: estoy buscando un componente que sea lo más pequeño posible físicamente y me gustaría que el voltaje de conmutación sea de 5 V o menos.

PPS Los cables de bus RS-485 en mi aplicación serán lo suficientemente cortos como para que la reflexión de la señal no sea un problema, por lo que no me preocuparé por ninguna terminación en este momento. Sin embargo, hay felicitaciones adicionales disponibles para una solución que podría incorporar opcionalmente la conmutación de una resistencia de terminación a cada lado de la ruptura, ya que estoy seguro de que sería útil para alguien en el futuro.

Debes haber trabajado un poco en esto hasta ahora. ¿Qué has descubierto que no es adecuado a tus ojos?
¿Está planeando que el cambio funcione en maestro/esclavo o de igual a igual o en ambos? ¿Es esto para una aplicación DMX512?
Esta no es una aplicación DMX512; idealmente, sería de alta velocidad, 2 Mbps o superior. Este sería un bus maestro-esclavo, no un bus maestro múltiple, pero los esclavos aún necesitarían comunicarse con el maestro a pedido del maestro. Por lo tanto, solo una de las mitades aisladas del bus estaría 'activa' con cualquier comunicación ocurriendo solo en la mitad en la que está conectado el maestro.
En términos del trabajo que he hecho hasta ahora en esto, no mucho: no sé mucho sobre esta área, no tengo la confianza suficiente en mi conocimiento para saber cómo hacer que un transistor funcione como un interruptor en este caso - y los relés mecánicos parecen demasiado grandes y existen posibles problemas con vibraciones causadas por el encendido y el apagado. Eso, desafortunadamente, es todo lo que tengo.

Respuestas (4)

Simplemente puede usar un relé, opcionalmente cambiando a un par de resistencias de terminación a cada lado.

Edite el siguiente comentario de WRB: si el sistema no puede soportar un poco de basura en el bus (lo que parecería un descuido en algo que depende de RS485), entonces mire los relés silenciosos (por ejemplo, mojados con mercurio) o quizás coloque dos transceptores IC RS485 espalda con espalda.

No, no puedes. El rebote de contacto causará errores horrendos en el bus.
He visto a personas hacerlo peor en sistemas reales (sistemas reales FUNCIONANDO). He editado para agregar un poco más de detalle.
Podría 'soportar un poco de basura' en el autobús, como dices... Preferiría no tener que hacerlo, si es posible. También me gustaría que los componentes no fueran demasiado altos en la PCB (idealmente, los componentes SMT)... No conozco ningún relé que no sea tan alto. ¡Probablemente debería guardar eso para otra pregunta!
Si lo hace bien, el rebote de contacto no debería resultar en una transición diferencial legítima, a menos que alguien estuviera hablando en ese momento, en cuyo caso vería corrupción de la transmisión fragmentada sin importar qué tan limpio esté su interruptor.
También sugeriría que cortar el autobús por la mitad durante la transmisión de datos SIEMPRE causará al menos UN error, por lo que si su sistema no puede manejarlo, está en el arroyo. O necesita agregar inteligencia para decidir cuándo hacer la división.

Colocar un simple contacto de relé mecánico en línea con una señal RS485 está generando problemas. Los contactos podrían parlotear creando un ruido desconocido en la línea. Tampoco debe interrumpir una línea RS485 a menos que esté seguro de que no hay flujo de datos en ninguna dirección.

Un mejor método sería usar uno o más chips multiplexores analógicos para enrutar los pares de señales. Si tiene entradas o salidas adicionales, puede colocar las resistencias de terminación allí y cambiarlas según sea necesario. Para evitar la conmutación durante un posible flujo de datos, puede intentar hacer que el dispositivo maestro pueda direccionar el sistema multiplexor analógico. Muchas fuentes de chips mux analógicos en la web. Solo asegúrese de cumplir con el nivel de la señal y los límites actuales del chip seleccionado.

Otra posibilidad para mantener las cosas más compatibles (con los estándares RS485) sería usar un chip receptor RS485 y uno o más chips controladores, y entre ellos usar un multiplexor digital estándar.

Se incluyó el método del chip controlador/receptor RS485 porque los niveles actuales en una línea 485 pueden alcanzar niveles moderadamente altos, por ejemplo, en un sistema con varios puertos receptores cargados. En este caso, el uso de un chip mux analógico podría causar pérdidas de voltaje significativas.
Me gusta la idea del receptor RS-485 y luego el controlador: es bastante económico y requiere poco espacio en la placa. Supongo que podría usar un chip RS-485 full-duplex / de dos canales para este propósito. Voy a leer sobre multiplexores analógicos y digitales antes de marcar esto como la respuesta, ¡pero creo que este es el mejor hasta ahora!
Algunos chips 485 son diminutos y tienen una terminación conmutable incorporada. Unir dos espalda con espalda con un circuito básico (quizás dos puertas lógicas) que se puede encender/apagar podría ser una solución de muy bajo perfil. Solo mire las velocidades de datos admitidas a través de cualquier IC dado, no todos son iguales.

Suponiendo que RS485 semidúplex "adecuado", puede usar una combinación de un LT1930 para generar rieles de +/- 15V a partir de un suministro de 5V y un ADG5434 para realizar la conmutación. Los rieles de +/-15V (bueno, al menos los rieles de +/-12V) son necesarios porque RS485 puede tener un voltaje de modo común de hasta +/-7V en el par de señalización, es decir, cada traza puede tener entre -7 y + 12V en un momento dado.

No voy a dibujar el esquema para el LT1930 (consulte la página 8 de la hoja de datos), pero aquí está el esquema para la conmutación RS485.

esquemático

simular este circuito : esquema creado con CircuitLab

Tenga en cuenta que los cuatro interruptores en el ADG5434 deben cambiarse simultáneamente y en la misma dirección, y sí, los buses están terminados. Debería poder reducirlo a aproximadamente 3 cm cuadrados de espacio en el tablero, 4 en el exterior.

Ahora, problemas. Consumirá bastante energía (espere alrededor de 100 mA a 5 V para que el LT1930 genere los suministros divididos), y sí, no es barato.

Por el lado positivo, tiene latencia cero porque está conmutado. Ninguna solución almacenada en búfer a través de dos UART en una MCU tiene latencia cero.

El problema con "solo un interruptor" es que en este contexto realmente tiene dos opciones para los interruptores: electromecánicos (un relé) o de estado sólido. Los relés tienen aislamiento eléctrico entre el mecanismo de conmutación y el circuito conmutado, pero son grandes, consumen bastante corriente de conmutación y, por lo general, requieren más de 5 V para funcionar. Los interruptores de estado sólido generalmente no están aislados (hay una excepción a esto que explico a continuación), por lo que requieren un voltaje de suministro que cubra el posible rango de voltaje de la señal que se está cambiando.

La excepción son los interruptores de estado sólido fotoacoplados, como el AQW612 . Son pequeños, aislados y pueden cambiar voltajes altos (éste cambiará 60 V CA o CC desde 1,14 V o más). Puede reemplazar cada interruptor en el esquema anterior con un AQW612 configurado como SPDT y controlar todas sus entradas juntas. El consumo de energía sería mucho más bajo, alrededor de 40 mA cuando se cambiara (y tendría que cambiar las resistencias de terminación a 95 ohmios), pero el costo no bajaría exactamente.

Esta parece una solución excelente. ¡Gracias por el diagrama del circuito y los números de pieza! Lo único que creo es que parece bastante caro para 'solo' un interruptor: la factura total por las piezas de un microcontrolador, el controlador RS-485 y el resto de los bits en la placa es menos de una cuarta parte de lo que cuesta el LT1930+ADG5434 costaría. Seguramente esto se puede hacer por menos dinero en una cantidad similar de espacio en el tablero.
¡Votaré cuando tenga suficiente reputación!
Además, ¿qué tipo de requisito de potencia tendría esto? Sería bueno que el circuito final fuera de la menor potencia posible...

Un pequeño relé DPDT hará la parte mecánica de separar las dos mitades del bus, incluida la adición de resistencias de terminación a ambas mitades si es necesario.

Lo que no puede controlar es la cantidad de rebote de contacto. Esto no va a ser un problema si el bus está inactivo: las resistencias de terminación generalmente mantienen el bus en un estado inactivo específico y separar el bus generalmente no estropea eso.

Soy bastante partidario de los relés de telecomunicaciones Aromat: DPDT en un paquete DIP con contactos dorados bifurcados. Muy fiable y diseñado para una larga vida. Además, no es tan caro.

Puede obtener relés más pequeños, pero el precio comienza a aumentar en consecuencia.

esquemático

simular este circuito : esquema creado con CircuitLab

PD: desearía que alguien pudiera decirme cómo mover el texto del componente en los diagramas esquemáticos de Circuit Lab.