Das InfoTip Kompendium

Ein kostenloser Service der InfoTip Service GmbH

Zum Anfang der
Seite scrollen

IEEE 1394

(FireWire, i.LINK)

It's not dead, it just smells funny

(Frank Zappa, 1974 über Jazz)

Inhaltsverzeichnis

1. Allgemeines

Entwicklung

Mitte der 1980er Jahre erscheinen die ersten Intel 32-Bit-Prozessoren (80386). PCs sind standardmäßig zumeist mit 1 MByte RAM ausgestattet. Über ein IBM Token-Ring-Netzwerk können bis zu 4 MBit/s übertragen werden. Zuerst Apple, dann auch Microsoft machen erstmals von der Fenstertechnik (GEM (Macintosh,1984/Windows 2, 1987) Gebrauch. IBM verkauft über 1 Million PCs pro Jahr.

Logos Firewire und i.LINK
Abb. 1.01: Logos Firewire und i.LINK

Dieses ist das Umfeld, das Apple als erster PC-Hersteller über die Möglichkeiten eines schnellen lokalen Bussystems nachdenken lässt. Von Apple vorangetrieben und unterstützt, entwickeln Teams mehrerer Computer- und Elektronikhersteller ab 1986 (10 Jahre vor USB!) an einer seriellen Bus-Architektur, die nicht nur zur Ansteuerung von Mäusen, Tastaturen und Druckern dienen soll, sondern so hohe Datenübertragungsraten liefert, dass auch die Übertragung von digitalen Audio- und Videosignalen möglich ist und Parallel-Busse wie z.B. SCSI (Small Computer System Interface) ersetzen kann. Später werden die Entwicklungsaktivitäten in der IEEE P1394 Working Group zusammengefasst und koordiniert.
Das Ziel der Entwicklung waren folgende Eigenschaften:

  • Skalierbarkeit
    Der Bus sollte mit 100, 200, 400 Mbit/s betrieben werden können.
  • Hot-Plugging
    Geräte können im Betrieb vom Bus entfernt oder hinzugefügt werden, ohne dass der Bus stromlos gemacht werden muss.
  • Plug & Play
    Wird ein Gerät vom Bus entfernt oder hinzugefügt, durchläuft das Bussystem automatisch eine Neukonfiguration.
  • Peer-to-Peer
    Geräte auf dem Bus können ohne einen Host untereinander Daten austauschen.
  • Zwei Übertragungsmodi
    Es werden isochrone und asynchrone Übertragung unterstützt.
  • Fair Arbitration (Gleichberechtigter Buszugriff)
    Jeder isochronen Anwendung wird eine konstante Bandbreite zugewiesen. Für asynchrone Prozesse regelt ein spezieller Algorithmus den Zugriff auf den Bus.
  • Datensicherheit
    Eine zyklische Redundanzprüfung (CRC = cyclic redundancy check) erkennt und beseitigt Übertragungsfehler.
  • Großer Adressraum
    16 Exabyte (16 * 1018) Adressraum

Es entsteht die Basisspezifikation IEEE 1394-1995, der Grundlage für ein Personal Area Network (PAN), das von Apple als Firewire, von Sony als i.LINK und von Texas Instruments als Lynx bezeichnet und vermarktet wird. Erste Geräte mit dieser neuen Schnittstelle erscheinen 1999 (Apple Macintosh). In den darauf folgenden Jahren wird die IEEE 1394-95 mehrere Male erweitert und korrigiert. Jahrelang ist IEEE 1394 die Schnittstelle per se um Videodaten von Camcorder auf den PC zu übertragen um sie dort zu editieren.

2. Varianten und Standards

2.1 IEEE 1394-1995 (FireWire 400) - die Basisspezifikation

Die auf 261 von 10 Firmen gehaltenen Patenten (Liste und Status) beruhende Basisspezifikation IEEE 1394-1995 beschreibt den Standard, der heute als FireWire 400 bezeichnet wird. In drei Geschwindigkeitsklassen (S100, S200 und S400) können 98,304 Mbit/s, 196,608 Mbit/s, oder 393,216 Mbit/s, entsprechend 12,288 MByte/s, 24,576MByte/s und 49,152 MByte/s, bidirektional im Halbduplex übertragen werden.
Bis zu 64 Geräte können in einer Baumstruktur an einen einzelnen Bus angeschlossen werden. Mittels Bridges können bis zu 1024 Busse zusammengeschaltet werden.

2.2 IEEE1394a-2000 - die Erweiterung

Im Jahr 2000 wird die IEE1394 zur IEE1394a erweitert. Neben einer schnelleren Buserkennung (Arbitration) werden ein asynchrones Streaming und ein energiesparender Bereitschaftsmodus eingeführt.

IEEE1394 400 Verbinder
Abb. 2.01: IEEE1394 400 Verbinder

Ein von Sony entwickelter kleiner 4-poliger Verbinder ("i.LINK", Abb. 2.01 unten), der hauptsächlich bei Camcordern und anderen kleinen IEEE 1394-fähigen Geräten Anwendung findet, wird spezifiziert. Der 4-polige Verbinder ist elektrisch kompatibel zum 6-poligen Verbinder. Es fehlen lediglich die Kontakte der Speisespannung.
Der 4-polige Verbinder, auch Alpha-Verbinder genannt, ist der Standardverbinder an nahezu allen DV, HDV und Digital8-Camcordern. Sogar die "Multimedia-PCs" der Discounter-Ketten sind serienmäßig mit einem IEEE 1394-Anschluß ausgestattet.

2.3 IEEE 1394b-2002 (FireWire S800)

Im Jahr 2002 wird FireWire S800 alias IEEE1394b eingeführt. Die Spezifikation erlaubt eine Datenübertragungsrate von nahezu 800 MBit/s (786,432 MBit/s). Ermöglicht wird dies durch eine geänderte Signalisierung und ein neues Kodierverfahren, das als Beta-Modus bezeichnet wird. FireWire 800-Geräte, die mit "Bilingual Chips" (zweisprachigen Chips) ausgestattet sind, sind zu FireWire 400-Geräten rückwärtskompatibel. Da bei FireWire S800-Geräten aber der neue 9-polige "Beta"-Verbinder (Abb. 2.02) verwendet wird, können FireWire 400-Geräte an diese nur über Adapterkabel angeschlossen werden.

IEEE1394 800 (IEEE1394b) -Verbinder
Abb. 2.02: IEEE1394 800 (IEEE1394b) -Verbinder

Die Übertragung erfolgt im Voll-Duplexverfahren. Als Leitungscode wird, wie bei vielen anderen seriellen Übertragungsverfahren auch, die 8b/10b-Kodierung verwendet. Diese erlaubt die Rückgewinnung des Taktsignals und gewährleistet einen Gleichspannungsausgleich.

Unter Standard IEEE 1394b können unterschiedliche Übertragungsmedien eingesetzt werden, z.B. Lichtleitfasern, Ethernetkabel. So kann auch die Reichweite erhöht werden: bei S100 steigt die maximale Kabellänge mit UTP- (Unshielded Twisted Pair/CAT 5e-) Kabel auf 100 m.

2.4 IEEE 1394c-2006 (FireWire S800T)

IEEE 1394c-2006 fasst die Vorläuferstandards zusammen und führt den 8P8C-Stecker in Kombination mit CAT 5-Ethernetkabeln ein. Der 8P8C-Stecker passt in die RJ45-Buchse, sodass ein einziger RJ45-Port, z.B. bei Laptops, sowohl FireWire als auch LAN-Verbindungen unterstützen könnte. Es ist niemals ein Produkt mit diesem Feature in den Markt gelangt.

2.5 IEEE 1394-2008 (FireWire S1600 und S3200)

In Standard IEEE 1394-2008 sind alle Vorgängerstandards überarbeitet und fehlerbereinigt zusammengefasst worden. Es ist der derzeit (2017) gültige Standard für IEEE1394. Die bereits mit IEEE1394-2002 angekündigten Datenraten S1600 (1,6 GBit/s) und S3200 (3,2 GBit/s) werden genehmigt.
Als einzige wichtige Neuerung wird die Spezifizierung der elektrischen Parameter für FireWire S3200 veröffentlicht.

2012 wurde FireWire S3200, ohne dass je ein Gerät in den Markt gegangen ist, eingestellt.

3. IEEE 1394: Technische Beschreibung

3.1 Der IEEE 1394-Protokollstapel

IEEE 1394 Protokollstapel
Abb. 3.01: IEEE 1394 Protokollstapel

Da es sich beim IEEE 1394-Protokoll im Prinzip um ein Netzwerk-Protokoll handelt, lässt sich die Funktionsweise sehr gut am Protokollstapel verdeutlichen.
IEEE 1394 definiert vier Protokollebenen. Sie sind zumeist in Hardware realisiert. Zuunterst befindet sich, wie bei allen Netzwerkprotokollstapeln, der Physical Layer. Hier werden die elektrischen und mechanischen Schnittstellen beschrieben. Es folgen der Link Layer und der Transaction Layer. Der Bus Manager wirkt schichtübergreifend.
Die Anwendungsschicht ist ein Treiber oder Teil des Betriebssystems eines Gerätes.

3.1.1 Physical Layer (Bitübertragungsschicht)

Der Physical Layer (Bitübertragungsschicht) eines IEEE 1394-Busses ist die Schnittstelle zwischen der Verbindungsschicht und dem physischen Bus. Jeder Physical Layer hat mindestens einen Anschluss (Port) zum Bus. Zuständig für die Initialisierung und die Zugriffssteuerung stellt er sicher, dass immer nur ein Knoten (Node) zur selben Zeit sendet. Die Funktionen des Layers umfassen die:

  • mechanischen und elektrischen Verbindungen (Verkabelung)
  • elektrische Signalisierung
  • Businitialisierung
  • Busarbitrierung (Zugriffssteuerung)
  • serielle Codierung und Decodierung der übertragenen Daten
  • Detektion der Übertragungsgeschwindigkeit

     

3.1.1.1 IEEE 1394-Verbinder

Pinbelegung IEEE 1394-Buchsen
Abb. 3.02: Pinbelegung IEEE 1394-Buchsen
Pinbelegung IEEE 1394-Buchsen
Tab. 1: Pinbelegung IEEE 1394-Verbinder

Wie im Kapitel zuvor bereits beschrieben, werden in konventionellen IEEE 1394-Systemen drei unterschiedliche Steckverbinder verwendet.

Der zuerst verwendete sechspolige IEEE 1394a-Stecker erwies sich für viele Anwendungen (z.B. Camcorder) als zu groß. Sony gestaltete daher einen kleineren Verbinder, den vierpoligen i.LINK- oder Alpha-Verbinder.

Neunpolige IEEE 1394b-Stecker (Beta-Stecker) verbinden FireWire 800-Geräte miteinander.

Abb. 3.02 und Tabelle 1 zeigen die Pinbelegung aller IEEE 1394-Verbinder.

i.LINK-Anschluss (links) an einem digitalen HDV-Camcorder (2007)
Abb. 3.03: i.LINK-Anschluss (links) an einem digitalen HDV-Camcorder (2007)
In der Einführungszeit (vor ca. 2002) mussten IEEE1394-Schnittstellen mittels Erweiterungskarten nachgerüstet werden. Hier eine PCI-Karte aus dem Jahr 2000.
Abb. 3.04: In der Einführungszeit (vor ca. 2002) mussten IEEE1394-Schnittstellen mittels Erweiterungskarten nachgerüstet werden. Hier eine PCI-Karte aus dem Jahr 2000.
Bis etwa 2012 war jeder bessere PC serienmäßig mit einer frontseitigen IEEE 1394-Schnittstelle ausgestattet
Abb. 3.05: Bis etwa 2012 war jeder bessere PC serienmäßig mit einer frontseitigen IEEE 1394-Schnittstelle ausgestattet

Ab ca. 2012 sind praktisch keine PCs mehr mit IEEE 1394-Schnittstellen ausgestattet. Bei Bedarf kann diese wiederum mit einer Erweiterungskarte nachgerüstet werden.

Verbindungskabel

Das Standardübertragungsmedium ist ein flexibles abgeschirmtes 4-adriges Kabel. Jeweils ein Adernpaar überträgt die Daten mittels Differentialer Signalübertragung.

Standardkabel für IEEE 1394-Verbindungen
Abb. 3.06: Standardkabel für IEEE 1394-Verbindungen

Zwei optionale zusätzliche Adern können eine ungeregelte Speisespannung von max. 24-30V für Geräte liefern (bei Laptops zumeist die Akkuspannung). Die maximale Kabellänge ist 4,5m. Als Verbinder dienen 6-polige Stecker (siehe Abb. 2.01 oben).
In den neueren Versionen des IEEE 1394-Busses sind auch optische Plastik- und Glasfasern sowie Ethernetkabel vorgesehen.

 

3.1.1.2 Signalisierung

Das IEEE 1394-Protokoll unterstützt Baum-, Stern- und Mischstrukturen daraus. Schleifen sind bei IEEE 1394a nicht erlaubt.
Abb. 3.07: Das IEEE 1394-Protokoll unterstützt Baum-, Stern- und Mischstrukturen daraus. Schleifen sind bei IEEE 1394a nicht erlaubt.

Von der Topologie her ist das IEEE 1394-Protokoll weniger ein Bussystem im herkömmlichen Sinne, sondern ein Peer-to-Peer-Netzwerk mit einer Punkt-zu-Punkt-Kommunikation. Ein Host, der die Kommunikation im Netzwerk steuert (wie z.B. der Host-Controller im USB) ist nicht erforderlich.
Normalerweise sind alle Geräte auf dem IEEE 1394-Bus hintereinander geschaltet ("Daisy Chain"). Geräte mit zwei oder mehr IEEE 1394-Schnittstellen ermöglichen auch Abzweigungen, sodass auch Baum-, Stern- oder Mischstrukturen aus allen entstehen können. Zwischen den Geräten sind pro Strang maximal 16 Verbindungskabel á 4,50 m Länge erlaubt.

Terminologie

  • Nodes (Knoten)
    Ein Knoten stellt eine logische Einheit in einem Modul dar. Ein Knoten enthält mehrere Kontroll- und Statusregister, die für den automatischen Businitialisierungsprozess benötigt werden. Knoten verfügen über einen oder mehrere IEEE 1394-Anschlüsse (Ports).
    Ports wirken immer als Repeater, die alle Datenpakete, die an anderen Ports im Knoten ankommen, weiterleiten.
  • Module (Modul)
    Ein Module ist ein Gerät, das einen oder mehrere Nodes enthält.
  • Branch-Node (Zweig, Abzweigung)
    Geräte, die mehrere IEEE 1394-Anschlüsse enthalten, werden als Branch-Nodes bezeichnet, da sie Abzweigungen vom Bus ausbilden können.
    Die Ports von Branch-Nodes haben unterschiedliche Wichtungen. Ports, die in Richtung Stamm (Root) weisen, werden als "Parent" (Eltern) bezeichnet. Ports, die in eine Abzweigung weisen werden als "Child" bezeichnet.
  • Root-Node (Stamm, Wurzel)
    Root-Node ist zumeist der Node mit den meisten "Child"-Ports.
  • Leaf-Node (Blatt)
    Als Leafs werden solche Geräte bezeichnet, die über nur einen IEEE 1394-Port verfügen.
  • Quadlets
    Quadlets sind 32-Bit-Worte

3.1.1.3 Businitialisierung

Das 1394-Netzwerk konfiguriert sich komplett selbst. Wenn ein Gerät dazukommt oder abgeschaltet wird, erfolgt ein neuer Autokonfigurations-Prozess, der innerhalb von weniger als 10 μs in vier Stufen nacheinander abläuft:

  • Eine physische Verbindung zwischen zwei Nodes löst die Autokonfiguration aus.
  • Bus-Reset
    Ein Bus-Reset versetzt alle Nodes in einen Initialisierungsstatus und löscht alle Informationen über die bisherige Bus-Topologie.
  • Tree Identification (Baumidentifizierung)
    Root-, Branch- und Leaf-Nodes werden bestimmt. Es wird festgestellt wer wie mit wem verbunden ist. Der Node mit den meisten "Child"-Ports wird zum Root-Node gewählt.
  • Self Identification (Selbstidentifizierung)
    - Der Root-Node weist jedem Gerät eine ID zu.
    - Die Geräte geben Informationen über die eigene Übertragungs-geschwindigkeit, Strombedarf, Übertragungsmodi usw. an die anderen Geräte weiter.
    - Das dem Root-Node nächste isochron arbeitende Gerät wird zum IRM (Isochronous Resource Manager) gewählt.
Der IEEE 1394-Bus aus Abb. 3.07 nach der Businitialisierung
Abb. 3.08: Der IEEE 1394-Bus aus Abb. 3.07 nach der Businitialisierung

3.1.1.4 Buszugriffssteuerung (Arbitrierung)

Die Buszugriffssteuerung (Arbitrierung) erfolgt im Physikal Layer. Sämtliche Aktionen auf dem Bus werden über ein 8 kHz-Clocksignal vom Zyklus Master Node synchronisiert. Ein Übertragungszyklus ist eine Clock-Periode und somit 125 μs lang. Den Aufbau eines Übertragungszyklus zeigt Abb. 3.11.
Jeder Zyklus startet mit einem Zyklus-Startpaket, das der Zyklus Master sendet. Dieses Paket dient allen Geräten auf dem Bus zur Synchronisation ihrer Clocks. Sofort nach dem Zyklus-Startpaket können alle Geräte, die isochrone Daten übertragen wollen einen Buszugriff anfordern. Hierzu sendet es ein Signal zu seinem Parent-Node, der es in die höheren Schichten der Baumstruktur weiterschickt bis es den Root-Node erreicht. Der Root-Node erteilt die Zugriffsrechte dann nach dem "first come first serve"-Prinzip.

3.1.2 Link Layer (Verbindungsschicht)

Der Link Layer ist zuständig für das Paketieren und Depaketieren des Datenstroms, der Fehlerkontrolle und dem Weitertransport der Datenpakete zu den entsprechenden Protokollebenen. Zudem ist er zuständig die Header der empfangenen Pakete zu untersuchen, den Transaktionstyp zu bestimmen und die höheren Protokollschichten entsprechend zu informieren.

Transfertypen

Auf einem IEEE 1394-Bus können zwei Übertragungsverfahren abhängig vom Typ der Nutzdaten verwendet werden.

Asynchron

Bei einer asynchronen Datenübertragung kann keine feste Bandbreite garantiert werden, dafür wird aber die Datenintegrität garantiert. Falls ein Datenblock fehlerhaft übertragen wurde, wird dieser erneut gesendet. Die asynchrone Datenübertragung wird z.B. beim Beschreiben oder Lesen eines externen Datenträgers wie HDD, DVD oder Tape verwendet.

Prinzipielle Struktur von  asynchronen IEEE 1394-Datenpaketen
Abb. 3.09: Prinzipielle Struktur von asynchronen IEEE 1394-Datenpaketen
Isochron

Eine isochrone Datenübertragung garantiert zwar eine gewisse Bandbreite, kann aber keine Datenintegrität garantieren. Die Daten werden in 125 Mikrosekunden langen Slices ("Scheibchen") übertragen. Jedem Gerät auf dem Bus gehört ein fester Anteil vom Slice. 20% der Bandbreite sind für asynchrone Übertragungen reserviert (siehe Abb. 3.11). Die isochrone Datenübertragung wird z.B. zur Ansteuerung von digitalen Audiomischpulten eingesetzt.

Prinzipielle Struktur von isochronen IEEE 1394-Datenpaketen
Abb. 3.10: Prinzipielle Struktur von isochronen IEEE 1394-Datenpaketen

Anders als asynchrone Datenpakete enthalten isochrone IEEE 1394 Datenpakete keine Quell- oder Zieladresse, sondern nur die Kanalnummer als Zielangabe. Das Paket wird einfach während des dem Kanal zugeteilten Zeitfensters im Broadcastverfahren auf den Bus gestellt. Welcher Node auch immer auf dem Bus lauscht, empfängt das Paket.

Übertragungsprinzip

Jedem Gerät, das isochrone Daten senden möchte, wird vom Isochronous Resource Manager ein logischer Kanal zugewiesen. Ein Kanal darf in jedem Zyklus nur einmal verwendet werden. Hat ein Gerät einen hohen Bandbreitenbedarf und steht ausreichend Bandbreite zur Verfügung, können dem Gerät auch mehr als nur ein Kanal zugewiesen werden.
Wenn die Daten eines Kanals übertragen worden sind, bleibt der Bus im Ruhezustand und wartet darauf, dass ein anderer isochroner Kanal Buszugriff wünscht. Wenn kein anderer isochroner Kanal Buszugriff anfordert, bleibt der Bus länger als die übliche Zeit zwischen isochronen Übertragungen (→ Isochron-Lücke = 40 - 50 ns) im Ruhezustand. Ist die Ruhezeit länger als eine Asynchon-Lücke (subaction gap = 0,27 - 11,2 μs) kann ein Gerät, das asynchrone Daten übertragen möchte, den Buszugriff anfordern.

Isochrone und Asynchrone Transaktionen teilen sich die zur Verfügung stehende Bandbreite
Abb. 3.11: Isochrone und Asynchrone Transaktionen teilen sich die zur Verfügung stehende Bandbreite

Anders als bei der isochronen Datenübertragung, ist für asynchrone Übertragungen kein Manager, der Übertragungskanäle zuweist, vorhanden. Geräte, die mehrere asynchrone Pakete in einem Zyklus übertragen möchten, müssen daher für jedes einzelne Paket einen eigenen Buszugriff anfordern.
Die Asynchron-Lücken sind wesentlich länger als die Isochron-Lücken, da bei asynchronen Datenübertragungen immer auf ein Acknowledge (Empfangsbestätigung) vom Empfänger gewartet werden muss. Je nach Struktur und Verschachtelung des Baumes können unterschiedliche Signallaufzeiten (= Latenzen) entstehen.

Adressierungs- und Speichermodell

Das IEEE 1394-Adress- und Speichermodel setzt auf den Standards ISO/IEC 13213 und IEEE 1212 auf. Diese beschreiben die Adressräume, die Transaktionssets und die Kontroll- und Statusregister (CSR) in den Nodes. Bei IEEE 1394 ist der Speicher- und Adressraum durchgängig 64-Bit (= 2 Quadlets) breit. Insgesamt stehen 16 Exabyte (16 * 1018) Adressraum zur Verfügung.

  • Ein Bus unterstützt bis zu 64 Knotenadressen (63 Nutzadressen + 1 Broadcast-Adresse).
  • Jeder der 64 Knoten eines Bussegments kann 256 Terabyte adressieren (= 16 Pentabyte pro Bussegment).
  • Es können bis zu 1024 Busse unterstützt werden (= 16 Exabyte (16 * 1018) Adressraum).
64-Bit-Adressierung bei asynchronen Transaktionen
Abb. 3.12: 64-Bit-Adressierung bei asynchronen Transaktionen
  • Die CSR sind die nach ISO/IEC 13213 und IEEE 1212 festgelegten Kontroll- und Statusregister im Node.
  • Initiale Adressräume und Register sind festgelegte Speicherstellen, die während der Bus-Konfiguration und dem Busmanagement benötigt werden.
  • Private Adressräume sind für die interne Verwendung in den Nodes reserviert.
  • Im ROM sind individuelle Daten eines Nodes abgelegt, z.B. die World Wide User ID (WWUID)

3.1.3 Transaction Layer (Transaktionsschicht)

Über die Transaktionsschicht laufen ausschließlich asynchrone Übertragungen. Da asynchrone Daten periodisch übertragen werden, wird eine Flusskontrolle benötigt. Diese wird über Frage- und Antwort-Transaktionen realisiert. Es gibt daher drei Typen von Transaktionen: Schreiben, Lesen und Sperren.

3.1.4 Serial Busmanager

Der Busmanager kontrolliert die Konfiguration des Busses, weist den Nodes ihre Rolle im Bus zu und optimiert das Timing für den Zugang der Nodes zum Bus. Der Serial Busmanager stellt drei Dienste. Die Funktionen, bzw. Dienste des Serial Busmanagers können auf mehrere Nodes verteilt sein.

  • Bus-Master
    Der Bus-Master sammelt Informationen über den Bus und die angeschlossenen Geräte und stellt sie den anderen Geräten bereit. Hierzu gehören u.a. die Bus-Topologie und die Übertragungsgeschwindigkeit der einzelnen Geräte. Miteinander zur "Speed Map" verknüpft, kann die maximale Übertragungsrate zwischen verschiedenen Knoten bestimmt werden. Zu den weiteren Aufgaben des Bus-Managers gehört die Bandbreitenreservierung für asynchrone Transaktionen.
  • Zyklus Master
    Der Zyklus Master wird immer vom Root-Node gestellt. Er sendet zur Synchronisation der Nodes zu Beginn eines jeden 125 μs langen Zyklus ein Startpaket (siehe Abb. 3.11).
  • Isochroner Ressourcen Manager
    Wenn ein Gerät isochrone Datenübertragungen unterstützt, wird ein IRM (Isochroner Ressourcen Manager) bestimmt. Dieser überwacht die Verteilung der zur Verfügung stehenden Bandbreite und verwaltet die isochronen Übertragungskanäle (max. 63).

3.1.5 Anwendungsschicht

In der ersten Generation von IEEE 1394 wird zwar die physische Schnittstelle und der Verbindungsaufbau detailliert und präzise beschrieben, vernachlässigt aber die Schnittstelle zur Anwendungsschicht. Deshalb musste jeder Hersteller derzeit etwas Eigenes "stricken", was natürlich zu vielen Inkompatibilitäten (und Unmut bei den Benutzern) führte.
Bei der zweiten Generation von Geräten einigte man sich auf eine Anzahl von gemeinsamen Registern und Diensten, die von einem generischen Host-Controller (auf dem IEEE 13914-Gerät) bereitgestellt werden. Diese Hardware-/Softwarekonfiguration wird als Open Host Controller Interface (OHCI) bezeichnet und gewährleistet die Kommunikation zwischen den Verbindungsebenen aller Geräte.

OHCI unterstützt auch den direkten Speicherzugriff (DMA = Direct Memory Access) in den angeschlossenen Geräten, was von vielen als potentielle sicherheitstechnische Lücke betrachtet wird.

4. Der IEEE 1394-Bus bis heute

Mit dem Erscheinen von USB-2 mit sehr ähnlichen Leistungsmerkmalen, aber für die Gerätehersteller wesentlich günstigeren Lizenzbedingungen (für jedes IEEE 1394-taugliche Gerät muss der Hersteller 0,25 US$ an die MPLA (MPEG Licensing Administration) abführen), wurde der Marktanteil von IEEE 1394-tauglichen Geräten Jahr für Jahr geringer. Ab etwa 2012 ist die IEEE 1394-Schnittstelle praktisch bei keinem neuen PC mehr eingebaut. USB-3, MHL und HDMI machten IEEE 1394-Bus, zumindest im Konsumentenbereich, im Prinzip überflüssig.

Aber um auf Frank Zappa zurückzukommen: Tot ist der IEEE 1394-Bus heute (2017) beileibe nicht. Er hat seinen Zenit im Massenmarkt wohl überschritten, aber in vielen Nischenapplikationen (Studioanwendungen, Luft- und Raumfahrt, Militär), wo es um Echtzeit und Zuverlässigkeit geht, führt der "Feuerdraht" auch heute noch ein reges Leben.

 

 

REFERENZEN

Abbildungen

Abb. 1.01 oben: Logo Firewire Lizenz: Public Domain via Wikimedia Commons

Abb.1.01 unten: Logo i.LINK  Lizenz: Public Domain via Wikimedia Commons

 

Weblinks

1394 Trade Association Homepage (seit 2014 nicht weitergepflegt) 

1394 Trade Association Specifications (seit 2015 nicht weitergepflegt)

Michael Johas Teener: Technical Introduction to IEEE 1394

Dr. Dobb's Journal September 1997: FireWire: The IEEE 1394 Serial Bus

Thunderboltt.dk: IEEE 1394a

 

Zuletzt bearbeitet am 13. Juli 2017

Rechtshinweis

Sofern auf dieser Seite markenrechtlich geschützte Begriffe, geschützte (Wort- und/oder Bild-) Marken oder geschützte Produktnamen genannt werden, weisen wir ausdrücklich darauf hin, dass die Nennung dieser Marken, Namen und Begriffe hier ausschließlich der redaktionellen Beschreibung bzw. der Identifikation der genannten Produkte und/oder Hersteller bzw. der beschriebenen Technologien dienen.

Alle Rechte an den in diesem Kompendium erwähnten geschützten Marken- und/oder Produktnamen sind Eigentum der jeweiligen Rechteinhaber und werden hiermit ausdrücklich anerkannt. Alle in unseren Artikeln genannten und ggfs. durch Dritte geschützte Marken- und Warenzeichen unterliegen uneingeschränkt den Bestimmungen des jeweils gültigen Kennzeichenrechts sowie den Besitzrechten der jeweiligen eingetragenen Eigentümer.

Die Nennung von Produktnamen, Produkten und/oder der jeweiligen Produkthersteller dient ausschließlich Informationszwecken und stellt keine Werbung dar. InfoTip übernimmt hinsichtlich der Auswahl, Leistung oder Verwendbarkeit dieser Produkte keine Gewähr.

Sollten dennoch wider unserer Absicht Rechte Dritter verletzt werden, so bitten wir um eine Benachrichtigung ohne Kostennote.