Stromleitungskommunikation. Teil 1 - Grundlegende Datenübertragung über Stromleitungen

Vor nicht allzu langer Zeit stand ich vor einer nicht trivialen Aufgabe - ein Gerät zusammenzubauen, das einige Informationen über Stromleitungen (0,4 kV) in den Netzen gewöhnlicher Haushaltsverbraucher oder vielmehr Ablesungen von Stromzählern übertragen kann.







Bevor ich an diesem Gerät arbeitete, hatte ich wenig Verständnis für die digitale Signalverarbeitung und die Funktionsweise von Computernetzwerken auf physischer Ebene. Es war notwendig, schnell in die Frage einzutauchen und einen Plan zu erstellen, um einen funktionierenden Prototyp zu erstellen.

Während des Studiums fand ich viel Fachliteratur zu Elektronik, Mikrocontrollern und digitaler Signalverarbeitung, was mir dabei sehr geholfen hat. Aber zu Beginn der Reise wäre es für mich hilfreich, Artikel wie diesen zu lesen, um Studienbereiche auszuwählen.



Weiteres Material ist ein Auszug aus der Berufserfahrung in der Form, in der ich es mir aus der Vergangenheit erzählen möchte. Viele Fakten wurden zur besseren Lesbarkeit stark vereinfacht.






Kommunikation



Beginnen wir mit Abstraktionen. Stellen Sie sich vor, Sie müssen eine Information von einer Person auf eine andere übertragen. Im Bild: Der rote Mann ist der Sender und der blaue der Empfänger.







Wir werden Sprache verwenden, um Informationen zu übertragen. Informationen sind eine Art Text in unserem Kopf. Der Text kann in Buchstaben unterteilt werden und jeder Buchstabe kann als Tonsignal dargestellt werden. Auf diese Weise kann jeder Buchstabe mit einem geeigneten Tonsignal codiert werden.







Dirigent



Wie Sie wissen, breitet sich Schall in Form von Wellen aus - Schwankungen der Dichte von Luft oder anderen Medien. In unserem Fall ist das Medium für die Signalausbreitung Luft. Vom roten Mann breiteten sich Schallwellen in alle Richtungen durch die Luft aus.



Nützliches Signal







Glücklicherweise können wir geistig keine Informationen von unserem Kopf direkt an den Kopf des Gesprächspartners übertragen. Daher transformieren (codieren) die Buchstaben aus unserem Kopf auf der „Hardware-Ebene“ in Tonsignale (Sätze von Schallwellen). Wir werden dies ein "nützliches Signal" nennen.

Wichtig: Jeder Buchstabe wird von einem stabilen Satz von Schallwellen codiert. An diesen Wellen können wir einen bestimmten Buchstaben erkennen (wenn wir ihn natürlich kennen). Es gibt eine Konvertierung von Buchstabe zu Ton und zurück von Ton zu Buchstabe.



Lärm





Rauschen ist das gleiche Signal, enthält jedoch keine nützlichen Informationen. Rauschen verzerrt das gewünschte Signal und verringert den Bereich des zuverlässigen Empfangs. Es kann eine Menge Leute sein, die laut über etwas Eigenes sprechen, oder vielleicht sogar ein Echo oder andere Nebengeräusche, die mit einem nützlichen Signal gemischt werden. Rauschen stört normalerweise den Durchgang des gewünschten Signals zum Empfänger.



Protokoll





In dieser Form erreicht das Signal den Empfänger. Der Empfänger erkennt (decodiert) Buchstaben aus einer Reihe von Schallwellen und sammelt Wörter daraus. Wenn es ihm so vorkommt, als wäre dies eine bedeutungslose Menge von Tönen, dann verwirft er sie oder versucht, das ursprüngliche Signal mithilfe eines komplexen Algorithmus wiederherzustellen. Zum Teil fragen wir deshalb manchmal zuerst „Was?“ Und erst dann stellen wir fest, dass wir alles gehört haben.



Ein Protokoll ist in der Tat eine Reihe von Regeln und Algorithmen, mit denen wir Informationen aus einem nützlichen Signal extrahieren können. In diesem Beispiel ist dies unsere Sprache, in der wir mit dem Gesprächspartner kommunizieren. Daraus lernen wir die Bedeutung der übertragenen Töne. All dies geschieht unbewusst, wir können sagen "auf Hardware-Ebene".



Alles, was oben in sehr vereinfachter Form beschrieben wurde, zeigt, wie die Datenübertragung nicht nur zwischen Personen, sondern auch zwischen elektronischen Geräten funktioniert. Sie haben nur eine physikalische Wirkung, zum Beispiel eine elektrische Spannung und ein Kupferkabel als Leiter. Die im Gerät gespeicherten Informationen können unter Verwendung verschiedener physischer Übertragungsmedien und -protokolle übertragen werden, aber das Wesentliche ist ungefähr dasselbe: Leiter, physische Auswirkung, Protokoll.




Stromleitungen als Kommunikationskanal





Als nächstes werden wir Schritt für Schritt herausfinden, wie Daten über Stromleitungen übertragen werden, und auf dem Weg werden wir ein Protokoll für unser Fahrrad erstellen . Schlüsselideen aus dem offenen Industriestandard X10.



Um Stromleitungen als Kommunikationskanal zu verwenden, müssen Sie verstehen, wie sie funktionieren und welche physischen Prozesse in ihnen ablaufen.

Werfen wir einen Blick auf das Schema der Stromlieferung vom Umspannwerk zu Wohngebäuden. Die elektrischen Netze sind dreiphasig und es gibt drei „Phasen“ (A, B und C) vom Umspannwerk, die elektrisch voneinander isoliert sind.







Lassen Sie uns der Einfachheit halber zustimmen, dass jede Phase ein separater Kommunikationskanal ist. Geräte, die an verschiedene Phasen angeschlossen sind, können sich nicht hören.



Jetzt gibt es Geräte auf dem Markt, die zwischen Phasen kommunizieren können. Für sie ist die gesamte Unterstation ein Kommunikationskanal. Bisher spielt dies jedoch keine besondere Rolle für das Verständnis.



Ferner werden wir in den Diagrammen nur die Phase "A" betrachten (in anderen ist alles ähnlich).







Wenn mehrere Transceiver an eine Phase angeschlossen sind, wird eine Netzwerktopologie vom Typ "Common Bus" gebildet. Ein von einem der Geräte gesendetes Signal wird von allen anderen Geräten innerhalb des Signalausbreitungsbereichs empfangen.





Dirigent



Lassen Sie uns das Signalübertragungsmedium genauer untersuchen. Betrachten Sie dazu die Form, in der elektrische Energie übertragen wird, und finden Sie heraus, wie wir durch diesen Fluss unser Nutzsignal übertragen können.

Strom wird in Form von Wechselstrom übertragen. Die Leiter sind normalerweise Aluminium- oder Kupferkabel. Die Spannung im Stromnetz hat die Form einer Sinuskurve mit einer Periode von 20 Millisekunden (Frequenz 50 Hz).





Da sich der Strom abwechselt, ändert er periodisch die Richtung des "Flusses", und zum Zeitpunkt der Richtungsänderung wird die Leistung praktisch nicht übertragen (wenn Sie die Verschiebung aufgrund einer starken kapazitiven oder induktiven Last nicht berücksichtigen). Es gibt Momente der Ruhe. Dies wird als "Nulldurchgang" (im Folgenden ZC ) bezeichnet - der Moment, in dem die Spannung Null ist.





Zu diesem Zeitpunkt hat das Netzwerk auch den niedrigsten Rauschpegel. Dies ist der günstigste Moment zum Erzeugen eines Nutzsignals.



In einem Stromnetz mit einer Frequenz von 50 Hz (wie in Russland) tritt das ZC- Moment 100 Mal pro Sekunde auf. Und wenn Sie jeweils ein Zeichen durch einen Nulldurchgang übertragen, beträgt die Verbindungsgeschwindigkeit 100 Baud. Die Übertragungsrate in Bytes hängt bereits vom Rahmenformat ab, davon, wie viele Dienstbits zusätzlich zu den Daten selbst im Rahmen vorhanden sind (über das Rahmenformat unten im Text).



Synchronisation



Ein weiterer wichtiger Punkt ist die Synchronisation des Sende- und Empfangsmoments zwischen Geräten.



Für unser neues Protokoll verwenden wir die "synchrone Datenübertragung", da diese einfacher zu implementieren ist.



Der Sender muss wissen, zu welchem ​​bestimmten Zeitpunkt der DAC eingeschaltet werden muss, um das Signal zu erzeugen. Der Empfänger muss verstehen, zu welchem ​​bestimmten Zeitpunkt der ADC eingeschaltet werden muss, um das eingehende Signal zu messen und zu digitalisieren. Dazu muss jemand dem Prozessor ein Signal geben.



Dies wird von einem separaten Teil der Nulldurchgangsdetektorschaltung erledigt. Er wartet nur darauf, dass die Netzspannung 0 Volt beträgt, und gibt ein Signal darüber. In Netzwerken mit einer Frequenz von 50 Hz kommt das Signal alle 10 Millisekunden an.





Die elektrische Spannung breitet sich mit Lichtgeschwindigkeit aus, und daher können wir bedingt annehmen, dass der Moment ZC an allen Punkten des Netzwerks gleichzeitig auftritt.



Im Internet finden Sie Beispiele für Detektorschaltungen, die als "Nulldurchgangsdetektor" oder "Nulldurchgangsdetektor" bezeichnet werden.


Nützliches Signal



Es gibt verschiedene Optionen zum Codieren von Informationen für die Übertragung über Stromleitungen . Wir werden Schmalband-Frequenzumtastung verwenden, weil es ist leichter zu verstehen und zuverlässiger. Der Nachteil ist die niedrige Datenübertragungsrate, aber für uns spielt dies noch keine besondere Rolle.



Das gewünschte Signal ist eine gewöhnliche Sinuswelle mit fester Amplitude. Nur die Frequenz des Signals ändert sich. Nehmen wir ein Frequenzpaar und sagen wir, dass ein Signal mit einer Frequenz „0“ und ein Signal mit einer anderen Frequenz „1“ ist.







Alternativ bedeutet wie im "X10" -Standard das Vorhandensein eines Signals "1" und sein Fehlen "0".



Hinweis. Die Frequenzen des Nutzsignals liegen in der Größenordnung von 35 bis 91 kHz. Die gesamte untere Signalkomponente (50 Hz und Oberwellen) wird am Eingang des Geräts abgeschaltet. Alles, was bleibt, ist das mit dem Nutzsignal vermischte Hochfrequenzrauschen.


Physikalisch kann dieses Signal mit einem DAC- Modul erzeugt werden , das in fast jedem modernen Mikrocontroller zu finden ist. Der Digital-Analog- Wandler akzeptiert die Ziffern (Signalpegel) am Eingang und gibt den dieser Zahl entsprechenden Spannungspegel am Ausgang aus. Auf so einfache Weise können Sie dem DAC- Modul per Timer eine Reihe von Zahlen zuführen und am Ausgang eine Sinuskurve mit der von uns benötigten Frequenz erhalten.





Weitere Informationen zum effizienten Generieren einer Sinuswellenform finden Sie im nächsten Artikel.



Lärm



In der Stromleitung ist zunächst ein ziemlich starkes Signal vorhanden - dies ist die übertragene elektrische Energie vom Umspannwerk zu Wohngebäuden. Und unter Last gibt es über eine große Bandbreite viel Rauschen. Haushaltsgeräte, Computerstromversorgung, Ladegeräte - sie senden einen weiten Frequenzbereich in das Stromnetz.



Vergleichen wir zum Verständnis eine dedizierte Datenleitung mit einer Stromübertragungsleitung .



Eine Standleitung ist eine separate Leitung, über die mehrere Geräte kommunizieren. Es kann mit einem leeren Raum verglichen werden, in dem Sie bequem kommunizieren können.







Eine Stromübertragungsleitung kann mit einem Korridor verglichen werden, in dem Arbeiten mit einem Perforator ausgeführt werden und ein Zug in der Mitte fährt (sehr laut). Unter diesen Bedingungen ist es schwierig, Informationen zu vermitteln, aber es ist real.







Protokoll



Die Codierung ist sehr einfach - wir wählen mehrere Symbole aus und weisen jedem eine bestimmte Signalfrequenz zu. Machen wir der Einfachheit halber drei Symbole:



  • "Start" - Durch dieses Symbol erkennt das Gerät, dass die Rahmenübertragung gestartet wurde.
  • "0" ist das Zeichen für Bit 0;
  • "1" ist das Zeichen für Bit 1.




Basierend auf dem Signal vom ZC- Detektor erzeugt der Sender für kurze Zeit eine Sinuskurve der gewünschten Frequenz. Und so wird ein Zeichen ("S", "0" oder "1") für einen Übergang der Netzspannung durch Null (alle 10 Millisekunden) übertragen. Empfänger messen dieses Signal, ermitteln seine Frequenz und schreiben das dieser Frequenz entsprechende Symbol ("S", "0" oder "1") in den Puffer.





Jetzt können wir über den Anfang des Frames berichten und eine Reihe von Einsen und Nullen übertragen. Außerdem werden wir Wörter oder "Frames" hinzufügen. Integrale Teile von Informationen.



Rahmenformat



Wir müssen auch ein Rahmenformat entwickeln, das wir mit diesen Symbolen übertragen. Es gibt mehrere wichtige Punkte, die sich auf das Datenformat auswirken: Rahmenlänge, Adressierung, Integritätsprüfung.



Rahmenlänge

Je größer der Datenanteil ist, desto geringer ist der Datenübertragungsaufwand, da der Rahmen zusätzlich zu den Daten selbst Overhead-Informationen wie eine Prüfsumme und eine Zieladresse enthält. Je kleiner die Daten sind, desto wahrscheinlicher ist eine erfolgreiche Übertragung. Es ist wichtig, hier einen Mittelweg zu finden. Dies wird üblicherweise empirisch ermittelt. Wenn wir ein Beispiel aus Computernetzwerken nehmen, dann wurde im Ethernet-Frame die Grenze von 1500 Datenbytes gewählt (obwohl diese Zahl schnell veraltet war, wird sie heute noch verwendet).





Mit einer starken Zunahme der Rahmenlänge tendiert die Wahrscheinlichkeit, zumindest einige Daten zu übertragen, gegen Null.



Adressierung

Wir dürfen nicht vergessen, dass wir eine "Common Bus" -Netzwerktopologie haben. Alle Geräte erhalten Informationen, die an diesen Bus gesendet werden. Und damit ihre Kommunikation irgendwie funktioniert, müssen sie Adressen haben.



Wir werden die Adresse ganz am Anfang des Frames hinzufügen, damit die empfangende Seite, für die diese Daten nicht bestimmt sind, keine Zeit damit verschwendet, den gesamten Frame abzuhören und zu warten, sodass wir den Prozessor ein wenig von nutzloser Arbeit befreien.





Die Adresslänge wird basierend auf der maximalen Anzahl von Geräten ausgewählt, die sich gleichzeitig im selben Bereich befinden können. Beispielsweise sind 8 Bit maximal 255 Geräte (wenn Sie 0 als Broadcast belassen).



Integritätsprüfung

Bei der Übertragung von Informationen über Stromleitungen besteht eine sehr hohe Wahrscheinlichkeit, dass ein Teil der Daten verloren geht. Daher muss eine Integritätsprüfung durchgeführt werden. Zu diesen Zwecken wird dem Rahmen ein "Endschalter" hinzugefügt. Dies sind einige redundante Informationen, mit denen der Empfänger sicherstellen kann, dass die Daten nicht beschädigt werden.



Lassen Sie uns das endgültige Aussehen des Rahmens festlegen. Die Adresslänge sei 8 Bit (255 Geräte auf dem Kanal + 1 Broadcast-Adresse). Dann kommen die Daten 8 Bit (1 Byte).



Wir werden einen Trailer haben, nur das Ergebnis des Hinzufügens einer Adresse und eines Bytes. Es gibt jedoch eine Einschränkung: Das Gerät kann bei der Frequenz unserer Symbole "0" oder "1" stabiles starkes Rauschen erfassen und hält dies für ein nützliches Signal. Und es besteht eine hohe Wahrscheinlichkeit für falsche Messwerte von Extremwerten wie "0x00" oder "0xFF". Um sich dagegen zu schützen, fügen wir bei der Berechnung des Endschalters einfach die Zahl "42" hinzu.



So etwas sieht aus wie ein Datenrahmen: Senden Sie die Nummer "110" an das Gerät mit der Adresse "17", den Endschalter "169" (110 + 17 + 42).





Der gesamte Rahmen wird Stück für Stück aus den eingehenden Symbolen "0" und "1" nach dem Symbol "Start" zusammengesetzt.



Beschreiben wir den Algorithmus zum Empfangen eines Frames.



Das Gerät wartet zunächst auf das Symbol "Start". Der Puffer ist deaktiviert, wir schreiben nichts darauf.

Wenn das Symbol "Start" erscheint, löschen wir der Einfachheit halber den Empfangspuffer und starten den Bitzähler (wir bestimmen den gesamten Rahmen anhand des Bitzählers).







Jedes nächste Zeichen ("0" oder "1") wird nacheinander in den Empfangspuffer geschrieben und der Bitzähler wird inkrementiert.





Wenn die erforderliche Anzahl von Bits gesammelt ist (Vollbild), überprüfen wir die Integrität. Wählen Sie aus dem Rahmen "Adresse" und "Daten". Wir zählen es mit dem "Limit" -Algorithmus und vergleichen es mit dem, was sich im Frame befindet.





Wenn die Werte übereinstimmen, extrahieren wir die Daten aus dem Frame und senden sie an das höhere Protokoll.





Wenn die Werte nicht übereinstimmen, warten wir weiter auf das Symbol "Start". Und noch einmal.



So können wir langsam aber sicher Byte für Byte von einem Gerät auf ein anderes übertragen. Der Empfänger fügt diese Bytes dem Empfangspuffer des Protokolls auf einer höheren Ebene als der physischen hinzu und entscheidet dort bereits, was zu tun ist: Führen Sie den eingehenden Befehl aus oder geben Sie als Antwort einige Daten zurück.



Ergebnis



In diesem Artikel habe ich versucht, den Leser mit dem Thema Datenübertragung über Stromleitungen in einer allgemeinen und verständlichen Sprache vertraut zu machen. Ich hoffe, jemand wird diese Informationen nützlich finden, vielleicht nicht nur im Bereich der SPS .



Im nächsten Teil möchte ich Ihnen etwas über den von mir verwendeten Algorithmus zur schnellen Sinusgenerierung erzählen. Und wie man seine Frequenz ( DFT ) aus dem Zahlenfeld des digitalisierten Signals herausfindet . Ich erzähle Ihnen ein wenig über die Drüsen für all das.



Vielleicht wirft jemand in den Kommentaren mehr Ideen. Ich würde mich über Feedback freuen!






Links und Materialien zum Thema:






All Articles