Komplexer, als es manchen scheint!

Einen Laptop an ein WLAN anzuschließen ist schnell gemacht. Da es meist mit einer PCMCIA-Karte oder einen USB-Adapter getan ist, glauben viele, es sei kaum schwieriger, eingebettete Produkte auf den Einsatz im WLAN vorzubereiten.

Was die meisten hier allerdings übersehen, ist, dass der PC und sein Betriebssystem dabei den größten Teil der komplexen Integration übernehmen und die Rechenleistung sowie die hohe Speicherkapazität des Prozessors zur Verfügung stellen, um die Verwaltung der Treiber und Protokollstacks zu gewährleisten. Wer nun aber ein eingebettetes System oder ein bereits bestehendes, eingebettetes Produkt ohne große oder gar ohne jede Prozessorkapazitäten um WLAN erweitern will, der muss die Treiber- und Stackverwaltung auf irgendeine Weise in der eingebetteten Hardware reproduzieren.

Doch die meisten Embedded-Designs verfügen weder über die Speicher- noch über die Prozessorkapazitäten, um diese komplexen Verwaltungsaufgaben übernehmen könnten. Der Hersteller Ezurio hat seine WLAN-Prozessor-Module der WISM-Familie deshalb speziell für Anwendungen entwickelt, bei denen eine eingebettete Prozessorleistung nur zu höheren Kosten oder gar nicht zur Verfügung stünde.

Basisband als Prozessorkern implementiert

Um den Standard 802.11 verwenden und Produkte über eine WLAN-Schnittstelle an das Internet anbinden zu können, ist zunächst einmal die WLAN-Funktionalität selbst erforderlich. Genau diese erhält, wer einen USB-Adapter oder ein einfaches 802.11-Modul kauft. Diese Bauelemente enthalten einen Funkempfänger und einen Basisband-Prozessor sowie einen Leistungsverstärker. Um die Kosten für PC-Peripherie, beispielsweise für USB-Adapter, zu reduzieren, haben Halbleiterhersteller die Produktionskosten ihrer Chipsets gesenkt, indem sie das Basisband als Prozessorkern implementiert haben anstatt als festverdrahteten Media-Access-Controller (MAC).

Der einzige Nachteil dieser Lösung ist, dass die Basisband-Firmware jedes Mal vom Host-Prozessor heruntergeladen werden muss, während der WLAN-Chip hochgefahren wird. Durchschnittlich umfasst dieser Code etwa 100 Kbyte, was den für das eingebettete Prozessorsystem benötigten Speicherplatz schon deutlich anwachsen lässt.

Treiber können zur teuren Angelegenheit werden

Nachdem die Basisband-Firmware geladen wurde, benötigt der Prozessor einen Treiber, der das Basissignal steuert und die unterste Schicht bereitstellt, um mit einem TCP/IP- oder UDP-Stack in Verbindung zu treten. Allerdings braucht jeder Chip einen spezifischen Treiber. Wenn also ein Embedded-Designer seinen 802.11-Chip-Hersteller wechseln will, muss er seinen Treiber neu programmieren. In aller Regel muss auch für jede neue Generation von Halbleitern desselben Herstellers ein neuer Treiber erstellt werden. Da derzeit etwa alle 18 Monate ein neuer Chip veröffentlicht wird und die Lebensspanne eines Chips nicht mehr als drei Jahre beträgt, kann dies zu einer teuren und immer wiederkehrenden Angelegenheit für ein Unternehmen werden.

Zwar stellen Halbleiterhersteller für verbreitete Betriebssysteme wie Windows oder Linux die entsprechenden Treiber zur Verfügung, doch die Betriebssysteme eingebetteter Anwendungen werden nur sehr selten unterstützt. Doch selbst wenn das Grundgerüst eines Treibers bereitgestellt wird, dauert es immer noch ungefähr zwei Mann-Monate, so hat die Erfahrung gezeigt, um einen Treiber in das Echtzeitbetriebssystem zu integrieren, und häufig bis zu sechs Mann-Monate, um ihn für den Stack auf höherer Ebene so zu optimieren, dass er zuverlässig, energiesparend und mit einem vertretbar hohen Datendurchsatz arbeitet. Der Treiber wird weitere 150 Kbyte Speicherkapazität belegen.

Protokollstack und HTML-Server integrieren

Der Treiber stellt lediglich das Fundament des Protokollstacks bereit, der darauf aufbaut. In den meisten Fällen wird es sich hierbei um einen TCP/IP-Stack handeln. Ezurio stellt eine breite Vielfalt unterschiedlicher Stacks bereit, die für Echtzeitbetriebssysteme lizenziert werden können. Die Schwierigkeit, den richtigen zu finden, besteht darin, mit einem Stack das Gleichgewicht von Funktionsumfang einerseits und Größe sowie Komplexität der Speicherbelegung andererseits zu finden.

Wenn ein eingebettetes Bauelement oder Endprodukt dynamische Inhalte oder interaktive Online-Funktionen bereitstellen soll, dann ist zusätzlich ein Webserver erforderlich, der Daten liefert oder interaktive Webseiten erstellt. Diese Funktion muss oberhalb des Stacks integriert werden und wird zusätzlichen Aufwand für die Treiberentwicklung bedeuten, sofern Ein- und Ausgänge oder A/D-Wandler gesteuert werden sollen, die dazu dienen, externe Umgebungsbedingungen darzustellen oder mit der Außenwelt zu kommunizieren. Eine zuverlässige TCP/IP-Implementierung mit einem HTML-Server benötigt bis zu weitere 300 Kbyte Flashspeicher.

All diese Elemente werden für eine 802.11-WLAN-Implementierung benötigt. Doch damit das Funknetzwerk einsatzbereit wird, ist noch Software zu entwickeln. Mit dieser macht sich der Designer daran, nach Zugangspunkten suchen, um sich mit diesen verbinden und den Datenfluss der Ein- und Ausgänge der externen Sensoren und Prozessoren steuern können. Es bedarf hohen Zeitaufwands und einer genauen Kenntnis der WLAN-Standards, um solche Aufgaben jenseits des "Rohbaus" eines 802.11-WLAN durchzuführen.

Fertige Programme in wenigen Stunden

Um diese Arbeit zu erleichtern, hat Ezurio UWScript entwickelt, eine Skript-Sprache, die stark an die Programmiersprache BASIC angelehnt ist. Zur Anpassung an eingebettete Funkanwendungen wurde der Funktionsumfang von BASIC um eine Reihe spezieller Merkmale erweitert, mit denen sich WLAN-Funktionen steuern lassen. Dem Nutzer werden abstrakte Befehle auf höchster Ebene an die Hand geben, um ihn gegenüber der Komplexität einer WLAN-Funkanbindung abzuschirmen.

Komplette Funktionen wie das Suchen von und das Anbinden an Zugangspunkte oder auch das Versenden von E-Mails werden als komplette Script-Bibliotheken bereitgestellt, die einfach kopiert und eingefügt werden können. Dadurch lassen sich vollständige Programme in wenigen Stunden fertigstellen. Da das WISM-Prozessor-Modul auch über einen integrierten Interpreter, einen wahlfrei adressierbaren Flash-Speicher mit Dateisystem und ausreichend Speicherkapazität verfügt, können diese Programme direkt im WISM-Modul gespeichert und ausgeführt werden.

Dadurch lassen sich vollständige eingebettete Anwendungen entwerfen, ohne dass externe Hardware benötigt würde. Darüber hinaus benötigt die Entwicklung herkömmlicher Embedded-Systeme nicht mehr wie bislang mehrere Monate, sondern allenfalls noch einige Tage.

Ein WISM ist mehr als ein einfaches WLAN-Modul. Obgleich nicht größer als ein herkömmliches WLAN-Modul, ist das WISM ein vollständiges, WLAN-fähiges Prozessorsystem, das selbstständig betrieben werden kann und über die folgenden Leistungsmerkmale verfügt:

  • ARM7-Prozessor
  • 802.11b/g-WLAN
  • 16 Mbyte RAM
  • Leistungsverstärker
  • 64 Mbyte Flash-Speicher
  • Rauscharmer Verstärker
  • Integrierte Spannungsregler
  • Antennendiversity
  • 9 GPIOs und 2 A/D-Wandler
  • Hochleistungs-Keramikantenne
  • Integrierte UWScript-Sprache
  • Script-Interpreter

EZURiO c/o
Sasco Holz GmbH
Tel. (089) 46 11 -- 0
www.sascoholz.de