- EHCI
-
Der Universal Serial Bus (USB) [ˌjuːnɪˈvɜːsl ˈsɪɹiəl bʌs] ist ein serielles Bussystem zur Verbindung eines Computers mit externen Geräten. Mit USB ausgestattete Geräte oder Speichermedien können im laufenden Betrieb miteinander verbunden (Hot-Plugging) und angeschlossene Geräte sowie deren Eigenschaften automatisch erkannt werden.
Inhaltsverzeichnis
Überblick
USB ist ein bitserieller Bus, die einzelnen Bits eines Datenpaketes werden also nacheinander übertragen. Die Datenübertragung erfolgt symmetrisch über zwei verdrillte Leitungen, die eine überträgt das Datensignal, die andere das dazu invertierte Signal. Der Signalempfänger bildet die Differenzspannung beider Signale; der Spannungshub zwischen 1- und 0-Pegeln ist dadurch doppelt so groß, eingestrahlte Störungen werden weitgehend eliminiert. Das erhöht die Übertragungssicherheit, unterdrückt Gleichtaktstörungen und verbessert damit die elektromagnetische Verträglichkeit. Zwei weitere Leitungen dienen zur Stromversorgung der angeschlossenen Geräte. Durch die Verwendung von nur vier Adern in einem Kabel können diese dünner und preiswerter ausgeführt werden als bei parallelen Schnittstellen. Eine hohe Datenübertragungsrate ist mit relativ geringem Aufwand zu erreichen, da nicht mehrere Signale mit identischem elektrischem und zeitlichem Verhalten übertragen werden müssen.
Die Bus-Spezifikation sieht einen zentralen Host-Controller (Master) vor, der die Koordination der angeschlossenen Peripherie-Geräte (den sog. Slave-Clients) übernimmt. Daran können theoretisch bis zu 127 verschiedene Geräte angeschlossen werden. An einem USB-Port kann immer nur ein USB-Gerät angeschlossen werden. Sollen an einem Host mehrere Geräte angeschlossen werden, muss deshalb ein Verteiler (Hub) für deren Kopplung sorgen. Durch den Einsatz von Hubs entstehen Baumstrukturen, die alle im Host-Controller enden.
Trotz seines Namens – Universal Serial Bus – ist der USB kein physischer Datenbus. Bei einem solchen werden mehrere Geräte parallel an eine Leitung angeschlossen. Die Bezeichnung „Bus“ bezieht sich auf die logische Vernetzung, die tatsächliche elektrische Ausführung erfolgt nur mit Punkt-zu-Punkt-Verbindungen.
Einsatzgebiete von USB
USB eignet sich für viele Geräte wie Massenspeicher (etwa Festplatte, Diskette, DVD-Laufwerk), Drucker, Scanner, Webcams, Maus, Tastatur, aber auch Dongles und sogar Grafikkarten und Monitore.[1] Einige Geräte, zum Beispiel USB-Speichersticks, sind überhaupt erst mit USB entstanden. USB kann für Geräte mit geringem Stromverbrauch wie Mäuse, Telefone, Tastaturen, aber auch einige CIS-Scanner oder manche 2,5″-Festplatten die Stromversorgung übernehmen.
USB soll viele ältere externe PC-Schnittstellen ersetzen, sowohl serielle (RS-232, PS/2-Schnittstelle für Tastatur und Maus, Apple Desktop Bus), parallele (Centronics-Schnittstelle) als auch analoge (Gameport). Die alten Schnittstellen wurden dabei teilweise noch sehr lange an Mainboards und Notebooks angeboten, selbst als entsprechende Geräte schon nicht mehr im Handel erhältlich waren. Im industriellen Bereich wird noch oft RS-232 über ältere PCs oder Adapterkarten eingesetzt, da entsprechende USB-Adapter nicht echtzeitfähig sind und Peripheriegeräte in diesem Umfeld wesentlich langlebiger sind. Mittlerweile hat USB auch PCMCIA-Slots und externe SCSI-Schnittstellen weitgehend verdrängt.
Im Vergleich zu den früheren Lösungen bietet USB deutlich höhere Datenübertragungsraten. Die Daten werden jedoch in Paketen übertragen, für manche zeitkritische Anwendungen ist es deshalb weniger geeignet – etwa bei mit nur wenigen Bytes belegten Paketen, die die Übertragungsrate senken, oder wenn das Sammeln von Bytes zum Füllen eines Pakets die Übertragung verzögern würde.
Seit der Einführung der USB-2.0-Spezifikation sind relativ hohe Datenübertragungsraten möglich, dadurch ist USB zum Anschluss weiterer Gerätearten wie Festplatten, TV-Schnittstellen und Foto-Kameras geeignet. Bei externen Massenspeicherlösungen steht USB heute in Konkurrenz zu FireWire und SATA.
Geschichte und Entwicklung
Der universelle serielle Bus (USB 1.0) wurde vom Hersteller Intel entwickelt und 1996 im Markt eingeführt. Er war zum Anschluss von Peripheriegeräten an den PC konzipiert und sollte die Nachfolge einer ganzen Reihe damals verwendeter PC-Schnittstellen antreten und diese vereinheitlichen. Deshalb war die USB-Spezifikation nicht auf Tastatur und Maus begrenzt, sondern schloss auch andere Peripheriegeräte wie Drucker und Scanner mit ein. Massenspeicher – wie etwa Festplatten – wurden zwar von USB 1.0 unterstützt, wegen der maximalen Datenrate von 12 Mbit/s waren sie dafür aber nur sehr eingeschränkt zu gebrauchen.
Als einer der ersten Chipsätze unterstützte 1996 der ursprünglich für den Pentium Pro entwickelte und später für den Pentium II verwendete 440FX das USB-Protokoll, was vor Einführung der ATX-Mainboards jedoch kaum bis gar nicht beworben wurde. Die Hauptursache hierfür dürfte zum einen in der mangelhaften bzw. fehlenden Unterstützung von USB durch die damals verbreiteten Betriebssysteme Windows 95 und Windows NT 4.0 gelegen haben, zum anderen waren in der Anfangszeit auch kaum USB-Geräte verfügbar. Dieser zähe Start brachte ihm den Spitznamen Useless Serial Bus ein. 1998 wurde die Schnittstelle in der Revision USB 1.1 mit der Entwicklung des iMac bei Apple eingeführt. Bei diesem Computer ersetzte Apple den hauseigenen ADB.
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. Die Geschwindigkeit erhöhte sich nicht. USB 1.x war deshalb keine Konkurrenz zu Apples FireWire-Standard (IEEE 1394), der von Anfang an (1995) eine Datenrate von bis zu 400 Mbit/s hatte und im April 2003 auf bis zu 800 Mbit/s beschleunigt wurde.
Im Jahr 2000 wurde USB 2.0 spezifiziert, was vor allem eine weitere Datenrate von 480 Mbit/s hinzufügte und so den Anschluss von Festplatten oder Videogeräten ermöglichte. Produkte dafür erschienen jedoch erst ab 2002 am Markt. Zu beachten ist, dass pro Anschluss nur max. 500 mA (High Power) oder 100 mA (Low Power) als Stromversorgung zur Verfügung stehen. Das reicht für externe Festplatten meist nicht aus, weswegen oft ein externes Netzteil benötigt wird. Aktuelle 2,5″-Festplatten benötigen zum Beispiel einen Startstrom von über einem Ampere, der auch bei Anschluss der Festplatte über zwei USB-Ports außerhalb der Spezifikation liegt – wobei die Zwei-Stecker-Lösung gegen den Standard verstößt, da sich auf dem zweiten Stecker kein Gerät anmeldet und damit nicht sichergestellt ist, ob und wie viel Strom auf diesem Port entnommen werden kann.
2008 wurden die neuen Spezifikationen für USB 3.0 SuperSpeed vorgestellt, die Datentransferraten von mindestens 4,8 Gbit/s erreichen. Mit dieser Spezifikation werden auch neue Stecker, Kabel und Buchsen eingeführt, die größtenteils mit den alten kompatibel sein sollen.[2]
Übertragungstechnik/Spezifikation
Die verschiedenen Host-Controller
Die USB-Controller-Chips in den PCs halten sich an einen von drei etablierten Standards. Diese unterscheiden sich in ihrer Leistungsfähigkeit und der Implementierung von bestimmten Funktionen. 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) wurde im November 1995 von Intel spezifiziert. Die aktuelle Version des Dokuments trägt die Revisionsnummer 1.1. UHCI-Chips bieten Unterstützung für USB-Geräte mit 1,5 oder 12 Mbit/s Datenrate. Sie werden ausschließlich von den Herstellern Intel und VIA Technologies gebaut.
- Open Host Controller Interface (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. Dieser Unterschied bewegt sich meistens in Bereichen, die gerade noch messbar sind, daher kann man ihn in der Benutzung vernachlässigen; Geräteentwickler müssen es jedoch berücksichtigen. Bei USB-Controllern auf Hauptplatinen mit Chipsätzen, die nicht von Intel oder VIA stammen, und auf USB-PCI-Steckkarten mit Nicht-VIA-Chipsätzen handelt es sich mit hoher Wahrscheinlichkeit um OHCI-Controller.
- Das Enhanced Host Controller Interface (EHCI) stellt USB-2.0-Funktionen bereit. Es 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 (alle Controller sind typischerweise auf demselben Chip). Wenn kein EHCI-Treiber verfügbar ist, werden High-Speed-Geräte ebenfalls an den USB-1.1-Controller durchgereicht und arbeiten dann soweit möglich mit langsamerer Geschwindigkeit.
Einstellungen und Schnittstellen
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 ihm 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 unter anderem 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 etwa 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 Strombedarf 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 Schnittstellen definieren, die jeweils über einen oder mehrere Endpunkte verfügen. Unterschiedlicher Bedarf an reservierter Datenrate wird über sogenannte Alternate Settings signalisiert. Ein Beispiel dafür ist eine Kamera (etwa eine Webcam), die Bilder in zwei verschiedenen Auflösungen senden kann. Das Alternate Setting 0 wird aktiviert, wenn ein Gerät keine Daten übertragen möchte und somit pausiert.
Geräteklassen
Damit nicht für jedes Gerät ein eigener Treiber nötig ist, definiert der USB-Standard verschiedene Geräteklassen, die sich durch generische Treiber steuern lassen. Auf diese Weise sind USB-Tastaturen, -Mäuse, USB-Massenspeicher, Kommunikations- („Communications Device Class“, kurz: CDC) und andere Geräte mit ihren grundlegenden Funktionen sofort verwendbar, ohne dass erst ein Treiber installiert zu werden braucht. 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.
USB-Geräteklassen[3] Klasse Verwendung Beschreibung Beispiele 00h Gerät Composite Device Die Klasse wird auf Ebene der Interface-Deskriptoren definiert 01h Interface Audio Lautsprecher, Mikrofon, Soundkarte, MIDI 02h Beides Kommunikation und CDC-Steuerung Netzwerkkarte, Modem, Adapter für serielle Schnittstelle 03h Interface HID Tastatur, Maus, Joystick, etc. 05h Interface PID Physikalischer Feedback, z. B. für Force-Feedback-Joysticks 06h Interface Bilder Digitalkamera 07h Interface Drucker Laserdrucker, Tintenstrahldrucker 08h Interface Massenspeicher USB-Stick, Memory-Card-Lesegerät, MP3-Player 09h Gerät USB-Hub Full-Speed Hub, Hi-Speed Hub 0Ah Interface CDC-Daten diese Klasse wird zusammen mit Klasse 02h verwendet 0Bh Interface Chipkarte Chipkarten-Lesegerät 0Dh Interface Content Security z.B. Finger-Print-Reader 0Eh Interface Video Webcam 0Fh Interface Personal Healthcare Pulsuhr DCh Beides Diagnosegerät USB-Compliance-Testgerät E0h Interface kabelloser Controller Wi-Fi-Adapter, Bluetooth-Adapter EFh Beides Diverses ActiveSync-Gerät FEh Interface softwarespezifisch IrDA-Brücke FFh Beides herstellerspezifisch der Hersteller liefert einen Treiber mit Übertragungsmodi
Der USB bietet den angeschlossenen Geräten verschiedene Übertragungsmodi an, die diese für jeden einzelnen Endpunkt festlegen können.
Endpunkte
USB-Geräte verfügen über eine Anzahl von durchnummerierten „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) haben mehrere Endpunkte. Die Übertragungen von und zu den Endpunkten erfolgen meist unidirektional, für bidirektionale Übertragungen ist deshalb ein IN- und ein OUT-Endpunkt erforderlich (IN und OUT beziehen sich jeweils auf die Sicht des Hostcontrollers). Eine Ausnahme davon sind Endpunkte, die den sogenannten Control Transfer Mode verwenden.
In jedem USB-Gerät muss ein Endpunkt mit Adresse 0 vorhanden sein, über den die Erkennung und Konfiguration des Gerätes läuft, darüber hinaus kann er auch noch weitere Funktionen übernehmen. Endpunkt 0 verwendet immer den Control Transfer Mode.
Ein USB-Gerät darf maximal 31 Endpunkte haben: Den Control-Endpunkt (der eigentlich zwei Endpunkte zusammenfasst) und je 15 In- und 15 Out-Endpunkte. Low-Speed-Geräte sind auf Endpunkt 0 plus maximal zwei weitere Endpunkte im Interrupt Transfer Mode mit maximal 8 Bytes pro Transfer beschränkt.
Isochroner Transfer
Der isochrone Transfer ist für Daten geeignet, die eine garantierte Datenrate benötigen. Diese Transferart steht für Full-Speed- und High-Speed-Geräte zur Verfügung. Definiert das sogenannte Alternate Setting einen Endpunkt mit isochronem Transfer, so reserviert der Host-Controller-Treiber die erforderliche Datenrate. Steht diese Datenrate nicht zur Verfügung, so schlägt die Aktivierung des genannten Alternate Settings fehl, und es kann mit diesem Gerät keine isochrone Kommunikation aufgebaut werden.
Die erforderliche Datenrate ergibt sich aus dem Produkt des Abfrageintervalls und der Größe des Datenpuffers. Full-Speed-Geräte können jede ms bis zu 1023 Bytes je isochronem Endpunkt übertragen (1023 kbyte/s), High-Speed-Geräte können bis zu drei Übertragungen je Micro-Frame (125 µs) mit bis zu 1024 kbyte/s ausführen (24 Mbyte/s). Stehen in einem Gerät mehrere isochrone Endpunkte zur Verfügung, erhöht sich die Datenrate entsprechend. Die Übertragung ist mit einer Prüfnummer (CRC16) gesichert, wird aber bei einem Übertragungsfehler durch die Hardware nicht wiederholt. Der Empfänger kann erkennen, ob die Daten korrekt übertragen wurden. Isochrone Übertragungen werden z. B. von der USB-Audio-Class benutzt, die bei externen USB-Soundkarten Verwendung findet.
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. Das kleinstmögliche Abfrageintervall beträgt bei Low-Speed 10 ms, bei Full-Speed 1 ms und bei High-Speed bis zu drei Abfragen in 125 µs. Bei Low-Speed können pro Abfrage bis zu 8 Byte, bei Full-Speed bis zu 64 Byte und bei High-Speed bis zu 1024 Byte übertragen werden. Daraus ergeben sich maximale Datenraten von 800 byte/s bei Low-Speed, 64 kbyte/s bei Full-Speed und bis zu 24 Mbyte/s bei High-Speed. Die Daten sind mit einer Prüfnummer (CRC16) gesichert und werden bei Übertragungsfehlern bis zu dreimal durch die Hardware wiederholt. Geräte der HID-Klasse (Human Interface Device), zum Beispiel Tastaturen, Mäuse und Joysticks, übertragen die Daten über den Interrupt-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 Datenrate übrig ist. Bulk-Transfers sind durch eine Prüfnummer (CRC16) gesichert und werden durch die Hardware bis zu dreimal wiederholt. Low-Speed-Geräte können diese Transferart nicht benutzen. Full-Speed-Geräte benutzen Puffer-Größen von 8, 16, 32 oder 64 Bytes. High-Speed-Geräte verwenden immer einen 512 Byte großen Puffer.
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. Control-Transfers sind zum Beispiel nach dem Detektieren des USB-Geräts und zum Austausch der ersten Kommunikation elementar wichtig.
USB On-the-go
Durch USB On-the-go (OTG) können entsprechend ausgerüstete Geräte miteinander kommunizieren, indem eines der beiden eine eingeschränkte Host-Funktionalität übernimmt. Dadurch kann auf einen Computer, der die Host-Funktion übernimmt, verzichtet werden. Mögliche Einsatzgebiete sind beispielsweise die Verbindung von Digitalkamera und Drucker oder der Austausch von Musikdateien zwischen zwei MP3-Spielern.
Gekennzeichnet werden USB-OTG-Produkte durch das USB-Logo mit zusätzlichem grünem Pfeil auf der Unterseite und weißem „On-The-Go“-Schriftzug. Die USB-OTG-Spezifikation wurde am 18. Dezember 2001 verabschiedet.
OTG-Geräte sind zum Beispiel die seit November 2007 erhältlichen Nokia 6500c und Nokia N810, aber auch einige sogenannte Image Tanks.
Wireless USB
Momentan besetzen zwei Initiativen den Begriff „Wireless USB“. Die ältere der beiden wurde von dem Unternehmen Cypress initiiert, mittlerweile ist Atmel als zweiter Chiphersteller auf den Zug aufgesprungen. Das „Cypress-WirelessUSB“-System 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 lizenzfreien 2,4-GHz-Band benutzt, die Datenrate beträgt bis zu 62,5 kbit/s (neuere Chips von Cypress erreichen 1 Mbit/s) und ist damit für Eingabegeräte völlig ausreichend, für andere Anwendungen aber oft zu knapp bemessen.
Das zweite Wireless-USB-Projekt wird von der USB-IF vorangetrieben und ist wesentlich anspruchsvoller, neben Intel ist auch NEC dabei entsprechende Chips zu entwickeln. Ziel ist es, eine Technik zu schaffen, mit der die vollen 480 Mbit/s des High-Speed-Übertragungsmodus drahtlos übertragen werden können. Dabei ist eine kurze Reichweite unter 10 m vorgesehen; die Übertragung soll auf einer Ultrabreitband-Technik basieren. Erste Geräte sind für 2008 in Deutschland zu erwarten. Am 16. Januar 2008 gab die Bundesnetzagentur für die Ultrabreitband-Technik Frequenzbereiche frei.[4] Der dabei für USB vorgesehene Bereich von 6–8,5 GHz ist jedoch nicht so breit wie von USB-IF spezifiziert, so dass Geräte aus anderen Ländern eventuell in Deutschland nicht verwendet werden dürfen.[5]
Datenraten
USB erlaubt es einem Gerät, mit 1,5 Mbit/s, 12 Mbit/s oder mit 480 Mbit/s Daten zu übertragen. Diese Raten basieren auf dem Systemtakt der jeweiligen USB-Geschwindigkeit und stellen die physikalische Datenübertragungsrate dar. Die Toleranzen werden für „USB 2.0“-Geräte und für die älteren USB-1.0-/1.1-Geräte getrennt behandelt. Der tatsächliche Datendurchsatz liegt – durch Protokoll-Overhead – darunter. Im USB-Standard ist eine maximale theoretische Datenlast bei High-Speed unter idealen Bedingungen von 49.152.000 Byte/s (Isochronous Mode)[6] beziehungsweise 53.248.000 Byte/s (Bulk-Mode)[7] angegeben. Dazu kommt die Verwaltung der Geräte, so dass bei aktuellen Systemen eine nutzbare Datenrate in der Größenordnung von 320 Mbit/s (40 Mbyte/s) bleibt. Bei älteren Systemen wurde diese durch eine unzureichende Anbindung des USB-Chips an den Systembus zusätzlich reduziert.
Geschwindigkeit Toleranz USB 3.0 Toleranz USB 2.0 Toleranz USB 1.0/1.1 Low-Speed (1,5 Mbit/s) – ± 0,75 kbit/s ± 22,5 kbit/s Full-Speed (12 Mbit/s) – ± 6 kbit/s ± 30 kbit/s High-Speed (480 Mbit/s) – ± 240 kbit/s – Super-Speed (5 Gbit/s) – – – Wird die Schnittstelle eines Geräts mit „USB 2.0“ angegeben, heißt das nicht unbedingt, dass dieses Gerät auch die hohe Datenrate von 480 Mbit/s anbietet. Standpunkt der Anbieter ist dabei, 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. 480 Mbit/s dürfen also nur erwartet werden, wenn ein Gerät mit dem Logo „Certified USB Hi-Speed“ ausgezeichnet ist.
Die Kommunikation bei USB wird vom Hostcontroller gesteuert, der heutzutage in der Regel auf dem Motherboard eines Computers verbaut ist. Nur dieser kann Daten von einem Gerät lesen oder zu einem Gerät senden. Ein Gerät darf nur dann Daten zum Hostcontroller senden, wenn es von diesem abgefragt wird. Bei zeitkritischen Datenströmen, wie etwa bei Mausbewegungen, muss der Hostcontroller von sich aus häufig genug beim Gerät anfragen (Polling), ob es Daten senden will, um ein Ruckeln zu verhindern.
Eine direkte Kommunikation zwischen USB-Geräten ist gemäß dem USB-Standard eigentlich nicht möglich; das wurde erst durch die Erweiterung USB On-the-go eingeschränkt ermöglicht (die Geräte können hier wahlweise Host oder Endgerät sein, ein echter bidirektionaler Austausch ist aber trotzdem nicht möglich). Der FireWire-Standard, der für ähnliche Einsatzzwecke wie USB geschaffen wurde und mit diesem in Konkurrenz steht, bietet im Gegensatz dazu die Möglichkeit einer Peer-to-Peer-Kommunikation zwischen Geräten, ohne dass die Steuerung durch einen Host erforderlich ist. Somit ist mit FireWire etwa der Aufbau eines Netzwerks möglich.
USB 3.0
Im November 2008 stellte das USB Implementers Forum, dem unter anderem die Unternehmen HP, Microsoft und Intel angehören, die Spezifikation für USB 3.0 vor. Es sollen Datenraten von 5 GBit/s erreicht werden (SuperSpeed-Modus).[8]
Die höheren Datenraten werden durch eine Übertragungstechnik ähnlich PCI-Express bzw. Serial ATA ermöglicht, die allerdings zusätzlich zum bisherigen Datenleitungspaar (D+/D-) im Kabel noch zwei weitere Adernpaare erfordert (plus einem weiterem Masseanschluss). Da in den Steckern somit fünf weitere Kontakte erforderlich sind, werden mit USB 3.0 neue Steckverbinder und Kabel eingeführt.
zusätzliche Pins bei USB 3.0 Name Beschreibung SSTX+ Datenübertragung vom Host zum Gerät SSTX− mit SSTX+ verdrillt GND Masse SSRX+ Datenübertragung vom Gerät zum Host SSRX− mit SSRX+ verdrillt Diese neuen Verbinder von Typ A sind mit den bisherigen abwärtskompatibel. Bisherige USB-Geräte lassen sich auch weiterhin mit USB 3.0, neue 3.0-Geräte auch an alten 2.0- bzw. 1.0/1.1-Hosts betreiben. Eine Ausnahme stellen B-, Mini-B-, Micro-B- und Mini-A-Verbinder dar. Durch die hier notwendigen Anbauten lassen sich zwar alte Stecker in neuen Buchsen, nicht jedoch neue Stecker in alten Buchsen verwenden. Dafür wären dann Adapter erforderlich.
Weitere Besonderheiten:
- Die bei den bisherigen USB-Standards übliche Reihumabfrage der Geräte (Polling) entfällt. Durch solche Abfragen können Geräte in verschiedene Stromsparmodi (U0 bis U3) geschaltet werden. Möglich wird das durch zusätzliche Befehle.
- Statt 100 stehen nun 150 mA pro Gerät zur Verfügung. Auf Anforderung können statt bisher 500 nun 900 mA bereitgestellt werden.
- zu Hubs, siehe USB 3.0 und Hubs
- Ältere Treiber sollen weiterverwendbar bleiben. Allerdings werden sich Treiberupdates unter Umständen lohnen, etwa um die neuen Stromsparmodi zu nutzen.
Für einen späteren Zeitpunkt ist auch eine Erweiterung des Standards mit Lichtwellenleitern geplant. Erste Geräte, die USB 3.0 nutzen, werden voraussichtlich frühestens 2009 erhältlich sein. Anders als noch bei USB 2.0 dürfen sich Geräte nur „USB-3.0-kompatibel“ nennen, wenn sie tatsächlich die schnellstmögliche Geschwindigkeit (hier Super-Speed-Modus) anbieten.[9]
Hardware
USB-Stecker und -Kabel
USB-Stecker
USB-Stecker Typ A. Deutlich zu erkennen sind die voreilenden äußeren Pins für die Versorgungsspannung.
USB-Stecker mit Ferritkerndrossel als Mantelwellenfilter
Die Stecker eines USB-Kabels sind verpolungs- und vertauschungssicher gestaltet.
In Richtung des Hostcontrollers (Upstream) werden flache Stecker (Typ A „DIN IEC 61076-3-107“) verwendet. Zum angeschlossenen Gerät hin (Downstream) werden die Kabel entweder fix montiert oder über annähernd quadratische Steckverbinder (Typ B „DIN IEC 61076-3-108“) angeschlossen (vereinzelt und nicht standardkonform auch mit Typ A-Steckverbindern). Entsprechend der USB 1.0–2.0 Standards besitzen USB Typ A- und Typ B-Verbinder vier Leitungen plus Schirm. Beide Steckverbinder sollen in einer der drei Farben grau, „natur“ (elfenbeinfarben/weiß) oder schwarz ausgeführt werden. Mit USB 3.0 kommen neue Varianten der Typ A- und Typ B-Verbinder auf den Markt (siehe unten).
Es sind seit einiger Zeit auch Stecker und Buchsen vom Typ A und B mit Rändelschrauben erhältlich, die ein Herausrutschen verhindern. Allerdings muss das Gerät dies auch unterstützen.[10]
Verschiedene Hersteller brachten mechanisch inkompatible Ausführungen von USB-Verbindern heraus, die sich jedoch elektrisch nicht von USB 1.x oder 2.0 unterschieden. So etwa waren einige IBM Thinkpads mit einem sog. UltraPort ausgestattet, APC führt USB an ihren USVs über 10-polige Modular-Buchsen (10P10C/RJ50), die Microsoft Xbox benutzt ebenfalls proprietäre USB-Verbinder oder Apple führt USB beim iPod Shuffle über einen Klinkenstecker, der gleichzeitig als Audioverbinder dient. Diese nicht standardisierten Varianten haben jedoch bisher keine weitere Verbreitung erlangt.
Für den industriellen Einsatz gibt es mehrere nicht vom USB-Konsortium standardisierte USB-5V-, USB-12V-, USB-19V- und USB-24V-Varianten mit deutlich höheren Strombelastbarkeiten von bis zu 6 A (3 A pro Kontakt) über insgesamt vier zusätzliche Leitungen, die um 1999 im Rahmen der PoweredUSB- und PlusPower-Spezifikationen von Firmen wie IBM, Microsoft, NCR und Berg/FCI definiert wurden und z. T. lizenzpflichtig sind. Diese Varianten werden insbesondere bei POS-Anwendungen von verschiedenen Herstellern eingesetzt. Die Steckverbinder führen dabei neben dem USB-Typ-A-Stecker eine unabhängige hochstromfähige vierpolige Spannungsversorgung. Diese Stecker sind nicht rechteckig, sondern mehr quadratisch (wie zwei Stecker in einem gemeinsamen Gehäuse, der USB-Teil selbst entspricht mechanisch und elektrisch unverändert USB Typ A). Mittels einer mechanischen Kodierung wird verhindert, dass z. B. USB-12V-Stecker versehentlich in USB-24V-Buchsen gesteckt werden können. Eine mechanische Arretierung der Stecker in den Buchsen ist ebenfalls vorgesehen. Zusätzlich wird für diese Stecker eine Farbkodierung empfohlen, naturfarben (z. T. auch gelb) für 5 V (30 W), blaugrün (Pantone Teal 3262C) für 12 V (72 W), rot (Pantone Red 032C) für 24/25 V (144 W) und seltener violett für 19 V. Kommt keine Farbkodierung zum Einsatz, sollen die Stecker für alle Spannungen größer 5 V schwarz ausgeführt werden, wohingegen grau als alternative Farbe für 5 V in Frage kommt. Für die B-Seite ist kein spezieller Stecker definiert, es gibt jedoch verschiedene Empfehlungen, z. T. mit unterschiedlichen HotPlug-Fähigkeiten. Die Bezeichnung für diese industriellen USB-Varianten lautet Retail USB, PoweredUSB, USB PlusPower oder USB +Power. [11][12]
Insbesondere für Geräte mit geringerem Platzangebot (z. B. digitale Kameras, Mobiltelefone, MP3-Player und andere mobile Geräte) existieren auch verschiedene kompaktere USB-Steckverbinder. Im USB 2.0-Standard verankert sind dabei lediglich fünfpolige Mini- und Micro-Varianten (plus Schirm) (z. T. auf dem Foto in der Mitte abgebildet), die gegenüber den normalen USB-Steckverbindern über einen zusätzlichen ID-Pin verfügen:
Zunächst wurde im Jahr 2000 ein trapezförmiger Mini-B-Steckverbinder für die Downstream-Seite definiert, der in der Farbe Schwarz ausgeführt werden sollte. Bei zukünftigen Geräten sollen Gerätehersteller jedoch auf die Micro-USB-Verbinder (siehe unten) ausweichen.[13] Auch Mini-A- (in weißer Farbe) und Mini-AB-Steckverbinder (in Grau) waren für eine gewisse Zeit Teil des Standards und sollten insbesondere in Verbindung mit USB On-the-Go (OTG) eine Rolle spielen, wurden jedoch im Mai 2007 offiziell zurückgezogen.[14]
Im Januar 2007 wurden mit der Standarderweiterung Micro-USB für USB 2.0 noch kleinere Steckverbinder vorgestellt, die eine besonders kompakte Bauform der Geräte ermöglichen. Die Micro-USB-Spezifikation kann USB On-The-Go (OTG) unterstützen, was Verkabelung und Kommunikation auch ohne PC als Host ermöglicht.[15] Micro-USB-Steckverbinder sollen bei neueren Geräten in naher Zukunft den Mini-Verbinder komplett ersetzen, lediglich der relativ weit verbreitete Mini-B-Verbinder wird derzeit noch weiterhin geduldet. Die Micro-USB-Verbinder sind elektrisch gleichwertig, mechanisch allerdings nicht steckkompatibel, dafür jedoch dank der im Standard geforderten Edelstahlkrampe deutlich stabiler ausgeführt. Gemäß USB 2.0-Standard gibt es drei Varianten, die genau wie bei Mini-USB allesamt fünfpolig ausgeführt sind: Micro-A (rechteckige Bauform, für die Host-Seite, Farbe Weiß), Micro-AB (rechteckige Bauform, für USB-On-the-Go-Geräte, Farbe Grau) und Micro-B (Trapez-Bauform, für die Geräteseite, Farbe Schwarz). Die Open Mobile Terminal Group OMTP hat Micro-USB 2007 als Standardverbinder für den Datentransfer und die Energieversorgung von Mobilfunkgeräten übernommen, in China müssen Mobiltelefone seitdem mit dieser Schnittstelle ausgestattet werden, um eine Zulassung zu bekommen.[16] Mit USB 3.0 kommen neue Varianten der Micro-A-, AB- und -B-Steckverbinder auf den Markt (siehe unten).
Daneben gibt es noch eine ganze Reihe proprietärer, d. h. geräteherstellerspezifische Miniaturbauformen der Steckverbinder (siehe auch Bild), die zwar in der Regel elektrisch mit USB 2.0 kompatibel sind, jedoch nur über z. T. schwer erhältliche Adapterkabel mit USB-Komponenten gemäß dem USB-Standard verbunden werden können. Fälschlicherweise werden jedoch auch diese Steckverbinder häufig als „Mini“-USB bezeichnet, was immer wieder zu Mißverständnissen führt und vermieden werden sollte. Nicht zuletzt deshalb soll der Micro-USB-Standard hier den Wildwuchs beenden. Verbreitet sind unterschiedlichste Ausführungen mit vier Pins (insbesondere Varianten von Mitsumi, Aiptek, Hirose) sowie eine große Zahl von Varianten mit acht Pins (darunter mehrere inkompatible Varianten, die sich bei Digitalkameras in begrenztem Rahmen auch über Herstellergrenzen hinweg verbreitet haben), elf Pins (ExtUSB für HTC-Mobiltelefone; kompatibel zu Mini-USB), zwölf Pins (für verschiedene Olympus-Digitalkameras) und 14 Pins (zwei Varianten für verschiedene Fuji Finepix-Digitalkameras und als Nokias Pop-Port für manche Mobiltelefone), die auch noch andere, nicht-USB-spezifische Signale im gleichen Konnektor vereinen.[17]
Im Rahmen des im Jahr 2008 verabschiedeten USB-3.0-Standards wurden weitere sechs Steckverbindertypen mit zusätzlichen Kontakten definiert:
Diese unterteilen sich in je drei Steckverbinder, die als weitestgehend rückwärtskompatible Erweiterungen der bisherigen Typ A- und Typ B-Steckverbinder angesehen werden können (genannt: USB 3.0 Standard-A, USB 3.0 Standard-B und USB 3.0 Powered-B) sowie drei kleinere Verbinder, die sich an die bisherigen Micro-USB-Verbinder anlehnen (genannt: USB 3.0 Micro-A, USB 3.0 Micro-AB und USB 3.0 Micro-B). Zur eindeutigen Kennzeichnung werden die bisherigen Steckverbinder nun als USB 2.0 Standard-A, USB 2.0 Standard-B, USB 2.0 Micro-A, USB 2.0 Micro-AB und USB 2.0 Micro-B bezeichnet. Zur besseren Unterscheidung sollen die USB 3.0 Standard-A Verbinder in der Farbe Blau (Pantone 300C) ausgeführt und ggfs. mit einem doppelten S-Symbol gekennzeichnet werden.
Die folgenden Steckkombinationen werden dabei mechanisch unterstützt: Aufnahmetyp Steckertyp USB 3.0 Standard-A USB 3.0 Standard-A, USB 2.0 Standard-A USB 2.0 Standard-A USB 2.0 Standard-A, USB 3.0 Standard-A USB 3.0 Powered-B USB 3.0 Powered-B, USB 3.0 Standard-B, USB 2.0 Standard-B USB 3.0 Standard-B USB 3.0 Standard-B, USB 2.0 Standard-B USB 2.0 Standard-B USB 2.0 Standard-B (USB 2.0 Mini-AB) (USB 2.0 Mini-A, USB 2.0 Mini-B) USB 2.0 Mini-B USB 2.0 Mini-B USB 3.0 Micro-AB USB 3.0 Micro-A, USB 3.0 Micro-B, USB 2.0 Micro-A, USB 2.0 Micro-B USB 2.0 Micro-AB USB 2.0 Micro-A, USB 2.0 Micro-B USB 3.0 Micro-B USB 3.0 Micro-B, USB 2.0 Micro-B USB 2.0 Micro-B USB 2.0 Micro-B Die Steckertypen wurden für folgende Anzahl Steckzyklen spezifiziert: Anschlußtyp Anzahl der Steckzyklen USB (USB 1.0–3.0) min. 500x, später min. 1500x (USB 3.0 Standard Class: min. 1500x, High Durability Class: min. 5000x) Mini-USB (USB 2.0) min. 5000x Micro-USB (USB 2.0–3.0) min. 10000x eSATA (zum Vergleich) min. 5000x Firewire/IEEE 1394 (zum Vergleich) min. 1500x Verbreitet haben sich weiterhin 1×4-, 1×5- und 2×2-polige Varianten von Stiftleisten im Rastermaß 2,54 mm auf PC-Mainboards, ebensowie wie Doppel-USB-Verbinder mit 2×4 oder 2×5 Polen im Rastermaß 2,54 mm. Gab es zunächst mehrere zueinander inkompatible Belegungsvarianten, hat sich im Zuge neuerer Mainboard-Spezifikationen von Intel inzwischen eine bestimmte 2×5-polige Belegung etabliert, die auch mit uDOC-Flashmodulen kompatibel ist.
USB-Kabel
In einem USB-Kabel werden vier Adern benötigt. Zwei Adern übertragen dabei die Daten, die anderen beiden versorgen das angeschlossene Gerät mit einer Spannung von 5 V. Der USB-Spezifikation entsprechende Geräte dürfen bis zu 100 mA oder 500 mA aus dem Bus beziehen, abhängig davon, wie viel der Port liefern kann, an den sie angeschlossen werden. Geräte mit einer Leistung von bis zu 2,5 W können also über den Bus mitversorgt werden. Je nach Kabellänge muss der Querschnitt der beiden Stromversorgungsadern angepasst sein, um den zulässigen Spannungsabfall einzuhalten; auch daher sind Verlängerungsleitungen nicht standardgemäß.
Die Kabel müssen je nach Geschwindigkeit unterschiedlich abgeschirmt werden. Kabel, die lediglich der Spezifikation low speed entsprechen, dürfen über keinen B-Stecker verfügen, sondern müssen fix am Gerät montiert sein oder einen herstellerspezifischen Stecker verwenden. Sie sind weniger stark abgeschirmt, kommen ohne verdrillte Adern aus und sind dadurch flexibler als Full/High-Speed Kabel. Sie sind daher gut für z. B. Mäuse und Tastaturen geeignet. Die geringe Abschirmung des Kabels kann zu Problemen bei Geräten mit höheren Geschwindigkeiten führen.
Die Längen von Full-/High-Speed- und Low-Speed-Kabeln vom Hub zum Gerät sind auf fünf bzw. drei Meter begrenzt. Längere Strecken kann man überwinden, indem USB-Hubs zwischengeschaltet werden. Sogenannte USB-Repeaterkabel entsprechen in ihren Funktionen einem Bus-Powered-Hub (s. u.) mit einem einzigen Downstream-Port und einem fest angeschlossenen Kabel am Upstream-Port. Da die elektrischen Auswirkungen dieser Kabel im USB-Bus denen eines Bus-Powered USB-Hubs mit fünf Meter Kabel entsprechen, sollten bei ihrer Verwendung zusätzlich die Beschränkungen beim Verschachteln von USB-Hubs beachtet werden.
USB arbeitet mit einem Wellenwiderstand von 90 Ω, direkte Verbindungskabel sollten daher auch in diesem Wellenwiderstandswert ausgeführt sein.
Für die Überbrückung von Längen über 30 Metern werden USB-Line-Extender angeboten. Diese bestehen aus zwei Komponenten: Einem Base-Modul, welches an den Computer angeschlossen wird, und einem Remote-Modul für den Anschluss des USB-Gerätes. Zur Distanzüberbrückung zwischen diesen beiden Komponenten werden meist Ethernetkabel oder Lichtleiter eingesetzt. Da sich diese Line-Extender jedoch immer auf bestimmte, nicht vom Standard vorgeschriebene Verhaltensdetails der angeschlossenen Geräte verlassen und zudem bei langen Kabelstrecken die Signallaufzeit zu Protokollverletzungen führt, ist der Einsatz dieser Geräte oft mit Problemen verbunden.
Eine andere Möglichkeit, USB-Geräte weiter entfernt vom Rechner anzuschließen, sind Lösungen, die einen „remote host“ verwenden, also einen USB-Hostcontroller, der außerhalb des PCs liegt. Dabei geschieht die Kommunikation zwischen PC und Hostcontroller z. B. über Ethernet, das Ethernet ersetzt dabei den lokalen Bus, an dem sonst der Hostcontroller angeschlossen wäre. Auf dem PC muss also nur ein entsprechender Treiber installiert werden, der die Kommunikation mit dem Hostcontroller übernimmt, alle Treiber für die USB-Geräte erkennen dann keinen Unterschied zu einem lokal angeschlossenen Gerät. Ein Beispiel für ein solches Gerät ist der USB-Server von Keyspan.
Farbkodierung und Pinouts
Der USB-Standard legt neben der Belegung der Schnittstelle auch die Namen der einzelnen Stecker-Pins und die Aderfarbe fest. Die Nummer eines Stecker-Pins kann in den oben angeführten Schemazeichnungen abgelesen werden.
Standardstecker Pin Name Farbe Beschreibung 1 VCC Rot +5 V 2 D- Weiß Data − 3 D+ Grün Data + 4 GND Schwarz Masse Ministecker/Microstecker Pin Name Farbe Beschreibung 1 VCC Rot +5 V 2 D- Weiß Data − 3 D+ Grün Data + 4 ID keine erlaubt Unterscheidung von Micro-A- und Micro-B-Stecker
Typ A: Masse
Typ B: nicht verbunden
5 GND Schwarz Masse USB-Hubs
Allgemeines
Ein USB-Hub ist eine spezielle Art von USB-Gerät, welches das USB-Signal an zusätzliche Ports zum Anschluss von weiteren Geräten weiterleitet. Handelsüblich sind USB-Hubs mit bis zu sieben Downstream-Ports.
Hubs können ihren Strom aus dem Bus selbst beziehen (Bus-Powered) oder über eine eigene Stromversorgung verfügen (Self-Powered). Die meisten Self-Powered-Hubs werden über ein Steckernetzteil mit Strom versorgt. Manche Monitore haben auch einen USB-Hub eingebaut, der über die Stromversorgung des Monitors mitgespeist wird. Self-Powered-Hubs haben den Vorteil, dass jedes an sie angeschlossene Gerät bis zu 500 mA Strom beziehen kann. Bei Bus-Powered-Hubs dürfen der Hub und alle an ihn angeschlossenen Geräte gemeinsam maximal 500 mA beziehen. Hybride Self- und Bus-Powered-Hubs sind möglich – der Hub ist dann Self-Powered, wenn ein Netzteil an ihn angeschlossen ist, und ansonsten Bus-Powered. Manchmal werden Bus-Powered-Hubs auch als „passiv“ und Self-Powered-Hubs als „aktiv“ bezeichnet; technisch ist das jedoch falsch.
Bei der Verschachtelung von Hubs werden die Grenzen durch die maximal 127 möglichen USB-Geräte und durch die Signallaufzeit festgelegt – jeder Hub erhöht die Laufzeit, die Verschachtelungstiefe ist auf maximal fünf (Hub-)Ebenen unterhalb des Hostcontrollers bzw. des Root-Hubs begrenzt. Die maximale Distanz zwischen zwei mit USB verbundenen Geräten liegt wegen der Beschränkung von 5 m pro USB-Kabel bei 30 m – sechs Kabel mit je fünf Meter Länge und dazwischen fünf Hubs.
USB 2.0 und Hubs
Low-, Full- und High-Speed-Geräte lassen sich an einem USB-2.0-Host fast beliebig mischen, ohne dass Geschwindigkeitsnachteile entstehen. Hubs nach dem USB-1.x-Standard können an USB-2.0-Hosts verwendet werden. Geräte, die direkt oder indirekt an einen solchen Hub angeschlossen werden, können allerdings lediglich die Geschwindigkeit Full Speed erreichen, also 12 Mbit/s.
Ein USB-2.0-Host und ein USB-2.0-Hub kommunizieren immer mit High Speed, selbst wenn an dem Hub Low- oder Full-Speed-Geräte angeschlossen sind. Es ist Aufgabe des Hubs, die Daten dieser Geräte in das High-Speed-Protokoll zu verpacken, dazu hat er einen oder mehrere sogenannte „Transaction Translators“ eingebaut. Die Anzahl der Transaction Translators bestimmt, wieviele langsame Geräte an einen USB-2.0-Hub angeschlossen werden können, ohne sich gegenseitig auszubremsen. Wird diese Zahl überschritten, so bricht die Datenrate aller an diesen Host angeschlossenen Low-Speed- und Full-Speed-Geräte auf Geschwindigkeiten deutlich unter denen eines USB-1.1-Hosts ein; der Durchsatz von High-Speed-Geräten am selben Hub bleibt jedoch unbeeinflusst. An der Spezifikation des Stromverbrauchs hat sich bei USB 2.0 im Vergleich zu USB 1.1 nichts geändert.
USB-Card-Bus
Der Cardbus-Standard[19] (PC Card Standard 5.0) wurde ursprünglich für PCMCIA-Karten als Datenspeichermedium entwickelt, unterscheidet sich aber vom eigentlichen PCMCIA-Standard durch eine völlig andere Architektur. Es sind auch Steckkarten mit CardBus-Controller am Markt erhältlich, die USB in CardBus umsetzen, so dass USB-Stecker beispielsweise auch an Mobilgeräten ohne integrierte USB-Schnittstelle verwendet werden können – sie sind aber auf den 32 Bit breiten CardBus beschränkt. Ein Nachrüsten bei Computern mit 16-Bit-Bus ist daher nicht möglich.[20]
Es ist anzunehmen, dass CardBus in Zukunft vom ExpressCard-Standard abgelöst wird und USB dahingehend nachziehen wird.[21]
USB 3.0 und Hubs
Unter USB 3.0 wird es ein neues Hub-Konzept geben. Hubs bestehen dann aus zwei Unter-Hubs. Der eine ist speziell für den neuen Super-Speed-Modus zuständig, der andere für die bisherigen Geschwindigkeitsmodi (Low-Speed, Full-Speed, High-Speed). Erst an den Ports werden beide Teile dann zusammengeführt.
Software-Architektur
Alle USB-Transaktionen werden durch die USB-Software auf dem Host-Computer realisiert. Das geschieht durch den jeweiligen USB-Gerätetreiber, der mit seinem Gerät kommunizieren will. Der USB-Bustreiber ist die Schnittstelle zwischen dem USB-Gerätetreiber und dem USB-Host-Controller.
USB-Gerätetreiber
Die Aufgabe des USB-Gerätetreibers (USB device driver) ist die Erzeugung von Anfragen (Requests) an den USB-Bustreiber. Für eine Anfrage werden I/O-Request-Packets (IRP) verwendet. Diese IRPs initiieren einen Transfer von oder zu USB-Geräten (z. B. Interrupt-Transfer der Tastatur durch Erzeugung eines entsprechenden IRP auslösen).
USB-Bustreiber
Der USB-Bustreiber (USB-Driver) kennt die spezifischen Kommunikationseigenschaften der einzelnen USB-Geräte, zum Beispiel die Datenmenge pro Frame oder Abstände zwischen den periodischen Zugriffen. Diese Eigenschaften erkennt der USB-Bustreiber beim Analysieren der Geräte-Deskriptoren während der Konfigurationsphase. Wenn der USB-Bustreiber ein IRP von einem USB-Gerätetreiber erhält, erzeugt er entsprechend diesem Request einzelne Transaktionen, die innerhalb des Übertragungsrahmens (Frame) von einer Millisekunde ausführbar sind.
USB-Host-Controller-Treiber
Der Universal Serial Bus-Host-Controller-Treiber (Host controller driver) organisiert die zeitliche Abfolge der einzelnen Transaktionen (Scheduling). Dazu baut er eine Folge von Transaktionslisten auf. Jede dieser Listen besteht aus den noch nicht abgearbeiteten Transaktionen in Richtung eines Gerätes, welches am Bus angeschlossen ist. Sie definiert die Reihenfolge der Transaktionen innerhalb des 1 ms-Zeitrahmens. Der USB-Bustreiber kann eine einzelne Anfrage für einen Datentransfer in mehrere Transaktionen zerlegen. Das Scheduling hängt von einer Reihe von Einflussfaktoren wie Transferart, Geräteeigenschaften und Busbelastung ab. Der USB-Host-Controller-Treiber löst die Transaktionen dann über den Root-Hub aus. Dieser setzt der Reihe nach alle Transaktionen um, die in der aktuellen Liste enthalten sind.
Unterstützung in Betriebssystemen
- Amiga OS3.x unterstützt von Haus aus kein USB. Lediglich mit Hard- und Software von Drittanbietern (Poseidon, Sirion, Anaiis) ist eine Anbindung von USB 1.1- und USB-2.0-Geräten möglich (mit breiter Unterstützung verschiedenster Geräteklassen bei Poseidon). Bei Poseidon kann in Zusammenarbeit mit einer Flash-Rom-Karte sogar von USB-Massenspeichern gebootet werden. Ab Amiga OS4 wird, je nach Hardware, USB 1.1 und 2.0 unterstützt (kein USB 2.0 Highspeed, da der EHCI-Treiber noch fehlt). Unter AmigaOS 4 Classic kann jedoch alternativ auch Poseidon eingesetzt werden.
- AROS unterstützt seit neuestem USB in Form von Eingabegeräten. Weitere Klassen als hidd befinden sich gerade in Entwicklung.
- eComStation als Nachfolger von OS/2 bringt ebenfalls Unterstützung für USB 2.0 mit.
- Der Linux-Kernel unterstützt seit Version 2.2 USB-Controller. Seit der Kernelversion 2.4 sind Treiber für UHCI-, OHCI- und EHCI-Controller sowie Unterstützung für gängige USB-Endgeräte integriert. Die Unterstützung für EHCI-Controller in der Kernelversion 2.4 gilt jedoch als fehleranfällig und läuft erst seit Version 2.6 stabil. Weiterhin existieren sogenannte Gadget-Treiber, damit kann ein Linux-basiertes System, das an einem USB-Host angeschlossen wird, selbst als USB-Gerät erscheinen, z. B. als Massenspeicher, Netzwerkkarte oder serielle Schnittstelle.
- Mac OS unterstützt USB 1.1 ab Mac OS 8.1. Mit der Zeit wurde der Umfang an Geräte, die mit Klassentreibern unterstützt werden, deutlich erweitert; seit Mac OS 8.5 werden die meisten üblichen Geräteklassen unterstützt.
- Mac OS X unterstützt in allen Versionen USB 1.1 und ab Version 10.2.8 auch USB 2.0.
- Microsoft DOS und kompatible unterstützen USB von Haus aus nicht. USB-Tastaturen und USB-Massenspeicher sind über die Legacy-Emulation vieler moderner PC-BIOSe dennoch verwendbar, aber meist nicht Hotplug-fähig. Es existieren Spezialtreiber von Drittanbietern, die aber viel konventionellen Speicher belegen und deshalb mit vielen DOS-Programmen nicht kompatibel sind.
- Microsoft Windows 95 hat ab OEM-ServiceRelease 2.1 eine rudimentäre Unterstützung von USB 1.0, die jedoch als fehleranfällig gilt.
- Microsoft Windows 98 unterstützt USB 1.0, ab Windows 98 SE auch USB 1.1. USB 2.0 ist nur mit Treibern von Chipsatzherstellern möglich.
- Microsoft Windows Me unterstützt USB 1.1. USB 2.0 ist nur mit Treibern von Chipsatzherstellern möglich. Im Gegensatz zu Windows 98 ist nach der Installation gerätespezifischer USB-Treiber kein Neustart erforderlich.
- Microsoft Windows NT hat keinerlei USB-Unterstützung, von Drittherstellern sind jedoch Systemerweiterungen dafür erhältlich. Gerätehersteller testen ihre Produkte selten mit derartigen Erweiterungen, deshalb gelten diese Systemerweiterungen nur für Spezialfälle als tauglich.
- Microsoft Windows 2000 (SP4), XP (mit Patch oder „Service Pack 1“), Microsoft Windows Server 2003, Windows Server 2008 oder Vista unterstützen USB 1.1 und USB 2.0. Der USB-Hostcontroller wird allerdings manchmal fehlerhaft erkannt, die meisten Hersteller raten dazu, die Treiber des Chipsatzherstellers zu installieren.
- MorphOS wird mit einer Lizenz für den Poseidon-USB-Stack ausgeliefert mit voller Unterstützung von UHCI, OHCI und EHCI.
- NetBSD, FreeBSD und OpenBSD unterstützen UHCI, OHCI und EHCI sowie gängige Endgeräte. NetBSD war 1998 das erste freie Betriebssystem mit USB-Unterstützung.
- OS/2 Warp4 unterstützt erst über den Aufrüstpack Warp 4.51 Convenience Pak 1 (vom Dezember 2000) USB 1.1. Dieser ist kostenpflichtig. Treiber-Aktualisierungen auf USB 2.0 sind ebenfalls verfügbar.
- Palm OS unterstützt ab Version 3.2 USB als Kommunikationsplattform für HotSync.
- Neuere Betriebssystemversionen mit Unix-Basis verwenden immer öfter libusb als Basisbibliothek.
- Bei Betriebssystemen ohne USB-Unterstützung kann das BIOS nach Aktivieren von „USB Legacy Support“ (engl. etwa „USB-Unterstützung für Altlasten“) in seinen Einstellungen Abhilfe schaffen, dadurch erscheinen USB-Eingabegeräte wie Mäuse und Tastaturen dem Betriebssystem gegenüber als PS/2-Geräte. Je nach BIOS wird meist genau ein USB-Laufwerk (wie USB-Stick, USB-Kartenleser, USB-Festplatte, USB-Floppy) eingebunden. USB-CD/DVD-Laufwerke werden nur dann eingebunden, wenn von ihnen gebootet wird.
- QNX unterstützt ab der Version 6 UHCI, OHCI und EHCI, mit separat erhältlichen Treibern ist USB-Supprt auch in QNX4 nachrüstbar. Die mitgelieferten Treiber beschränken sich auf den HID-Bootmode, einige RS232- und Ethernet-Adapter sowie Massenspeicher.
Kurioses
Inzwischen sind auch ausgefallene Geräte, wie beispielsweise USB-Heizplatten auf den Markt gekommen. Mit diesen kann z. B. eine Kaffeetasse direkt über die USB-Schnittstelle warmgehalten werden. Eine weitere „Erfindung“ ist der USB-Raketenwerfer, der auf Befehl kleine Schaumstoffraketen abfeuert. Daneben gibt es auch mehr oder weniger sinnvolle Hardware, wie USB-Lampen für Notebooks, um die Tastatur zu beleuchten oder USB-Ventilatoren. Des Weiteren ist ein Trend zu beobachten, USB als standardisierte Stromquelle einzusetzen. So können mittlerweile einige Mobiltelefone über USB aufgeladen werden, und es gibt USB-Adapter für viele Stromquellen (Stromnetz, Zigarettenanzünder, Batterie…).
Der USB-Standard sieht vor, dass sich Geräte zunächst im Low-Power (100 mA) Mode am Bus anmelden und erst mit Erlaubnis des Host in den Hi-Power Mode (500 mA) umschalten. Die meisten der vorgenannten Spielzeuge verwenden den USB-Anschluss jedoch nur als Stromquelle und verstoßen gegen den USB-Standard, indem sie ohne Erlaubnis des Host mehr als 100 mA Strom beziehen. Das könnte im Extremfall den USB-Anschluss des Host beschädigen oder das Energiemanagement des Rechners durcheinander bringen, was zu instabilem Verhalten führen kann.
Einzelnachweise
- ↑ DVI-Ausgang per USB nachrüsten – Artikel von heise online, vom 5. Juni 2007
- ↑ Allround-PC: USB 3.0 kommt 2009 mit 4,8 Gbit/s angerast, 21. November 2008
- ↑ USB Klassen bei USB.org
- ↑ http://www.bundesnetzagentur.de/media/archive/12430.pdf
- ↑ Wireless USB: Kappt die Kabel – lieber noch nicht – Netzwelt – SPIEGEL ONLINE – Nachrichten
- ↑ USB-Spezifikation 2.0 Seite 46
- ↑ USB Spezifikation 2.0 Seite 55
- ↑ PC Professionell: USB 3.0 ist fertig. 18. November 2008
- ↑ Benjamin Benz: Pfeilschnell – Die dritte USB-Generation liefert Transferraten von 300 MByte/s. In: c't 22/2008, S.212
- ↑ www.reichelt.de
- ↑ [1] – Homepage von PoweredUSB.org
- ↑ [2] – Homepage von PlusPower.org
- ↑ Vorlage:Cite press release
- ↑ Mini-A und Mini-AB-Verbinder zurückgezogen – Presseerklärung der USB-IF vom Mai 2007
- ↑ Kleinere USB-Steckverbindung für Mobilgeräte – Artikel von heise online, vom 5. Januar 2007
- ↑ OMTP Local Connectivity: Data Connectivity at omtp.org
- ↑ Übersicht über verschiedene Nicht-Standard-Miniatur-USB-Steckverbinder – Informationsseite eines Adapterkabelherstellers
- ↑ USB-Spezifikation 2.0 Seite 102
- ↑ Christoph Windeck: PC-Card und USB (Praxis/Hotline). In: c't 14/2003, S. 204. Abgerufen am 2008. (c't Heftarchiv, pdf)
- ↑ Alexander von Obert: Kann ich eine USB-Schnittstelle nachrüsten?. In: USB-Memory-Stick (USB-Speichermodul) FAQ - Teil 1: Hardware. 21. Dezember 2007. Abgerufen am 27. März 2008.
- ↑ Mathias Paul Eckert: PCMCIA und Card-Bus. In: Seminararbeit, Technische Universität Dresden. Abgerufen am 27. März 2008. (pdf)
Literatur
- Hans-Joachim Kelm: USB 2.0. Franzis, Poing 2006. ISBN 3-7723-7965-6
- Jan Axelson: USB Complete: Everything You Need to Develop Custom USB Peripherals. Lakeview Research, Madison WI 2005. ISBN 1-931448-02-7
- Bernhard Redemann: Steuern und Messen mit USB, Hard- und Softwareentwicklung mit dem FT232, 245 und 2232. Eigenverlag, Berlin 2006. ISBN 3-00-017884-8
Weblinks
- USB verständlich erklärt
- Tipps zur Nutzung von USB
- USB und seine Kabel
- Linux USB – Technische Dokumentation, USB-ID-Listen, Kompatibilitätsfragen zu USB 1.x und 2.0 (englisch)
Spezifikationen:
- USB Implementers Forum – Normgebendes Industriekonsortium (die kompletten USB-Spezifikationen sind dort kostenlos als PDF verfügbar) (englisch)
- USB OHCI 1.0a Spezifikation (PDF, englisch)
- Laut Tektronix sollen ab 2010 Hardware-Entwicklungstools für USB 3.0 zur Verfügung stehen
- USB 3.0 - Super-Speed USB (Beschreibung)
Open-Source-Projekte:
- libusb project homepage – Freie USB-Bibliothek (englisch)
- Freier USB-Host Stack (LGPL)
- objective development: AVR USB – Atmel AVR als USB 1.1 Device (GPL-Firmware und Beispiele, englisch)
Audio und Video:
- Video von Mac-TV.de - Gute Erklärung von USB (.mov, deutsch)
- Chaosradio Express CRE086 USB – Podcastsendung zum Thema USB
Wikimedia Foundation.