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).
communication
uart
power-line-communication
Peter Gibson
fuente
fuente
Respuestas:
¿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.
fuente
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.
fuente
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.
fuente
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.
fuente
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 ;-)
fuente
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.
fuente
¿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.
fuente
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).
fuente
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/
fuente
Mira esto:
Y el hilo donde tomé esa información (la misma pregunta que tú).
fuente
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.
fuente