| FireWire®, DV unter Linux? |
Workshop "Mobilität"
Andreas Heik, URZ
Schönfeld
17.-20. April 2001
FireWire® ist ein eingetragenes Warenzeichen der Apple Computer Inc.
| Begriffe/Historie |
- FireWire®
- Entwicklung beginnt Mitte der 80er Jahre bei Apple
- i.Link®
- Bezeichnung durch Sony, Einführung April 1997
- IEEE 1394-1995
- Beschreibung eines formalen Standards durch die IEEE
(Institute of Electrical and Electronics Engineers)
- IEEE 1394a
- IEEE 1394b
- in Entwicklung befindliche Version bis 3,2Gb/s
- rückwärtskompatibel zu 1394, 1394a
- IEEE 1394.2
- nicht rückwärtskompatibel
FireWire® ist ein eingetragenes Warenzeichen der Apple Computer Inc.
i.Link® ist ein eingetragenes Warenzeichen von Sony
| Einordnung |
- high speed seriell Bus
serielle Schnittstelle 115 Kb/s USB 1,5 und 12 Mb/s FireWire 100, 200 und 400 Mb/s
Videodaten (640x480, 24bit Farbtiefe, 30fps) 221 Mb/s Audiodaten (44,1 kHz, 16 Bit, Stereo) 1,4 Mb/s
![]()
Steckverbinder
| Eigenschaften |
- skalierbare Geschwindigkeit 100, 200, 400 Mb/s
- hot pluggable (unabhängig von einem Hostsystem)
- isochrone und asynchrone Übertragung (parallel)
- 63 Nodes je Bus ( 1 Node != 1 Gerät)
- 1024 Buse
- peer-to-peer Übertragung, unabhängig vom Hostsystem
- garantierte Bandbreite für isochrone Übertragung
- Fehlererkennung und -behandlung
- nicht Propertiär, keine Lizenzbedingungen
| Anwendungsgebiete |
- Audio- und Videotechnik
- zukünftig einzige Verbindung der Komponenten
- HAVi als "richtungsgebende" Organisation
- herstellerunabhängig
- Telekonferenzen
- "kleinere" Netzwerke
- Massenspeicher
- Hochgeschwindigkeitsdrucker
- Scanner, Desktopkameras, ...
| Topologie |
![]()
IEEE 1394 Topologie
- elektrisch Punkt-zu-Punkt Verbindung
- logisch einfache Kette
- Nodes mit Mehrfachports:
- Port empfängt Paket und verteilt es über die anderen Ports
- Verkettung
| Elektrische Eigenschaften |
![]()
Kabelbelegung
![]()
Signalpegel (Datenübertragung!)
- NRZ-Kodierung, reduziert Pegelwechsel auf dem Bus
- Strobe-Signal XOR NRZ-Kodierung = Takt
| Adressierung |
![]()
Adressierungsschema
- 64 Bit Adressen
- 256 TB Node Adressraum
- CSR Control- und Status Register
- Broadcast (Nachricht an alle Nodes am Bus) über Node 63
| Isochrone Übertragung |
- kontinuierliche Datenübertragung
- keine Quittung über den Erhalt der Daten
- geforderte Bandbreite garantiert, wenn vorhanden
- Broadcasts über den Bus an alle Nodes eines Kanals
- Bandbreitenvergabe durch Isochronous Ressource Manager = 1 Node
Beispiel:
- Videodatenstrom
| Asynchrone Übertragung |
- keine zeitkritischen Daten
- Datenprüfung durch CRC
- Bestätigung durch Quittung
- Wiederholung im Fehlerfall
- Adressierung an 1 Node
- Datenblockgröße begrenzt (bei 400Mb/s = 2048 Byte)
Beispiel:
- z.B. Steuerbefehle für Videokamera
| Isochrone und asynchrone Übertragung parallel |
![]()
Paketzyklus
- Bandbreitenvergabe durch Isochronous Ressource Manager
- isochrone Übertragung kann maximal 80% Bandbreite reservieren
- asynchrone Übertragung kann mindestens 20% Bandbreite nutzen
| Bus Konfiguration |
Nach dem Einschalten bzw nach Einfügen oder Entfernen von Geräten wird ein RESET-Broadcast verschickt, welcher zur Neukonfiguration des Buses führt.
- Tree Identification -> root Node
- Self Identification -> eindeutige ID für jedes Node
- Bus Management
- Cycle Master (root Node) 125 microsecunden Takt
- Isochronous Ressource Manager, wenn isochrone Übertragung angefordert wird (Node mit höchster SelfID)
- Power Management (Stromversorgung über FireWire-Kabel)
| LINUX 1394 Project |
- Ziel: Linux Subsystem für IEEE1394
- GPL
- ursprünglich Entwicklung an der Universität Klagenfurt (at)
- http://sourceforge.net/projects/linux1394
- Entwickler:
- Andreas Bombe
- Dan Dennedy
- Sebastien Rougeaux
![]()
Grafik von Søren Thing Andersen
| Hardwareunterstützung |
- Texas Instruments Chipfamilie
- TSB12LV22, PCI-to-1394 Host Controller
- TSB41LV03, 3-Port, 100/200/400Mbps Physical Layer Controller
- Sony Vaio Notebooks teilweise unterstützt
![]()
Mainboard ASUS P3B 1394
| Installation |
- experimentelle Kernelpatches fuer 2.2.x
- RedHat Standardkernel ab 2.4.x enthält IEEE1394 Subsystem
- aktuell 2.4.2-0.1.49
% /sbin/lspci
00:06.0 FireWire (IEEE 1394): Texas Instruments OHCI Compliant FireWire Controller (rev 01)
- Treiber als Module laden
% /sbin/modprobe ohci1394
% /sbin/modprobe raw1394
% /sbin/lsmod
Module Size Used by
raw1394 6688 2
ohci1394 23312 1
ieee1394 21552 0 [raw1394 ohci1394]
- Geräteinträge anlegen
% /bin/mknod -m 666 /dev/raw1394 c 171 0
% /bin/mknod -m 666 /dev/video1394 c 172 0
| Bibliotheken |
libraw1394 0.8.2
- Funktionen zur Nutzung von /dev/raw1394
- Includes unter /usr/local/include/libraw1394/
libdv 0.4
(Achtung: libdv 0.5 passt nicht zu kino 0.4)
- Quasar DV Codec
- Softwaredecoder DV-Format nach IEC 61834 und SMPTE 314M
(Standards beschreiben Format für "consumers digital camcorder")
- Includes /usr/local/include/libdv/
libdc1394 0.8
- Programmierinterface zur Steuerung von DV-Camcordern
- Includes /usr/local/include/libdc1394/
| gscanbus |
gscanbus 0.6
- Topologie des FireWire-Buses
- Informationen über einzelne Nodes
- Transfers von und zu den Nodes
![]()
gscanbus
| Video-Anwendungen |
kino 0.4
- Aufzeichen von Audio+Videodaten von DV-Camcorder
- DV-Camcorder Control (Play, Pause, Stop, ...)
- nutzt /dev/raw1394
![]()
kinoBroadCast 2000
- DV-Aufzeichnung funktioniert im Anwendungsbeispiel nicht
MainActor
- Nachbearbeitung/Schnitt der AVIs
| weitere Anwendungen |
ether_1394
Für die Adressierung ist eine eindeutige MAC-Adresse erforderlich.Im gewählten Ansatz wird aus der Node-Nummer die MAC-Adresse berechneten. Ein eingefügtes oder entferntes Node führt aber zur Neunummerierung der Nodes am Bus.
ARP-Problem
- bis zu 63 Netzwerkknoten mit Ethernet-Protokoll
- vorerst für 2.2.x Kernel, ab Version 0.2.x auch fuer 2.4.x Kernel
- Modul eth1394 mit Option hwaddr=0x00342367ba12
ip1394
- Kernelpatch erforderlich, nur 2.2.x Kernel
- Kernelmodul ip1394
- Konfiguration: /sbin/ifconfig ip1394 172.16.220.38 netmask 255.255.255.0 up
| Fazit |
- FireWire versus USB
- Verbreitung im Audio-Video-Bereich
- rasante Entwicklung um Linux + FireWire
- Entwicklung derzeit auf Texas Instruments Chips beschränkt
Nachtrag
- SBP-2 Treiber, emuliert SCSI-Treiber für Massenspeicher, Scanner, ...
- Patch für PCMCIA-FireWire-Karten
- Patch für mehrere isochrone Kanäle
| Quellen |
- Don Anderson, FireWire System Architecture
(Addison Wesley 1998, ISBN 0-201-69470-0)
- linux1394.sourceforge.net
- www.1394ta.com
- standards.ieee.org
- www.havi.org
- Arne Schirmacher - kino
- Bill Alexander IEEE 1394 programming page
- Richard Akerman's Links
- BroadCast 2000
- Main Actor
- Texas Instruments
- Apple Inc, FireWire
- Sony Deutschland