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: