Inyectar una señal de comunicación a través de líneas de alimentación de CC

22

Me gustaría poder conectar en cadena varios dispositivos utilizando solo los cables de la fuente de alimentación y luego inyectar una señal de comunicaciones a través de las líneas de alimentación para convertirla en una red semidúplex.

¿Existen métodos comunes para lograr esto? Cuanto más simple, mejor y sería genial si utilizara el UART en el microcontrolador.

Edit: En realidad, hay dos proyectos en los que estoy trabajando y creo que se beneficiarían de esto: uno es una red de sensores de baja potencia. El otro es un proyecto de iluminación LED. En ambos casos, el objetivo es simplificar el cableado, pero si la solución es demasiado compleja, probablemente tenga más sentido usar tres cables (pwr, gnd, comms).

    
pregunta Peter Gibson

11 respuestas

15

¿Ha investigado el protocolo Dallas 1-Wire ? Es realmente de baja velocidad y si su dispositivo toma relativamente poca corriente, puede utilizar la energía parásita y alimentar el dispositivo con las líneas de datos.

    
respondido por el Terry Chen
11

Básicamente, debe insertar señales de CA en la línea de alimentación de CC y separarlas nuevamente. Esto es común en los hogares con antenas de TV: el amplificador de potencia se coloca cerca de la antena, y la alimentación de CC se empuja por el cable de la antena mientras las señales de TV bajan por el cable de la antena.

No da suficientes detalles para un circuito de ejemplo, pero aquí están los conceptos básicos:

La fuente de alimentación debe tener un inductor en serie que va a la salida para bloquear las señales de alta frecuencia que ingresan a la fuente de alimentación y posiblemente causen problemas de regulación.

La entrada de energía de cada unidad debe protegerse de manera similar con un inductor para filtrar las señales de CA. Al introducir eso en un diodo y un condensador, se asegurará de que las señales de CA no pongan en peligro la alimentación de su módulo.

Antes del inductor, también conectará un condensador. Probablemente será un valor bajo para que la mayoría de las señales de CA en la línea pasen al capcitor, pero ninguna de las DC lo hará.

La salida de este condensador PUEDE utilizarse directamente en un microcontrolador (con sujeción de diodo) si tiene las habilidades para implementar el software necesario para leer los datos ahora mutilados de la línea. Del mismo modo, puede enviar pulsos directamente al capacitor con el pin de E / S.

Compruebe cómo se ve eso en un visor: la onda cuadrada que entra en el condensador se verá como un pico en descomposición en la línea eléctrica. Cuando salga otro capacitor en la red, se cambiará aún más, solo un pico en la línea.

La lectura de estos picos puede ser difícil, y filtrar el ruido puede ser difícil, por lo que si está ejecutando líneas largas, tiene una fuente de alimentación ruidosa o líneas cerca de otras fuentes de ruido, tendrá que implementar un procesamiento de señal significativo. . Por lo general, esto toma la forma de AM (ASK - Amplificación de cambio de amplitud) o FM (FSK - Programación de cambio de frecuencia) en la línea, con procesadores de datos, comparadores, generadores de tonos y detectores, etc. O el procesamiento equivalente en software.

Puede parecer mucho trabajo, pero comience con un simple detector de pulso en el extremo receptor y envíe ondas cuadradas cuando transmita. Use un osciloscopio para comprender lo que está sucediendo y, si encuentra que necesita una solución más compleja, vuelva a preguntar sobre la detección ASK o FSK.

Un detector de impulsos puede ser una simple interrupción del software al cambiar el pin de entrada, o un 555 configurado como un ensanchador de impulsos.

    
respondido por el Adam Davis
7

He construido algo como esto para un sistema de control de trenes (tren modelo, por supuesto).

Era un protocolo de baja velocidad monodireccional (una sola entidad envía datos, todos los demás son solo receptores) y la transmisión se realizó simplemente invirtiendo la polaridad del riel.

En cada "cliente" había un circuito simple hecho con una foto (¡16C54, hace años!), un rectificador y algunos interruptores DIP para establecer la dirección.

Ya no tengo códigos fuente, pero el sistema fue realmente sencillo y funcionó sin problemas durante años, lo que permite un control sencillo de cada locomotora, barrera de barandas, semáforo, etc. desde el panel de control principal sin cables adicionales.

    
respondido por el Axeman
5

Recomendaría considerarlo como una señal de que está agregando y eliminando un DC Offset. Puede usar condensadores para bloquear la corriente continua colocándolos en serie con su circuito.

Más allá de eso, es difícil decir lo que tendrá que hacer porque dependerá de su aplicación. Es posible que necesite usar un opamp para separar el condensador de acoplamiento de lo que haya recibido su señal. Si su voltaje de compensación de CC es alto en comparación con el voltaje de su señal, es posible que ni siquiera necesite realizar ningún acondicionamiento de energía para eliminar la ondulación, sin embargo, todo depende de su aplicación.

Tengo un par de altavoces que utilizan esta misma técnica para encender un LED de encendido en un altavoz secundario. Si subo el volumen lo suficientemente alto, puedo notar que el LED se vuelve más brillante. En esta aplicación en particular, tendrían que preocuparse por el tipo de filtro RC que se está creando.

    
respondido por el Kellenjb
4

Sé que este es un tema bastante antiguo, pero aquí valen mis 2 peniques ...

Todavía no tengo nada funcionando, pero estaba tratando de hacer algo similar utilizando un Arduino + VirtualWire (configurado a una velocidad de baudios realmente baja). Como dice Adam Davis anteriormente, usted transmite / recibe sus datos de la línea de 12 V a través de un condensador de bajo valor. Significa que esencialmente obtienes 0V con pequeños picos, que VirtualWire puede (probablemente) decodificar. La buena noticia acerca de este método es que, en teoría, cualquier dispositivo en la línea de 12 V puede hablar y cualquier puede recibir. He tenido esto trabajando con un trozo de cable ordinario entre los dos dispositivos en una placa de pruebas, pero no estoy seguro de si funcionará a distancia, o sobre una línea eléctrica real.

Si la transmisión es siempre desde el mismo lugar, entonces quizás sea mejor usar algo como el método de Hornby, por ejemplo. haga que el transmisor cambie la línea de alimentación entre + 12V y -12V para crear la señal. Cada receptor tiene un rectificador en su conexión a la línea eléctrica, por lo que siempre recibe un suministro de + 12V. Podría decirse que simplemente puede pulsar + 12V, y hacer que cada dispositivo use un condensador grande para suavizar los golpes. Cualquiera de estos métodos es probablemente más confiable porque la señal en la línea de alimentación será mucho más fuerte y, por lo tanto, más fácil de decodificar (aún así usaría VirtualWire para hacerlo, pero un UART también podría funcionar).

Para un proyecto de iluminación LED, es muy probable que deba cambiar un par de amperios a la línea de 12V. Eso hace que cambiarlo sea un poco más difícil, por lo que podría estar mejor con el método de RF sobre el condensador. Sin embargo, la altura de los picos que reciba se reducirá considerablemente con una corriente más alta, por lo que es posible que necesite amplificar la señal que escribe en la línea (por ejemplo, utilice un transistor de alta frecuencia o dos para "amplificar" la señal TTL a 12 V antes) empujándolo a través del condensador hacia la línea de 12 V).

De cualquier manera, algo como VirtualWire casi siempre funcionará mejor que un UART (y probablemente I2C, etc.). La razón es que utiliza un bucle de bloqueo de fase para "sincronizar" la transmisión y la recepción, lo que significa una mayor relación señal / ruido y menos errores. Eso debería hacer que perdone un poco más el hardware menos que perfecto ;-)

    
respondido por el Ralph Bolton
2

Hay muchas preguntas que puedo hacer antes de dar un consejo. Supongo que lo primero que debemos tratar de entender es, ¿cuál es tu objetivo aquí? Bajo costo de construcción, largas comunicaciones funcionan ahorrando cableado, prueba de concepto o algo más. Todos tendrían diferentes recomendaciones. Por ejemplo, si no está preocupado por el costo, entonces puede optar por una solución Zigbee o si es una ejecución larga, eso crea problemas con la mayoría de las transmisiones de un solo cable y ahora necesita buscar otras opciones. Supongo que lo que más me preocupa de tu pregunta es que dices "cuanto más simple, mejor". Lo que pides es posible en algunas situaciones, pero me atrevo a decir que no será sencillo. Principalmente debido a los problemas del mundo real que encontrará, como la pérdida de señal, el ruido y la administración de la corriente. Si tiene más detalles, podríamos ser de mayor ayuda.

La mejor de las suertes.

    
respondido por el Mark B
2

¿Estás seguro de que algún tipo de solución USB no es viable? Tienes alrededor de 2-2.5W disponibles.

Aquí hay un par de otras ideas -

Power over ethernet (POE) integra potencia y señales de ethernet. Hay una variedad de semiconductores y convertidores DC / DC diseñados para estos dispositivos. Esta es probablemente su mejor opción ya que hay partes disponibles para esto.

Creo que algunas de las compañías de automatización del hogar integran señales de alimentación y comunicaciones de CA. Tal vez algo de eso sea adaptable.

La gente de audio tiene alimentación "fantasma" de micrófonos. 48VDC más audio a través de un cable de micrófono.

    
respondido por el jluciani
1

El protocolo X-10 hace exactamente esto.

Además, algunas de las sugerencias anteriores no son seguras o, por supuesto, no se pueden utilizar en dispositivos aprobados (marca UL / CE).

    
respondido por el Brian Carlton
0

Existe un semiconductor dedicado que obtiene un byte UART y lo transfiere a través de la línea eléctrica a velocidades de hasta 115.2 Kbps. Este dispositivo fue diseñado para la automoción, por lo que es robusto al ruido. Consulte enlace

    
respondido por el Julian
0

Comprueba esto:

Y el hilo donde tomé esa información (la misma pregunta que tú).

    
respondido por el rnunes
-2

Se realiza en sistemas telefónicos. Como usted sabe en el teléfono, tenemos el poder y el tono de marcación y la voz en un sistema de dos cables. Puede enviar sus comandos a través de la línea eléctrica generando un tono (como la marcación por tonos en un teléfono común); los circuitos integrados (Ic) para esta aplicación se usan comúnmente y, por lo tanto, son muy económicos.

Hice un proyecto como este para controlar válvulas de agua en una planta grande en Irán (hasta 99 válvulas). Puedo agregar un diagrama de bloques del circuito del decodificador de mi codificador si crees que puede ser útil.

    
respondido por el saeed

Lea otras preguntas en las etiquetas