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.
- Benjamin Benz
- Thorsten Thiele
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.
Kontaktaufnahme
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.
Alarm
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.
Heizung
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 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.
Heimarbeit
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 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)
Literatur
[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
c't-Projekt Mikrocontroller-im-LAN
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)