Hintergrund Kapitel Abbildungen Literatur Dialog

12    Infrarot-Schnittstellen

Einstieg Infrarotverbindungen zwischen Rechner und Peripherie können Kabel ersetzen. Vom Eingabegerät zur zusätzlichen Empfangseinheit muss jedoch eine Sichtverbindung mit engen geometrischen Bedingungen bestehen. Die Versorgung der externen Geräte erfolgt durch Batterien.
Summary Infrared interfaces between computer and periphery can replace cables. However, line-of-sight connections must be established from input devices to the additional receiving unit, requiring narrow geometrical conditions. The external units are supplied by batteries.

12.1   Definition, Bedeutung

Es gibt Anwendungen, bei denen man Daten zwischen zwei oder mehr Geräten drahtlos übertragen möchte. Die bekannteste und weitverbreitetste ist die Fernsteuerung von Geräten der Unterhaltungselektronik, speziell von Fernsehgeräten. Zunächst benutzte man dafür modulierten Ultraschall. Aus mehreren Gründen ist diese Technik jedoch weitgehend verschwunden:
  • Fehleranfälligkeit
  • Stromverbrauch
  • Herstellkosten
Für Fernsteueraufgaben im Bereich der Unterhaltungsgeräte werden heute fast ausschließlich elektromagnetische Wellen im Infrarotbereich als Träger verwendet. Die Technik ist gekennzeichnet durch große Sende- und Empfangswinkel und nutzt auch reflektierte und gestreute Anteile zur Übertragung.
Im Gegensatz dazu hat sich IrDA (Infrared Data Association) die Normung eines Verfahrens zum Ziel gesetzt, das für die Datenübertragung zwischen informationstechnischen Geräten geeignet sein soll und mit Sichtverbindung über relativ kurze Übertragungsstrecken arbeitet.

Die Datenübertragung über Infrarot konnte dort an Bedeutung gewinnen, wo sie Vorteile gegenüber einer Kabelverbindung bringt:
  • schnellerer Aufbau einer Verbindung
  • keine Probleme mit inkompatiblen Steckern
Dem stehen Nachteile gegenüber:
  • Höhere Herstellkosten
  • Probleme der Energieversorgung (nur Batteriebetrieb macht wirklich alle Kabel überflüssig)
Aus diesen Gründen konnte sich die Infrarotübertragung bei den ursprünglich beabsichtigten Anwendungen (Tastaturen, Mäuse, Drucker) noch nicht in größerem Umfang durchsetzen. Für mobile Zwecke ist die IrDA-Schnittstelle aufgrund der engen geometrischen Sende- und Empfangsparameter ungeeignet. Daher ist im Moment das Haupteinsatzgebiet die Kopplung von Laptops untereinander oder an stationäre Rechner.
Zunächst soll die "klassische" IrDA-Schnittstelle beschrieben werden, bestehend aus IrPhys, IrLAP, IrLMP und einigen ergänzenden Protokollen. Ein weiterer Abschnitt wird IrDA Control (früher IrBUS) behandeln, ein völlig getrenntes Protokoll, das wesentlich einfacher aufgebaut ist und sich z.B. auch für die Ankopplung einer kabellosen Verbindung an USB eignet.

12.2   IrDA Klassisch

Dieser Abschnitt behandelt IrDA Data Link, den bekannteren IrDA-Standard, der mittlerweile in der Version 1.3 vorliegt und eine Punkt-zu-Punkt-Verbindung zwischen örtlich benachbarten Geräten spezifiziert.
Die Übertragung der Daten erfolgt dabei im Halbduplexbetrieb mittels Infrarotlicht. Da zwischen Sender und Empfänger eine direkte Sichtverbindung notwendig ist, müssen diese relativ genau justiert werden. Der Standard ist so ausgelegt, dass Störungen durch andere IR-Quellen (Sonnenlicht, Leuchtstofflampen, Fernbedienungen) möglichst minimiert werden.
Er ermöglicht zwar durch sein Adressierungsschema die gleichzeitige Ankopplung mehrerer Peripheriegeräte an einen Host, der mit entsprechend vielen Sender-Empfänger-Modulen ausgerüstet ist. Durch die geforderten geometrischen Bedingungen sind jedoch der Anzahl der Peripheriegeräte enge Grenzen gesetzt.
Die Übertragung von Informationen zwischen Anwendungen auf verschiedenen Geräten ist ein komplexer Vorgang. Um ihn zu systematisieren und durchschaubar zu machen, teilt man die dazu nötigen Aktivitäten innerhalb eines Geräts in Schichten ein, von denen sich jede um eine überschaubare Menge von Verantwortlichkeiten kümmert und benötigte Fähigkeiten für die über- und untergeordneten Schichten bereitstellt. Jede Schicht enthält dabei Funktionen zum Senden und Empfangen.
Die "vertikale" Verbindung zwischen zwei Schichten eines Geräts wird als Schnittstelle bezeichnet. Die gleiche Schnittstelle wird aber auch benutzt, um eine "virtuelle" Verbindung zwischen gleichen Schichten der Verbindungspartner zu beschreiben.
Abb. 12-1 zeigt das Schichtenmodell einer Infrarot-Verbindung nach dem IrDA-Standard. Die Aktivitäten werden pro Gerät in (mindestens) vier Schichten unterteilt. Eine Schicht kann mehrere Protokolle enthalten.
In jedem IrDA-fähigen Gerät müssen, außer der eigentlichen Anwendung, mindestens vier Protokolle implementiert sein: IrPhys, IrLAP, IrLMP und IAS. Die übrigen Blöcke beschreiben die wichtigsten optionalen Dienste: Tiny TP, IrLAN, IrOBEX und IrCOMM.
Das Sitzungsdiagramm (in der Abbildung links und rechts) enthält nur IrLMP, IrLAP und IrPhys. Dafür sind hier die Schnittstellen als Pfeile dargestellt, die mit später genauer beschriebenen Dienstpaketen ("Service primitives") beschriftet sind.
Hier die Funktionen der Protokolle im Überblick:

IrPhys (Physical Layer)
definiert optische Eigenschaften, die Codierung und Blockbildung der Daten für die Übertragung mit verschiedenen Geschwindigkeiten sowie Hardware-Anforderungen (Details siehe Abschnitt 12.2.1: Physikalische Schicht).

IrLAP (Link Access Protocol)
stellt als Basisdienst fehlersichere Verbindungen zur zuverlässigen Übertragung serieller Daten zur Verfügung. Die besten, für beide Seiten möglichen Parameter werden automatisch ausgehandelt (Details siehe Abschnitt 12.2.2: Link Access Protocol).

IrLMP (Link Management Protocol)
verwaltet alle Dienste und Anwendungen, die die Verbindung benutzen wollen, und teilt ihnen die Übertragungsstrecke im Zeitmultiplex zu (Details siehe Abschnitt 12.2.3: Link Management Protocol).

IAS (Information Access Service)
enthält die Beschreibung aller im Gerät vorhandenen und für die ankommende Verbindung verfügbaren zusätzlichen Dienste ("Gelbe Seiten"). [Die Aufteilung der Schichten ist in der Literatur unterschiedlich dargestellt. In der offiziellen IrDA-Spezifikation ist z.B. IAS in IrLMP enthalten. Der Multiplexer-Teil von IrLMP heißt dort LM_MUX.]

Tiny TP (Tiny Transport Protocol)
ist optional, aber für viele Anwendungen erforderlich. Es realisiert eine zusätzliche Flusskontrolle, wenn IrLMP mehrere Dienste verwaltet. Außerdem werden die Daten auf der Sendeseite segmentiert und auf der Empfangsseite wieder verbunden.

IrOBEX (Object Exchange Protocol)
vereinfacht Übertragung von Dateien und anderen Datenobjekten.

IrCOMM
emuliert serielle und parallele Standardübertragungen. Anwendungen, die für serielle oder parallele Standardschnittstellen ausgelegt sind, können damit eine IrDA-Verbindung ohne Änderung verwenden.

IrLAN (Local Area Network Access)
ermöglicht LAN-Zugang für Laptops und andere Geräte.

12.2.1 Physikalische Schicht (IrPhys)

Die Spezifikation der Physikalischen Schicht von IrDA beschreibt eine Punkt-zu-Punkt Übertragungseinrichtung zwischen elektronischen Geräten (z.B. Computer und Peripheriegeräten) unter Verwendung einer gerichteten halb-duplex seriellen Infrarot-Verbindung ohne Kabel.
Sie behandelt die optischen Eigenschaften von Sender und Empfänger (Wellenlänge, Leistungen, Abstände, Abstrahl- und Empfangswinkel) (s. Tab. 12-2), ist zuständig für Datencodierung und Impulsformung und enthält im Softwareteil einen "Framer". Dessen Hauptaufgabe ist die Umsetzung der Daten vom IrLAP- ins Sendeformat und umgekehrt. Je nach vereinbarter Geschwindigkeit gibt es vier verschiedene Methoden (Tab. 12-3).
  • Bei allen Geschwindigkeiten bilden die von IrLAP übergebenen Felder (A Address, C Control, I Information; s. Abschnitt 12.2.7: Datenstruktur) den innersten Kern.

  • Daran angehängt wird eine Prüfsumme (je nach Geschwindigkeit CRC16 oder CRC32).

  • Dieser Block wird einem oder mehreren Verfahren zur Kanalcodierung unterworfen (je nach Geschwindigkeit Bit Stuffing, 4 PPM, HHH).
    Auf diese Verfahren wird hier nicht näher eingegangen.


  • Schließlich wird das Ganze noch in einen Rahmen aus Start- und Stopsequenzen gepackt (XBOF,BOF - EOF; STA - STO; PA,STA - STO; PA,STA - STO,NULL)

Beim Empfänger müssen die umgekehrten Operationen ausgeführt werden:
  • Blocksynchronisierung durch Erkennung der Start- und Stopsequenzen

  • Entfernung von Start- und Stopanteilen

  • Kanaldecodierung mit Fehlerkorrektur (je nach Datenrate)

  • Fehlererkennung durch Auswertung der CRC-Prüfsumme und anschließender Entfernung

  • Geschwindigkeitsunabhängig im ACI-Format an IrLAP weiterreichen

Tab. 12-12 enthält einige wichtige Spezifikationen für die physikalische Schnittstelle in Abhängigkeit von Übertragungsgeschwindigkeit und Sende-/Empfangsleistung. Die wichtigsten Parameter sind:

    Modulationsart

RZI ("Return to Zero Inverted") für Datenraten bis 1.152 Mbit/s, spezielle Codes für 4 Mbit/s und 16 Mbit/s.

    Pulsdauer


Nominale Pulsdauer: 3/16 Bitdauer für ...115.2 kbit/s
4/16 Bitdauer für ...1.152 Mbit/s
8/16 Bitdauer für 4 Mbit/s
variabel für 16 Mbit/s


    Abstand


bei Standardleistung auf beiden Seiten 0 ... 1.0 m
bei Low-Power auf beiden Seiten 0 ... 0.2 m
zwischen Low-Power und Standard 0 ... 0.3 m


    Halbwinkel

Die optische Sendeleistung muss bei 15° Abweichung von der optischen Achse in alle Richtungen noch mindestens 50% betragen, bei 30° darf sie noch höchstens 50% betragen. Der Empfänger muss bei 10° Schrägstellung noch sicher empfangen können, bei beliebig größerem Winkel ist der Empfang erlaubt. Ein Versatz der beiden optischen Achsen ist nicht explizit spezifiziert. Er kann jedoch aus Abstand und Winkeln hergeleitet werden.

    Wellenlänge

Die Wellenlänge liegt für alle Betriebsarten und Geschwindigkeiten zwischen 850 und 900 nm.

    Sendeleistung und Empfangsempfindlichkeit

Für höhere Geschwindigkeiten (ab 576 kbit/s) sind höhere Mindestsendeleistungen und höhere Mindestempfindlichkeiten definiert. Obergrenzen sind nötig, um die Empfänger bei kleineren Abständen nicht zu übersteuern. Die Untergrenzen stellen einen Kompromiss dar zwischen möglichst geringem Strombedarf des Senders und einer möglichst großen Störunempfindlichkeit der Strecke. Auch wegen einer möglichen Schädigung der Augen durch das unsichtbare Infrarotlicht darf die Sendeleistung nicht zu hoch sein.

    Geschwindigkeit

Die Kommunikation beginnt mit 9.6 kbit/s. Auch schnellere Geräte müssen deshalb diese Standarddatenrate unterstützen. Beim Verbindungsaufbau wird dann die höchstmögliche Geschwindigkeit zwischen beiden Partnern ausgehandelt.

12.2.2 Link Access Protocol (IrLAP)

Eine Station ist der Teil eines Geräts, der das IrDA-Protokoll abwickelt. Sie hat folgende Hauptaufgaben:
  • Bestandsaufnahme betriebsbereiter Stationen und Generierung eindeutiger 32 bit-Geräteadressen

  • Aufbau von IrLAP-Verbindungen zwischen je zwei Stationen mit Generierung von 7 bit-Verbindungsadressen, Festlegung der Verbindungsparameter und Verteilung der Rollen als Primär- und Sekundärstationen

  • Bereitstellung einer fehlersicheren Übertragungseinrichtung für die höheren Schichten

Die Aufgaben werden mittels Prozeduren abgewickelt. Abb. 12-4 zeigt die vier wichtigsten im Überblick in Beziehung zu den Zustandsdiagrammen der beteiligten Stationen (Details der Prozeduren und ihr Zusammenspiel mit IrLMP werden in Abschnitt 12.2.5: Prozeduren beschrieben):

Die Discovery-Prozedur dient der Bestandsaufnahme der vorhandenen, sende- und empfangsbereiten Stationen. Die beteiligten Partner teilen sich gegenseitig ihre (32 bit- Geräte-) Adressen und sonstigen Eigenschaften mit. Die Initiative geht dabei von einem Anforderer ("Requester", "Initiator") aus, der sich im NDM-Zustand ("Normal Disconnect Mode") befindet, und der vorher 500 ms lang sichergestellt hat, dass keine sonstigen Aktivitäten anstehen. Die reagierende Station heißt Beantworter ("Responder").

Die Connect-Prozedur baut eine IrLAP-Verbindung zwischen zwei Stationen auf, die dabei ihre Betriebsparameter aushandeln. Dies geschieht ebenfals auf Initiative eines Anforderers, der dafür die Default-Parameter [ASYNC / 9600 Baud / 8 bit / kein Paritätsbit] verwendet. Außerdem wird die Rollenverteilung festgelegt. Eine Station übernimmt die Rolle als Master und wird zur Primärstation ("Primary station"). Sie ist verantwortlich für Organisation und Überwachung des Datenflusses, behandelt nicht korrigierbare Datenverbindungsfehler und leitet alle Transfers ein. Die übrigen Stationen sind Slaves, heißen Sekundärstationen ("Secondary station") und schließen die an sie gerichteten Transfers ab. Für jede Verbindung wird eine 7 bit-Verbindungsadresse festgelegt, die jeweils einer Sekundärstation für die Dauer der Verbindung fest zugeordnet ist. Typischerweise fungieren PCs und Kameras als Primär-, Drucker und Peripheriegeräte als Sekundärstationen. Nach Etablierung einer Verbindung befinden sich beide beteiligten Stationen im Zustand NRM ("Normal Response Mode"), und zwar NRM(P) für die Primär- und NRM(S) für die Sekundärstation.

In der Information-Exchange-Prozedur können verbundene Stationen Nutzdaten austauschen. Dazu leitet die Primärstation einen Transfer ein, indem sie einen Befehl ("Command") sendet, der aus einem oder mehreren Blöcken ("Frames") besteht. Der letzte Befehlsblock wird durch ein "Poll-Bit" gekennzeichnet und übergibt die Sendeberechtigung an die Sekundärstation. Diese antwortet mit einem oder mehreren Blöcken und gibt die Sendeberechtigung mit dem letzten Antwortblock durch ein "Final-Bit" zurück

Mit der Disconnect-Prozedur wird die Verbindung geordnet beendet.

12.2.3 Link Management Protocol (IrLMP)

IrLMP besteht aus zwei Teilen: LM-IAS und LM-MUX:

Der "Information Access Service" (LM-IAS) ist in jedem IrDA-Gerät implementiert, die meisten seiner Dienste sind jedoch optional. Er enthält einen Datenbestand in Form von Objekten. IrDA-fähige Geräte können daraus Informationen über das Gerät selbst und über seine angebotenen Dienste entnehmen. Für den Austausch von Daten benutzt LM-IAS LSAP-Verbindungen (s. Abschnitt 12.2.4: Transport), die zur Vermeidung von Doppeldeutigkeiten der Adressierung nur bei Bedarf aufgebaut und anschließend wieder geschlossen werden.

Der Multiplexer LM-MUX ermöglicht mehreren Anwendungen die nach außen hin gleichzeitige und unabhängige Benutzung einer IrLAP-Verbindung. Auch verbindungslose Aktivitäten dieser Schicht werden hier abgewickelt. Außerdem gehört das wiederholte Senden verlorengegangener Blöcke zu den Aufgaben von LM-MUX.
LM-MUX kann zwei Betriebsarten annehmen:
  • Im Exklusivbetrieb ist die IrLAP-Verbindung für eine einzige LSAP-Verbindung reserviert. Die Flusskontrolle von IrLAP sorgt hier für einen reibungslosen Betrieb.

  • Im Multiplexbetrieb benutzen mehrere LSAP-Verbindungen gemeinsam eine IrLAP-Verbindung. LM-MUX befreit seine Clients von der Aufgabe, ihre Zugriffe auf die IrLAP-Verbindung zu koordinieren. Da jedoch die Flusskontrolle der IrLAP-Schicht nur im Exklusivbetrieb zuverlässig funktioniert, sind im Multiplexbetrieb zusätzliche Maßnahmen (z.B. Tiny TP) erforderlich.

Die Aufgaben des LM-MUX lassen sich in drei Typen von Funktionsblöcken zerlegen, deren Zustandsdiagramme Abb. 12-5 im Überblick zeigt. (In Abschnitt 12.2.5: Prozeduren sind die Prozeduren und ihr Zusammenspiel mit IrLAP detaillierter beschrieben):
  • Station Control ist pro Station nur einmal vorhanden und erledigt allgemeine Managementaufgaben, vor allem im verbindungslosen Zustand. Sein Ruhezustand ist READY, den er auch annimmt, wenn die Station verbunden ist.

  • LSAP Control kann pro Station mehrmals vorhanden sein, da jede Instanz genau einen LSAP verwaltet. Sein Ruhezustand ist DISCONNECTED, sein aktiver Zustand DTR (Data Transfer Ready).

  • IrLAP Control (ein Funktionsblock von IrLMP!) ist zuständig für die Verwaltung von IrLAP-Verbindungen und wird von den Prozeduren Connect und Disconnect zwischen den Zuständen STANDBY und ACTIVE hin- und hergeschaltet.

12.2.4 Transport

Abb. 12-6 gibt einen Überblick über Verbindungsmöglichkeiten höherer Protokollschichten zwischen mehreren Stationen. Dargestellt ist eine beispielhafte Anordnung mit einer Primärstation und zwei Sekundärstationen sowie einer willkürlichen Auswahl an Zugangspunkten.

Eine IrLAP-Verbindung (im Beispiel 2 Stück, dargestellt als weiße "Röhren") wird aufgebaut zwischen den IrLAP Service Access Points (ISAP; graue Rechtecke) zweier Stationen. Über Endpunkte bietet sie in Sender und Empfänger einen Zugang für die (höheren) IrLMP-Schichten.
Jede Station hat genau einen ISAP, der bei Sekundärstationen genau einen IrLAP-Endpunkt enthält, bei Primärstationen so viele, wie Sekundärstationen verbunden sind. Beim Verbindungsaufbau wird jeder IrLAP-Verbindung (und damit auch der beteiligten Sekundärstation) eine 7 bit-Verbindungsadresse zugeordnet. Diese wird anstelle der Geräteadresse der Sekundärstation benutzt, solange die Verbindung besteht. Da es nur eine Primärstation im System geben kann, benötigt diese keine Verbindungsadresse.

IrLMP-Verbindungen (in der Zeichnung als graue Linien dargestellt) werden auch als LSAP-Verbindungen bezeichnet und werden aufgebaut zwischen Link Service Access Points (LSAP; graue Rechtecke) der IrLMP-Schicht. LSAPs sind die Zugangsbereiche für die Anwendungen. Jede Station kann mehrere LSAPs enthalten, jeder LSAP kann mehrere IrLMP-Verbindungsendpunkte (in der Zeichnung kleine graue Quadrate) bedienen. IrLMP-Verbindungen benutzen IrLAP-Verbindungen im Multiplex, d.h. es können gleichzeitig und unabhängig mehrere IrLMP-Verbindungen zwischen zwei Geräten bestehen, aber jeweils nur eine einzige zwischen einem Paar von LSAPs. Da eine Station mehrere LSAPs enthalten kann, müssen diese über eine eigene (7 bit-) Adresse ansprechbar sein. Eine IrLMP-Verbindung wird deshalb identifiziert durch die Adresse der benutzten IrLAP-Verbindung und durch die Adressen der beiden beteiligten LSAPs: DLSAP-SEL (Ziel; Destination Link Service Access Point Selector) und SLSAP-SEL (Quelle; Source Link Service Access Point Selector). Die LSAPs werden von ihren Stationen unabhängig durchnummeriert. Gleiche LSAP-SELs können daher in mehreren Geräten und sogar als Ziel und Quelle einer Verbindung vorkommen. IrLMP-Endpunkte benötigen keine eigene Adresse.

Hier noch einmal die Adresstypen im Überblick:

Primärstation Geräteadresse 32 bit während DISCOVERY zufällig erzeugt
Sekundärstation Geräteadresse 32 bit während DISCOVERY zufällig erzeugt
Sekundärstation, IrLAP-Verbindung IrLAP- Verbindungsadresse 7 bit während CONNECT von Primärstation vergeben
01..7E frei vergeben
7F Broadcast
LSAP-SEL LSAP-Selector 7 bit von eigener Station fest vergeben
00 IAS-Zugang
01.. 6F frei vergeben
70 verbind.loser Zugang
LSAP-Verbindung LSAP- Verbindungsadresse 7 + 7 + 7 bit IrLAP-Verbindungsadresse + DLSAP-SEL + SLSAP-SEL

Die beschriebenen LSAPs bedienen die verbindungsorientierten Teildienste LM_connect, LM_disconnect, LM_Data und LM_UData. Der verbindungslose Teildienst LM_ConnectionlessData benutzt den Connectionless-LSAP mit der festen Adresse SEL=70h. Der ebenfalls verbindungslose LM_Discover wird über einen XID-SAP abgewickelt.

12.2.5 Prozeduren

Die Abb. 12-7 ... Abb. 12-10 zeigen die vier Hauptprozeduren, wie sie bei einem normalen und ungestörten Ablauf aufeinanderfolgen. Die dargestellten Prozeduren sind stark vereinfacht: Weniger wichtige Teilprozeduren sind weggelassen, Reaktionen auf Fehler und Ausnahmen sind nicht dargestellt:
  • Anmeldeprozedur (DISCOVERY) Abb. 12-7
    Aufspüren verbindungsbereiter Geräte und Generierung von Geräteadressen (mit Auflösung von Adresskonflikten).


  • Verbindungsprozedur (CONNECTION) Abb. 12-8
    Etablierung einer IrLAP-Verbindung zwischen zwei Geräten mit Verteilung der Rollen "Primary" und "Secondary", Zuordnung der IrLAP-Verbindungsadresse und Vereinbarung der Verbindungsparameter.
    Anschließend Etablierung einer oder mehrerer IrLMP-Verbindungen zwischen zwei IrLMP Endpunkten .


  • Datenaustauschprozedur (DATA EXCHANGE, INFORMATION TRANSFER) Abb. 12-9
    Übertragung von Nutzdaten in beiden Richtungen. Jeder Transfer wird von der Primärstation eingeleitet.


  • Abmeldeprozedur (DISCONNECT) Abb. 12-10
    zum geordneten Abbau einer IrLAP-Verbindung.


12.2.5.1 Anmeldeprozedur

Phase (1)
  • Ein Gerät, meist der Host-Rechner, ergreift die Initiative und beobachtet die physikalischen Verbindungen 500 ms lang auf Aktivität.

  • Danach leitet seine Anwendung die Prozedur ein mit einem Kommando LM_DiscoverDevices.request an den verbindungslosen Endpunkt im XID-Zugangspunkt (Abb. 12-7).

  • IrLMP reicht die Anforderung weiter an IrLAP mittels IrLAP_Discover.request.

  • Die IrLAP-Schicht des initiierenden Geräts wird zum "Anforderer" (Requester) und schickt ein U_Discover_XID.cmd Kommando über alle physikalischen Schnittstellen. Dabei wird die Geräte-Broadcast-Adresse verwendet und die Gesamtzahl der folgenden XID-Befehle (Zeitscheiben; Slots) festgelegt. Die Zählung der Slots beginnt in diesem Befehl mit 0.

Phase (2)
  • Alle Empfänger dieses Kommandos werden zu Beantwortern. Jeder Beantworter wählt eine zufällige Zeitscheibennummer (Slot-Nummer).

  • Der Anforderer sendet in bestimmten Zeitabständen weitere XID-Kommandos und nummeriert dabei die Slots durch.

  • Jeder Beantworter sendet eine Antwort, wenn er seine passende Slot-Nummer erkennt. Die Antwort enthält die Geräteadresse und weitere Eigenschaften des Beantworters.

  • Der Anforderer sammelt die Informationen in "Device-Logs" und wertet sie anschließend aus. Entdeckt er bei der Auswertung einen Adressenkonflikt, beginnt mit IrLAP_NewAddress.request eine ähnliche Prozedur (in der Abbildung nicht dargestellt), von der aber nur die Geräte betroffen sind, die gleiche Adressen verwenden wollten.

Phase (3)
  • Ansonsten meldet der Anforderer den Abschluss der Prozedur über IrLAP_Discover.confirm an seinen eigenen IrLMP und über U_EndDiscover_XID.cmd an die Beantworter.

12.2.5.2 Verbindungsprozedur

Phase (4)
  • Eine Anwendung möchte mit einer anderen Anwendung (auf einer anderen Station) Daten austauschen. Dazu muss eine LSAP-Verbindung zwischen den beteiligten LSAP-Endpunkten hergestellt werden (Abb. 12-8).

  • Die initiierende Anwendung generiert ein LM_Connect.request Kommando über ihren zugeordneten LSAP-Endpunkt, das IrLMP-intern als LS_Connect.request weitergegeben wird.

  • Ist sonst noch kein Endpunkt angemeldet, geht IrLAP-Connection-Control von STANDBY über in U_CONNECT und beauftragt die IrLAP-Schicht mittels IrLAP_Connect.request mit der Einrichtung einer IrLAP-Verbindung.

  • Durch Senden eines U_SNRM.cmd an die gewünschte Gegenstation (unter Verwendung deren Geräteadresse) schlägt die Anforderungsstation eine IrLAP-Verbindungsadresse vor und äußert damit indirekt den Wunsch, Primärstation zu werden.

  • Ist die angewählte Station einverstanden, wird sie zur Sekundärstation. Sie akzeptiert die vorgeschlagenen Parameter durch ein U_UA.rsp und richtet die IrLAP-Verbindung auf ihrer Seite ein, indem IrLAP-Connection-Control von STANDBY nach ACTIVE wechselt. (Die Verbindungsparameter können auch in mehreren U_SNRM - U_UA Schleifen ausgehandelt werden.)

  • IrLAP-Connection-Control der Primärstation geht nach Erhalt von U_UA in den Zustand ACTIVE über und meldet dabei über LS_Connect.confirm Bereitschaft an den anfordernden Endpunkt.

Phase (5)
  • Jetzt (dargestellt in der rechten Hälfte der Abbildung) sendet der LSAP der Primärstation an seinen Wunschpartner eine ConnectRequest-LM-PDU und fordert ihn auf, sich ebenfalls an der IrLAP-Verbindung anzumelden.

  • Der angesprochene LSAP erledigt dies durch LS_Connect.request und LS_Connect.confirm.

  • Mit der durchgereichten ConnectConfirm-LM-PDU ist die Verbindung etabliert. Die beiden Partner-Endpunkte können Daten austauschen.

12.2.5.3 Datenaustausch

Nach dem Senden von U_UA.rsp ist die Sekundärstation, nach dem Empfang dieser Antwort auch die Primärstation bereit zum Datenaustausch über eine IrLAP-Verbindung. Im Ruhezustand ist die Primärstation im Zustand XMIT sendebereit, die Sekundärstation im Zustand RECV empfangsbereit (Abb. 12-9).

Phase (6)
  • Die Anwendung der Primärstation beginnt über das Kommando LM_Data.request mit dem Senden von Daten in einem oder mehreren Paketen.

  • IrLAP gibt die Daten mit I.cmd weiter. Im letzten Sendepaket wird das "Poll-Bit" P=1 gesetzt und damit das Senderecht an die Sekundärstation übergeben.

  • Die Primärstation geht in den Zustand RECV, die Sekundärstation in den Zustand XMIT.

Phase (7)
  • Die angesprochene Anwendung leitet ihre Antwort mit LM_Data.request ein. Jetzt läuft der gleiche Vorgang in umgekehrter Richtung.

  • Die Antwortpakete heißen jedoch I.rsp und das letzte Paket wird mit einem "Final-Bit" F=1 gekennzeichnet (an gleicher Bitposition wie P).

  • Danach kehren sich die Zustände wieder um: Primär=XMIT, Sekundär=RECV.

12.2.5.4 Abmeldeprozedur

Die Darstellung in Abb. 12-10 zeigt nur die beiden Fälle, in denen eine Verbindung auf Initiative einer Anwendung geordnet abgebaut wird. Abbrüche durch diverse Fehlerbedingungen sind nicht dargestellt.

Phase (8)
  • Geht die Initiative von der Primärstation aus, reicht ein einfacher Kommando-Antwort-Zyklus (U_DISC --- U_UA), um den Übergang von NRM nach NDM in IrLAP und durch entsprechende Meldungen auch die Übergänge in IrLMP von ACTIVE nach STANDBY und von DTR nach DISCONNECTED auszulösen.

Phase (9)
  • Die Sekundärstation kann die Abmeldung mit U_RD.rsp einleiten, aber nur, wenn sie gerade Sendeberechtigung hat. Der weitere Ablauf spielt sich dann in gleicher Weise ab.

12.2.6 Dienste und Teildienste

Tab. 12-11 zeigt einen Überblick über alle verfügbaren Dienste ("Services") und Teildienste ("Service primitives") und ihre Zuordnung zu Prozeduren und Schnittstellen.
Hervorgehobene Prozeduren (DISCOVERY, CONNECTION, DATA EXCHANGE, DISCONNECT) sind im vorigen Abschnitt genauer beschrieben, die übrigen sind dort aus Gründen der Übersichtlichkeit weggelassen.
Jede Spalte der Tabelle ist einer Schnittstelle zugeordnet:

LM_ : Anwendung - IrLMP
LS_ : IrLMP - IrLMP
IrLAP_ : IrLMP - IrLAP
U_, S_, I_ : IrLAP -- IrPhys


Für LM_, LS_ und IrLAP_ Dienste gibt es vier Typen von Teildiensten:

.request Anforderung Anforderer sendet
.indication Meldung Beantworter empfängt
.response Antwort Beantworter sendet
.confirm Bestätigung Anforderer empfängt

Für U_, S_ und I_ Pakete gibt es nur zwei unterschiedliche Typen

.cmd Kommando leitet Datenaustausch ein
.rsp Antwort beendet Datenaustausch

12.2.7 Datenstruktur

Tab. 12-12 zeigt die Datenstruktur von Teildiensten. Pakete, die über eine IrLAP-Verbindung übertragen werden, bestehen aus 3 Teilen:


A Address 8 bit

enthält die IrLAP-Verbindungsadresse (= 7 bit-Adresse der verbundenen Sekundärstation) und 1 Bit, das angibt, ob es sich um ein .cmd oder .rsp Paket handelt.


C Control 8 bit

enthält Format (U_, S_, I_) und Typ (z.B. U_SNRM) des Pakets sowie 1 Bit (Poll-Bit oder Final-Bit), welches das Ende einer Folge von Paketen kennzeichnet. S_ und I_ Pakete enthalten außerdem fortlaufende Nummerierungen Ns und Nr, die zur Flusskontrolle dienen können.


I Information m * 8 bit (m >= 0)

ist der eigentliche Informationsteil. Er entfällt bei S_ Paketen. Bei U_ Paketen enthält er weitere Steuerparameter, deren Format und Inhalt vom Pakettyp abhängt. In I_ Paketen werden hier die eigentlichen Nutzdaten übertragen. Ein Spezialfall sind dabei die LM-PDUs, mit denen die wenigen LM_ Befehle gekapselt werden, die zwischen Stationen ausgetauscht werden müssen. (Die meisten LM_ und alle LS_ Befehle werden nur innerhalb eines Geräts verwendet. Ihre Formate sind deshalb in der Spezifikation nicht definiert und können herstellerabhängig implementiert werden.)

12.3   IrDA Control

Dieser "kleine Bruder" (früherer Projektname IrBUS) des klassischen IrDA zielt zunächst vor allem auf langsamere Peripheriegeräte, speziell Tastaturen, Mäuse und Joysticks ab. Spätere Erweiterungen sind geplant für den kabellosen Anschluss von Consumer-Elektronik an den PC.
IrDA und IrDA Control können gleichzeitig in einer Umgebung betrieben werden. IrDA Control ist billiger, sparsamer und langsamer als der große Bruder. Ein Schwerpunkt der Anwendung liegt auf der Ankopplung an USB (s. Kap. 11: USB), was auch durch ganz ähnlich aufgebaute Protokolle zum Ausdruck kommt.
Tab. 12-13 führt einige wichtige Begriffe und ihre Abkürzungen ein.

12.3.1 Schichtenmodell und Protokoll

IrDA Control setzt sich zusammen aus vier Protokollschichten:

IrBUS-PHY Physical Layer Physikalische Schicht
IrBUS-MAC Media Access Control Layer Zugangskontrollschicht
IrBUS-LLC Logical Link Control Layer Verbindungsschicht
Application (z.B. HID Device) Anwendungsschicht

Die physikalische Schicht definiert technische Daten und die Modulationsmethoden der Infrarotsignale.

Die Zugangskontrollschicht erlaubt und verwaltet 1:n - Verbindungen.

Die logische Verbindungsschicht stellt ein Protokoll zur Verfügung für eine zuverlässige Datenverbindung (Beispiel: HID - IrDA Control - Bridge).

In der Anwendungsschicht sind bis zu vier verschiedene Anwendungen denkbar. (LLC stellt 2 bit zu ihrer Unterscheidung zur Verfügung). Davon sind derzeit zwei definiert:
  • USB HID Protokoll für Computer-Eingabegeräte

  • HA Protokoll ("Home Appliance") für Heimanwendungen.

12.3.2 Physikalische Schicht

Hier werden Eigenschaften gesendeter und empfangener optischer Signale beschrieben:

Übertragungsgeschwindigkeit 75.0 kbps
Modulationsarten 16PSM, 1.5 MHz Träger
IR Wellenlängen 850 ... 900 nm
Entfernungen und Winkel (wie IrDA klassisch)
min. Entfernung 0.2 m
max. Entfernung 1.5 ... 5.0 m (je nach Winkel und Gerätetyp)

Die Aufbereitung der elektrischen Signale ist in der Norm nicht festgelegt, sondern den Hardware-Herstellern überlassen.
Die Festlegungen sind so getroffen, dass keine gegenseitigen Störungen mit IrDA auftreten.
Zur Modulation wird das 16PSM (Pulse Sequence Modulation)-Verfahren verwendet. Dabei werden jeweils 4 aufeinanderfolgende Bit aller Daten zu einem Symbol zusammengefasst und nach folgender Konvertiertabelle in ein 8 chip-Codewort konvertiert.

Hex 4 bit 8 chip
0 0 0 0 0 1 0 1 0 0 0 0 0
1 0 0 0 1 0 1 0 1 0 0 0 0
2 0 0 1 0 0 0 1 0 1 0 0 0
3 0 0 1 1 0 0 0 1 0 1 0 0
4 0 1 0 0 0 0 0 0 1 0 1 0
5 0 1 0 1 0 0 0 0 0 1 0 1
6 0 1 1 0 1 0 0 0 0 0 1 0
7 0 1 1 1 0 1 0 0 0 0 0 1
8 1 0 0 0 1 1 1 1 0 0 0 0
9 1 0 0 1 0 1 1 1 1 0 0 0
A 1 0 1 0 0 0 1 1 1 1 0 0
B 1 0 1 1 0 0 0 1 1 1 1 0
C 1 1 0 0 0 0 0 0 1 1 1 1
D 1 1 0 1 1 0 0 0 0 1 1 1
E 1 1 1 0 1 0 1 0 0 1 0 1
F 1 1 1 1 1 1 1 0 0 0 0 1

Als Besonderheit der verwendeten Codierung treten in jedem Codewort genau 2 oder 4 1-chips auf. Synchronisationszeichen verletzen diese Regel und können dadurch identifiziert werden. Auch zur Fehlererkennung kann diese Eigenschaft verwendet werden. Außerdem bewirkt die Verteilung der 1-chips im Codewort, dass die im Fernsteuerband (33 ... 40 kHz) abgestrahlte Energie möglichst klein wird. Durch die Art der Codierung können keine längeren 0- oder 1-Sequenzen auftreten. Ein Bit-Stuffing ist also nicht nötig und die benötigte Übertragungszeit kann genau vorausgesagt werden. Aus der konstanten Bitrate von 75.0 kbps folgen damit folgende Raten und Zeiten

Byte Symbol Bit Chip
Rate 9.375 kB/s 18.75 ks/s 75.0 kbps 150 kcps
Zeit 106.64 μs 53.32 μs 13.33 μs 6.67 μs

Tab. 12-14 zeigt den Aufbau eines Datenpakets in der physikalischen Schicht. Die Nutzinformation "MAC-Rahmen" (MAC frame) wird aus der nächsthöheren Schicht übernommen. Daraus wird je nach Rahmenlänge eine CRC-Prüfsumme mit einer Länge von 8 oder 16 bit erzeugt. Nutzinformation und CRC werden dann nach 16PSM codiert: Jedes Byte wird in zwei Hälften (Nibbles) zerlegt. Jede Hälfte wird in ein 16PSM-Symbol codiert. Das niedrigwertige Nibble wird zuerst übertragen, mit dem linken chip zuerst. Diese codierte Nutzinformation wird vor der Übertragung noch "verpackt", und zwar mit AGC, Preamble, Start- und Stopfeldern, deren Inhalte direkt als chips definiert sind. Diese logische Chip-Sequenz wird dann für die eigentliche Übertragung in Infrarotsignale umgesetzt, indem für jedes 1-chip 10 IR-Trägerimpulse erzeugt werden. Für 0-chips werden keine Impulse erzeugt.

12.3.3 Zugangsschicht

12.3.3.1 Überblick

Die Zugangsschicht MAC (Media Access Control Layer) verwaltet den Aufbau, Betrieb und Abbau von Datenverbindungen zwischen Host und Peripheriegeräten (Peripherals; im folgenden als "Geräte" bezeichnet). Um mehrere Geräte an einem Host betreiben zu können, wird ein Polling-Response-Protokoll verwendet. Zyklisch sendet der Host an alle verbundenen Geräte Befehle und Anfragen, die sofort beantwortet werden.
Alle Aktivitäten gehen also vom Host aus, Geräte können nur antworten. Ausnahme: Zum Wecken eines "schlafenden" Host wird ein Gerät aktiv. Es erfolgt keine direkte Kommunikation zwischen Geräten. Eine Multi-Host-Umgebung ist möglich, wird aber hier nicht weiter behandelt.
Zur Identifizierung der Partner vor und während der Anmeldeprozedur dienen zwei IDs für Host und Peripheriegerät. Diese enthalten jeweils zwei Anteile: Im ersten wird das Gerät charakterisiert, der zweite kann eine vom Hersteller vergebene "Seriennummer" enthalten. Dieser zweite Teil kann aber auch beim Einschalten als Zufallszahl erzeugt werden und bleibt dann bis zum Ausschalten gültig

HostID (16 bit)
PFID (32 bit) Peripheral Physical ID

Für die Adressierung verbundener Geräte dienen kürzere Adressen, die während der Anmeldeprozedur vom Host dynamisch zugeteilt werden und dann für eine Sitzung gültig bleiben:

HADD (8 bit) Host-Adresse
PADD (4 bit) Peripherieadresse; vom Host zugeteilt

12.3.3.2 Datenformat

Die innere Struktur eine MAC-Rahmens ist im Prinzip immer gleich. Es gibt jedoch kurze (short frames) und lange Rahmen (long frames). Ein Rahmen besteht immer aus vier Teilen:

HADD (8 bit) Host-Adresse
MACC (4 bit) MAC Control Feld
PADD (4 bit) Peripherie-Adresse
DATA (0 .. 9 Byte) MAC Nutzdaten im kurzen Rahmen
(0 .. 97 Byte) MAC Nutzdaten im langen Rahmen

Lange Rahmen dürfen nur unter ganz bestimmten Bedingungen verwendet werden. Die augenblickliche Hauptanwendung von IrDA Control, nämlich die IrDA-USB-Bridge, verzichtet ganz darauf. Deshalb werden sie auch im folgenden nicht weiter beschrieben.

12.3.3.3 Betriebszustände

Abb. 12-15 zeigt die Hauptzustände von Host und Gerät sowie ihre Übergänge und gegenseitigen Abhängigkeiten. Zunächst folgt eine Zusammenfassung, dann eine etwas genauere Beschreibung der einzelnen Zustände.
Hat der Host eine gewisse Zeit von keinem Gerät eine Antwort auf seine Polling-Anfragen bekommen ( >5.069 s bei langsamen (NCL) und nicht verbundenen, >30.069 s bei schnellen (CL) Geräten), geht er in den stromsparenden SLEEP-Modus. Durch einen Aufweckbefehl eines Geräts wird er in den NORMAL-Modus gebracht und nimmt seinen Polling-Betrieb wieder auf.
Ein Gerät ist nach dem Einschalten zunächst im RESET-Zustand. Es wartet geduldig auf (Enumeration-)Hailing-Anfragen. Kommen diese >69 ms lang nicht, zwingt es den Host durch einen Weckbefehl dazu, diese zu senden. Trifft der Hailing-Befehl (endlich) ein, beantwortet es diesen mit der Bekanntgabe seiner Eigenschaften und erhält die Bestätigung vom Host. Damit ist es im Zustand ENUMERATED und wartet auf (Binding-)Hailing-Anfragen. Auch von hier kann der Host bei Bedarf geweckt werden. Nach Antwort und Bestätigung durch den Host bekommt das Gerät eine eigene PADD zugeteilt und wird in die Polling-Liste des Host aufgenommen. Es ist damit im Zustand BOUND und stellt der Anwendungsschicht eine Verbindung zum Austausch von Nutzinformationen zur Verfügung.
Der Host kann auch noch einen IRDA COEXISTENCE Zustand annehmen. Dann können IrDA- und IrDA Control-Geräte quasi gleichzeitig betrieben werden. Diese Betriebsart wird hier nicht weiter behandelt.

    Hailing

Hailing besteht aus zwei verschiedenen Prozeduren, die abwechselnd ausgeführt werden.
Beim "Enumeration hailing" sucht der Host nach unbekannten Geräten und verwendet dazu die für diesen Zweck reservierte Adresse PADD = F. Geräte müssen im Zustand RESET sein, um darauf reagieren zu können.
Beim "Binding hailing" werden dagegen Geräte gesucht, die zwar bekannt und vorhanden, aber noch nicht oder nicht mehr verbunden sind. Sie sind im Zustand UNBOUND=ENUMERATED und es ist ihnen keine eigene PADD zugeordnet. Der Host fragt deshalb unter Verwendung der ebenfalls reservierten Adresse PADD=0 alle gemeinsam an, ob eine neue Verbindung gewünscht wird.

    Enumeration

Nach dem Einschalten oder Rücksetzen von Host oder Gerät müssen sich diese zunächst gegenseitig erkennen. Dieser Vorgang heißt Enumeration. Das Gerät wartet zunächst, ob der Host im NORMAL-Betrieb ist, d.h. ob er spätestens nach 69 ms eine Enumeration-Hailing-Anfrage sendet. Nach 69 ms ohne Anfrage erkennt das Gerät den SLEEP-Modus des Host und sendet einen Aufweckbefehl. Die komplette Enumeration-Prozedur besteht aus vier Paketen und ist in Tab. 12-16 links dargestellt.

    Binding

Durch den Vorgang der Enumeration oder des Unbinding wird ein Gerät in den Zustand ENUMERATED (=UNBOUND) versetzt. Hat es in diesem Zustand Übertragungsbedarf, setzt es einen Vorgang zum Verbinden mit dem Host in Gang, der als Binding bezeichnet wird, indem es einen der regelmäßig eintreffenden Hailing-Befehle beantwortet. Auch diese Prozedur kann mit einem Aufweckbefehl eingeleitet werden, wenn sich der Host im SLEEP-Zustand befindet und deswegen keine Hailing-Befehle sendet.
Tab. 12-16 rechts zeigt die komplette Prozedur. Wird sie korrekt abgeschlossen, ist dem Gerät damit eine eigene PADD (zwischen 1 und E) zugeordnet. Auch ist es in die Polling-Liste des Host aufgenommen und wird spätestens alle 69 ms nach Informationen abgefragt. Handelt es sich um ein CL-fähiges Gerät und hat es entsprechend hohen Übertragungsbedarf, wird es nach 100 Zyklen (also nach 6.9 s) in den CL-Betrieb geschaltet und damit alle 13.8 ms abgefragt, bis der Übertragungsbedarf eine bestimmte Schwelle wieder unterschreitet, was frühestens nach weiteren 100 Zyklen (also nach 1.38 s) eintreten kann.

    Polling

Der Host fragt zyklisch alle bekannten Geräte nach vorliegenden Daten ab. Ein Grundzyklus dauert genau 13.8 ms. Das reicht, um maximal vier Geräte anzusprechen und ihre Antwort entgegenzunehmen. (Ein Kurzpaket mit 9 Byte Nutzdaten hat eine Übertragungsdauer von

(72 + 40) bit * 13.3 μs/bit = 1.4896 ms .

Werden weniger Nutzdaten abgeliefert oder sind weniger Geräte zu bedienen, schiebt der Host entsprechende Wartezeiten ein.
Sogenannte CL-Geräte ("critical latency"), denen eine schnelle Ablieferung ihrer Daten garantiert wird, werden genau einmal pro Grundzyklus abgefragt. Sind davon weniger als vier vorhanden, stehen die freien Zeiten für NCL-Geräte ("non-critical latency") zur Verfügung. Diese werden der Reihe nach bedient. Auch Hailing-Anfragen fallen in die NCL-Kategorie. Die maximale Anzahl der NCL-Geräte ist dadurch begrenzt, dass sie mindestens einmal in fünf Grundzyklen (= 1 Gesamtzyklus = 69 ms) bedient werden müssen. Besteht der Gerätevorrat (als häufiger Sonderfall) nur aus NCL-Geräten, können bis zu 8 Geräte bedient werden. Ein Gesamtzyklus ist dann kürzer als 69 ms, aber mindestens 13.8 ms oder länger.
Es gibt Geräte, die nur NCL-fähig sind. Sie werden beim Polling auch immer als NCL-Geräte bedient. CL-fähige Geräte können dagegen beim Polling dynamisch umgeschaltet werden. Sie werden als NCL-Geräte weiterbedient, wenn sie auf 100 Anfragen im CL-Abstand weniger als n-mal, als CL-Geräte, wenn sie auf 100 Anfragen im NCL-Abstand mehr als m-mal geantwortet haben.

    Unbinding

Der Host führt für jedes verbundene Gerät einen "Bind Timer". Ebenso hat jedes Gerät einen eigenen Bind Timer. Mit jeder gültigen Antwort vom Gerät werden beide Bind Timer neu gestartet. Erreicht der Bind Timer des Geräts sein Timeout, weil das Gerät längere Zeit keine Antworten gegeben hat, versetzt sich das Gerät in den Zustand UNBOUND. 69 ms später betrachtet auch der Host diese Verbindung als beendet und streicht das Gerät aus seiner Polling-Liste. Für NCL-Geräte beträgt das Timeout 5 s, für CL-Geräte 30 s.
Will ein Gerät die Verbindung vorzeitig beenden, kann es in seinem Antwortblock das Polling-Bit ("Polling Request"; Tab. 12-14) auf 0 setzen. Der Host reagiert dann sofort und stellt nach 69 ms das Polling dieses Geräts ein.
Hat das Gerät längere Zeit keine Daten lieferbar, will aber die Verbindung aufrechterhalten (z.B. während der HID-Enumeration), antwortet es mit "Dummy"-Blöcken, die keine Daten enthalten, aber das Polling-Bit auf 1 gesetzt haben.

12.3.4 Verbindungsschicht

LLC (Logical Link Control) ist die Schicht, die auf MAC aufsetzt. Sie realisiert eine einigermaßen sichere Verbindung zwischen der LLC-Schicht des Host und einem Gerät. Sie tritt erst in Aktion nach Einrichtung der Verbindung, d.h. der Host muss dafür im Zustand NORMAL und das Gerät im Zustand BOUND sein.
Im Normalfall tauscht der Host mit dem Gerät, ähnlich wie bei USB, Befehle über eine Control-Pipe mit dem Control-Endpunkt 0 eines Geräts und Daten über IN- und OUT-Pipes mit den übrigen (optionalen) Endpunkten aus. LLC benutzt einen relativ einfachen Sicherungsmechanismus: Datenpakete werden mit einem "Toggle"-Bit abwechselnd als DATA0 und DATA1 verschickt, solange die Gegenseite jedes Paket mit ACK bestätigt. Bleibt die Bestätigung aus, wird das gleiche Paket mit dem gleichen Toggle-Bit noch einmal gesendet. Für eine absolut fehlerfreie Verbindung reicht dieser Mechanismus nicht. Ist diese erforderlich, sollte die Anwendungsschicht weitere Fehlerkorrekturmaßnahmen ergreifen.
Der Payload-Bereich der MAC-Schicht teilt sich auf in einen LLC-Control-Bereich und die eigentliche (LLC-)Payload. Tab. 12-17 zeigt mögliche Inhalte des Control-Bereichs. Das erste Byte spezifiziert den benutzten Endpunkt (Pipe: 0x = CTRL, 2x = IN, 4x = OUT, 6x = IN oder OUT) und den Pakettyp (Paketcode x0..xF). Je nach Pakettyp können noch ergänzende Parameter folgen. Die Struktur gilt für den Datenverkehr in beiden Richtungen. Die meisten Pakettypen werden jedoch nur in einer Richtung verwendet.
Tab. 12-19 zeigt einige typische Transaktionen und ihre Zusammensetzung aus Paketen, eingeteilt nach verwendeten Pipes.
Die erste Aktion nach erfolgreichem Binding ist die Abfrage der Deskriptoren der Peripheriegeräte. Eine Liste der möglichen Deskriptoren zeigt Tab. 12-17, den Aufbau des IrDA Control Deskriptors Tab. 12-18.

12.3.5 IrDA Control am USB

Zum Anschluss von IrDA Control braucht man einen Umsetzer, der einerseits als IrDA Control-Host, auf der anderen Seite als USB-Device fungiert. Man nennt diesen Umsetzer IrDA Control Transceiver Modul (IRB-TM). Er kommt in zwei prinzipiellen Ausführungen vor:
Als reine Hardware-Implementation sieht dieses Modul auf der USB-Seite wie ein ganz gewöhnlicher Hub aus, der über 8 USB-Adressen bis zu 8 USB- (=IrDA-)Geräte verwaltet. Der Hauptvorteil dieser Lösung ist, dass beim Anschließen keinerlei Änderung am USB-System vorgenommen werden muss. Nachteilig ist der relativ hohe Aufwand.
Bei einer zweiten Lösung sieht der Umsetzer auf der USB-Seite wie ein einziges Full-Speed-Gerät aus und belegt auch nur eine USB-Adresse. Der Umsetzer versieht die Meldungen der angeschlossenen IrDA Control Geräte mit Kennungen, die ein zusätzliches Programm im USB-Host wieder dekodiert und die angehängten Daten an die einzelnen Gerätetreiber weiterreicht.

Das IRB-TM nimmt als USB-Gerät am USB Enumeration Prozess teil, als IrDA-Control Host verwaltet es selbst die vorhandenen IrDA-Control Peripheriegeräte (Tastaturen, Mäuse, Joysticks). Dazu führt es Enumeration, Binding und Polling nach dem beschriebenen LLC-Protokoll durch.