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.
quelle
Antworten:
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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 ;-)
quelle
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.
quelle
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.
quelle
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.
quelle
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/
quelle
Überprüfen Sie dies:
Und der Thread, in den ich diese Informationen aufgenommen habe (dieselbe Frage wie Sie).
quelle
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.
quelle