Terminación RS485: CA + a prueba de fallas + paralelo + bidireccional

Sabiendo que necesito refinar mi circuito RS485, he estado leyendo. Tengo una serie de preguntas específicas y espero que me complazca mientras describo cómo intenté seguir una nota de aplicación.

Estos son algunos conceptos básicos del sistema de comunicación en serie:

  • RS485
  • 115,2 kbaudios, limitado principalmente por los microcontroladores
  • Half-duplex (1 par diferencial más tierra)
  • Cable de principio a fin en el peor de los casos de ~80 m
  • En el peor de los casos, la longitud del trozo puede ser de unos 2 cm debido a las huellas de la PCB; sin cabos de cable
  • encadenado
  • Recuento de dispositivos multipunto de normalmente 8, probablemente no más de 20
  • Alguna, pero no mucha, tolerancia BER debido a la suma de comprobación en el protocolo de señalización
  • Todos los dispositivos esclavos son SN65176 ; el maestro es un USPTL4 .

Supongamos que el cable que uso es Belden 3106A , porque está bien especificado:

  • Impedancia característica Zo = 120 ohm
  • Velocidad de propagación VP = 78%

Mi circuito de terminación ha pasado por algunas iteraciones:

  1. Terminación paralela bidireccional simple. No funciona en absoluto, debido a la interrupción de la operación a prueba de fallas y la producción de bits de inicio falsos.
  2. Terminación bidireccional con el lado maestro con terminación en paralelo simple y el último esclavo con un circuito como se describe en AN-903 "Terminación de potencia". Todavía no funciona en absoluto: la terminación paralela en el maestro presenta demasiada carga de CC en el maestro e interrumpe la operación a prueba de fallas.
  3. Maestro no terminado, último esclavo terminado con "terminación de potencia". Se parece a esto:

esquemático

simular este circuito : esquema creado con CircuitLab

Funciona, pero no es ideal por al menos dos razones: todavía hay mucha carga de CC; y el lado maestro no está igualado/terminado en impedancia.

Para una mejor alternativa, considero TI AN-903 "Una comparación de técnicas de terminación diferencial". Basado en la sección 2 "Sin terminar",

La baja velocidad generalmente se caracteriza por velocidades de señalización por debajo de 200 kbits/seg o cuando el retardo del cable (el tiempo requerido para que una señal eléctrica atraviese el cable) es sustancialmente más corto que el ancho de bit (intervalo unitario) o cuando el tiempo de subida de la señal es más de cuatro veces el retardo de propagación unidireccional del cable (es decir, no de una línea de transmisión).

Dado que 115,2 kbaudios < 200 kbaudios, se cumple el primer criterio. Para el segundo criterio, para calcular el retraso del cable:

(80 m) / 0,78c = 342 ns

Comparado con el ancho de bit:

1 / 115,2 kbaudios = 8,68 μs

Así que este criterio también se cumple fácilmente. Esto significa que potencialmente podría tratar el cable como si no fuera una línea de transmisión y que no necesitara una coincidencia/terminación de impedancia. Sin embargo, quiero desarrollar un circuito de terminación independientemente, por las siguientes razones:

  • Se puede hacer barato
  • es una oportunidad de aprendizaje
  • Aumenta la calidad de transmisión, aunque no sea por mucho
  • En caso de que sea necesario alargar mucho el tendido del cable, el sistema sobrevivirá
  • La hoja de especificaciones de TI lo recomienda incondicionalmente:

La línea debe terminar en ambos extremos en su impedancia característica RT = ZO. Las longitudes de los cabos fuera de la línea principal deben mantenerse lo más cortas posible.

Quiero buscar una versión modificada de la sección 5, Terminación de CA. Dados los parámetros de mi sistema, RT = 120 ohmios. Para CT, la nota de la aplicación dice:

CT, por otro lado, se selecciona para que sea igual al retardo de ida y vuelta del cable dividido por el ZO del cable. CT ≤ (Retardo de ida y vuelta del cable) / ZO

Retardo de cable de ida y vuelta = 2 * 342 ns = 684 ns

TI ≤ 684 ns / 120 ohmios

TI ≤ 5,7 nF

Seleccione CT = 5,6 nF, la capacitancia más cercana en la serie E24 (5%).

La nota de la aplicación también dice:

Además, la constante de tiempo RC resultante debe ser inferior o igual al 10 % del intervalo unitario (TUI).

(120 ohmios)(5,6 nF) ≤ 0,1 * 8,68 μs

672 ns ≤ 868 ns

Así que este condensador se ve bien. Sin embargo, veo un problema (¿grande?) que no se menciona en la nota de la aplicación. El capacitor en línea con la resistencia de adaptación hace que la impedancia de la red de adaptación sea muy desigual a la impedancia característica del cable.

f = 115,2 kbaudios / 2 = 57,6 kHz

120 ohmios + 1/2πj/57,6 kHz/5,6 nF = 120 + 493j ohmios

¿No debería agregar también un inductor en serie para cancelar esa reactancia?

493 ohmios / 2π / 57,6 kHz = 1,36 mH

Utilice el valor E24 1,3 mH. Después:

120 ohmios + 1/2πj/57,6kHz/5,6nF + 2πj*57,6kHz*1,3mH = 120 - 22,9 ohmios

Esa reactancia se puede acercar mucho más a cero con una inductancia más precisa.

Cuando simulo una línea de transmisión con las mismas características que la Belden y una terminación RC AC bidireccional, parece funcionar bastante bien. Sin embargo, si agrego el inductor para cancelar la reactancia capacitiva, hay un timbre horrible.

Teniendo en cuenta todo lo anterior, mis preguntas son:

  • ¿Son correctas mis matemáticas y mi interpretación de la nota de aplicación?
  • ¿Por qué la AN no muestra una terminación de CA bidireccional? ¿Es válido tener terminación AC en ambos extremos de una línea multipunto?
  • ¿Por qué la AN no tiene en cuenta la reactancia capacitiva al describir la terminación de CA?
  • El transceptor RS-485 del lado de la PC tiene un pullup no extraíble de 4,7k en la línea A y un pulldown de 4,7k en la línea B, para una operación a prueba de fallas. ¿Sería esto compatible con la terminación de CA justo al lado?
¿Por qué las viejas piezas '176? Yo mismo usaría algo con mejores protecciones contra fallas integrales ...
@ThreePhaseEel Porque eran baratos. Estaría dispuesto a considerar cambiar las partes dado un caso lo suficientemente sólido.

Respuestas (3)

Esta es una pregunta interesante :-) Aprobado por pensarlo detenidamente. Veo que muchas personas todavía usan RS485, pero casi nadie intenta entender la terminación (casi nadie conoce las reglas básicas de los libros de texto, en realidad). Además, ¿entiendo correctamente que ha intentado ver la línea con un 'alcance? Excelente, casi nadie hace eso también.

Yo mismo hice un ejercicio sobre la terminación RS485 el otro día... No consideré la terminación de CA (no en el sentido diferencial habitual), pero sí me concentré en el papel de la conexión a tierra de referencia, la polarización ("a prueba de fallas") y el común. terminación del modo, ya que eso sí pareció marcar la diferencia.

La única deficiencia clásica de RS485 es el hecho de que no se garantiza que los nodos estén aislados de tierra por definición. Ethernet de par trenzado es mucho más fácil de manejar por esa única razón.

Mirando su terminador solo R con seguridad en el esquema que publicó, encuentro su asimetría intrigante y extraña. Aprecio que la resistencia diferencial neta sea de 100 ohmios, pero no apruebo que la línea B esté ligada por solo 24 ohmios a GND... ¿cómo llegaste a esa configuración asimétrica? Creo que los pines RX y TX en los transceptores 485 son bastante equivalentes. Mantendría la polarización simétrica.

A diferencia de otros carteles aquí, no intentaría buscar transceptores con resistencias de polarización (a prueba de fallas) integradas. Los nodos deben tener una Z alta al escuchar, la protección contra fallas (¡y la terminación!) debe ser una función del bus, en lugar de un transceptor individual. Para lograr que las entradas A/B estén siempre "dentro del campo de juego" en cada nodo individual, debe usar una conexión a tierra de referencia, con una resistencia de 100 ohmios en cada nodo, como dirían algunos, o conectada directamente. Si la oscilación del suelo local es demasiado, utilice aislamiento. La polarización en cada nodo no lo lleva a ninguna parte. A menos que sus tierras de referencia estén aisladas (flotantes), cualquier resistencia de polarización es demasiado débil para superar los bucles de tierra duros. Y, si el blindaje del par de señales es individual y estricto, es decir, la línea de transmisión se parece más a un twinax,un terreno de referencia apropiado! ya que el blindaje es efectivamente un tercer conductor en el sentido de transmisión de energía de RF. Cualquier conductor que conecte a tierra en un solo extremo, se convierte en una antena en su propia longitud de onda.

He intentado la terminación de CA antes (RC) con líneas coaxiales (para IRIG). Debería echar un vistazo con un alcance, cuál es el resultado real: en el terminador y en cualquier nodo transceptor a la mitad de la línea. Intente experimentar con demasiada y muy poca capacidad.

Sus fórmulas generales para la elección de condensadores parecen correctas, está razonando en la dirección correcta. Y creo que al menos la terminación RC (enfocada en CA) es apropiada incluso en líneas que son "demasiado cortas y demasiado lentas", ya que los UART pueden tener varios puntos de muestreo dentro de una sola longitud de bit, o si solo hay un solo muestreo punto, no puede estar seguro de dónde está exactamente...

Dicho esto, mi sensación general es: no debería preocuparse tanto por la carga de CC. Los transmisores (IC del transceptor y sus fuentes de alimentación) están diseñados principalmente para manejar 60 ohmios de CC en su salida, 24 horas al día, 7 días a la semana. Y la mejor opción es la terminación directa de CC en ambos extremos de la línea de transmisión.

Si su patrón TX/RX es dúplex completo y el transmisor siempre está encendido, su preocupación puede tener algo de crédito: si OTOH el patrón de comunicación es "escaso", es decir, los transceptores pasan la mayor parte del tiempo en Z alto, no es así. No tiene mucho sentido estar obsesionado con la carga de CC.

Y, en una línea de transmisión, ¡el transmisor también debe tener una impedancia adaptada! En los sistemas misceláneos de RF, esto normalmente se realiza mediante una terminación en serie en el transmisor. No estoy seguro exactamente acerca de RS485 (el FET cambia con fuerza a los rieles de alimentación), especialmente si su transmisor está siempre encendido; tal vez verifique con un 'alcance, con y sin terminación "en el extremo del transmisor" (si su "siempre en el maestro" realmente es en un extremo TML) pero como ya dije, no se preocupe demasiado por la carga presentada por el segundo terminador. Como tarea, probablemente debería tomar un alcance y ver un transmisor 485 en un extremo de la línea cambiando de estado activo a Z alto :-)

Por cierto, se ha conectado a algún dongle USB/485 (su nodo maestro) pero ese es un circuito completo en una caja de plástico opaca, no conocemos los detalles de su cableado interno. Apuesto a que dentro de él encontrarás un SN75176 o algún trabajo similar más moderno. Y es probable que vuelva a Z alta si el FIFO y el "registro de espera del transmisor" alguna vez se vacían.

===EDITAR===

Para una perfecta coincidencia de impedancia RF TML en el transmisor, el chip TX necesitaría cambiar los rieles de alimentación al TML a través de una resistencia local de 60 ohmios diferenciales, o en el mundo real 30 ohmios efectivos en serie con cada pin (A/B ). Esto también tiene sentido como protección contra cortocircuitos (límite de corriente). Mirando la hoja de datos SN75176, no puedo ver una terminación en serie explícita, ni en serie con las salidas de línea, ni con interruptores de tótem individuales, pero sí recuerdo que la amplitud de la señal disminuye un poco, a medida que conecta el primero y el segundo terminador. La hoja de datos menciona un límite de corriente de 60 mA durante TX en los terminales A/B; nuevamente considerando el esquema interno, esto tendría que ser algún límite inherente no destructivo de los interruptores del tótem (o tal vez en realidad son fuentes actuales). Tenga en cuenta que cualquier actividad que ocurra en los tótems de salida del chip está limitada por los rieles de alimentación de 0/+5V. Un total de 5V en 120 ohmios significaría 83 mA. A 60 mA, la amplitud de salida diferencial en una línea terminada correctamente será de 60 ohmios * 60 mA = 3,6 VIe en ese escenario, la impedancia diferencial efectiva del chip es de 23 ohmios (1,4 V a +5 V, /60 mA).

"¿Cómo llegaste a esa configuración asimétrica?" - para intentar igualar los niveles de voltaje que vi del dispositivo maestro, que también eran asimétricos.
"Si su patrón TX/RX es dúplex completo", no lo es; es semidúplex en todo momento
¿Formas de onda asimétricas? Eso es curioso. Te recomiendo que no te importe alguna ligera asimetría. Visto eso antes también. Aparentemente, los transceptores de diferentes proveedores pueden "inclinarse" un poco por ciento en esta o aquella dirección. Y, si su tierra de referencia local se deriva de algún retorno de la red, el "bamboleo" de tierra puede aparecer en una lectura de alcance como los dos nodos que tienen sus salidas "CC desplazadas" una contra la otra (o más bien, "montando una onda sinusoidal" : -) No tiene sentido "cortar" el pin A o B a la referencia GND por una resistencia demasiado pequeña.
La asimetría no era leve, era significativa. El maestro estaba colocando marcas y espacios sobre el suelo, marcas ligeramente por encima del suelo y espacios en algún lugar a medio camino de 5V (no recuerdo los valores exactos)
Si la forma de onda transmitida desde un chip transceptor está muy dañada, inspeccione el chip transceptor de su dongle. He visto (y leído informes de) chips transceptores rotos en algunos dongles USB/485 de marca, de fábrica. Chips falsificados/falsos, aparentemente. Después de reemplazar el transceptor de 8 patas, todo estuvo bien. Este tipo de problema tiende a florecer por completo con un terminador de 120 ohmios conectado (o dos). Si tiene un osciloscopio, considérese afortunado. Muchos practicantes de 485 no tienen uno.
Solo para asegurarse: los transceptores reciben alimentación de +5 V frente a GND local (que también sirve como una buena referencia a tierra). Y, la salida de los transceptores, cada pin de A/B, se mueve entre +5V y GND. Es decir, las dos salidas siempre están por encima de la GND local al transmitir. Solo pueden moverse bajo GND a veces, si está recibiendo la transmisión de otro nodo y los potenciales de ref.gnd son diferentes entre los dos nodos = el GND del nodo lejano que transmite es más bajo en este momento que su GND local en el nodo donde está mirando.
Tengo algunos oscilogramas de transceptores en buen estado (y varios tipos de terminación de bus) en mi página web mencionada anteriormente. Si tiene algunos oscilogramas de lo que considera una salida defectuosa, tal vez publíquelos aquí :-)

Creo que tienes cosas más complicadas. ¿Por qué no usar una resistencia de terminación de 120 ohmios en ambos extremos? Es simple y más confiable.

Como dijiste, no tienes stubs, toda la línea de transmisión está conectada en cadena, el cable tiene las características de impedancia especificadas, entonces lo mejor es usar una resistencia de 120 ohmios en ambos extremos.

Lo inteligente cuando se usa una PC es tener un transceptor RS485 de tipo aislado y tener esos pullup/pulldown habilitados. No a todos los dispositivos les gustan los pull-ups. Algunos de ellos funcionan esperando que A tire hacia arriba y B hacia abajo, y algunos A tiran hacia abajo y B tiran hacia arriba. Mira esto.

EDITAR: Mi recomendación. No utilice el blindaje como tercer conductor. El blindaje debe estar conectado a tierra en cada nodo, pero solo en un extremo. En general, cada parte del escudo está conectada en erath solo en un punto. No existe una conexión directa del maestro al nodo final sobre el escudo.

esquemático

simular este circuito : esquema creado con CircuitLab

La terminación en paralelo bidireccional es realmente simple, pero no confiable si no funciona en absoluto. Como dije, si uso una terminación en paralelo simple, la línea está lejos de ser a prueba de fallas y siempre se ven bits de inicio falsos. La carga de CC en el controlador es demasiado alta y la nota de la aplicación advierte sobre esto.
Los pullup/pulldown son fijos y no se pueden habilitar ni deshabilitar. Ellos no han sido el problema; de hecho, son demasiado débiles para proporcionar una operación a prueba de fallas en presencia de una terminación de 120 ohmios, razón por la cual tuve que agregar mi propia red de terminación de energía y por la que ahora quiero buscar la terminación de CA.
En mi carrera he instalado decenas de redes RS485, Profibus, CAN. La línea de transmisión de 80 m de largo es simple, pero debe tener el hardware adecuado (siempre estuve en la aplicación de rango industrial). Muchas veces hay problemas con el hardware del transceptor defectuoso, la conexión incorrecta del blindaje, etc. ¿Puede informar alguna medición para encontrar el problema real?
@Reinderien ¿Puede vincular el hardware: tanto maestro como esclavo?
Claro, el esclavo ya estaba vinculado. He añadido un enlace al maestro.
@Reinderien El chip transceptor en sí no es una información adecuada sobre el esclavo. Los esquemas alrededor del transceptor ayudarían. También un esquema simple del cableado, cómo conectaste toda la red.
Se ha añadido el esquema. Ya conozco "el problema real", que se muestra en mi descripción anterior; Tengo curiosidad en cuanto a las alternativas de la nota de aplicación. Gracias.
@Reinderien ¿Los esclavos tienen una sección de transceptor aislada galvánicamente?
No. Lo que ves es lo que hay. Mientras que creo que una etapa de aislamiento podría ser muy beneficiosa, y algo sobre lo que leeré por separado, eso no respondería a mis preguntas sobre la terminación de CA.
Agradezco mucho su recomendación, pero no responde a mis preguntas.
@Reinderien En tal caso, será difícil. Tuve mala experiencia con RS485 no aislado. Se utilizan principalmente como punto a punto, no multipunto. Algunos manuales industriales también lo indican claramente.

Lo que desea hacer es encontrar el valor de histéresis mínimo para una señal diferencial y conducir suficiente corriente a través de la resistencia de terminación de línea para al menos el doble del voltaje Vrh mínimo (voltaje de histéresis del receptor) en tantas cargas como vaya a tener. La resistencia de carga es otro valor de la hoja de datos y la resistencia de impedancia de línea 120 se agrega en paralelo a eso.

Para el MAX485, por ejemplo, Vrh (histéresis del receptor) es de 70 mV y Rrl (resistencia de carga del receptor) es de 12 K. Con solo 2 de estos, la carga en cada extremo con resistencias de terminación dobles de 120 ohmios es de 59 ohmios. Con 140 mV y 59 ohmios, necesitamos 2,37 mA de corriente. Eso significa que VDC menos Vrh*2 dividido por nuestra corriente de carga calculada nos da 2.050K. Dividiendo por 2, nuestras resistencias ideales a prueba de fallas son 1K. Solo necesita uno de estos en las ubicaciones de la resistencia de terminación. Los valores que usaría en otro lugar necesitarían solo 12.5uA (12K Rrl), por lo que serían resistencias duales de 180K.

Su mejor apuesta por debajo de 115K y símplex o dúplex completo es la terminación de un solo extremo, ya que una salida de chip de solo transmisión no necesita terminación. Half duplex es donde ayuda la terminación de ambos extremos.