Eu gostaria de poder conectar em cadeia vários dispositivos usando apenas os fios da fonte de alimentação e injetar um sinal de comunicação nas linhas de energia para transformá-lo em uma rede half duplex.
Existem métodos comuns para conseguir isso? Quanto mais simples, melhor e seria ótimo se ele usasse o UART no microcontrolador.
Edit: Na verdade, existem dois projetos em que estou trabalhando que acho que se beneficiariam disso - um é uma rede de sensores de baixa potência. O outro é um projeto de iluminação LED. Nos dois casos, o objetivo é simplificar a fiação, mas se a solução for muito complexa, provavelmente fará mais sentido usar três fios (pwr, gnd, comms).
communication
uart
power-line-communication
Peter Gibson
fonte
fonte
Respostas:
Você já olhou para o protocolo Dallas 1-Wire ? A velocidade é realmente baixa e, se o dispositivo consumir relativamente pouca corrente, você poderá usar energia parasita e alimentar o dispositivo com as linhas de dados.
fonte
Você precisa essencialmente enviar sinais CA para a linha de energia CC e separá-los novamente. Isso é comum em residências com antenas de TV - o amplificador de potência é colocado próximo à antena e a energia CC é empurrada para cima do fio da antena enquanto os sinais da TV descem pelo fio da antena.
Você não fornece detalhes suficientes para um exemplo de circuito, mas aqui estão os princípios básicos:
A fonte de energia deve ter um indutor em série indo para a saída para bloquear sinais de alta frequência que alimentam a fonte de alimentação e possivelmente causando problemas de regulação.
A entrada de energia de cada unidade deve ser igualmente protegida com um indutor para filtrar os sinais CA. Alimentá-lo em um diodo e capacitor garantirá que os sinais CA não prejudiquem a energia do módulo.
Antes do indutor, você também conectará um capacitor. Provavelmente, será um valor baixo, de modo que a maioria dos sinais CA na linha passará pelo capcitor, mas nenhum do CC passará.
A saída deste capacitor PODE ser utilizável diretamente em um microcontrolador (com fixação de diodo) se você tiver a capacidade de implementar o software necessário para ler os dados agora mutilados da linha. Da mesma forma, você pode enviar pulsos diretamente para o capacitor com o pino de E / S.
Confira como isso se parece em um osciloscópio - a onda quadrada que entra no capacitor parecerá um pico de deterioração na linha de energia. Quando sair outro capacitor na rede, ele será alterado - apenas um pico na linha.
A leitura desses picos pode ser difícil e a filtragem de ruídos pode ser difícil; portanto, se você estiver executando longas filas, tiver uma fonte de alimentação ruidosa ou executando linhas próximas a outras fontes de ruído, precisará implementar um processamento de sinal significativo. Geralmente, isso assume a forma de AM (ASK - Key Shift de amplitude) ou FM (FSK - Key Shift de freqüência) na linha, com barras de dados, comparadores, geradores de tom e detectores, etc. Ou o processamento equivalente em software.
Pode parecer muito trabalhoso, mas comece com um simples detector de pulso na extremidade receptora e envie ondas quadradas ao transmitir. Use um osciloscópio para entender o que está acontecendo e, se achar que precisa de uma solução mais complexa, pergunte novamente sobre a detecção de ASK ou FSK.
Um detector de pulso pode ser uma simples interrupção de software na troca do pino de entrada ou um 555 configurado como maca de pulso.
fonte
Eu construí algo assim para um sistema de controle de trem (modelo de trem, é claro).
Era um protocolo monodirecional de baixa velocidade (uma única entidade envia dados, todos os outros são apenas receptores) e a transmissão era feita simplesmente revertendo a polaridade do trilho.
Em todo "cliente" havia um circuito simples feito com uma foto (16C54, anos atrás!), Um retificador e alguns interruptores DIP para definir o endereço.
Não tenho mais códigos-fonte, mas o sistema foi realmente fácil e funcionou perfeitamente por anos, permitindo o controle fácil de todas as locomotivas, barreiras ferroviárias, semáforos etc. de um painel de controle principal sem fios adicionais.
fonte
Eu recomendaria pensar nisso como um sinal de que você está adicionando e removendo um DC Offset. Você pode usar capacitores para bloquear CC, colocando-os em série com o seu circuito.
Além disso, é difícil dizer o que você precisará fazer, pois dependerá da sua aplicação. Pode ser necessário usar um opamp para separar seu capacitor de acoplamento do que já está recebendo seu sinal. Se a sua tensão de offset DC for grande em comparação com a tensão do sinal, talvez você nem precise fazer nenhum condicionamento de energia para remover a ondulação, tudo isso depende da sua aplicação.
Eu tenho um par de alto-falantes que usam essa mesma técnica para acender um LED de energia em um alto-falante secundário. Se eu aumentar o volume alto o suficiente, posso perceber que o LED fica mais brilhante. Nesse aplicativo em particular, eles precisariam se preocupar com o tipo de filtro RC que está sendo criado.
fonte
Eu sei que este é um tópico bastante antigo, mas aqui estão os meus 2 centavos de dólar ...
Ainda não tenho nada funcionando, mas estava tentando fazer algo semelhante usando um Arduino + VirtualWire (definido com uma taxa de transmissão realmente baixa). Como Adam Davis disse acima, você transmite / recebe seus dados da linha de 12V por meio de um capacitor de baixo valor. Isso significa que você basicamente obtém 0V com pequenos picos, que o VirtualWire pode (provavelmente) decodificar. A boa notícia sobre esse método é que, em teoria, qualquer dispositivo na linha de 12V pode falar e qualquer um pode receber. Já trabalhei com um fio comum entre os dois dispositivos em uma placa de ensaio, mas não tenho certeza se funcionará à distância ou através de uma linha de energia real.
Se a transmissão for sempre do mesmo local, talvez seja melhor usar algo como o método Hornby - ie. faça com que o transmissor alterne a linha de alimentação entre + 12V e -12V para criar o sinal. Cada receptor possui um retificador na sua conexão à linha de energia, para que ele sempre receba + 12V de alimentação. Sem dúvida, você pode simplesmente pulsar + 12V e fazer com que cada dispositivo use um capacitor grande para suavizar os solavancos. Qualquer um desses métodos é provavelmente mais confiável, porque o sinal na linha de energia será muito mais forte e, portanto, mais fácil de decodificar (eu ainda usaria o VirtualWire para fazer isso, mas um UART também pode funcionar).
Para um projeto de iluminação LED, há uma boa chance de você precisar mudar alguns amplificadores na linha de 12V. Isso torna a troca um pouco mais difícil, para que você possa se sair melhor com o método de RF sobre capacitor. No entanto, a altura dos picos que você recebe reduzirá consideravelmente com a corrente mais alta, portanto, pode ser necessário amplificar o sinal que você escreve na linha (por exemplo, use um transistor de alta frequência ou dois para 'amplificar' o sinal TTL para 12V antes empurrando-o através do capacitor para a linha de 12V).
De qualquer forma, algo como o VirtualWire quase sempre funcionará melhor do que um UART (e provavelmente I2C etc). O motivo é que ele usa um loop de fase bloqueada para sincronizar a transmissão e a recepção juntas, o que significa uma maior relação sinal / ruído e menos erros. Isso deve torná-lo um pouco mais tolerante com hardware menos que perfeito ;-)
fonte
Há muitas perguntas que eu poderia fazer antes de dar algum conselho. Acho que a primeira coisa para tentarmos entender é: qual é o seu objetivo aqui? Baixo custo de construção, comunicação longa é executada, economizando fiação, prova de conceito ou outra coisa. Todos eles teriam recomendações diferentes. Por exemplo, se você não está preocupado com o custo, talvez opte por uma solução Zigbee ou se for longa, isso cria problemas com a maioria das transmissões por fio único e agora você precisa procurar outras opções. Acho que o que mais me preocupa na sua pergunta é que você diz "quanto mais simples, melhor". O que você está pedindo é possível em algumas situações, mas ouso dizer que não será simples. Principalmente devido aos problemas do mundo real que você encontrará, como perda de sinal, ruído e gerenciamento atual.
Boa sorte.
fonte
Tem certeza de que algum tipo de solução USB não é viável? Você tem cerca de 2-2,5W disponível.
Aqui estão algumas outras idéias -
O Power over Ethernet (POE) integra sinais de energia e Ethernet. Há uma variedade de semicondutores e conversores DC / DC projetados para esses dispositivos. Esta é provavelmente a sua melhor opção, pois existem peças prontas para isso.
Acredito que algumas das empresas de automação residencial integram sinais de energia e comunicações CA. Talvez um pouco disso seja adaptável.
O pessoal do áudio possui alimentação "fantasma" de microfones. 48VDC mais áudio através de um cabo de microfone.
fonte
O protocolo X-10 faz exatamente isso.
Além disso, algumas das sugestões acima não são seguras ou certamente não podem ser usadas em dispositivos aprovados (marca UL / CE).
fonte
Existe um semicondutor dedicado que obtém um byte UART e o transfere pela linha de energia em velocidades de até 115,2 Kbps. Este dispositivo foi projetado para automóveis, por isso é robusto ao ruído. Consulte http://yamar.com/product/sig60/
fonte
Verifique isto:
E o tópico em que tirei essa informação (a mesma pergunta que você).
fonte
É feito em sistemas telefônicos. Como você sabe no telefone, temos poder e tom de discagem e voz em um sistema de dois fios. Você pode enviar seus comandos através da linha de energia gerando tom (como discagem por tom no telefone comum); os circuitos integrados (Ic) para esta aplicação são comumente usados e, portanto, são muito baratos.
Eu fiz um projeto como este para controlar válvulas de água em uma grande fábrica no Irã (até 99 válvulas). Posso adicionar um diagrama de blocos do meu circuito decodificador de codificador, se você achar que pode ser útil.
fonte