Serial Port Laser Link

Die von uns verwendete Elektronik wurde von der Firma »Realtime Control« entwickelt. Früher hat diese Firma die Elektronik als Bausatz verkauft, aber dann wurde das Herzstück, der IC von Crystal, nicht mehr in DIL-Bauform hergestellt. Daher wird dieser Bausatz nicht weiter vertrieben, aber die Bauanleitung liegt noch im Internet. Den Chip gibt es zum Glück noch in SMD-Bauform, was zwar ein kleines Hinderniß ist, aber wirklich nur ein kleines. Wir sparen uns hier einen Teil der Anleitung, den kann man beziehen von:
http://www.alphalink.com.au/~derekw/upntcvr.htm

Die Anleitung ist ziehmlich gut, aber wir haben dennoch für einige Sachen andere Lösungen gefunden. Ob diese jetzt besser sind ist, glaube ich, aber auch Geschmackssache. Zumindest funktionieren unsere Lösungen auch.
Als erstes Problem trat auf, daß wir kein Gehäuse für die Laserdiode bekommen konnten. Daraufhin haben wir uns solch ein Gehäuse selber entworfen. Eine kleine Skizze ist rechts zu sehen. Dabei handelt es sich um einen 8mm starken Alu-Block, in dem in der Mitte eine Aufnahme für die Laserdiode ist, darüber und darunter jeweils ein M3 Gewinde. Zusätzlich hatten wir ein Blech mit gleichen Abmessungen, aber nur 1mm stark. In dieses haben wir die Linse eingeklebt und das Blech mit zwei Schrauben vor den Block geschraubt. Dabei haben zwei Stücke einer Kugelschreiberfeder das Blech auf Abstand gehalten. Durch diese Konstruktion können wir nun durch anziehen und lösen der Schrauben den Abstand der Linse von der Laserdiode bestimmen und dadurch den Laserstrahl genau fokusieren. Dies hat sich als sehr nützlich herausgestellt, denn bei der endgültigen Montage ist die Übertragungsstrecke gegen kleine Schwingungen der Transceiver resistent, wenn der Laserstrahl etwas breiter aufgefächert ist.
Hier sieht man nochmal den Einbau der Halterungen für Laserdiode und Linse.

LaserLink: Linsenhalter

Das nächste Problem war, daß es den CS8130 nicht mehr in der DIL-Bauform gibt. Aber man kann genausogut die SMB-Bauform dieses Chips nutzen. Allerdings müßte man sich entweder eine Adapterplatine bauen, oder wie wir, da nur zwei Exemplare gebaut werden sollten, den Chip mit feinen Drähten frei schwebend über dem Sockel anordnen. Vielleicht nicht gerade schön, dafür selten.

LaserLink: offen

Hier sieht man das ganze noch mal von der anderen Seite.

LaserLink: Platine

Damit kommen wir mal vom elektronischen zum mechanischen Teil der ganzen Bastelei. Da bei uns der Laser im Freien eingesetzt werden sollte, haben wir uns von Conrad zwei Aluspritzgußgehäuse gekauft. Die sind zwar relativ teuer, aber dafür sind sie auch, wenn man zwischen Deckel und Gehäuse eine Spur Silikon legt, absolut dicht. An eine Seite des Gehäuses haben wir eine Kugel geschraubt. Die war ursprünglich mal als Griff von Möbelstücken gedacht. Aber über die Montage sagen die folgenden Bilder mehr als viele Worte.

LaserLink: Gehäuse geschlossen LaserLink: Halterung LaserLink: Montiert

Wenn man das jetzt soweit alles hingekriegt hat, kann man eigentlich die beiden Laser gegeneinander ausrichten. Das sollte man aber tunlichst nachts, bzw. abends machen, da man ansonsten nicht sieht, wo denn der Laser eigentlich hinstrahlt.
Für die ersten Tests kann man einfach die Laser an die seriellen Schnittstellen zweier Rechner anschließen, und ein Terminalprogramm auf beiden Rechnern starten.
Im ersten Schritt kann man den Laser auch manuell einstellen. Hier ist eine Datei lasercfg.dat, die die Initialisierungdaten für die maximale Geschwindigkeit enthält. Unter Linux z.B. diese Datei innerhalb der ersten 7 sec. nach dem Einschalten des Lasers auf die Schnittstelle kopieren:

cat lesercfg.dat > /dev/ttyS1

Oder halt an eine andere serielle Schnittstelle. Wenn man den Laser erst einmal initialisiert hat, kann man die Verbindung wie eine Null-Modem Verbindung nutzen. Unter gleichen Betriebssystemen gar kein Thema, aber auch mit unterschieldlichen, z.B. Windows 98 an Linux, nicht wirklich schwer. Die PC-Direktverbindung von Windows ist im Prinzip ein PPP über die serielle Schnittstelle.

Bei den Basteleien an unserem Laser sind ein paar nützliche Tools entstanden, die wir der Allgemeinheit nicht vorenthalten wollen. Auch unsere PPP-Konfiguration unter Linux enthält vielleicht einige interessante Hinweise.

LINUX:
Zur Einstellung des Laser-Transceivers unter Linux ist folgendes Programm (unter GNU General Public License) gedacht: laserconfig.c. Es wird mit gcc laserconfig.c -o laserconfig erstellt. Durch Aufruf von laserconfig ohne Parameter erhält man Hinweise zur Verwendung. Es kann nicht nur den Transceiver konfigurieren, sondern auch durch Dauersenden den Laser einschalten, um das Ausrichten zu ermöglichen.
Hier nun die Konfiguration des PPP daemon: options.ttyS1. Der daemon läuft in einer Schleife eines PERL-Scripts (pppd_loop.pl).

Die Chat-Sequence am Anfang einer Null-Modem-Verbindung, an der ein Windows-Systen beteiligt ist, sieht so aus:
Der Client spricht: CLIENT
Der Server anwortet: CLIENTSERVER
Die Funktion kann man zwar auch mit der Konfiguration der Chat-Scripte unter Linux erreichen, das kleine Programm laser_chat.c (Kompilieren mit gcc laser_chat.c -o laser_chat) leistet aber noch mehr. Empfängt es TEST, so antwortet es auch jedesmal mit TEST. Damit ließ sich bei uns ein wirkungsvoller Link-Test realisieren. Da auf dem Linux-Server im Ruhezustand dieses Programm läuft, kann vom Window-Client aus ständig die Verbindung geprüft und auch durch Dauersenden von TEST zumindest auf der Windows-Seite nachjustiert werden.
Leider gibt es einen Zustand des daemon, aus dem er nicht nach Ablauf eines Timeouts von allein raus kommt. Sie tritt bei schlechten Verbindungen auf, wenn zwar der Chat funktioniert hat, danach aber Zeichen verloren gehen und somit das ppp-Protokoll fehlschlägt. Da hilft uns ein alle Stunde (cron-job) ausgeführtes Script: pppd_watchdog.sh

WINDOWS:
Windows ist ja für verwöhnte User, also entstand auch ein entsprechend buntes Programm zur Konfiguration und zum Test des Lasers. Der Link-Test setzt allerdings das oben vorgestellte laser_chat-Programm und damit einen Linux-Server auf der anderen Seite voraus.
Geschrieben ist LaserDesk mit dem Visual Studio 6.0. Es kann einmal als ausführbares Programm heruntergeladen werden, zum anderen sind auch die Quelltexte verfügbar. LaserDesk unterliegt der GNU General Public License.
Beim Start versucht das Programm, einen Verbindungsaufbau vom Konfigurieren bis zum Starten des DFÜ-Netzwerkes weitestgehend automatisch auszuführen. Notwendige Eingriffe des User erscheinen in der Statuszeile. In der Regel reicht es dann, zuerst LaserDesk zu starten, dann den Transceiver einzuschalten, und wenige Sekunden später sollte die Verbindung stehen.

Die Kommentarfunktion ist geschlossen.