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 múltiples dispositivos usando solo los cables de la fuente de alimentación y luego inyectar una señal de comunicación a través de las líneas de alimentación para convertirla en una red semidúplex.

¿Hay algún método común para lograr esto? Cuanto más simple, mejor y sería genial si usara el UART en el microcontrolador.

Editar: en realidad hay dos proyectos en los que estoy trabajando que 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, entonces probablemente tenga más sentido usar tres cables (pwr, gnd, comms).


1
Fuente de alimentación de CA o CC? ¿Cuál es el voltaje de la fuente de alimentación?
mjh2007

3
La disposición condensador + inductor mencionada en algunas respuestas tiene un nombre: sesgo-T .
davidcary

Respuestas:


15

¿Has estudiado el protocolo Dallas 1-Wire ? Es realmente de baja velocidad y si su dispositivo toma relativamente poca corriente, entonces puede salirse con la suya usando energía parasitaria y alimentar el dispositivo con las líneas de datos.


Gracias por eso: parece que 1-Wire es bastante popular y adecuado para redes de sensores de baja potencia.
Peter Gibson

2
Hola Peter, ya que pediste específicamente UART. Logré encontrar una nota máxima de la aplicación para usar UART como maestro de bus de 1 cable. (ver maxim-ic.com/app-notes/index.mvp/id/214 ).
Terry Chen

11

Esencialmente, necesita insertar señales de CA en la línea de alimentación de CC y separarlas nuevamente. Esto es común en hogares con antenas de TV: el amplificador de potencia se coloca cerca de la antena, y la alimentación de CC sube por el cable de la antena mientras las señales de TV descienden por el cable de la antena.

No proporciona 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 vaya a la salida para bloquear las señales de alta frecuencia que se alimentan a la fuente de alimentación y posiblemente causen problemas de regulación.

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

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

La salida de este condensador PODRÍA ser utilizable directamente en un microcontrolador (con sujeción de diodos) 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 condensador con el pin de E / S.

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

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

Puede parecer mucho trabajo, pero comience con un detector de pulso simple 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, pregunte nuevamente sobre la detección de ASK o FSK.

Un detector de pulso podría ser una simple interrupción de software en el pin de entrada de cambio, o un 555 configurado como un estirador de pulso.


Estoy de acuerdo con Adam aquí, excepto que creo que toda la comunicación debe hacerse por FM y puede crear algunos filtros realmente agradables para recuperar su señal casi a la perfección. Él ha mencionado esto, pero pensé que agregaría una nota para aclarar que una señal ruidosa puede ser hermosa nuevamente con el filtro correcto y la modulación FM.
Kortuk

1
FM es significativamente mejor que AM o muchos otros esquemas de modulación simples, pero tiene un costo un poco más alto en términos de hardware y / o software, y si la calidad de la señal es buena, puede ser excesivo.
Adam Davis

7

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

Era un protocolo monodireccional de baja velocidad (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 imagen (16C54, ¡hace años!), Un rectificador y algunos interruptores DIP para configurar la dirección.

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


Axeman, no tengo nada que decir, pero me ha impresionado señor / señora. Esa solución me hace reír.
Kortuk

Kortuk, espero que "reír" signifique "aprobación" (soy italiano y no soy muy fuerte en inglés, como puedes ver :-)) De todos modos, años antes de mi "invención" (pero lo descubrí después de mi proyecto se completó) fábricas ferroviarias modelo diseñadas, estandarizadas e implementadas (de la misma manera) DCC: Control de comando digital, con el mismo propósito: en.wikipedia.org/wiki/Digital_Command_Control
Axeman

5

Recomendaría pensarlo como una señal de que está agregando y eliminando una compensación de CC. Puede usar condensadores para bloquear CC al colocarlos en serie con su circuito.

Más allá de eso, es difícil decir qué necesitará hacer porque dependerá de su aplicación. Es posible que necesite usar un opamp para separar su condensador de acoplamiento de lo que recibe su señal. Si su voltaje de compensación de CC es grande 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, aunque todo esto depende de su aplicación.

Tengo un par de altavoces que usan esta misma técnica para encender un LED de alimentación 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 sobre qué tipo de filtro RC se está creando.


He considerado intentar modular RS232 con una señal de alta frecuencia acoplada a una fuente de 12V. Supongo que sería importante aislar la capacitancia de la fuente de alimentación para que no intente suavizar las ondas.
Peter Gibson

4

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

Todavía no tengo nada funcionando, pero estaba buscando hacer algo similar usando un Arduino + VirtualWire (configurado a una velocidad de transmisión muy baja). Como Adam Davis dice anteriormente, usted transmite / recibe sus datos de la línea de 12V 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 12V puede hablar y cualquiera puede recibir. He tenido esto trabajando con un cable ordinario entre los dos dispositivos en una placa de prueba, pero no estoy seguro de si funcionará a distancia o en una línea de alimentación real.

Si la transmisión es siempre desde el mismo lugar, tal vez usar algo como el método Hornby podría ser mejor, es decir. 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 de alimentación, por lo que siempre obtiene un suministro de + 12V. Posiblemente podría simplemente 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 (todavía usaría VirtualWire para hacerlo, pero un UART también podría funcionar).

Para un proyecto de iluminación LED, hay una buena posibilidad de que tenga que cambiar un par de amperios por 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 condensador. Sin embargo, la altura de los picos que recibe 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, use un transistor de alta frecuencia o dos para 'amplificar' la señal TTL a 12V antes empujándolo a través del condensador hacia la línea de 12V).

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 fase bloqueada para 'sincronizar' la transmisión y la recepción juntas, lo que significa una mayor relación señal / ruido y menos errores. Eso debería hacer que sea un poco más indulgente con hardware menos que perfecto ;-)


2

Hay muchas preguntas que podría hacer antes de dar algún consejo. Supongo que lo primero que debemos tratar de entender es, ¿cuál es su objetivo aquí? Bajo costo de construcción, largas comunicaciones se ejecutan ahorrando cableado, prueba de concepto u otra cosa. Todos tendrían diferentes recomendaciones. Por ejemplo, si no le preocupa el costo, entonces puede optar por una solución Zigbee o si se trata de tiradas largas, eso crea problemas con la mayoría de las transmisiones de un solo cable y ahora debe buscar otras opciones. Supongo que lo que más me preocupa de tu pregunta es que dices "cuanto más simple, mejor". Lo que está preguntando es posible en algunas situaciones, pero me atrevo a decir que no será simple. Principalmente debido a los problemas del mundo real que encontrará, como la pérdida de señal, el ruido y la gestión actual.

La mejor de las suertes.


Gracias, es bueno saber de posibles problemas que pueda encontrar en el camino. He tratado de aclarar un poco mis necesidades en la publicación anterior.
Peter Gibson

2

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

Aquí hay algunas otras ideas:

Power over ethernet (POE) integra señales de alimentación y ethernet. Hay una variedad de semiconductores y convertidores CC / CC 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 domótica integran señales de alimentación y comunicaciones de CA. Quizás algo de eso sea adaptable.

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


1
Deberá tener cuidado al extraer la alimentación del USB. Cuando conecta un dispositivo por primera vez a un puerto USB, se le otorgan 100 mA a 5 v = 0.5 W. Su dispositivo puede solicitar energía adicional y obtener 500mA a 5v = 2.5W. También deberá asegurarse de que su dispositivo no tendrá un gran tirón cuando lo conecte por primera vez. Wikipedia habla un poco sobre la alimentación USB en la sección 'Alimentación' en es.wikipedia.org/wiki/Universal_Serial_Bus#Power
Kellenjb

Kellenjb, la enumeración no es exactamente lo mismo que solicitar más poder, me gusta pensar que verifica que eres un dispositivo inteligente. La mayoría de las personas también olvidan que si le están dando su dispositivo a otra persona, puede enchufarlo a un concentrador sin alimentación, lo que da como resultado una extracción máxima de 100 mA, sin importar la situación.
Kortuk

1

El protocolo X-10 hace exactamente esto.

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


1
Supongo que "cables de suministro de energía" significan cables de bajo voltaje. Si son cables de alimentación de CA, entonces sí, la mayoría de las otras respuestas no son adecuadas sin tener esto en cuenta.
Adam Davis

2
X10 asume por diseño una línea de alimentación de CA y necesita un transformador sintonizado específico. No piense que encaja con la parte de la pregunta "Lo simple, mejor" :-)
Axeman

0

Hay un semiconductor dedicado que obtiene un byte UART y lo transfiere a través de la línea de alimentación a velocidades de hasta 115.2 Kbps. Este dispositivo fue diseñado para automoción, por lo que es resistente al ruido. Ver http://yamar.com/product/sig60/



-2

Se realiza en sistemas telefónicos. Como saben en el teléfono, tenemos tono de encendido y marcado y voz en un sistema de dos cables. Puede enviar sus comandos a través de la línea de alimentación generando tonos (como la marcación por tonos en un teléfono ordinario). Los circuitos integrados (Ic) para esta aplicación se usan comúnmente y, por lo tanto, son muy baratos.

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


2
Esto no responde la pregunta.
Null

Saeed, al responder viejas preguntas (2010) es costumbre hacer una contribución significativa, especialmente porque ya hay otras buenas respuestas. Y, por favor, no proponga un intercambio privado de información, ya que se supone que las respuestas son útiles para cualquiera que navegue aquí.
clabacchio
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.