Funkbrücke

Der c't-COM-auf-WLAN-Adapter verbindet Geräte, die nur eine RS-232-Schnittstelle besitzen, mit dem Funknetz. So lassen sich auch Telefonanlagen an unzugänglichen Orten fernwarten oder mobile Messgeräte abfragen. Für PCs ist die Brücke transparent: Windows, Linux und Co. bekommen nicht mit, dass ihr serielles Gerät in Wirklichkeit übers WLAN funkt.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 10 Min.
Von
  • Benjamin Benz
  • Thorsten Thiele
Inhaltsverzeichnis

Wie man Geräte mit RS-232-Schnittstelle ins lokale Netz integriert, haben wir mit dem COM-auf-LAN-Adapter aus [1] gezeigt. Aber an schwer zugänglichen Orten liegen nur selten Ethernet-Kabel. Um auch die Telefonanlage im Keller oder die intelligente Steuerung der Außenbeleuchtung an die Haus-IT anzubinden, drängt sich WLAN geradezu auf.

Das hier vorgestellte c't-COM-auf-WLAN-Modul ist eine Alternative für das bisherige A-Modul, das von LAN auf RS-232 wandeln konnte. Das aktuelle Projekt bietet deutlich mehr Funktionen: Es spricht zusätzlich zum LAN auch WLAN und bringt auch noch eine zweite serielle Schnittstelle und elf statt drei I/O-Ports mit. Wer den Mikrocontroller-im-LAN [2] weiterverwenden will, steckt ihn einfach auf das neue C-Modul auf. Eine Änderung an der Software ist nicht erforderlich.

Herzstück des Projektes bildet wieder ein integrierter Baustein der Firma Lantronix. Der WiPort vereint in einem kompakten Gehäuse einen x86er-Mikrocontroller (DSTni Ex) mit TCP/IP-Stack und eine Funkschnittstelle für WLAN (11 MBit/s, 802.11b). Für den Anschluss einer handelsüblichen WLAN-Antenne hängt an einem kurzen Kabel eine RP-SMA-Buchse. Ein 100-MBit-Ethernet-Port ist weiterhin vorhanden, es fehlt aber die eingebaute RJ-45-Buchse. Damit das neue Modul das alte komplett ersetzt, befindet sich auf der Platine eine extra zu bestückende Netzwerkbuchse, die HF-Übertrager und zwei LEDs integriert.

Diese LEDs haben eine Doppelfunktion: Im LAN-Modus signalisieren sie wie üblich den Linkzustand und die Aktivität im Netz. Im WLAN-Betrieb erfordern sie ein wenig Interpretation: Ist LED1 (gelb) aus, so arbeitet die WLAN-Schnittstelle im Dauerbetrieb, ein Blinken kennzeichnet den PowerSave-Modus. LED2 (grün) blinkt bei Aktivität im Netzwerk und leuchtet dauerhaft im Ruhezustand. Grund für dieses unterschiedliche Verhalten ist die umgekehrte Polarität der Steuerleitungen des WiPorts zwischen LAN- und WLAN-Port.

Ab Werk sind die WiPorts für WLAN konfiguriert, es fehlen lediglich die Eingabe des Netznamens (SSID) und die Parameter für die Netzwerkverschlüsselung. Das modernere WPA-Verfahren hat Lantronix nicht implementiert, so bleibt nur der Rückgriff auf 128-Bit-WEP-Verschlüsselung - mit möglichst kompliziertem Schlüssel. Solange der WiPort die WLAN-Schnittstelle nutzt, bleibt der Ethernet-Port deaktiviert. Eine gleichzeitige Nutzung beider Ports ist deshalb ausgeschlossen.

Die erste Konfiguration des Moduls erfolgt daher über die serielle Schnittstelle. Hierzu verbindet man die erste Schnittstelle (P2) über ein 1-zu-1-Modemkabel mit dem PC und wählt in einem Terminalprogramm wie Hyperterminal 9600 Baud (8N1). Während das COM-auf-WLAN bootet, sendet man wiederholt den Kleinbuchstaben x und gelangt so ins Konfigurationsmenü.

Hat man die Netzwerkeinstellungen erledigt und den WiPort neu gestartet, stehen über WLAN beziehungsweise LAN ein Web-Interface, eine Telnet-Konsole (siehe Tabelle) und der Device-Installer zur Konfiguration bereit. Leider bietet nicht jedes der drei Interfaces alle Optionen an, sodass man beispielsweise für die Steuerung der I/O-Pins unter Umständen mehrere Tools bemühen muss.

Für jede der beiden RS-232-Schnittstellen lauscht der WiPort auf einem eigenen TCP-Port (siehe Tabelle), ein einfaches Ansprechen per Telnet gewährt vollen Zugriff auf angeschlossene Geräte. Für Windows liefert Lantronix den COM-Port-Redirector mit, einen Treiber, der eine COM-Schnittstelle emuliert. Dadurch bekommen zum Beispiel Wartungsprogramme für Telefonanlagen nicht mit, dass die Anlage nicht lokal am Rechner hängt. Das klappt sogar in der DOS-Box von Windows. Für Linux haben wir in [1] einen ähnlichen Device-Mapper vorgestellt. Unabhängig vom Client-PC kann man auch auf dem integrierten Webserver ein Java-Applet (siehe Soft-Link) ablegen, das den Zugriff auf das serielle Gerät übernimmt. Der Webserver hat mit zwei MByte Flash-Speicher reichlich Platz für eigene Webseiten und Java-Programme zur Steuerung serieller Geräte oder zur Überwachung der I/O-Ports und des Mikrocontrollers auf dem B-Modul.

Neben diesen passiven Verbindungen beherrscht der WiPort auch aktive, bei denen er auf bestimmte Zeichen vom RS-232-Port hin versucht, einen vorher festgelegten Rechner zu kontaktieren. Dazu muss dieser auf einem TCP-Port lauschen und die Daten entgegennehmen.

Geht es nicht um die eigentlichen Daten, sondern um die Überwachung von Geräten oder Anlagen und das Versenden einer Nachricht, so bietet der WiPort drei Trigger an: Bei einer Änderung des Pegels an den drei ersten Port-Pins (CP0, CP1, CP2) oder einer ein bis zwei Byte langen Zeichenfolge auf einer der seriellen Schnittstellen verschickt der Controller automatisch eine E-Mail an bis zu zwei Empfänger. Dazu öffnet er eine SMTP-Verbindung zu einem vorher festgelegten Mailserver und überträgt eine ebenfalls einstellbare Textmeldung. So lassen sich einfache Überwachungsaufgaben erledigen. Interessante Möglichkeiten eröffnen diese Trigger auch in Kombination mit dem B-Modul, um beispielsweise bei Überschreiten bestimmter Sensorwerte Alarm zu schlagen.

Die Spannungsregelung erfolgt in zwei Stufen: Zuerst auf 5 Volt für die Pegelwandler und das B-Modul und dann auf 3,3 Volt. Allerdings benötigt der WiPort mehr Strom als der XPort, daher haben beide Spannungsregler kleine Kühlkörper bekommen und die Eingangsspannung für die Baugruppe sollte 6 Volt nicht deutlich übersteigen. Im Vollbetrieb (ohne B-Modul) verheizt die Baugruppe 500 mA, dabei wird der WiPort ziemlich warm. Schaltet man in der Konfiguration des WiPorts den PowerSave-Modus für WLAN (gemäß IEEE 802.11b) ein, spart dies 150 mA Strom und reduziert die Wärmeerzeugung deutlich. Allerdings führt dies bei einigen Access Points zu Paketverlusten und somit zu langsamer oder komplett unterbrochener Datenübertragung.

Die Leitungen der ersten seriellen Schnittstelle sind an der Stiftleiste P5 getrennt. Hier kann man entweder das B-Modul einschleifen oder mit vier Jumpern die Verbindung zu dem Pegelwandler herstellen.

Die beiden Pegelwandler (IC2, IC4) spezifiziert der Hersteller für maximal 220 kBit/s. Höhere Geschwindigkeiten erreicht man mit den pinkompatiblen Bausteinen ST232A (bis 400 kBit/s) oder SP232 (bis 1 MBit/s) ohne weitere Veränderungen der Schaltung. Der WiPort schafft dank der im Vergleich zum XPort schnelleren CPU bis zu 921 kBit/s auf jedem der beiden seriellen Kanäle.

Die Leitungen des ersten seriellen Ports sind nicht direkt zum WiPort geführt, sondern werden an der Stiftleiste P5 unterbrochen. So kann das B-Modul sich in die Kommunikation einklinken. Fehlt dieses, müssen vier Jumper (siehe Tabelle) die Lücke überbrücken. Wie bei RS-232-Geräten üblich, sind die beiden seriellen Ports als weibliche SUB-D-9-Stecker ausgeführt. Zur Verbindung mit dem PC reicht ein 1-zu-1-Kabel; für den Anschluss zum Beispiel eines Modems braucht man ein Nullmodemkabel mit gekreuzten Leitungen.

Die seriellen Leitungen DCD (Data Carrier Detect) und DSR (Data Set Ready) signalisieren einem angeschlossenen Gerät die Betriebsbereitschaft des Kommunikationspartners. Da der WiPort diese Leitungen aber selbst nicht besitzt, muss man sich mit einem Trick behelfen: Die vier Jumper P3/P4 und P8/P9 verbinden die Signale mit der DTR-Leitung (Data Terminal Ready) des Gerätes und signalisieren so Empfangs- und Sendebereitschaft.

Alle elf I/O-Ports liegen auf der Stiftleiste P10 und damit genau unter der Leiste P8 des B-Moduls. So kann man einzelne Pins direkt verbinden, sofern die jeweiligen Ports des Controllers unbenutzt sind.

Für den Aufbau des Projektes COM-auf-WLAN braucht man einen feinen Lötkolben und eine ruhige Hand. Das einzige SMD-Bauteil, der Sockel des WiPorts, ist auf den Platinen bereits vorbestückt. Erhältlich sind diese über www.emedia.de für 15 Euro, passende Bauteilsätze vertreibt Segor electronics (168 Euro ohne Platine). Zuerst sollte man die Spannungsversorgung (IC3, IC5) sowie alle passiven Bauteile bestücken. Vor dem Aufbau der weiteren Komponenten lohnt es sich, kurz mit einem Multimeter die beiden Spannungen (3,3 V und 5 V) zu prüfen. Den WiPort steckt man als letztes auf und fixiert ihn mit vier kleinen Lötpunkten an den Zungen des Gehäuses.

Das einzige SMD-Bauteil, der Sockel für den WiPort, ist vorbestückt. Alle anderen Bauteile lassen sich mit ein wenig Geduld und einem feinen Lötkolben problemlos bestücken.

Das Java-Applet des COM-auf-LAN-Adapters kann man direkt weiterverwenden - es zeigt, wie man im Web-Browser Kommandos an ein serielles Gerät schickt und Zeichenketten davon empfängt. Lediglich zur Nutzung der zusätzlichen Pins und der zweiten RS-232-Schnittstelle sind einige Erweiterungen nötig. Die Funktionsweise eines Demo-Applets und den Transfer von eigenem Code auf den WiPort per TFTP haben wir in [1] bereits besprochen. Im Soft-Link finden sich der leicht überarbeitete Java-Code sowie die übersetzten Dateien. Diese lädt man am einfachsten mit dem DeviceInstaller von Lantronix in den Flash-Speicher des WiPorts. Auch für das B-Modul haben wir eine aktualisierte Version der C-Quellen und ein neues Binary zum Download bereitgestellt. Zahlreiche Anregungen und Tipps für eigene Projekte finden sich in unserem Leserforum [4], neue Code-Beispiele von unseren Lesern stellen wir auch gerne auf die Projektseite [5]. (bbe)

[1] Benjamin Benz, Brücken bauen, Umsetzer von Ethernet nach RS-232 im Eigenbau

[2] Benjamin Benz, Fernkontrolle, Mikrocontroller zum Messen und Steuern über das LAN

[3] Benjamin Benz, Sensibelchen, Mikrocontroller-Programmierung: Timer, Sensoren und Drehgeber

[4] Leserforum zum Projekt

[5] Webseite zum Projekt

www.ct.de/0426228


Der c't-Mikrocontroller-im-LAN [2] erweitert das Projekt um einen Mikrocontroller, der analoge Signale misst und digitale aufnimmt. Er kann über zwanzig digitale Ports steuern und mit seriellen Geräten kommunizieren. Aufgesteckt auf das COM-auf-LAN-Modul lässt er sich über das Netzwerk fernsteuern und mit einem beliebigen Web-Browser überwachen. Der Mikrocontroller-im-LAN kann zum Beispiel über einen Helligkeitssensor zur Steuerung von Beleuchtungsanlagen oder als Fernthermometer eingesetzt werden. Ein LC-Display und ein Drehgeber erlauben eine komfortable Bedienung. Mehr dazu findet sich in [3].

Die HTML-Seiten auf dem integrierten Webserver dürfen zur Abfrage der Sensoren auch Java-Applets enthalten. Diese laufen lokal auf dem Web-Browser und kommunizieren über TCP/IP mit dem WiPort. Beispielcode dazu findet sich auf der Projektseite (siehe Soft-Link).

IP-Ports des XPORT
Port Protokoll Bedeutung
PT100 Temperaturfühler Temperaturfühler
tcp/80 http integrierter Webserver
tcp/9999 telnet Konfigurationsmenü
tcp/10001 raw Datentunnel für serielle Daten
tcp/10002 raw Datentunnel für serielle Daten
tcp/30704 binary Zugriff GP-I/O-Pins
tcp/30718 binary Setup-XPort
udp/68 dhcp DHCP-Client
udp/69 tftp Firmware Update
udp/161 snmp SNMP-Management
udp/30704 binary Zugriff GP-I/O-Pins
udp/30718 binary Netzwerk-Einstellungen
Pinbelegung
Pin Belegung
P1
1 Power In (6V)
2 GND
P2, P7 RS-232
P3,P8
1 RS-232 DCD
2 RS-232 DSR
P4, P9
1 RS-232 DCD
2 RS-232 DTR
P5
1 VCC (5V)
2 GND
3 V33 (3,3V)
4 RS-232 Tx
5 XPort Dout
6 RS-232 Rx
7 XPort Din
8 RS-232 CTS
9 XPort CTS
10 XPort CP0
11 RS-232 RTS
12 XPort RTS
13 XPort CP1
13 XPort CP2
P10
1 Vcc (5V)
2, 13, 14, 15, 17, 18, 19 NC
3-12 XPort CP0-CP12
16 XPort CP10
20 GND
Stückliste
Bauteil Beschreibung
PT100 Temperaturfühler
C1,C9 470µF/16V
C2 470nF
C3 100µF/25V
C4-C8,C10-C14 100nF
D1 SB140
D2-D5 1N4148
IC1 WiPort
IC2,4 ST232CN
IC3 LM3940IT-3,3
IC5 L4940V5
P1 DC-Buchse
P2,P7 Sub-D-9,w
P3,4,8,9,10 Stiftleiste 2-polig
P5 Stiftleiste 14-polig
P10 Stiftleiste 20-polig
P11 RJ45-Buchse HFJ11-2450E-L12
R1 4k7-0204-1%
R2,3 220R-0204-1%
2 x Kühler FK237/SA220
2 x Sockel DIL-16
1 x Sockel WiPort (vorbestückt)
8xJumper RM 2,5 mm
Bezugsquelle
Quelle Bauteil
www.emedia.de Platinen A-, B- und C-Modul
www.segor.de Bauteilsätze
Jumper
Jumper Bedeutung RS-232 B-Modul
P5.4-P5.5 TX + -
P5.6-P5.7 RX + -
P5.8-P5.9 CTS + -
P5.11-P5.12 RTS + -
P3 DCD-DTR + +
P4 DSR-DTR + +
P8 DCD-DTR + +
P9 DSR-DTR + +
+ vorhanden
- nicht vorhanden

(bbe)