Tratar con el ruido de la señal en un enlace de comunicación de 50 pies

Situación: Conexión de un controlador de motor a una MCU. El controlador del motor está a unos 50 pies de distancia de la MCU. Conectado a través de un solo conducto (enterrado), que contiene los siguientes cables: (No hay otros equipos eléctricos en el área, y está al aire libre entre dos cajas impermeables).

  • Alimentación de 24 V CA al controlador del motor (#14/2) (60 Hz)
  • Cable Cat5 (cobre 24AWG)

Señales que se transmiten a MCU:

  • Señal de dirección del motor. Esta línea se tira hacia arriba o hacia abajo dependiendo de la dirección del motor. Sin cambios rápidos: el motor funciona en una dirección durante al menos 10 segundos.

  • Indicador de posición del motor. Una onda cuadrada de nivel TTL (100 Hz a aproximadamente 1 kHz) que genera una cantidad de pulsos por revolución del motor.

El problema: las señales que llegan a la MCU son muy ruidosas; puede ver claramente la interferencia de la línea de 60 Hz y puede ver la diafonía en las dos líneas: la señal de dirección pulsa junto con la onda cuadrada del indicador de posición.

¿Alguna sugerencia sobre cómo limpiar estas señales para que sean utilizables?

Posiblemente podría colocar una segunda MCU dentro de la caja del controlador del motor, pero ¿qué protocolo podría usar para transmitir a través del cable Cat5 existente que no sería tan susceptible a este tipo de interferencia? Preferiría I2C... ¿sugerencias? Con la esperanza de evitar el bus CAN, ya que agrega demasiada complejidad y hardware adicional.

Cualquier sugerencia apreciada.

¿Ha considerado un protocolo simple como RS485?
¿Exactamente qué cables se utilizan exactamente para qué en el cable cat 5?
@Jack: he considerado varios protocolos, pero quiero evitar cualquier hardware y complejidad innecesarios. Como estoy usando MCU de Arduino Uno, esperaba usar un protocolo que ya está integrado, sin necesidad de chips adicionales.
@Ecnerwal: el par verde lleva + 5 V y GND, y el par azul lleva las dos señales que mencioné. Apuesto a que eso es parte del problema, ¿eh? ¿Necesito usar un par trenzado por señal? y conectar el segundo cable a tierra?
Lo sospechaba (dos señales en un par). Sí, mueva las señales a diferentes pares y empareje con señal a tierra. No es diferencial, pero debería ser mucho mejor.
¿Qué tal <10nF caps en ambos extremos? Dado que la señal tiene una frecuencia bastante baja.
@Michael: lo intentará también si el par trenzado no funciona. ¡Gracias!
@Ecnerwal, hice lo que sugirió, ejecuté cada señal junto con una conexión a tierra a través de un par diferente, ¡y el sistema ahora funciona perfectamente! ¿Puedes poner esto en una respuesta para que pueda darte crédito? ¡Gracias!
Edité mi respuesta (la escritura de la cual me hizo hacer la pregunta que nos trajo aquí). Es bueno tener una solución simple que funcione de vez en cuando, ¿no es así?

Respuestas (4)

Comience con las cosas fáciles: reemplace el UTP cat5 con STP cat 5, 6 o 7: par trenzado blindado. Conecte a tierra el escudo en un extremo. Si eso lo resuelve, habrá terminado con poco esfuerzo. De lo contrario, cualquier cosa que haga a continuación (como usar controladores de línea diferencial adecuados) funcionará mejor.

También me pregunto si está haciendo un bucle de tierra con la potencia del motor y la señal de tierra.

Editar: como aclaramos en los comentarios, ambas señales se ejecutaban en un solo par, lo cual es tan malo como podrían ser para el acoplamiento cruzado de las señales.

Si bien la transmisión diferencial es para lo que está diseñado Cat5, simplemente mover cada señal a pares trenzados separados, con la otra mitad del par conectada a tierra debería mejorar mucho las cosas desde el punto de vista del acoplamiento cruzado y, de hecho, lo hizo, según más comentarios Yo diría que todavía cae bajo el encabezado general de esta respuesta, comience con las cosas fáciles (aún más fácil si no cambia los cables, solo cómo usa los cables) aunque no había pensado en par de cables mal uso hasta después de que escribí la primera forma de la respuesta e hice la pregunta en los comentarios.

No he conectado a tierra la señal de tierra a la potencia del motor. El transformador de 24 V CA tiene terminales COM y 24 V CA. La placa del controlador rectifica y filtra una señal de 5 V CC para uso interno. No estoy seguro de que los dos estén comúnmente conectados a tierra, pero puedo verificar.
@RyanGriggs: si aún no lo ha hecho, es posible que desee considerar el uso de categoría 5 subterránea/exterior (protegido como sugiere Ecnerwal). Este tipo de cable está "inundado" con un gel para evitar la entrada de agua. Los conductos enterrados a menudo se llenan de agua, ya sea por pequeñas fugas o por condensación. Esto es normal.
¡Gracias por tu ayuda!

La señalización de un solo extremo es la fuente de sus problemas. La señalización diferencial mejorará drásticamente la diafonía y el ruido. RS-422 sería una elección adecuada.

I2C no es ideal, ya que su bidireccionalidad (y, en consecuencia, señales débilmente impulsadas) no se presta bien a la señalización diferencial. Sin embargo, parece que solo necesitas una dirección. Y si quieres comunicación bidireccional, tienes pares extra en tu Cat5.

gracias @uint128_t, ¿RS-422 requiere chips codificadores/descodificadores especiales o Arduino puede hacerlo usando los pines de datos existentes?
La comprobación rápida parece que necesita hardware. No se verificó la calidad en absoluto , pero RS485 entre arduinos (usando una pequeña placa de controlador en cada lado): arduino-info.wikispaces.com/SoftwareSerialRS485Example Para rs422 (escribió la búsqueda, supongo que similar: electronics.stackexchange.com/questions/ 160551/…
Es posible I2C sobre diferencial , usando el P82B96 junto con los transceptores apropiados...

Sobre la base de la respuesta de uint128_t:

Puede usar chips transceptores RS-422 (convertidor de un solo extremo a diferencial y convertidor de diferencial a un solo extremo) en el extremo de la MCU y el otro extremo de su cable para convertir las señales existentes de un solo extremo a diferencial y viceversa.

Esto no requeriría el uso del protocolo de transmisión en serie RS-422, por lo que no se necesita una MCU en el extremo del cable del motor.

Como tiene 2 conductores disponibles, más GND, sugeriría usarlos para una transmisión balanceada para la señal del sensor de velocidad. YEsto rechazará bastante bien la interferencia del modo común.

También necesita transmitir la dirección, esto podría hacerse mediante una señal de CC de modo común sustancial. Como se sabe que es CC, excepto cuando se invierte, la interferencia puede ser rechazada por un filtro de paso bajo.