Einspeisen eines Kommunikationssignals über Gleichstromversorgungsleitungen

22

Ich möchte in der Lage sein, mehrere Geräte mit nur den Stromversorgungskabeln hintereinander zu schalten und dann ein Kommunikationssignal über die Stromleitungen zu senden, um daraus ein Halbduplex-Netzwerk zu machen.

Gibt es gemeinsame Methoden, um dies zu erreichen? Je einfacher, desto besser und es wäre großartig, wenn der UART auf dem Mikrocontroller verwendet würde.

Bearbeiten: Es gibt tatsächlich zwei Projekte, an denen ich arbeite, von denen ich denke, dass sie davon profitieren würden - eines ist ein Sensornetzwerk mit geringer Leistung. Das andere ist ein LED-Beleuchtungsprojekt. In beiden Fällen besteht das Ziel darin, die Verkabelung zu vereinfachen. Wenn die Lösung jedoch zu komplex ist, ist es wahrscheinlich sinnvoller, drei Drähte (pwr, gnd, comms) zu verwenden.

Peter Gibson
quelle
1
AC- oder DC-Stromversorgung? Was ist die Versorgungsspannung?
mjh2007
3
Die in einigen Antworten erwähnte Kondensator + Induktor-Anordnung hat einen Namen: Bias-T .
Davidcary

Antworten:

15

Haben Sie sich das Dallas 1-Wire- Protokoll angesehen? Die Geschwindigkeit ist sehr niedrig, und wenn Ihr Gerät relativ wenig Strom verbraucht, können Sie mit parasitärer Energie davonkommen und das Gerät über die Datenleitungen mit Strom versorgen.

Terry Chen
quelle
Vielen Dank dafür - 1-Wire scheint recht beliebt und gut für Sensornetzwerke mit geringer Leistung geeignet zu sein.
Peter Gibson
2
Hallo Peter, da hast du speziell nach UART gefragt. Ich habe es geschafft, eine Maxime für die Verwendung von UART als 1-Draht-Bus-Master zu finden. (Siehe maxim-ic.com/app-notes/index.mvp/id/214 ).
Terry Chen
11

Sie müssen im Wesentlichen Wechselstromsignale auf die Gleichstromleitung legen und diese wieder trennen. Dies ist in Haushalten mit Fernsehantennen üblich - der Leistungsverstärker wird in der Nähe der Antenne aufgestellt, und die Gleichstromversorgung wird über das Antennenkabel nach oben gedrückt, während die Fernsehsignale über das Antennenkabel übertragen werden.

Sie geben nicht genügend Details für eine Beispielschaltung an, aber hier sind die Grundlagen:

Die Stromquelle sollte eine Induktivität in Reihe zum Ausgang haben, um Hochfrequenzsignale zu blockieren, die in die Stromversorgung einspeisen und möglicherweise Regelungsprobleme verursachen.

Der Stromeingang jeder Einheit sollte auf ähnliche Weise mit einer Induktivität geschützt werden, um die Wechselstromsignale herauszufiltern. Wenn Sie dies in eine Diode und einen Kondensator einspeisen, wird sichergestellt, dass die Wechselstromsignale die Leistung Ihres Moduls nicht gefährden.

Vor dem Induktor wird außerdem ein Kondensator angebracht. Es wird wahrscheinlich ein niedriger Wert sein, so dass die meisten Wechselstromsignale auf der Leitung den Kondensator passieren, aber keiner der Gleichstromsignale.

Der Ausgang dieses Kondensators KANN direkt in einen Mikrocontroller (mit Diodenklemmung) verwendet werden, wenn Sie die erforderliche Software zum Auslesen der jetzt verstümmelten Daten außerhalb der Leitung implementieren können. Ebenso können Sie mit dem I / O-Pin Impulse direkt in den Kondensator senden.

Sehen Sie sich an, wie das auf einem Oszilloskop aussieht - die in den Kondensator einfallende Rechteckwelle sieht aus wie eine abklingende Spitze auf der Stromleitung. Wenn ein anderer Kondensator im Netzwerk herauskommt, wird er weiter geändert - nur ein Strich durch die Rechnung.

Das Ablesen dieser Spitzen kann schwierig sein, und das Herausfiltern von Rauschen kann schwierig sein. Wenn Sie also lange Leitungen führen, ein verrauschtes Netzteil haben oder Leitungen in der Nähe anderer Rauschquellen verlegen, müssen Sie eine erhebliche Signalverarbeitung implementieren. In der Regel erfolgt dies in Form von AM (ASK - Amplitude Shift Keying) oder FM (FSK - Frequency Shift Keying) auf der Leitung mit Datenschnitten, Komparatoren, Tongeneratoren und Detektoren usw. oder der entsprechenden Verarbeitung in Software.

Es mag wie viel Arbeit erscheinen, aber beginnen Sie mit einem einfachen Impulsdetektor auf der Empfangsseite und senden Sie beim Senden Rechteckwellen. Verwenden Sie ein Oszilloskop, um zu verstehen, was passiert. Wenn Sie eine komplexere Lösung benötigen, fragen Sie erneut nach der ASK- oder FSK-Erkennung.

Ein Impulsdetektor kann ein einfacher Software-Interrupt am Änderungseingangspin oder ein 555 sein, der als Impulsdehner eingerichtet ist.

Adam Davis
quelle
Ich stimme Adam hier zu, mit der Ausnahme, dass ich der Meinung bin, dass die gesamte Kommunikation über FM erfolgen sollte und Sie einige wirklich schöne Filter bauen können, um Ihr Signal fast perfekt wiederzuerlangen. Er hat dies erwähnt, aber ich dachte, ich würde eine Anmerkung hinzufügen, um zu verdeutlichen, dass ein verrauschtes Signal mit dem richtigen Filter und der richtigen FM-Modulation wieder schön sein kann.
Kortuk
1
FM ist bedeutend besser als AM oder viele andere einfache Modulationsverfahren, verursacht jedoch geringfügig höhere Kosten in Bezug auf Hardware und / oder Software, und wenn die Signalqualität gut ist, kann dies zu einem Overkill führen.
Adam Davis
7

Ich habe so etwas für ein Zugsteuerungssystem gebaut (Modellbahn natürlich).

Es war ein monodirektionales Low-Speed-Protokoll (eine einzelne Entität sendet Daten, alle anderen sind nur Empfänger) und die Übertragung erfolgte durch einfaches Umkehren der Schienenpolarität.

Auf jedem "Client" gab es eine einfache Schaltung mit einem Bild (16C54, vor Jahren!), Einem Gleichrichter und einigen DIP-Schaltern zum Einstellen der Adresse.

Ich habe keine Quellcodes mehr, aber das System war wirklich einfach und hat jahrelang einwandfrei funktioniert. Es ermöglichte die einfache Steuerung jeder einzelnen Lokomotive, Bahnschranke, eines Semaphors usw. über die Hauptsteuertafel ohne zusätzliche Kabel.

Axeman
quelle
Axeman, ich habe nichts zu sagen, aber Sie haben mich beeindruckt, Sir / Ma'am. Diese Lösung bringt mich zum Kichern.
Kortuk
Kortuk, ich hoffe, dass du "kichern" heißt "Daumen hoch" (ich bin italienisch und nicht sehr stark in Englisch, wie du sehen kannst :-)) Wie auch immer, Jahre vor meiner "Erfindung" (aber ich habe es nach meinem Projekt entdeckt) wurde fertiggestellt) Modellbahnfabriken entworfen, standardisiert und implementiert (auf die gleiche Weise) DCC: Digital Command Control, für den gleichen Zweck: en.wikipedia.org/wiki/Digital_Command_Control
Axeman
5

Ich würde es als Signal für das Hinzufügen und Entfernen eines DC-Offsets empfehlen. Sie können Kondensatoren verwenden, um Gleichstrom zu blockieren, indem Sie sie in Reihe mit Ihrer Schaltung schalten.

Darüber hinaus ist es schwierig zu sagen, was Sie tun müssen, da dies von Ihrer Anwendung abhängt. Möglicherweise müssen Sie einen Operationsverstärker verwenden, um Ihren Koppelkondensator von dem zu trennen, was auch immer Ihr Signal empfängt. Wenn Ihre DC-Offset-Spannung im Vergleich zu Ihrer Signalspannung groß ist, müssen Sie möglicherweise nicht einmal eine Leistungskonditionierung vornehmen, um die Welligkeit zu beseitigen. Dies hängt jedoch alles von Ihrer Anwendung ab.

Ich habe ein Paar Lautsprecher, die dieselbe Technik verwenden, um eine Power-LED an einem sekundären Lautsprecher zu beleuchten. Wenn ich die Lautstärke hoch genug stelle, kann ich tatsächlich feststellen, dass die LED heller wird. In dieser speziellen Anwendung müssten sie sich Gedanken machen, welcher RC-Filtertyp erstellt wird.

Kellenjb
quelle
Ich habe darüber nachgedacht, RS232 mit einem hochfrequenten Signal zu modulieren, das an eine 12-V-Versorgung angeschlossen ist. Ich vermute, es wäre wichtig, die Kapazität des Netzteils zu isolieren, damit die Welligkeiten nicht ausgeglichen werden.
Peter Gibson
4

Ich weiß, dass dies ein ziemlich alter Thread ist, aber hier sind meine 2 Pence wert ...

Ich habe noch nichts am Laufen, habe aber versucht, etwas Ähnliches mit einem Arduino + VirtualWire (mit einer wirklich niedrigen Baudrate) zu machen. Wie Adam Davis oben sagte, senden / empfangen Sie Ihre Daten von der 12-V-Leitung über einen Kondensator mit niedrigem Wert. Es bedeutet, dass Sie im Wesentlichen 0 V mit kleinen Spitzen darauf erhalten, die VirtualWire (wahrscheinlich) dekodieren kann. Die gute Nachricht bei dieser Methode ist, dass theoretisch jedes Gerät auf der 12-V-Leitung sprechen und jedes empfangen kann. Ich habe das mit einem gewöhnlichen Stück Kabel zwischen den beiden Geräten auf einem Steckbrett gemacht, bin mir aber nicht sicher, ob es über die Entfernung oder über eine tatsächliche Stromleitung funktioniert.

Wenn die Übertragung immer vom selben Ort aus erfolgt, ist es möglicherweise besser, so etwas wie die Hornby-Methode zu verwenden - d. H. Lassen Sie den Sender die Stromleitung zwischen +12 V und -12 V umschalten, um das Signal zu erzeugen. Jeder Empfänger verfügt über einen Gleichrichter, der an die Stromleitung angeschlossen ist, sodass er immer mit +12 V versorgt wird. Sie könnten wohl einfach +12 V pulsieren und jedes Gerät einen großen Kondensator verwenden, um die Unebenheiten auszugleichen. Jede dieser Methoden ist wahrscheinlich zuverlässiger, da das Signal auf der Stromleitung viel stärker und daher einfacher zu dekodieren ist (ich würde immer noch VirtualWire verwenden, aber ein UART könnte auch funktionieren).

Für ein LED-Beleuchtungsprojekt besteht eine gute Chance, dass Sie ein paar Ampere über die 12-V-Leitung schalten müssen. Das macht das Umschalten etwas schwieriger, sodass Sie möglicherweise besser mit der RF-Over-Capacitor-Methode zurechtkommen. Die Höhe der Spitzen, die Sie empfangen, nimmt jedoch mit höherem Strom erheblich ab. Daher müssen Sie möglicherweise das Signal, das Sie auf die Leitung schreiben, verstärken (z. B. verwenden Sie einen oder zwei Hochfrequenztransistoren, um das TTL-Signal vorher auf 12 V zu verstärken) Schieben Sie ihn durch den Kondensator auf die 12-V-Leitung.

In jedem Fall funktioniert so etwas wie VirtualWire fast immer besser als ein UART (und wahrscheinlich I2C usw.). Der Grund ist, dass es eine Phasenregelschleife verwendet, um das Senden und den Empfang zusammen zu synchronisieren, was ein höheres Signal-Rausch-Verhältnis und weniger Fehler bedeutet. Das sollte es ein bisschen verzeihender machen, wenn die Hardware nicht perfekt ist ;-)

Ralph Bolton
quelle
2

Es gibt viele Fragen, die ich stellen könnte, bevor ich einen Rat gebe. Ich denke, das erste, was wir zu verstehen versuchen, ist, was ist Ihr Ziel hier? Geringe Baukosten, lange Kommunikationswege, Einsparung von Verkabelung, Proof of Concept oder Ähnlichem. Sie alle hätten unterschiedliche Empfehlungen. Wenn Sie sich zum Beispiel keine Gedanken über die Kosten machen, entscheiden Sie sich vielleicht für eine ZigBee-Lösung, oder wenn es lange läuft, führt dies zu Problemen bei den meisten Single-Wire-Übertragungen, und jetzt müssen Sie andere Optionen prüfen. Ich denke, das, was mich an Ihrer Frage am meisten beunruhigt, ist, dass Sie sagen: "Je einfacher, desto besser". Was Sie fragen, ist in einigen Situationen möglich, aber ich wage zu sagen, dass es nicht einfach sein wird. Hauptsächlich aufgrund der Probleme der realen Welt, auf die Sie stoßen, wie Signalverlust, Rauschen und Stromverwaltung.

Viel Glück.

Mark B
quelle
Danke - es ist gut, von möglichen Problemen zu hören, auf die ich später stoßen könnte. Ich habe versucht, meine Bedürfnisse im obigen Beitrag ein wenig zu klären.
Peter Gibson
2

Sind Sie sicher, dass eine Art USB-Lösung nicht funktioniert? Sie haben ungefähr 2-2.5W zur Verfügung.

Hier sind ein paar andere Ideen -

Power over Ethernet (POE) integriert Strom- und Ethernet-Signale. Für diese Geräte gibt es eine Vielzahl von Halbleitern und DC / DC-Wandlern. Dies ist wahrscheinlich die beste Option, da es hierfür Standardteile gibt.

Ich glaube, einige der Hausautomationsunternehmen integrieren Wechselstrom- und Kommunikationssignale. Vielleicht ist ein Teil davon anpassungsfähig.

Die Audio-Leute haben "Phantomspeisung" von Mikrofonen. 48VDC plus Audio über ein Mikrofonkabel.

jluciani
quelle
1
Sie müssen vorsichtig sein, wenn Sie die Stromversorgung über USB trennen. Wenn Sie ein Gerät zum ersten Mal an einen USB-Anschluss anschließen, erhalten Sie 100 mA bei 5 V = 0,5 W. Ihr Gerät kann dann zusätzliche Leistung anfordern und 500 mA bei 5 V = 2,5 W erhalten. Sie müssen außerdem sicherstellen, dass Ihr Gerät beim erstmaligen Anschließen keinen großen Stromverbrauch hat. Wikipedia
informiert Sie im
Kellenjb, Aufzählung ist nicht gleichbedeutend mit der Forderung nach mehr Leistung. Ich stelle es mir gerne als Bestätigung vor, dass Sie ein intelligentes Gerät sind. Die meisten Menschen vergessen auch, wenn sie ihr Gerät an eine andere Person weitergeben, dass es möglicherweise an einen Hub ohne Stromversorgung angeschlossen ist, was unabhängig von der Situation zu einem maximalen Stromverbrauch von 100 mA führt.
Kortuk
1

Das X-10-Protokoll macht genau das.

Einige der obigen Vorschläge sind auch nicht sicher oder können mit Sicherheit nicht in zugelassenen Geräten (UL / CE-Zeichen) verwendet werden.

Brian Carlton
quelle
1
Ich gehe davon aus, dass "Stromkabel" Niederspannungskabel bedeuten. Wenn es sich um Wechselstromkabel handelt, sind die meisten anderen Antworten ungeeignet, ohne dies zu berücksichtigen.
Adam Davis
2
X10 nimmt vom Design her eine Wechselstromleitung an und benötigt einen speziell abgestimmten Transformator. Denken Sie nicht, dass es zum Teil "Das Einfache das Bessere" der Frage passt :-)
Axeman
0

Es gibt einen dedizierten Halbleiter, der ein UART-Byte erhält und es mit einer Geschwindigkeit von bis zu 115,2 KBit / s über die Stromleitung überträgt. Dieses Gerät wurde für Automobile entwickelt und ist daher robust gegen Geräusche. Siehe http://yamar.com/product/sig60/

julianisch
quelle
-2

Dies geschieht in Telefonanlagen. Wie Sie am Telefon wissen, verfügen wir über Strom, Wählton und Sprache in einem Zweidraht-System. Sie können Ihre Befehle über die Stromleitung senden, indem Sie einen Ton erzeugen (wie Tonwahl in gewöhnlichen Telefonen). Die integrierten Schaltkreise (IC) für diese Anwendung werden häufig verwendet und sind daher sehr billig.

Ich habe ein solches Projekt zur Steuerung von Wasserventilen in einem großen Werk im Iran durchgeführt (bis zu 99 Ventile). Ich kann ein Blockdiagramm meiner Codierer-Decodierschaltung hinzufügen, wenn Sie dies für nützlich halten.

saeed
quelle
2
Dies beantwortet die Frage nicht.
Null
Saeed, bei der Beantwortung alter Fragen (2010) ist es üblich, einen wesentlichen Beitrag zu leisten, zumal es bereits andere gute Antworten gibt. Und bitte schlagen Sie keinen privaten Informationsaustausch vor, da Antworten für alle hilfreich sein sollen, die hier stöbern.
Clabacchio