Universal Serial Bus
Der Universal Serial Bus (USB) ist ein Bussystem zur Verbindung von einem Computer mit externen Geräten zum Austausch von Daten. Durch die relativ hohen möglichen Datenraten und die automatische Erkennung von Geräten und deren Eigenschaften ist der USB zum Anschluss fast aller Gerätearten von Maus und Tastatur bis zu Festplatten und Kameras vorgesehen. Die Anzahl der USB-Anschlüsse eines Computers kann mit USB-Hubs vergrößert werden.
Überblick
USB ist ein serieller Bus. Das bedeutet, Datenkommunikation auf lediglich einer differenziellen Datenleitung (zwei Leitungen, eine überträgt invertierte Daten, dadurch reduziert sich die Abstrahlung und erhöht sich die Übertragungssicherheit) erfolgt. Dabei werden die einzelnen Bits des Datenpaketes nacheinander übertragen. Durch Verwendung nur einer Datenleitung können die Kabel dünner und preiswerter als bei parallelen Schnittstellen ausgeführt werden und die hohe Datenrate ist mit relativ geringem Aufwand zu erreichen, da nicht mehrere Signale mit identischem elektrischem und zeitlichem Verhalten übertragen werden müssen.
Der Bus erlaubt es, bis zu 127 verschiedene Geräte an einem Hostcontroller anzuschließen. Durch Verwendung mehrerer Hostcontroller können auch noch mehr Geräte angeschlossen werden, jedoch ist dies abhängig vom verwendeten Betriebssystem, Windows beispielsweise wird lange vor Erreichen der 127 Geräte instabil. USB zeichnet sich dadurch aus, dass die Installation der Geräte verhältnismäßig einfach ist und die Datenkabel der Geräte im laufenden Betrieb ein- und ausgesteckt werden können.
Gegenüber den bisherigen externen Schnittstellen am PC bietet USB deutlich höhere Datenübertragungsraten. USB stellt aus all diesen Gründen eine gute Weiterentwicklung zu den bisher verwendeten Schnittstellen (parallel/Centronics und seriell/RS232) dar.
Die aktuelle Version der USB Spezifikation ist 2.0. Mit dem Schritt von der V1.1 zur 2.0 wurde es ermöglicht Geräte mit einer deutlich höheren Datenrate zu bauen.
Bus-Struktur
Bei einem "klassischen" Datenbus werden mehrere Geräte parallel an eine Leitung angeschlossen. Bei USB bezieht sich "Bus" nur auf die logische Vernetzung, die tatsächliche elektrische Ausführung erfolgt nur mit Punkt-zu-Punkt Verbindungen. An einen Host können mehrere Devices angeschlossen werden, jedoch grundsätzlich mittels Hubs. An einem Port ist immer nur ein einzelnes USB-Device angeschlossen. Durch den Einsatz von Hubs entstehen Baumstrukturen, die alle in einem Host-Controller enden.
USB-Kabel
In einem USB-Kabel werden nur vier Adern benötigt: zwei für die Spannungsversorgung von 5 Volt (bei maximal 500 mA sprich 2,5 Watt) und zwei für die Datenübertragung. Die Kabel müssen je nach Geschwindigkeit unterschiedlich geschirmt werden. Nur Kabel, die der Spezifikation für Full Speed entsprechen dürfen mit A und B Stecker versehen sein. Low Speed Kabel müssen generell als "captive cable", also fest angeschlossenes Kabel ausgeführt sein (die Verwendung eines eigenen Steckers auf Geräteseite ist möglich, es darf nur kein USB Stecker sein), da durch die geringe Abschirmung Probleme auftreten würden wenn dieses Kabel mit einem Full Speed Gerät benutzt wird. Ein High Speed Kabel gibt es nicht, die Full Speed Kabel der USB 1.0 und 1.1 Spezifikation waren technisch bereits völlig ausreichend um die 480 MBit/sec des High Speed USB zu erlauben. Kabel, die im Handel als "USB 2.0 Kabel" verkauft werden, sind daher als Aufschneiderei anzusehen. Die Länge eines Kabels vom Hub zum Device ist auf fünf Meter begrenzt (Low Speed Kabel werden von der Spezifikation auf 3 m beschränkt, dies ist technisch jedoch unbegründet und wird voraussichtlich in einer zukünftigen Fassung der Spec entfallen). Die Spezifikation schließt Verlängerungen aus. Sind sie notwendig, müssen USB-Hubs dazwischen geschaltet werden. Diese und andere Geräte mit geringem Stromverbrauch können über den Bus mitversorgt werden. Einer der Vorteile geringer Adernzahl sind kleine Stecker, die zudem verpolungssicher ausgeführt sind.
USB-Hubs
Der USB Hub ist eine spezielle Art von USB Gerät, die das USB Signal an zusätzliche Ports zum Anschluss von mehreren weiteren Geräten weiterleitet. Handelsüblich sind USB Hubs mit bis zu sieben Downstream (also vom Host weg gerichteten) Ports. Zwei wichtige Unterscheidungskriterien bei USB Hubs sind die unterstützte USB Version und die Stromversorgung. Hubs nach dem USB 1.x Standard können an USB 2.0 Hosts verwendet werden, jedoch ist es nicht möglich an einem Downstream Port von einem solchen Hub die High Speed Datenrate zu nutzen, das ist nur mit USB 2.0 Hubs möglich (siehe "Begriff USB 2.0"). Bei der Stromversorgung gibt es die Möglichkeit, dass der Hub seinen Strom vom Bus bezieht (Bus Powered) oder über eine eigene Stromversorgung verfügt (Self Powered, z. B. über Steckernetzteil oder bei Hubs in Monitoren über deren Stromversorgung). Daraus ergibt sich der maximal an den Downstream Ports des Hubs verfügbare Strom für angeschlossene Geräte. Da über den USB maximal 500mA pro Gerät zur Verfügung stehen und der Hub selbst auch Strom benötigt, kann ein Bus Powered Hub maximal 4 x 100 mA weitergeben. Ein Self Powered Hub dagegen muß über eine ausreichende Stromversorgung verfügen um an jedem seiner Ports 500mA zur Verfügung stellen zu können. Dadurch ist es z. B. nicht möglich an den USB Ports in einer Tastatur Geräte anzuschließen, die mehr als 100 mA benötigen, wer will schon ein Steckernetzteil an seiner Tastatur haben? Auf dem Markt sind leider teilweise Hubs verfügbar die sich als Self Powered ausgeben, obwohl sie über kein externes Netzteil verfügen. Teilweise werden solche Geräte damit beworben, dass man an diesem Hub ohne externe Versorgung z. B. ein Floppylaufwerk betreiben könne. Von der Verwendung derartig windiger Produkte ist dringend abzuraten, im günstigsten Fall bekommt man nur Zuverlässigkeitsprobleme mit den USB Geräten, da durch die zu hohe Belastung die Versorgungsspannung einbricht, im ungüstigsten Fall kann man den USB Port an dem der Hub angeschlossen ist beschädigen. Es kursieren für USB Hubs auch die Begriffe "passiv" und "aktiv", gemeint sind damit eigentlich Bus Powered und Self Powered. Da ein Hub in jedem Fall ein komplettes USB Gerät ist könnte ein passiver Hub eigentlich nur ein defekter Hub sein.
Geschwindigkeiten, Datenraten
USB erlaubt es einem Gerät mit 1,5 MBit/s (Low Speed), 12 MBit/s (Full Speed) oder mit 480 MBit/s (High Speed, ab USB 2.0 verfügbar) Daten zu übertragen. Diese Raten basieren auf dem Systemtakt der jeweiligen USB-Geschwindigkeit und stellen die physikalische Bitrate dar. In der Praxis muss mit einer ganz erheblich geringeren Übertragungsrate gerechnet werden. Geräte mit geringem Datenaufkommen können mit preiswerteren Chips ausgestattet werden und im Falle von Low Speed Geräten sogar dünnere Kabel mit einfacherem Schirm zu verwenden.
Auch wenn die maximale Datenrate von USB 2.0 eine Überlegenheit zu IEEE 1394a/FireWire (USB 2.0 bis zu 480 Mbit/s, IEEE 1394a bis zu 400 Mbit/s) erwarten lässt, gelten für USB technische Einschränkungen, die im praktischen Einsatz deutliche Nachteile gegenüber FireWire bringen. Dies ist zum Beispiel darin begründet, dass alle Kommunikation vom Host (in der Regel der Desktop-PC) gesteuert werden muss. Ein USB-Device hat keine Möglichkeit, mit einem anderen USB-Device zu kommunizieren, ohne dass sämtliche Daten zuerst in den Host gelesen und von dort wieder herausgeschrieben werden. FireWire bietet hier die Möglichkeit der Peer-To-Peer-Kommunikation auf Request-Ebene, d. h. ein Device kann die Kommunikation mit einem anderen Device aufbauen, ohne dass die Steuerung durch einen Host erforderlich ist. Über Firewire ist beispielsweise auch der Aufbau eines Netzwerkes möglich.
Begriff "USB 2.0"
Wird die Schnittstelle eines Geräts mit "USB 2.0" angegeben, führt dies manchmal zu Verwechslungen mit High Speed. Demzufolge wird erwartet, dass ein als USB 2.0 kompatibel bezeichnetes Gerät auch eine High-Speed-Datenrate von 480 MBit/s anbietet. Korrekt ist jedoch, dass ein USB 2.0-kompatibles Gerät grundsätzlich jede der drei Geschwindigkeiten benutzen kann und die 2.0 Kompatibilität in erster Linie bedeutet, dass die neueste Fassung der Spezifikation eingehalten wird. Lediglich bei Hubs und bei Computern, bzw. USB Karten bedeutet "USB 2.0" auch High Speed. Bei allen anderen Geräten muss darauf geachtet werden, dass sie über das Logo "USB 2.0 Hi-Speed" verfügen, wenn man ein Gerät mit bis zu 480 MBit/s erwartet. Low, Full und High Speed Geräte lassen sich an einem USB 2.0 Host fast beliebig mischen, ohne dass Geschwindigkeitsnachteile entstehen. Lediglich bei den Hubs muss man aufpassen, ein USB 1.1 Hub kann natürlich kein High Speed Gerät mit High Speed versorgen, hinter diesem Hub stehen dann nur noch Full und Low Speed zur Verfügung. Ebenfalls empfindlich die Datenrate einschränken können USB 2.0 Hubs die über nur einen so genannten "Transaction Translator" verfügen. Bis zu einem USB 2.0 Hub läuft die Kommunikation an einem USB 2.0 Host immer mit High Speed, auch wenn an dem Hub ein Low oder Full Speed Gerät angeschlossen ist. Der Transaction Translator ist dafür zuständig die Kommunikation mit dem langsamen Gerät dann zwischen den Geschwindigkeiten umzusetzen. Dadurch werden andere Geräte nicht durch die langsamen Geräte ausgebremst. Hat der Hub aber nur einen TT, so kann die Kommunikation mit mehreren Low und Full Speed Geräten an diesem Hub auf Geschwindigkeiten deutlich unter denen an einem USB 1.1 Host zusammenbrechen.
Begriff "USB On-the-go"
Durch USB On-the-go (OTG) können entsprechend ausgerüstete Geräte direkt miteinander kommunizieren. Bisher benötigte es bei USB immer einen Computer der die Host-Funktion übernahm. Durch USB OTG kann jedoch eine direkte Kommunikation zwischen zwei Geräten stattfinden, eines der beiden Endgeräte übernimmt eine eingeschränkte Host-Funktionalität. Mögliche Einsätze sind beispielsweise Fotos direkt von der Digitalkamera am Drucker auszudrucken oder Musikdateien zwischen zwei MP3-Playern auszutauschen. Gekennzeichnet werden USB OTG Produkte durch das USB Logo mit zusätzlichem grünen Pfeil auf der Unterseite und weissem "On-The-Go" Schriftzug. Die USB OTG Spezifikation wurde am 18.12.2001 verabschiedet, doch bis jetzt finden sich sich kaum Produkte welche USB OTG unterstützen. Unklar ist derzeit noch etwas, ob zwei beliebige USB OTG Geräte zusammen kommunizieren können, oder ob das Zusammenspiel sehr beschränkt, z. B. nur Produkte gleichen Herstellers, ist.
Begriff "WirelessUSB"
Momentan besetzen zwei Initiativen den Begriff "WirelessUSB". Die ältere der beiden wurde von der Firma Cypress initiert, mittlerweile ist die Firma Atmel als zweiter Chiphersteller auf den Zug aufgesprungen. Das Cypress WirelessUSB ist eigentlich kein drahtloses USB, sondern eine Technik um drahtlose Endgeräte zu bauen, die dann über einen am USB angeschlossenen Empfänger/Sender (Transceiver) mit dem Computer verbunden sind. Dazu wird eine Übertragungstechnik im 2,4 GHz Band benutzt, die Datenrate beträgt bis zu 62,5 kbit/sec und ist damit für Eingabegeräte völligausreichend, für andere Anwendungen aber oft zu knapp bemessen. Das zweite WirelessUSB Projekt ist wesentlich anspruchsvoller, das dazugehörige Konsortium wird von Intel angeführt. Ziel ist es eine Technik zu schaffen mit der die vollen 480MBit/sec des High Speed Übertragungsmodus drahtlos übertragen werden kann. Dabei ist eine kurze Reichweite unter 10m vorgesehen, die Übertragung soll auf einer Ultra-Wideband Technik basieren. Erste Demonstrationen dieser Technik sind jedoch nicht vor der zweiten Hälfte 2005 zu erwarten, wann dann Produkte kommen werden ist noch unklar.
Die verschiedenen Host-Controller
Die USB-Controller-Chips in den PCs halten sich an einen von drei etablierten Standards. Diese unterscheiden sich jeweils in ihrer Leistungsfähigkeit und der Implementierung von bestimmten Funktionalitäten (entweder erledigt sie der Chip von selbst, "in Hardware", oder der Treiber muss softwareseitig dafür sorgen). Für ein USB-Gerät sind die verwendeten Controller (fast) vollständig transparent, allerdings ist es für den Benutzer des PC mitunter wichtig, feststellen zu können, welche Art Chip der Rechner verwendet, um den korrekten Treiber auswählen zu können.
Universal Host Controller Interface (UHCI)
UHCI wurde im November 1995 von Intel spezifiziert. Die aktuelle Version des Dokuments trägt die Revisionsnummer 1.1, daher nennen sich auch alle gegenwärtigen USB-Geräte USB-1.1-kompatibel. UHCI-Chips bieten Unterstützung für USB-Geräte mit 1,5 oder 12 MBit/s Bandbreite. Sie werden ausschließlich von den Herstellern Intel und VIA Technologies verbaut.
Open Host Controller Interface (OHCI)
OHCI ist eine Spezifikation, die gemeinsam von Compaq, Microsoft und National Semiconductor entwickelt wurde. Version 1.0 des Standards wurde im Dezember 1995 veröffentlicht, die aktuelle Fassung trägt die Versionsnummer 1.0a und stammt von September 1999. Ein OHCI-Controller hat prinzipiell die gleichen Fähigkeiten wie seine UHCI-Pendants, erledigt aber mehr Aufgaben in Hardware und ist dadurch marginal schneller als ein UHCI-Controller (der Unterschied bewegt sich meistens in Bereichen, die gerade noch messbar sind, daher kann man dies in der Benutzung vernachlässigen, für Geräteentwickler können sich hier aber gemeine Fallen auftun...). Bei den USB-Controllern auf Hauptplatinen, die nicht von Intel oder VIA stammen handelt es sich mit großer Wahrscheinlichkeit um OHCI.
Enhanced Host Controller Interface (EHCI)
Der Enhanced Host Controller ist der Chip, der bei USB 2.0 verwendet wird. Er wickelt dabei nur die Übertragungen im Hi-Speed-Modus (480 MBit/s) ab. Wenn man USB-1.1-Geräte an einen Port mit EHCI-Chip steckt, reicht der EHCI-Controller den Datenverkehr an einen hinter ihm liegenden UHCI- oder OHCI-Controller weiter (diese Controller sind typischerweise auf dem gleichen Chip). Wenn kein EHCI-Treiber verfügbar ist, werden die High Speed Geräte ebenfalls an den USB 1.1-Controller durchgereicht und arbeiten dann sofern möglich mit langsamerer Geschwindigkeit.
USB auf dem Low-Level
Endpunkte
Generell gilt beim USB, dass ein Gerät nur dann Daten senden darf, wenn es vom Host-Controller abgefragt wird. Dies führt dazu, dass der Controller sich bei zeitkritischen Datenströmen (klassischer Anwendungsfall sind Mausbewegungen) häufig genug beim Gerät erkundigen muss, ob es Daten senden will, um Stockungen zu vermeiden. USB Geräte verfügen über eine Anzahl von "Endpunkten", gewissermaßen Unteradressen des Gerätes. Die Endpunkte sind in den Geräten hardwareseitig vorhanden und werden von der USB SIE (Serial Interface Engine) bedient. Über diese Endpunkte können voneinander unabhängige Datenströme laufen. Geräte mit mehreren getrennten Funktionen (z. B. Webcams, die Video und Audio übertragen) benutzen mehrere Endpunkte. Die Übertragungen von bzw. zu den Endpunkten erfolgen meist unidirektional, d. h. für bidirektionale Übertragungen ist ein IN- und ein OUT-Endpunkt erforderlich (IN und OUT beziehen sich jeweils auf die Sicht des Host-Controllers). Einzige Ausnahme sind Endpunkte, die den sogenannten Control Transfer Modus verwenden. Dies ist z. B. generell der Endpunkt 0, der immer vorhanden sein muß, da über ihn die Erkennung und Konfiguration des Gerätes läuft. Zusätzlich können auch noch andere Funktionen über den Endpunkt 0 ablaufen. Maximal möglich sind 31 Endpunkte pro Gerät, das ist der eine Control Endpunkt (der eigentlich zwei Endpunkte zusammenfasst) und je 15 In- und 15 Out-Endpunkte. Low Speed (1,5 MBit) Geräte sind auf Endpunkt 0 plus maximal zwei weitere Endpunkte im Interrupt Transfer Modus mit maximal 8 Bytes pro Transfer beschränkt.
Übertragungsmodi
Der USB bietet den angeschlossenen Geräten verschiedene Übertragungsmodi, die diese für jeden einzelnen Endpunkt festlegen können.
Isochroner Transfer
Der isochrone Modus bietet sich besonders für die Übertragung zeitkritischer Daten an (z. B. Audiodaten von einem Mikrofon). Das Gerät teilt dem Host-Controller dazu mit, in welchen Zeitabständen es Daten senden will und wieviel Bandbreite es dazu benötigt. Wenn der Host-Controller über ausreichend freie Bandbreite verfügt, wird diese fest für das Gerät reserviert. Um Zeit zu sparen, findet keine Fehlerkorrektur statt (nicht für Low Speed Geräte verfügbar).
Interrupt-Transfer
Interrupt-Transfers dienen zur Übertragung von kleinen Datenmengen, die zu nicht genau bestimmbaren Zeitpunkten verfügbar sind. Im Endpoint Descriptor teilt das Gerät mit in welchen maximalen Zeitabständen es nach neuen Daten gefragt werden möchte. Der kleinstmögliche Zeitraum ist dabei 1 ms (10 ms bei Low Speed Geräten - tatsächlich verwenden alle Betriebssysteme 8ms, 125 µs bei High Speed Geräten). Die HID Klasse (Human Interface Device, also alles von Tastatur und Maus über Joystick bis hin zum Datasuit) verwendet praktisch ausschließlich den Interrupt Transfer (abgesehen vom Control Transfer).
Bulk-Transfer
Bulk-Transfers sind für große Datenmengen gedacht, die jedoch nicht zeitkritisch sind. Diese Transfers sind niedrig priorisiert und werden vom Controller durchgeführt, wenn alle isochronen und Interrupt-Transfers abgeschlossen sind und noch Bandbreite übrig ist. Dafür sind die Bulk-Transfers gesichert, die Daten kommen also definitv an, nur wann ist nicht festgelegt (nicht für Low Speed Geräte verfügbar).
Control-Transfer
Control-Transfers sind eine besondere Art von Datentransfers die einen Endpunkt erfordern, der sowohl In- als auch Out-Operationen durchführen kann. Control-Transfers werden generell in beide Richtungen bestätigt, so dass Sender und Empfänger immer sicher sein können, dass die Daten auch angekommen sind. Daher wird der Endpunkt 0 im Control-Transfer-Modus verwendet.
Konfigurationen, Interfaces und Alternate Settings
Intern adressiert der USB-Controller die angeschlossenen Geräte mit einer sieben Bit langen Kennung, wodurch sich die 127 maximal anschließbaren Geräte ergeben. Die Adresse 0 wird automatisch von Geräten belegt, die ein Reset Signal erhalten. Wenn an einem oder mehreren Ports neue Geräte detektiert werden, so schaltet der Host-Controller einen dieser Ports ein, sendet dem dort angeschlossenen Gerät einen Reset und versucht dann das Gerät zu identifizieren. Danach teilt er dem Gerät eine eindeutige Adresse mit. Da immer nur ein Port mit noch nicht konfiguriertem Gerät aktiviert wird, kommt es zu keinen Adresskollisionen. Der Host-Controller fragt meist zuerst nach einem Device-Deskriptor, der z. B. die Hersteller- und Produkt-ID enthält. Mit weiteren Deskriptoren teilt das Gerät mit, welche alternativen Konfigurationen es besitzt, in die es von seinem Gerätetreiber geschaltet werden kann. Bei einer Webcam könnten diese Alternativen z. B. darin bestehen, ob die Kamera eingeschaltet ist oder ob nur das Mikrofon läuft. Für den Controller ist dabei relevant, dass die unterschiedlichen Konfigurationen auch einen unterschiedlichen Stromverbrauch mit sich bringen. Ohne besondere Freigabe durch das Betriebssystem darf ein Gerät nicht mehr als 100 mA Strom verbrauchen. Innerhalb einer Konfiguration kann das Gerät verschiedene Interfaces definieren, die jeweils über einen oder mehrere Endpunkte verfügen. Unterschiedlicher Bedarf an reservierter Bandbreite wird über so genannte Alternate Settings signalisiert. Praktisches Beispiel ist wieder die Webcam, die z. B. in zwei verschiedenen Auflösungen Bilder senden kann. Das Alternate Setting 0 wird aktiviert, wenn ein Gerät keine Daten übertragen möchte und somit pausiert.
Geräteklassen
Um nicht für jedes Gerät eigene Treiber zu erfordern, definiert der USB-Standard verschiedene Geräteklassen, die sich durch generische Treiber steuern lassen. Auf diese Weise sind USB-Tastaturen, Mäuse, USB-Massenspeicher und andere Geräte mit ihren grundlegenden Funktionen sofort startklar, ohne dass erst ein Treiber von CD installiert werden müsste. Herstellerspezifische Erweiterungen (die dann einen eigenen Treiber erfordern) sind möglich. Die Information, zu welchen Geräteklassen sich ein Gerät zählt, kann im Device-Deskriptor (wenn das Gerät nur einer Klasse angehört) oder in einem Interface-Deskriptor (bei Geräten, die zu mehreren Klassen gehören) untergebracht werden.
Geschichte und Entwicklung
Die Idee eines Universalbusses für Peripheriegeräte geht unter anderem auf eine Entwicklung von Apple zurück: Der Apple Desktop Bus (ADB) wurde in den Computern der Apple Macintosh-Modellreihe bereits in den 80er Jahren eingeführt, allerdings mit einer Datenrate von nur 10.000 Bit/s. Bereits der ADB verfolgte das Ziel, das Kabelgewirr auf, um und unter dem Schreibtisch zu reduzieren und verband dazu beispielsweise einfach die Maus mit der Tastatur und diese mit dem Computer; separate Datenleitungen wurden so eingespart.
Den heutigen universellen seriellen Bus (USB 1.0) entwickelte Intel im Jahr 1996, die ersten marktreifen USB-Geräte wurden um 1997 mit den Intel-Chipsätzen 430HX und 430VX eingeführt, der Industriestandard setzte sich jedoch erst etwa ein Jahr später durch, als sowohl Mainboards mit integrierter USB-Unterstützung als auch native Peripherigeräte am Markt erschienen. Wesentlicher Faktor für die Marktakzeptanz von USB war 1998 die Einführung des iMac von Apple, der nur noch den USB als externe Schnittstelle hatte (neben Modem und Ethernet), dadurch bildete sich in kurzer Zeit eine installierte Basis, die auf den USB angewiesen war. Von Anfang an war die USB-Spezifikation nicht nur auf Tastatur und Maus begrenzt, sondern schloss auch andere Peripheriegeräte wie Drucker und Scanner ein.
Ab Ende 1998 folgte die überarbeitete Spezifikation USB 1.1, die in erster Linie Fehler und Unklarheiten in der 1.0 Spezifikation behob und den Interrupt Out Transfer hinzufügte, jedoch weiterhin auf eine Bitrate von 12 MBit/s bzw. 1,5MBit/s begrenzt war. Geschwindigkeitsmäßig stellte USB 1.x bis dahin keine Konkurrenz zu Apples bereits seit 1986 entwickelten alternativen Firewire-Standard (IEEE 1394) dar, der von Anfang an eine Datenrate von 100 MBit/s bot und rasch auf 400, 800 und schließlich 1.600 MBit/s (IEEE 1394b, ab April 2002) beschleunigt wurde.
In 2000 folgte die Spezifikation für USB 2.0, die vor allem die Datenrate auf bis zu 480 MBit/s erweiterte und so den sinnvollen Anschluss von Festplatten oder Videogeräten ermöglichte. Produkte dafür erschienen jedoch erst ab 2002 am Markt; der Linux-Kernel kann seit Version 2.4.19 mit USB 2.0 umgehen, während Microsoft einen Standardtreiber für Windows XP erst im Service Pack 1 auslieferte. Mac OS X ab 10.2.8 unterstützt USB 2.0.
Unterstützung in den Betriebssystemen
Mac OS unterstützt USB 1.1 ab Mac OS 8.1, der Umfang der Geräte die mit Klassentreibern unterstützt werden ist in den nachfolgenden Systemversionen deutlich erweitert worden, ab etwa Mac OS 8.5 ist ein wirklich brauchbarer Umfang der Unterstützung erreicht worden. Mac OS X in allen Versionen unterstützt USB 1.1 und ab 10.2.8 auch USB 2.0.
Windows 95 hat nur eine rudimentäre Unterstützung von USB 1.0 die man besser gleich in Ruhe lässt. Windows 98 unterstützt USB 1.0, ab SE auch USB 1.1. Windows NT hat keinerlei USB Unterstützung, von Drittherstellern sind jedoch Systemerweiterungen dafür erhältlich (auch diese sind nicht für den praktischen Einsatz tauglich, da kein Geräterhersteller damit testet oder bei Problemen weiterhilft). Windows 2000 (SP1) und XP unterstützen USB 2.0.
Amiga OS3.x unterstützt von Haus aus kein USB. Lediglich mit Software und Hardware von Drittanbietern ist eine Anbindung von USB 1.1 Geräten möglich. Erst ab Amiga OS4 wird, je nach Hardware, USB 1.1 und 2.0 unterstützt.
Siehe auch
Weblinks
- USB Implementers Forum - Normgebendes Industriekonsortium, die kompletten USB Spezifikationen sind dort zu finden
- Zitate von CiteSeer
- USB und seine Kabel