Iniezione di un segnale di comunicazione su linee di alimentazione CC


22

Vorrei poter collegare in cascata più dispositivi utilizzando solo i cavi di alimentazione e quindi iniettare un segnale di comunicazione sulle linee elettriche per trasformarlo in una rete half duplex.

Esistono metodi comuni per raggiungere questo obiettivo? Più semplice è il migliore e sarebbe bello se usasse l'UART sul microcontrollore.

Modifica: In realtà ci sono due progetti a cui sto lavorando che penso ne trarrebbero beneficio: uno è una rete di sensori a bassa potenza. L'altro è un progetto di illuminazione a LED. In entrambi i casi l'obiettivo è semplificare il cablaggio, ma se la soluzione è troppo complessa, probabilmente ha più senso usare tre fili (pwr, gnd, comms).


1
Alimentazione AC o DC? Qual è la tensione di alimentazione?
mjh2007,

3
La disposizione condensatore + induttore menzionata in alcune risposte ha un nome: bias-T .
David

Risposte:


15

Hai esaminato il protocollo Dallas 1-Wire ? È veramente a bassa velocità e se il tuo dispositivo consuma relativamente poca corrente, puoi cavartela usando l'energia parassita e alimentare il dispositivo con le linee dati.


Grazie per questo - 1 filo sembra abbastanza popolare e adatto per reti di sensori a bassa potenza.
Peter Gibson,

2
Ciao Peter, dal momento che hai specificamente richiesto UART. Sono riuscito a trovare un app note massima per l'utilizzo di UART come master bus a 1 filo. (vedi maxim-ic.com/app-notes/index.mvp/id/214 ).
Terry Chen,

11

In sostanza, è necessario spingere i segnali CA sulla linea di alimentazione CC e separarli di nuovo. Questo è comune nelle case con antenne TV: l'amplificatore di potenza viene posizionato vicino all'antenna e l'alimentazione CC viene spinta sul filo dell'antenna mentre i segnali TV scendono sul filo dell'antenna.

Non fornisci dettagli sufficienti per un circuito di esempio, ma ecco le basi:

La fonte di alimentazione dovrebbe avere un induttore in serie che va all'uscita per bloccare i segnali ad alta frequenza che si alimentano nell'alimentatore e che possono causare problemi di regolazione.

Ogni ingresso di potenza dell'unità deve essere protetto in modo simile con un induttore per filtrare i segnali CA. Inserendolo in un diodo e in un condensatore si assicurerà che i segnali CA non compromettano l'alimentazione del modulo.

Prima dell'induttore, dovrai anche collegare un condensatore. Probabilmente sarà un valore basso in modo che la maggior parte dei segnali AC sulla linea passino il capcitor, ma nessuno dei DC lo farà.

L'output di questo condensatore POTREBBE essere utilizzabile direttamente in un microcontrollore (con bloccaggio diodi) se si hanno le competenze per implementare il software necessario per leggere i dati ora mutilati dalla linea. Allo stesso modo è possibile inviare impulsi direttamente nel condensatore con il pin I / O.

Guarda come appare su un ambito: l'onda quadra che entra nel condensatore sembrerà un picco in decomposizione sulla linea elettrica. Quando uscirà un altro condensatore sulla rete verrà ulteriormente cambiato - solo un picco sulla linea.

Leggere questi picchi può essere difficile e filtrare il rumore può essere difficile, quindi se stai eseguendo linee lunghe, hai un alimentatore rumoroso o esegui linee vicino ad altre fonti di rumore, dovrai implementare un'elaborazione significativa del segnale. Solitamente questo assume la forma di AM (ASK - Amplitude shift keying) o FM (FSK - Frequency shift keying) sulla linea, con dati affettatrici, comparatori, generatori di toni e rivelatori, ecc. O l'elaborazione equivalente nel software.

Può sembrare un sacco di lavoro, ma inizia con un semplice rilevatore di impulsi sull'estremità ricevente e invia onde quadrate durante la trasmissione. Usa un oscilloscopio per capire cosa sta succedendo e, se trovi che hai bisogno di una soluzione più complessa, chiedi di nuovo sul rilevamento di ASK o FSK.

Un rilevatore di impulsi potrebbe essere un semplice interrupt software sul pin di input di modifica o un 555 impostato come tenditore di impulsi.


Sono d'accordo con Adam qui, tranne per il fatto che credo che tutte le comunicazioni debbano essere fatte in FM e che tu possa costruire dei filtri davvero belli per ottenere il tuo segnale quasi perfettamente. Ne ha parlato, ma ho pensato di aggiungere una nota per chiarire che un segnale rumoroso può essere di nuovo bello con il filtro giusto e la modulazione FM.
Kortuk,

1
FM è significativamente migliore di AM o di molti altri semplici schemi di modulazione, ma comporta un costo leggermente superiore in termini di hardware e / o software e, se la qualità del segnale è buona, potrebbe essere eccessivo.
Adam Davis,

7

Ho costruito qualcosa del genere per un sistema di controllo del treno (modello di treno, ovviamente).

Era un protocollo monodirezionale a bassa velocità (una singola entità invia dati, tutti gli altri sono solo ricevitori) e la trasmissione avveniva semplicemente invertendo la polarità del binario.

Su ogni "client" c'era un semplice circuito fatto con una foto (16C54, anni fa!), Un raddrizzatore e alcuni dip switch per impostare l'indirizzo.

Non ho più i codici sorgente, ma il sistema è stato davvero facile e ha funzionato perfettamente per anni, consentendo un facile controllo di ogni singola locomotiva, barriera raiload, semaforo ecc. Da un pannello di controllo principale senza fili aggiuntivi.


Axeman, non ho altro da dire se non che mi hai impressionato signore / signora. Questa soluzione mi fa ridere.
Kortuk,

Kortuk, spero che tu "ridacchiando" significhi "pollice alzato" (sono italiano e non molto forte in inglese, come puoi vedere :-)) Comunque, anni prima della mia "invenzione" (ma l'ho scoperto dopo il mio progetto è stato completato) fabbriche modello ferroviarie progettate, standardizzate e implementate (allo stesso modo) DCC: Digital Command Control, con lo stesso scopo: en.wikipedia.org/wiki/Digital_Command_Control
Axeman

5

Consiglierei di pensarci come un segnale che stai aggiungendo e rimuovendo un DC Offset. È possibile utilizzare i condensatori per bloccare la corrente continua posizionandoli in serie con il circuito.

Oltre a ciò, è difficile dire cosa dovrai fare perché dipenderà dalla tua applicazione. Potrebbe essere necessario utilizzare un opamp per separare il condensatore di accoppiamento da ciò che riceve il segnale. Se la tensione di offset CC è elevata rispetto alla tensione del segnale, potrebbe non essere necessario eseguire alcun condizionamento dell'alimentazione per rimuovere l'ondulazione, ma tutto dipende dall'applicazione.

Ho un paio di altoparlanti che usano questa stessa tecnica per accendere un LED di alimentazione su un altoparlante secondario. Se alzo il volume abbastanza forte, posso effettivamente notare che il LED diventa più luminoso. In questa particolare applicazione dovrebbero essere preoccupati per quale tipo di filtro RC viene creato.


Ho pensato di provare a modulare RS232 con un segnale hi freq accoppiato a un'alimentazione a 12 V - Immagino che sarebbe importante isolare la capacità dell'alimentatore in modo che non cerchi di appianare le increspature?
Peter Gibson,

4

So che questo è piuttosto un vecchio thread, ma ecco il mio valore di 2 pence ...

Non ho ancora funzionato, ma stavo cercando di fare qualcosa di simile usando un Arduino + VirtualWire (impostato su un baud rate molto basso). Come dice Adam Davis sopra, tu trasmetti / ricevi i tuoi dati dalla linea 12V tramite un condensatore di basso valore. Significa che essenzialmente ottieni 0 V con piccoli picchi su di esso, che VirtualWire può (probabilmente) decodificare. La buona notizia di questo metodo è che in teoria qualsiasi dispositivo sulla linea 12V può parlare e chiunque può ricevere. Ho avuto questo lavoro con un normale filo di filo tra i due dispositivi su una breadboard, ma non sono sicuro che funzionerà a distanza o su una linea elettrica reale.

Se la trasmissione avviene sempre dallo stesso posto, forse usare qualcosa come il metodo Hornby potrebbe essere migliore, ad es. fare in modo che il trasmettitore commuti la linea di alimentazione tra + 12V e -12V per creare il segnale. Ogni ricevitore ha un raddrizzatore sulla sua connessione alla linea di alimentazione, quindi riceve sempre + 12V di alimentazione. Probabilmente puoi semplicemente pulsare + 12V e ogni dispositivo utilizza un grande condensatore per appianare i dossi. Ognuno di questi metodi è probabilmente più affidabile perché il segnale sulla linea elettrica sarà molto più forte e quindi più facile da decodificare (userei ancora VirtualWire per pensarci bene, ma potrebbe funzionare anche un UART).

Per un progetto di illuminazione a LED, ci sono buone probabilità che dovrai spostare un paio di amplificatori lungo la linea a 12V. Ciò rende il passaggio un po 'più difficile, quindi potresti stare meglio con il metodo RF-over-condensator. Tuttavia, l'altezza dei picchi che ricevi si ridurrà considerevolmente con una corrente più alta, quindi potresti dover amplificare il segnale che scrivi sulla linea (ad es. Usa un transistor ad alta frequenza o due per "amplificare" il segnale TTL a 12V prima spingendolo attraverso il condensatore sulla linea 12V).

Ad ogni modo, qualcosa come VirtualWire funzionerà quasi sempre meglio di un UART (e probabilmente I2C ecc.). Il motivo è che utilizza un loop a fase bloccata per "sincronizzare" la trasmissione e la ricezione insieme, il che significa un rapporto segnale-rumore più elevato e meno errori. Ciò dovrebbe rendere un po 'più tollerante l'hardware tutt'altro che perfetto ;-)


2

Ci sono molte domande che potrei porre prima di dare qualche consiglio. Immagino che la prima cosa che cerchiamo di capire sia: qual è il tuo obiettivo qui? Basso costo di costruzione, lunghe corse di comunicazione, risparmiando così cablaggio, proof of concept o qualcos'altro. Tutti avrebbero raccomandazioni diverse. Ad esempio, se non sei preoccupato per i costi, forse vai con una soluzione Zigbee o se è di lunga durata, ciò crea problemi con la maggior parte delle transizioni a filo singolo e ora devi guardare altre opzioni. Immagino che la cosa che mi preoccupa di più della tua domanda sia che dici "più semplice è, meglio è". Quello che stai chiedendo è possibile in alcune situazioni, ma oso dire che non sarà semplice. Principalmente a causa dei problemi del mondo reale che incontrerai, come perdita di segnale, rumore e gestione corrente.

Buona fortuna.


Grazie - è bello sapere di potenziali problemi che potrei incontrare in pista. Ho cercato di chiarire un po 'le mie esigenze nel post sopra.
Peter Gibson,

2

Sei sicuro che una sorta di soluzione USB non sia realizzabile? Hai circa 2-2,5 W. disponibili.

Ecco un paio di altre idee -

Power over Ethernet (POE) integra i segnali di alimentazione e Ethernet. Esistono numerosi semiconduttori e convertitori CC / CC progettati per questi dispositivi. Questa è probabilmente l'opzione migliore poiché ci sono parti pronte per questo.

Credo che alcune delle aziende di domotica integrino segnali di alimentazione e comunicazione in corrente alternata. Forse parte di ciò è adattabile.

Gli audio hanno il potere "fantasma" dei microfoni. 48 V CC più audio tramite un cavo per microfono.


1
Dovrai stare attento a togliere l'alimentazione dall'USB. Quando si collega per la prima volta un dispositivo a una porta USB, si ottengono 100 mA a 5 v = 0,5 W. Il dispositivo può quindi richiedere ulteriore potenza e ottenere 500 mA a 5 v = 2,5 W. Dovrai anche assicurarti che il tuo dispositivo non avrà un grande sforzo quando lo
collegherai per la

Kellenjb, l'enumerazione non è esattamente la stessa cosa di richiedere più potere, mi piace pensarlo come verificare che tu sia un dispositivo intelligente. La maggior parte delle persone dimentica anche se sta dando il proprio dispositivo a qualcun altro, potrebbe essere collegato a un hub non alimentato, con un conseguente pull massimo di 100 mA, indipendentemente dalla situazione.
Kortuk,

1

Il protocollo X-10 fa esattamente questo.

Inoltre, alcuni dei suggerimenti sopra riportati non sono sicuri o sicuramente non possono essere utilizzati in dispositivi approvati (marchio UL / CE).


1
Suppongo che "cavi di alimentazione" significhino cavi a bassa tensione. Se si tratta di cavi di alimentazione CA, sì, la maggior parte delle altre risposte non sono adatte senza tenerne conto.
Adam Davis,

2
X10 assume per progettazione una linea di alimentazione CA e necessita di un trasformatore sintonizzato specifico. Non pensare che si adatti alla parte "La migliore è la migliore" della domanda :-)
Axeman,

0

Esiste un semiconduttore dedicato che ottiene un byte UART e lo trasferisce sulla linea di alimentazione a velocità fino a 115,2 Kbps. Questo dispositivo è stato progettato per l'industria automobilistica, quindi è robusto per il rumore. Vedi http://yamar.com/product/sig60/



-2

È fatto nei sistemi telefonici. Come sapete al telefono, abbiamo un tono e una voce di alimentazione e di composizione in un sistema a due fili. Puoi inviare i tuoi comandi attraverso la linea di alimentazione generando tono (come la composizione a toni nel normale telefono) i circuiti integrati (Ic) per questa applicazione sono comunemente usati e quindi sono molto economici.

Ho realizzato un progetto come questo per il controllo delle valvole dell'acqua in un grande impianto in Iran (fino a 99 valvole). Posso aggiungere uno schema a blocchi del mio circuito di decodifica del codificatore se pensi che possa essere utile.


2
Questo non risponde alla domanda.
Null il

Saeed, quando risponde a vecchie domande (2010) è consuetudine dare un contributo significativo, soprattutto perché ci sono già altre buone risposte. E per favore non proporre uno scambio privato di informazioni, poiché la risposta dovrebbe essere utile per chiunque navighi qui.
clabacchio
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.