Matura Hauptfach 2002

"Bluetooth"





von Nico Edtinger




Übersicht

Referat zur Matura 2002 von Nico Edtinger in TKHF. Es wird eine grundlegende Einführung in Bluetooth gebracht. Dabei wird über das Schichtenmodell Bluetooth und seine Teile erklärt. Als Grundlage diente "Das drahtlose Ethernet", Kapitel 5.2 "Bluetooth" sowie die Bluetooth Spezifikation und diverse c't Artikel (siehe Quellenangabe).

Einleitung

Bluetooth wurde von mehreren Firmen entwickelt um Geräte, die sich in der unmittelbaren Nähe einer Person befinden miteinander zu verbinden. Dabei soll eine Funkverbindung die üblichen Kabelverbindungen ersetzen. Die Geräte bilden somit ein PAN (Personal Area Network), was bedeutet, dass die Reichweite der einzelnen Geräte sehr gering ist und Bluetooth damit zu keiner Konkurenz von WLAN werden läßt, sonder dazu eine ideale Ergänzung bildet. Aus diesem Grunde beschäftigt sich auch schon IEEE damit Bluetooth in eine eigene Norm umzusetzen. Dies wird jedoch nicht so umfassend wie Bluetooth selber sein, dass viele Details spezifiziert (bis hinauf in die Applikations-Ebene).

Prinzipiell unterteilt sich Bluetooth in drei Bereiche:

  1. Kern-Protokolle (Core Protocols): Dies umfasst die Datenübertragung und den Verbindungsaufbau der Geräte untereinander
  2. Kabelersatz (RFCOMM): Bluetooth emuliert ein Nullmodem zur Datenübertragung, welches durch diesen Bereich gemacht wird
  3. Anwendungs-Protokolle (Telephony Control Protocols): Hierunter fallen sowohl die einzelnen Datenübertragungsprotokolle (wie TCP/IP) als auch die simplen Audiodaten

Hierbei sieht man schon, dass Bluetooth auf bestehendes aufbaut (serielle Schnittstelle, TCP/IP, ...) um die Entwicklung der Hard- und Software zu vereinfachen. Auf jeden Fall muss in einer Bluetooth Implementierung der Kern-Bereich enthalten sein. Das umfasst den physikalischen Layer (RF-Spezifikation), das Medienzugriffsverfahren (Baseband), die An- und Abmeldung (LMP) und die Programmierschnittstelle für Anwendungen (L2CAP). Diese Bereiche sind auch in anderen Netzwerkimplementierungen enthalten, wie WLAN. Darüberhinaus muss auch noch das SDP-Protokoll umgesetzt sein mit dem die Dienste der einzelnen Geräte mitgeteilt werden.

Netzaufbau

Ein Bluetooth-Netz wird Piconet genannt. In jedem Piconet gibt es einen Master und bis zu sieben aktive Slaves. Aktiv heißt dabei, dass auch andere Geräte sich im gleichen Piconet befinden dürfen, diese müssen sich aber in einem Schlafzustand befinden. Erst der Master kann sie wieder reaktivieren. Auch dürfen die einzelnen Slaves nur senden, wenn sie der Master explizit dazu auffordert.

Die einfachste Struktur in einem Piconet ist eine Point-to-Point Verbindung mit einem Master und einem Slave. Werden weitere Slaves hinzugefügt ergibt sich eine Point-to-Multipoint Verbindung. Damit sich Piconets immer nur auf einen sehr kleinen Bereich beschränken ist es einerseits möglich, dass Slaves in mehren Piconets gleichzeitig teilnehmen, aber auch der Master eines Piconets kann Slave eines anderen werden. Diese Sturktur wird dann als Scatternet bezeichnet.

Bluetooth-Schichten

Wie schon in der Einleitung erwähnt unterteil sich Bluetooth grob in die drei Schichten Kern, Kabelersatz, Anwendungen.

Kernprotokolle

RF-Schicht

Die RF-Schicht ist die Bitübertragungsschicht von Bluetooth. Bluetooth benuzt zur Datenübertragung eine Funkübertragung im 2,4GHz ISM-Band mit Frequency Hopping Spread Spektrum (FHSS) und GFSK-Modulation (Details hierzu siehe unten). Die Reihenfolge der Kanäle für FHSS bestimmt sich aus der eindeutigen Hardware-Adresse des Masters, damit mehrere Piconets ohne wesentliche Störungen koexistieren können. Die Brutobandbreite beträgt 1Mbps bei einer Sendeleistung von 1mW womit sich eine Reichweite von etwa 10 Meter ergibt.

Baseband

In der Baseband-Schicht kontrolliert der Master die Kommunikation in einem Piconet. Hier ist die schon oben erklärte Netzwerk-Struktur angesiedelt. Darüber hinaus steuert der Master auch die Kommunikation selbst.

Die einzelnen Datenpakete werden in Timeslots eingeteilt (TDMA/TDD-Verfahren). Jeder einzelne Zeitslot hat eine Länge von 625µs und bekommt eine eindeutige Nummer. Die Pakete vom Master dürfen nur zu allen geraden, die der Slaves zu allen ungeraden Timeslots beginnen und jedes Paket kann bis zu 5 Timeslots lang sein.

Eine Verbindung bei Bluetooth kann entweder synchron und verbindungsorientiert (SCO) oder asynchron und verbindugslos (ACL) sein.

SCO (synchronous connection-oriented link) ist eine Verbindung zwischen einem Master und einem Slave, wobei der Master regelmäßige Zeitlots reserviert um eine bestimmte Bandbreite garantieren zu können. Dies kann für Echtzeitanwendungen wie Sprache verwenden werden, wobei allerdings nicht auf Datenintengrität geprüft wird. Dies fällt allerdings nicht so sehr ins Gewicht da die Hauptanforderung eben die Echzeitfähigkeit ist.

ACL-Packete werden in Timeslots gesendet die nicht für eine SCO-Verbindung vorgesehen wurden. ACL (asynchronous connectionless link) ist eine Verbindung zwischen Master und einem oder mehreren Slaves. Zwischen einem Slave und dem Master kann immer nur eine ACL-Verbindung bestehen. Die Variante mit mehreren Slaves ist für Broadcasts gedacht. Ausserdem kann eine ACL-Verbindung die Datenintengrität prüfen und bei Fehler die Daten erneut übertragen.

Um die Datenintengriät zu garantieren wird erst einmal der Header eines Frames mit einer 8bit CRC gesichert. Die Frames selbst können mit einer 16-bit CRC Prüfsumme gesichert werden. Ausserdem gibt es die Möglichkeit von 1/3 FEC oder 2/3 FEC. Bei 1/3 FEC wird jedes einzelne Bit dreimal hintereinander übertragen. 2/3 FEC konvertiert 10 Bit mittels Hamming-Code in 15 Bit, womit 1 Bit-Fehler korigiert und 2 Bit-Fehler erkannt werden können.

Die Datenpakete die übertragen werden unterteilen sich in unterschiedliche Typen:

Data High-Rate DH1, DH3, DH5
DH-Pakete sind nicht abgesichert können dafür relativ viele Daten übertragen. Die Ziffer gibt an aus wievielen Timeslots ein Packet besteht
Date Medium-Rate DM1, DM3, DM5
DM-Pakete enthalten weniger Daten sind aber mittel 2/3-FEC gesichert. Die Ziffer gibt wieder die Länge des Packetes an.

Ausserdem gibt es noch spezielle Packettypen für Audiodaten

High-Rate Voice HV1, HV2, HV3
HV1 enthält 10 Byte an Daten die sehr gut gesichter sind (mittels 1/3 FEC). HV2 enthält 20 Byte an Daten die nicht mehr so gut mittels 2/3 FEC gesichert sind. Und HV3 sind 30 Byte die gar nicht gesichert sind.
Data-Voice DV
DV ist ein Mischung aus Audio und normalen Daten. Jedes DV-Packet enthält 10 Byte ungesicherter Voice-Daten und zusätzlich 9 Datenbytes die mt 2/3 FEC und CRC gesichert sind.

Im Baseband ist der auch Aufbau eines Piconets definiert. Das Gerät, das nach anderen sucht wird damit automatisch zum Master. Höhere Protkollschichten erlauben dann das tauschen dieser Rolle mit einem Slave.

Darüber hinaus ermöglicht die Baseband-Schicht eine Verschlüsselung der Daten (ähnlich WEP bei WLANs) und definiert Audio-Codecs. Einerseits gibt es einen logarithmischen PCM-Codec wie er auch bei ISDN benuzt wird und den CVSD-Codec, der die Daten mittels einer Delta-Modulation überträgt.

Link-Manager (LMP)

Die LMP-Schicht liegt direkt über dem Baseband. Sie erledigt mit Hilfe der Verschlüsselung des Baseband die Authentifizierung der Geräte. Sie stellt auch die Möglichkeit eines Tauschens von Master- und Slave-Rolle zur Vefügung. Ausserdem erledigt sie den Auf- und Abbau von Verbindungen oder das "Schlafenlegen" von Verbindungen (Hold- und Park-Modi), falls von einem Gerät in einiger Zeit keine Daten zu erwarten sind.

L2CAP-Schicht

Diese Schicht setzt auf der LMP- und der Baseband-Schicht auf. Sie stellt für höhere Schichten eine Abstraktion der beiden zur Verfügung indem sie jede Funkverbindung in mehrere Datenkanäle teilt und Packete mit Größen bis 64kB erlaubt. Diese Packete werden in mehrere Frames für das Baseband zerteilt. Die Verbindungen selbst können (wie es das Baseband erlaubt) verbindungslos oder verbindungsorientiert sein.

höhere Protokollschichten

Während die unteren Schichten eine typische Netzwerkschnittstelle bilden haben die höheren Prokolle alle eine spezielle Aufgabe.

Service Discovery Protocol (SDP)

Diese Schicht ist die einzige der höheren Schichten die Pflicht einer Bluetooth-Implementation ist. Jedes Gerät kann mittels SDP mitteilen welche Dienste angeboten werden. Damit können andere Geräte gezielt nach einem anderen suchen, dass einen benötigten Dienst zur Verfügung stellt. Neue oder entfernte Dienste könen durch SDP erkannt werden, womit immer die aktuelle Situation in der näheren Umgebung erfasst werden kann. SDP ist so unkompliziert, dass es einfach zu implementieren ist und auch billige Geräte damit ausgestattet werden können.

RFCOMM

Die RFCOMM-Schicht emuliert eine Nullmodem-Verbindung über eine serielle Schnittstelle. Damit ist es einfach bestehende Anwendungen an Bluetooth anzupassen. Über diese Verbindung können viele verschiedene Protokolle übertragen werden.

Telephony Control Protocol (TCS)

Die TCS-Schicht ist die einzige die nicht auf RFCOMM aufsetzt. Mit ihr werden die Signalisierung von z.B. ankommenden Telefongesprächen wie über eine normale Telefonleitung durchgeführt. Es können dabei sowohl Daten- als auch Sprachverbindungen aufgebaut werden. Die Übertragung der Daten selber erfolgt dann direkt auf dem Baseband aufbauend über eine spezielle Audio-Schicht.

PPP, TCP/IP

Über die emulierte Nullmodem-Verbinung von RFCOMM kann eine TCP/IP-Verbindung über den Umweg des Point-to-Point-Protokolls aufgebaut werden. Dies ergibt sich daraus, dass RFCOMM erst die Emulation der serielle Schnittstelle ist und hier wie üblich PPP aufsetzt. Über TCP/IP können dann gewöhnliche Netzwerk-Verbindungen aufgebaut werden. Zum Beispiel ist hierüber eine WAP-Verbidung möglich.

OBEX

Das OBEX-Prokoll stammt ursprünglich aus dem IrDA-Bereich. Damit Bluetooth auch IrDA ersetzen kann wurde auch dieses Protokoll in Bluetooth aufgenommen. OBEX ist ein Protkoll zur Übertragung von Objekten und dem Dialog zwischen Objekten. Ein Beispiel hierfür wären die sogenannten vCards, virtuelle Visitenkarten wie sie schon heute zwischen Handys ausgetauscht werden können.

Zusammenfassung und mögliche Probleme

Bluetooth soll mit seinen vielen Elementen möglichst jede Kabelverbindung ersetzen können. Dies wird dadurch erleichert, dass Bluetooth exakt das gleiche Verhalten nachbildet. Es wird damit aber auch sehr komplex. Damit die einzelnen Geräte nicht zu komplex und teuer werden muss jedes von ihnen nur einen Kern implementieren und braucht darüberhinaus nur die für sie wichtigen Teile.

Ein Problem bei Bluetooth ist die Verwendung des gleichen Frequenzbereiches wie WLAN. Bei gleichzeitiger Verwendung von Bluetooth im Bereich eines WLAN-Netztes wird die Geschwindigkeit im WLAN um bis zu 30% verringert. Da die beiden Techniken sich ergänzen sollten muss hierfür noch eine Lösung gefunden werden.

Techniken in Bluetooth

FHSS/GSK

Frequency Hopping Spread Spectrum (FHSS)

FHSS ist eine Variante der Spread-Spectrum Technologie. Sie funktioniert folgendermassen:

Gaussian Frequency Shift Keying GFSK

Die Modulation der elektromagnetischen Wellen selbst wird über eine Frequenz-Modulation realisiert. Es wird jedes binäre Symbol mittels 2GFSK moduliert, was heißt dass jedes Symbol einem Bit entspricht. Daraus und der Bandbreite eines Kanals bei FHSS ergibt sich eine Bandbreite von 1Mbps. GFSK generell hat die Vorteile sehr kostengünstig zu sein und relativ unempfindlich gegenüber Rauschen.

Die Frequenzen (Fc ist die Frequenz des aktuellen Kanals, Fd = 160kHz):

Quellenangabe

Das drahtlose Ethernet
Autoren: Edgar Nett, Michael Mock, Martin Gerleit; Verlag Addison-Wesley
Bluetooth Specification, Bluetooth Profiles
http://www.bluetooth.com/dev/specifications.asp
diverse c't-Artikel
Teils nachzulesen unter http://www.heise.de/ct

Diese Dokumentation inklusive Unterlagen auch unter htttp://alpha.rrs.at/