Loading...
Loading...

LED-Optimierung

Untersuchung der Eigenschaften von Lechtdioden zur Verbesserung der Datenübermittlungsrate eines Lichtwellenleitermodells

Vorgestellt werden hier die Inhalte einer Facharbeit, welche sich auf ein Arduino-Projekt bezog, das mithilfe von Leuchtdioden und Lichtsensoren einen Lichtwellenleiter, im Allgemeinen besser bekannt als Glasfaserkabel modellierte. Ziel war die Optimierung der Übertragungsrate, wozu die Funktionsweise und Eigenschaften von LEDs untersucht sowie die erlangten Erkenntnisse aus der Datenerhebung des praktischen Teils genutzt wurden, sodass die Software des LWL-Modells an die Charakteristika einer optimalen Leuchtdiode angepasst werden konnte.

Das Übertragungssystem

In Lichtwellenleitern, wie Glasfaserkabeln, werden Signale mittels einer Totalreflektion des Lichtes übertragen. Vereinfacht sieht das Prinzip des Übertragungssystems wie in der unteren Abbildung aus. Zunächst wird das Quellsignal durch einen Analog-Digital-Wandler und eine das elektrische Signal verstärkende Treiberstufe zu einer Leuchtdiode geführt. Diese überträgt die Information in Form von Licht durch den Lichtwellenleiter bis zu einem Photoelement. Es erzeugt aus den Lichtimpulsen erneut ein elektrisches Signal, das ggf. von digital zu analog umgewandelt und verstärkt wird, bevor es zum Empfänger gelangt.

Übertragungssystem von Lichtwellenleitern
Übertragungssystem von Lichtwellenleitern

Das System lässt sich nun auf das Modell übertragen: Der Nutzer liefert das Quellsignal über die Texteingabe in einem Processing-Programm. Die Nachricht wird darin als binäre Sequenz codiert. Dies entspricht der Analog-Digital-Wandlung. Die Sequenz wird über die serielle Schnittstelle des Computers an ein Arduino-Programm übergeben, das den Microcontroller steuert. Der Arduino steuert schließlich eine LED an, welche sich in einer Röhre befindet. Mit lichtreflektierender Aluminiumfolie sowie Backpapier ausgekleidet, entsprechen diese Schichten dem Mantelglas, bzw. der äußeren Hülle eines LWL. Die ineinander gesteckten Rohre haben zusammen eine Länge von etwa einem Meter. Am anderen Ende der Röhre befindet sich ein Photowiderstand, der die rohen Lichtwerte ständig über das empfangende Arduino- an das empfangende Processing-Programm weitergibt. Letzteres ist für die Interpretation der Daten sowie die Decodierung und Ausgabe an den Endnutzer eines zweiten Computers zuständig.

Die Nachricht “tranquility base here, the eagle has landed.” wird fortan für alle Testläufe des Modells übertragen. Momentan zuverlässig ist die Übertragung unter Nutzung der Arduino-LED bei einer Periodendauer von Tmax = 125ms.

Kurzübersicht: Die Versuchsaufbauten des Projekts

  • Nutzer gibt Nachricht über Processing-Programm ein
  • Arduino kondiert Text zu Binärsequenz, die LED blinkt
  • Licht erreicht durch ein Meter lange Röhre Photowiderstand an zweitem Arduino
  • empfangendes Processing-Programm interpretiert Daten und zeigt Oszillograph
  • zuverlässige Übertragung bei Periodendauer von Tmax = 125ms
Kompletter Aufbau bei der Nachrichtenübermittlung
Kompletter Aufbau bei der Nachrichtenübermittlung

Die User Interfaces

Oszillograph zu Beginn der Messung
Oszillograph zu Beginn der Messung

Die aufgenommenen Rohwerte des Lichtwiderstandes werden auf einer Ratioskala von null bis 1024 angegeben und auf die Höhe des Programmfensters angepasst dargestellt. Im weiteren Verlauf wird mit dieser Skala weitergearbeitet und deren Werte in SW (Sensor-Wert) angegeben. Es gilt: 1SW ≙ 1.75mcd, mit dem Nullpunkt beider Skalen bei null.

Die pinke Linie zeigt den Beginn der Übertragung an, während der Anfang der Nachricht durch die gelbe Linie markiert ist. Die grauen Punkte entsprechen den Cheats, die beim Schreiben des Programms zur Fehlererkennung hinzugefügt wurden. Sie dienen zur Identifizierung kritischer Messzeitpunkte und geben den Übertragungszeitpunkt eines jeweiligen Bits an. Erfolgt die Messung zu nahe am folgenden Cheat, wird der Messpunkt statt in rot oder blau aufgrund seiner hohen Fehlerwahrscheinlichkeit pink gefärbt.

Bestimmung von Bits

Konsolenausgaben zu Beginn der Messung
Konsolenausgaben zu Beginn der Messung

Der Dechiffrierungsprozess der einzelnen Bits zu einer gesamten Zeichenfolge ist in seiner Gesamtheit anhand der Konsolenausgaben zu erkennen. Die jeweils blauen bzw. roten Punkte, welche genau eine halbe Periode nach dem Cheat, d. h. dem eigentlichen Zeitpunkt der Übertragung stehen, sind die Messpunkte für einen jeweiligen Bit. Zur Bestimmung des Bits ist nur ausschlaggebend, ob der Lichtwert über oder unter dem Durchschnittswert liegt. Grund der zeitlichen Verschiebung ist die für eine LED benötigte Zeit zum Ein- und Ausschalten abzuwarten. Für sämtliche Bitwechsel ist klar im Diagramm der Programmfenster zu erkennen, dass der Lichteinfall nicht sofortig vom Maximum zum Minimum und vice versa reguliert werden kann. Nur durch die Messverschiebung ist die unverzichtbare Reduktion der Fehlerquote möglich. Die einzelnen Bits werden während der Laufzeit zu einer Bitfolge verkettet. Diese wird sofort abgeschnitten, sobald ein Zeichen des Kodierungsbaumes erkannt wird. Die gesamten dechiffrierten Zeichenfolgen aller jeweilig übermittelten Nachrichten werden in der oberen linken Ecke des Programmfensters angezeigt.

Umgebungsfaktoren

Die Auszüge der Demonstration zeigen, dass das Umgebungslicht keinerlei Einfluss auf die Messergebnisse hat. Die Auskleidung des Inneren sowie der Enden der Pappröhre mit Aluminiumfolie ist somit effektiv. Der LDR nimmt höchstens Werte bis 5SW auf, wenn die LED länger abgeschaltet bleibt.

Zu den Umgebungsfaktoren zählen hier nicht nur äußere Umstände: Auch Faktoren der Programmumgebungen sind nicht zu vernachlässigen. Bei den Testläufen und während des Schreibens des Programmcodes fiel auf, dass es beim Processing-Programm, bei welchem eine akkurate zeitliche Koordinierung von höchster Wichtigkeit ist, zu Verschiebungen der periodischen Programmausführung kam. Die Problematik besteht in der Funktion “draw” der Umgebung. Sie wird mit einer Frequenz von 60 Hz, d. h. etwa einmal in 17 Millisekunden ausgeführt, ist dabei jedoch verhältnismäßig unregelmäßig. Daher wird ständig berechnet, wann die Zeit nach der letzten Periode abläuft und dieser Zeitpunkt abgewartet, bevor der zeitabhängige Code ausgeführt wird. Nichtsdestotrotz weicht der Ausführungszeitpunkt aufgrund der äußerst geringen Frequenz, sowie der Leistungsbeschränkung des genutzten Computers ab. Die Divergenz der Periode steigt proportional zur Laufzeit des Programms. Dabei nimmt nicht die Höhe der Abweichungen über Zeit zu, sondern die Häufigkeit der Verspätungen. Daher ist die Länge der zu übertragenden Nachricht unter etwa 15 Wörtern zu halten, bevor sich die zeitlichen Verschiebungen zur Länge einer gesamten Periode summieren und ein Bit versetzt gemessen wird.

Kurzübersicht: Wie Bits bestimmt werden

  • wenn Lichtwert über Durchscnittswert liegt, ist Bitwert gleich 1, sonst 0-Bit
  • Lichteinfall kann innerhalb einer Periodendauer zwischen Min und Max oszillieren und vice versa
  • daher Messzeitpunkt um eine halbe Periodenlänge verzögert, um verspäteter Änderung des Lichts entgegenzuwirken
  • einzelne Bits zu Bitfolge verkettet
  • Bitkette jeweils abgeschnitten und dechiffriert, sobald Kodierungszeichen erkannt
Oszillograph am Ende der Messung
Oszillograph am Ende der Messung

Endziele & Vorgehen

Aus den vorgestellten Funktionsweisen des Programms gehen eine Mehrzahl von Eigenschaften hervor, welche Leuchtdioden zur Verbesserung der Übertragung potentiell haben sollten. Es gilt zu überprüfen, ob sich die Maxima und Minima über vermehrte Wiederholungen von Bitwechseln, wie sie bei den 203 übertragenen Bits der ausgewählten Nachricht vorkommen, erhöhen. Durch nähere Betrachtung konkreter Lichtwerte bei Bitwechseln soll die Fähigkeit einer LED, ihre Helligkeit möglichst schnell und mit regelmäßigen Werten zu oszillieren, überprüft werden. Durch systematisches Verkürzen der Periodendauer soll schließlich eine optimale Übertragung erzielt werden.

Bitfehler und Problematik der verlustfreien Übertragung
Bitfehler und Problematik der verlustfreien Übertragung

Problematisch ist die zur Kodierung verwendete verlustfreie Komprimierung, da dabei keine einheitliche Bytelänge existiert. Entsteht ein Bitfehler, kann somit nicht einfach unterschieden werden, ob es sich um einen längeren Byte oder eine Fehlinterpretation handelt. In diesem Fall ist die Gesamtheit oder zumindest ein Großteil der folgen Übertragung nichtig, da sie durch die Fehlerkennung bzw. unmöglich gewordene Erkennung eines Bytes verschoben wird. Die Konsolenausgaben zeigen, dass oft nur wenige Bitfehler den gesamten Text unleserlich machen können.

Voraussetzung für das Programm ist in diesem Rahmen daher eine nahezu fehlerfreie Übertragung, wobei die Fehlerrate unter 1,5 Prozent liegen soll. Angepeilt ist eine Verbesserung von 36 Prozent, was eine erfolgreiche Verminderung der Periodendauer von Tmax = 125ms auf Tmin = 80ms, bzw. Erhöhung der Frequenz von 8 Bits/s auf 12,5 Bits/s, bedeuten würde.

Die Fehlerquote (BER) ergibt sich aus dem Quotienten der Bitfehlerhäufigkeit und der Gesamtzahl der Bits. Es werden nur die Fehlerquoten der jeweiligen Übertragungen betrachtet, da das Finden und ggf. Berichtigen von Übertragungsfehlern eher dem Feld eines fehlerkorrigierenden Algorithmus entspricht. Das zuvor festgelegte Ziel einer Fehlerquote von weniger als 1,5 Prozent, hieße somit maximal drei Fehler unter den 203 übertragenen Bits. Zur Identifizierung von Übertragungsfehlern werden die korrekten Bits der bereits bekannten Nachricht als Prüfinformation mit den interpretierten Bits abgeglichen.