Dies ist ein als exzellent ausgezeichneter Artikel.

„Universal Serial Bus“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[ungesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Sinn (Diskussion | Beiträge)
K Änderungen von 91.96.252.253 (Beiträge) rückgängig gemacht und letzte Version von TheBug wiederhergestellt
Zeile 300: Zeile 300:
Momentan besetzen zwei Initiativen den Begriff „[[Wireless USB]]“. Die ältere der beiden wurde von der Firma [[Cypress (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.
Momentan besetzen zwei Initiativen den Begriff „[[Wireless USB]]“. Die ältere der beiden wurde von der Firma [[Cypress (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 Ultra-Wideband-Technik basieren. Erste Geräte sind für Ende 2007 zu erwarten.
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 Ultra-Wideband-Technik basieren. Erste Geräte sind für 2008 in Deutschland zu erwarten.
Am 16. Januar 2008 gab die Bundesnetzagentur dafür einen Frequenzbereich frei. <ref>http://www.bundesnetzagentur.de/media/archive/12430.pdf</ref> Dieser ist jedoch nicht so breit wie von USB-IF spezifiziert, so das Geräte aus anderen Ländern eventuell in [[Deutschland]] nicht verwendet werden dürfen.<ref>http://www.spiegel.de/netzwelt/tech/0,1518,529416,00.html</ref>


== Literatur ==
== Literatur ==

Version vom 18. Januar 2008, 16:14 Uhr

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 und deren Eigenschaften automatisch erkannt werden.

USB-Symbol (Zertifizierung nicht notwendig)

Überblick

USB ist ein bitserieller Bus, die einzelnen Bits des Datenpaketes werden also nacheinander übertragen. Die Datenübertragung erfolgt symmetrisch über zwei verdrillte Leitungen, die eine überträgt das Datensignal unverändert, die andere das 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 als bei parallelen Schnittstellen ausgeführt werden. 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 (den sogenannten 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. Wenn an einem Host mehrere Geräte angeschlossen werden sollen, 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.

Der USB ersetzte viele ältere PC-Schnittstellen, sowohl serielle ( RS-232, RS-422, PS/2-Schnittstelle für Tastatur und Maus, Apple Desktop Bus), parallele (Centronics-Schnittstelle) und analoge (Gameport). Mittlerweile hat USB auch PCMCIA-Slots und SCSI nahezu komplett verdrängt. Im Vergleich zu den früheren Lösungen bietet USB deutlich höhere Datenübertragungsraten. USB überträgt seine Daten jedoch in Paketen, für manche zeitkritische Anwendungen ist er deshalb weniger geeignet – etwa bei nur mit 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 iSCSI, FireWire und eSATA.

Geschichte und Entwicklung

USB2.0 CardBus Controller
Datei:USB2.0 PCI Card Asus.jpg
USB2.0 PCI Card

Der universelle serielle Bus (USB 1.0) wurde vom Hersteller Intel entwickelt und 1996 im Markt eingeführt. Der Bus war zum Anschluss von Peripheriegeräten an den PC konzipiert. Er 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 erste Chipsätze unterstützten 1997 die Intel-Produkte 430HX und 430VX das USB-Protokoll. 1998 wurde die Schnittstelle mit der Entwicklung des iMac bei der Firma Apple eingeführt. Bei diesem Computer ersetzte Apple den hauseigenen ADB.

altes USB-Logo, das nicht mehr verwendet werden soll

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 3200 Mbit/s beschleunigt wurde.

Im Jahr 2000 wurde USB 2.0 spezifiziert, die 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 hierbei allerdings, dass pro Anschluss zur Stromversorgung nur max. 500 mA (High Power) oder 100 mA (Low Power) 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 2-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.

Im September 2007 hat Intel eine Initiative zur Spezifikation von USB 3.0 gestartet. Zielsetzung ist es, eine zehnmal höhere Datentransferrate als bei USB 2.0 zu erzielen, dabei aber die Kompatibilität zu erhalten. Technische Details sind bisher nicht bekannt. Nach aktuellem Informationsstand zeichnet sich aber ab, dass die „Super Speed“ genannte Kommunikation über zwei Lichtleiter erfolgen wird, welche in die bisherigen USB-Stecker integriert werden sollen.

USB-Stecker und -Kabel

USB-Stecker

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 Stecker (Typ B „DIN IEC 61076-3-108“) angeschlossen, vereinzelt auch mit Typ A-Steckern. Für Geräte mit geringerem Platzangebot (z. B. digitale Kameras) existieren auch kompaktere Steckervarianten, die Mini- und Micro-USB-Stecker. Derer gibt es je nach Gerätehersteller verschiedene Bauformen mit verschieden vielen Anschlusspins (bis zu 8, siehe Bild). Im USB-Standard verankert ist lediglich der fünfpolige Stecker (auf dem Foto in der Mitte abgebildet). Bei den Micro-USB-Steckern kommt ein Micro-A-Stecker (rechteckige Bauform, für die Host-Seite) und Micro-B-Stecker (Trapez-Bauform, für die Geräte-Seite) zum Einsatz.

Für den industriellen Einsatz gibt es noch (nicht offiziell standardisierte) USB-12-V und USB-24-V, bei denen neben dem USB-Typ-A-Stecker die Spannungsversorgung mitgeführt wird. Diese Stecker sehen nicht rechteckig aus, sondern mehr quadratisch (wie zwei Stecker in einem gemeinsamen Gehäuse, der USB-Teil ist unverändert USB Typ A). Mittels eines außen angebrachten Verpolungsschutzes wird verhindert, dass USB-12-V-Stecker in USB-24-V-Buchsen gesteckt werden können.

Speziell für Mobiltelefone und andere mobile Geräte wurde mit Micro-USB im Januar 2007 ein noch kleinerer Stecker vorgestellt. Dieser ermöglicht so eine besonders kompakte Bauform. Die Micro-USB-Spezifikation kann USB On-The-Go (OTG) unterstützen, was Verkabelung und Kommunikation auch ohne PC als Host ermöglicht.[2]

USB-Kabel

USB-Verlängerungskabel (nicht in der USB-Spezifikation)

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.

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änge eines Kabels vom Hub zum Gerät ist auf fünf Meter begrenzt. Low-Speed-Kabel werden von der Spezifikation auf drei Meter beschränkt, das ist technisch jedoch unbegründet und wird voraussichtlich in einer zukünftigen Fassung der Spezifikation entfallen. Die Spezifikation schließt Verlängerungen aus. Trotzdem werden diese angeboten und bei vielen USB-Geräten mitgeliefert. Längere Strecken kann man überwinden, indem USB-Hubs zwischengeschaltet werden. Sogenannte Aktive USB-Verlängerungskabel 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 differentiellen Widerstand 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

Datei:USB01.JPG
Adernkodierung von USB-Kabeln
USB-Standardstecker Typ A und B. Nicht maßstabsgetreu, mit Pinnummern, Draufsicht
USB-Ministecker Typ A und B. Nicht maßstabsgetreu, mit Pinnummern, Draufsicht. Es gibt noch Mini-AB-Buchsen, welche sich automatisch umschalten. Mini-AB-Buchsen sind aus der Spezifikation entfernt worden.

Der USB-Standard legt neben der Belegung der Schnittstelle auch die Namen der einzelnen Stecker-Pins und die Adernfarbe 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

Datenraten

Datei:USB-certified-Logo.svg
Logo für USB-LowSpeed- oder -FullSpeed-zertifizierte Geräte
Datei:USB-HighSpeed-certified-Logo.svg
Logo für USB-HighSpeed-zertifizierte Geräte

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)[3] beziehungsweise 53.248.000 Byte/s (Bulk-Mode)[4] 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

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 in der Regel im Computer sitzt. 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 sich der Hostcontroller häufig genug beim Gerät erkundigen, 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; dies wurde erst durch die Erweiterung USB On-the-go gewissermaßen ermöglicht (die Geräte können hier wahlweise Host oder Endgerät sein, ein echter bidirektionaler Austausch ist damit aber nicht möglich). Der FireWire-Standard, der für ähnliche Einsatzzwecke wie USB geschaffen wurde und mit diesem in Konkurrenz steht, bietet im Gegensatz zu USB die Möglichkeit einer Peer-to-Peer-Kommunikation zwischen Geräten, ohne dass die Steuerung durch einen Host erforderlich ist. Somit ist über FireWire etwa der Aufbau eines Netzwerks möglich.

Software-Architektur

Alle USB-Transaktionen werden durch die USB-Software auf dem Host-Computer realisiert. Dies 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.

USB-Hubs

Allgemeines

4-Port-USB-Hub mit eigener Stromversorgung (self powered)
4-Port-USB-Hub mit Stromversorgung aus dem Bus (bus powered)

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, dies ist technisch 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 Metern 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, der Hub hat dazu einen oder mehrere sogenannte „Transaction Translators“ eingebaut. Die Anzahl der Transaction Translators bestimmt, wie viele langsame Geräte an einen USB-2.0-Hub angeschlossen werden können, ohne sich gegenseitig auszubremsen. Werden an einen Host mehr langsame Geräte angeschlossen als Transaction Translators verfügbar sind, 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 hierdurch jedoch unbeeinflusst. An der Spezifikation des Stromverbrauchs hat sich bei USB-2.0 im Vergleich zu USB-1.1 jedoch nichts geändert.

USB 3.0

USB 3.0 wird mehr als zehnmal so schnell wie USB 2.0 sein. Der mittlerweile seit rund einem Jahrzehnt genutzte Universal Serial Bus soll nochmals deutlich schneller werden: Das mit USB 2.0 vor etwa sieben Jahren spezifizierte Enhanced Host Controller Interface (EHCI) brachte den Hi-Speed-Datentransfermodus mit 480 MBit/s brutto, nun soll USB 3.0 in den Bereich von 5 GBit/s vorstoßen – also auf das Niveau einer PCIe-2.0-Lane.

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 Funktionen – entweder erledigt sie der Chip von selbst, „in Hardware“, oder der Gerätetreiber 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) 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 dies in der Benutzung vernachlässigen; Geräteentwickler müssen dies jedoch berücksichtigen. Bei den USB-Controllern auf Hauptplatinen, die nicht von Intel oder VIA stammen, handelt es sich mit großer Wahrscheinlichkeit um OHCI-Controller.
  • Das Enhanced Host Controller Interface (EHCI) stellt die USB-2.0-Funktionen bereit. Das EHCI 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 demselben 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 mit langsamerer Geschwindigkeit, sofern dies überhaupt möglich ist.

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 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 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, welche jeweils über einen oder mehrere Endpunkte verfügen. Unterschiedlicher Bedarf an reservierter Datenrate wird über so genannte Alternate Settings signalisiert. Ein Beispiel dafür ist eine Kamera (etwa eine Webcam), die 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

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 und andere Geräte mit ihren grundlegenden Funktionen sofort startklar, ohne dass erst ein Treiber 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.

Übertragungsmodi

Der USB bietet den angeschlossenen Geräten verschiedene Übertragungsmodi, 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 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 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 Bytes 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

USB-Maus für Notebooks

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 drei mal 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.

Unterstützung in den Betriebssystemen

  • Amiga OS3.x unterstützt von Haus aus kein USB. Lediglich mit Hard- und Software von Drittanbietern ist eine Anbindung von USB-1.1-Geräten möglich. Ab Amiga OS4 wird, je nach Hardware, USB 1.1 und 2.0 unterstützt.
  • 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.
  • Mac OS unterstützt USB 1.1 ab Mac OS 8.1. In der Zeit wurde der Umfang der 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 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), Microsoft Windows Server 2003, Windows Server 2008, XP (mit Patch oder SP1) und neuere Ausgaben (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 Poseidon-USB-Stack ausgeliefert.
  • 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-Updates 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.
  • Wo das Betriebssystem die nötige Unterstützung für USB-Geräte nicht hat, kann das Bios nach Aktivieren von „USB Legacy Support“ (engl. etwa „USB-Unterstützung für Erblasten“) in seinen Einstellungen Abhilfe schaffen, da hierdurch USB-Eingabegeräte wie Mäuse und Tastaturen dem Betriebssystem gegenüber als PS/2-Geräte erscheinen. Datenträger (wie USB-Sticks, USB-Floppies oder USB-CD/DVD-Laufwerke) aber werden nur dann für ältere Betriebssysteme emuliert, wenn von ihnen gebootet wird.

USB On-the-go

Logo für USB-OTG-Geräte
Logo für USB-HighSpeed-OTG-Geräte

Durch USB On-the-go (OTG) können entsprechend ausgerüstete Geräte direkt miteinander kommunizieren. Dadurch kann auf einen Computer, der die Host-Funktion übernimmt, verzichtet werden. Bei Geräten mit USB OTG übernimmt eines der beiden Endgeräte eine eingeschränkte Host-Funktionalität, die Geräte können deshalb miteinander kommunizieren. Mögliche Einsatzgebiete sind beispielsweise die Verbindung von Digitalkamera und Drucker oder der Austausch von Musikdateien zwischen zwei MP3-Playern.

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 im November 2007 erschienen Nokia 6500c und Nokia N810, aber auch einige s.g. Image Tanks.

Wireless USB

Logo für dem Intel-Wireless-USB-Projekt entsprechend zertifizierte Geräte

Momentan besetzen zwei Initiativen den Begriff „Wireless USB“. Die ältere der beiden wurde von der Firma 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 Ultra-Wideband-Technik basieren. Erste Geräte sind für 2008 in Deutschland zu erwarten. Am 16. Januar 2008 gab die Bundesnetzagentur dafür einen Frequenzbereich frei. [5] Dieser ist jedoch nicht so breit wie von USB-IF spezifiziert, so das Geräte aus anderen Ländern eventuell in Deutschland nicht verwendet werden dürfen.[6]

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

Commons: Universal serial bus – Album mit Bildern, Videos und Audiodateien

Einzelnachweise

  1. DVI-Ausgang per USB nachrüsten – Artikel von heise online, vom 5. Juni 2007
  2. Kleinere USB-Steckverbindung für Mobilgeräte – Artikel von heise online, vom 5. Januar 2007
  3. USB Spezifikation 2.0 Seite 46
  4. USB Spezifikation 2.0 Seite 55
  5. http://www.bundesnetzagentur.de/media/archive/12430.pdf
  6. http://www.spiegel.de/netzwelt/tech/0,1518,529416,00.html