I0-Wrt54 Interface

Ziel

Ziel dieses Projektes ist es mit einem Linksys WRT54GS-WLAN-Router einfache Meß- & Steueraufgaben durchzuführen.

Für den Linksys WRT54GS-Accesspoint steht mit OpenWRT ein offenes Linux-Betriebssystem zur Verfügung, das sich für eigene Anwendungen anpassen läßt. Das heißt, es ist möglich eigene Anwendungen für diesen WLan-Router zu schreiben und darauf auszuführen. Im Originalzustand besitzt der WRT54GS leider keine Schnittstellen nach außen, die sich für Meß- & Steuerzwecke einsetzen lassen. Intern besitzt der Router allerdings zwei serielle Port mit LVTTL-Pegel. Nimmt man diese Schnittstelle und “tut” noch ein passendes Mikrocontrollerboard dazu hat man ein kleines Meß/Steuerungsystem mit Ethernet/WLAN-Anschluss.

RS232-Anschlüsse bei Linksys WRT54GS nachrüsten:

Die LVTTL-Pegel der internen 2 Schnittstellen direkt nach außen zu führen ist nicht sinnvoll, da Überspannungen usw. an diesen Pins direkt den Hauptprozessor des WLAN-Router zerstören würden. Deshalb werden die internen Signale über eine Pegelwander vom Typ MAX3232 von 3.3V auf +/-10V umgesetzt.

Schaltplan und Layout des Pegelumsetzers

RS232-Interfaceplatine

RS232-Pegelwandler auf Router-Mainboard

Linksys WRT54GS mit Schnittstellen

Pegelwandler ins Gehäuse gebaut

Hardware des IO-Interface:

Das IO-Interface stellt folgende Ein-/Ausgänge zur Verfügung:

  • RS232-Interface
  • 4 Relaisausgänge
  • 4 digitale Eingänge (low-activ, gegen Überspannung geschützt)
  • 4 analoge Eingänge 0..5V
  • I2C Schnittstelle
  • Schnittstelle für LCD-Modul mit 4-Bit Ansteuerung
  • +12V Eingang für die Versorgungsspannung

Bestücktes WRT54-IO-Interface

Funktionsbeschreibung

Das Interface ist um einen ATMEGA8 herum aufgebaut, der über die serielle Schnitstelle mit dem DTE-Ausgang des WRT54GS (TTYS1) kommuniziert. Die Steuerung des Interface erfolgt durch Kommandos, die der Router als ASCII-codierte Nachrichten schickt. Damit kann das Interface im einfachsten Fall durch die Umleitung Ausgaben auf die TTYS1 angesprochen werden. Alternativ können natürlich auch alle verfügbaren Scriptsprachen usw. genutzt werden.

Alle Befehle werden durch ein Ecsape-Zeichen eingeleitet und durch ein Carriage Return (cr) angeschlossen. [Die <> in der folgenden Tabelle sollen nur verdeutlichen, dass es sich um das Steuerzeichen handelt und werden nicht mit übertragen!]

Befehl Beschreibung Parameter Rückgabewert
<esc>Dxxx,xxx,xxx<cr> Kommando an Display schicken xxx= Wert des Kommandobytes (dezimal) Ok<cr>
<esc>C<cr> Display löschen keine Ok<cr>
<esc>Px,y,ttt<cr> Text auf Display an def. Position ausgeben x=x-pos. in Zeile, y=Zeilennr, ttt=Text Ok<cr>
<esc>Rns<cr> Relais Nr. n in Zustand s schalten n=Relais nr. , s=Zustand (0/1) Ok<cr>
<esc>In<cr> Abfrage des digitalen Inputs n n=Nr des Eingangs Is<cr> (s=0/1)
<esc>An<cr> Abfrage des analogen Inputs n n=Nr des analogen Eingangs As<cr> (s=0…1023)

Die Elektronik des IO-Interfaces ist recht einfach aufgebaut. Die +12V Eingangsspannung wird über einen 7805 Linearregler auf +5V gewandelt. Der AVR, der MAX202 und das LCD-Modul werden von den +5V versorgt. Wenn ein LCD-Modul mit Backlight angeschlossen wird, muss der Spannungsregler eventuell gekühlt werden!

Die Ansteuerung der +12V Relais erfolgt über einen ULN2003-Treiber, der direkt vom AVR-Controller angesteuert wird. Die digitalen Eingänge an ST5 sind alle Low-Aktiv und gegen positive Überspannungen durch Dioden geschützt. Bei den analogen Eingängen an SV4 ist neben einem Überspannungsschutz durch Dioden auch ein kleiner RC-Filter mit 100R/100nF eingebaut.

Als LC-Display ist ein Modul mit HD44780-kompatiblen Controller vorgesehen, das über einen 4-Bit Bus angesteuert wird. An Pin 15 von SV3 ist ein Vorwiderstand von 5 Ohm in die +5V Leitung eingeschleift, wo direkt das Backlight des LCD-Moduls angeschlossen werden kann. Der Kontrast des Displays wird mit R4 eingestellt.

WRT54-IO-Interface mit LCD-Modul

Da die RS232-Schnittstelle des Interfaces normgerechte +/-10V Signale ausgibt, kann das Interface nicht nur an dem WRT54g-Router sondern auch an jeder anderen RS232-Schnittstelle mit 115200 baud z.B. der eines PC betrieben werden.

Downloads

Hier die Download-Links für den Schaltplan, Bestückungsliste usw. und die Firmware mit Sourcen: