Sprungmarken

Servicenavigation

TU Dortmund Webseite TU Dortmund

Hauptnavigation

Sie sind hier:
[an error occurred while processing this directive]

Hauptinhalt

Projektgruppen

Prototypenentwicklung für kompakte Streaming-Quellen und -Senken




Motivation

Das Ziel der Projektgruppe war es, einen Datenservice für Multimedia-Endgeräte via Bluetoothverbindung anzubieten. Folgende Möglichkeiten der Implementierung waren denkbar:

  • Audiodaten, z.B. ein MP3-Strom, werden von einem zentralen Server an einen Bluetoothempfänger übertragen und dort als analoges Signal ausgegeben.
  • Videodaten werden von einem zentralen Server via Bluetooth an einen PDA geschickt und dort angezeigt, z.B. Bilder einer Überwachungskamera als ein Strom von JPEG-Bildern.

Geplante Realisierung

Zur Realisierung eines Prototypen für den Bluetooth-Datenservice war zunächst ein FPGA-Entwicklungsboard vorgesehen, welches den Anschluß verschiedener Peripheriegeräte über diverse Schnittstellen erlaubte, so auch ein handelsübliches Bluetoothdongle via USB. Dabei ergaben sich folgende Probleme:

  • Existierende Prozessor-Implementationen mit entsprechenden Betriebssystemen, die bereits einen USB- bzw. Bluetooth-Stack enthalten, konnten aufgrund der beschränkten Kapazität des Boards nicht verwendet werden.
  • Eine selbst erstellte, vereinfachte Implementation des USB-Protokolls als Transportschicht für eine direkte Steuerung des Bluetoothdongles via HCI-Kommandos mußte aufgrund der Komplexität des USB-Protokolls im Hinblick auf die gegebene Zeit verworfen werden.
  • Obwohl der im Bluetoothdongle eingesetzte Chip auch für eine RS232-Transportschicht geeignet war, konnte diese Möglichkeit aufgrund unzureichender Dokumentation der notwendigen Beschaltung nicht realisiert werden.

Endgültige Realisierung

Aufgrund der zuvor genannten Probleme wurde von der Verwendung des FPGA-Entwicklungsboards abgesehen und ein Bluetooth Developer Board der Firma Axis angeschafft. Auf diesem Board befindet sich mit dem ETRAX 100LX bereits eine hochintegrierte 100MIPS 32bit RISC CPU mit Speicherverwaltungseinheit (MMU) sowie ein ALPS-Bluetoothmodul, des weiteren ein 10/100 MBit Ethernet-Anschluß, 4 MB Flash-Speicher und 16 MB DRAM. Als Betriebssystem wird der Standard Linux 2.4 Kernel mitgeliefert.

Aufgrund der verbleibenden Zeit für das Projekt wurde das Ziel, Audio- oder Videodaten zu übertragen, revidiert und stattdessen ein Bluetooththermometer realisiert. Hierzu wurde ein Temperatursensor über die I2C-Schnittstelle an das Developer Bord angeschlossen. über eine serielle Verbindung, die mittels des RFCOMM-Protokolls auf der Bluetooth-Verbindung emuliert wird, wird die aktuelle Temperatur an ein Laptop mit einem USB-Bluetoothdongle übertragen. Darüberhinaus stellt ein Webserver auf dem Laptop diese über eine WLAN-Verbindung im Internet zum Abruf bereit.

Aufbau

Board-Konfiguration

Im Folgenden wird davon ausgegangen, dass man sich schon mit der Entwicklungsumgebung, die mit dem Developer Board geliefert wird, vertraut gemacht hat und Programme kompilieren und auf das Board übertragen kann. Dies ist alles sehr gut auf der Axis Developer Seite in den HowTos beschrieben.

Es sind 3 Schritte nötig, um das Board entsprechend den Anforderungen des Projektes zu konfigurieren:
  • Kompilieren des Programms bti2c.c

    Dazu kopiert man bti2c.c und das angepasste Makefile in den Ordner der Entwicklungsumgebung ~/axis/devboard_bt/apps/bluetooth/experimental. Wenn alles richtig eingestellt ist (für das Board kompilieren, wie im HowTo beschrieben!) genügt das Kommando make bti2c.

  • übertragen des Programms auf das Board

    Nun das Programm bti2c per FTP in den Ordner /mnt/flash übertragen, genauso wie auch im HowTo beschrieben. Mit cd /mnt/flash und ./bti2c kann man testen, ob das Programm läuft.

  • Abändern der 'Startdatei' /etc/inittab des Boards

    Standardmäßig wird in /etc/inittab der Bluetoothdaemon btdm gestartet (Auslieferungszustand des Boards). Bei einer eingehenden Bluetooth-Verbindung startet btdm das PPP-Protokoll und einen Modememulator, um als Bluetooth Internet Accesspoint zu arbeiten. Dies wird für das Projekt jedoch nicht benötigt, deshalb muß man stattdessen den einfacheren Daemon bti starten. Dazu sollte natürlich noch das bti2c-Programm automatisch gestartet werden. Die Datei /etc/inittab wird also durch eine modifizierte Version ersetzt.

Jetzt kann man das Board aus und wieder anschalten. Der bti Daemon verwaltet dann die Bluetooth-Verbindungen, während bti2c auf eine solche mit dem http-Server auf dem PC wartet.

PC-Konfiguration

Das Programm termserv.cpp kann zusammen mit der Projekt-Datei termserv.dsp und der Workspace-Datei termserv.dsw unter Visual C++ 6.0 als Windows-Applikation kompiliert werden. Es reagiert auf eine einfache HTTP-Anfrage an die IP-Adresse, die das Programm beim Start mitteilt (z.B. http://192.168.0.1/), so dass mit einem beliebigen Browser die Temperatur abgefragt werden kann. Die Aufforderung zum Beenden des Programms wird mittels http://<IP-Adresse>/close übermittelt.