Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenMittwoch, 21. August 2019 

Universal Serial Bus


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
Der Universal Serial Bus ( USB ) ist ein Bussystem zur Verbindung von einem Computer mit externen Geräten zum Austausch von Daten. Durch die hohen möglichen Datenraten und die automatische Erkennung von Geräten deren Eigenschaften ist der USB zum Anschluss aller Gerätearten von Maus und Tastatur bis zu Festplatten und Kameras geeignet. Die Anzahl der USB-Anschlüsse eines kann mit USB-Hubs vergrößert werden.

(Im Zusammenhang mit USB Hubs wird fälschlich von "aktiv" oder "passiv" gesprochen. Das irreführend da ein USB-Hub immer ein aktives ist. Was eigentlich damit gemeint wird ist Powered" oder "Bus Powered" also selbstversorgt oder Ein Hub mit eigenem Netzteil also selbstversorgt gibt an nachfolgende Geräte bis zu 500 mA Strom ab ein Hub bekommt selbst aber nur maximal 500 und kann dadurch maximal vier Ports haben die er jeweils 100 mA weitergibt.)

Inhaltsverzeichnis

Überblick

USB ist ein serieller Bus . Das heißt dass die Kommunikation seriell auf lediglich einer differenziellen Daten - Leitung (zwei Leitungen eine überträgt invertierte Daten reduziert sich die Abstrahlung und erhöht sich Übertragungssicherheit) erfolgt.

Er erlaubt es bis zu 127 Geräte an einem Hostcontroller anzuschließen. Durch Verwendung Hostcontroller können auch noch mehr Geräte angeschlossen jedoch ist dies abhängig vom verwendeten Betriebssystem beispielsweise wird lange vor Erreichen der 127 instabil. Er zeichnet sich dadurch aus dass Installation der Geräte verhältnismäßig einfach ist und Datenkabel der Geräte im laufenden Betrieb ein- ausgesteckt werden können.

Gegenüber den bisherigen externen Schnittstellen am beitet das USB deutlich höhere Datenübertragungsraten. USB aus all diesen Gründen eine gute Weiterentwicklung den bisher verwendeten Schnittstellen (parallell/ Centronics und seriell/ RS232 ) dar.

Bus-Struktur

Bei einem "klassischen" Datenbus werden mehrere Geräte parallel an eine angeschlossen. Bei USB bezieht sich "Bus" auf logische Vernetzung . An einen Host können mehrere Devices werden jedoch grundsätzlich mittels Hubs. An einer Leitung ist immer nur ein einzelnes USB-Device Durch den Einsatz von Hubs entstehen Baumstrukturen alle in einem Host-Controller enden.

USB-Kabel

USB-Stecker Typ B

USB-Stecker Typ A

In einem USB-Kabel werden nur vier benötigt (zwei für Strom zwei für Daten). Kabel müssen je nach Geschwindigkeit unterschiedlich geschirmt Nur Kabel die der Spezifikation für Full entsprechen dürfen mit A und B Stecker sein. Low Speed Kabel müssen generell als cable" also fest angeschlossenes Kabel ausgeführt sein Verwendung eines eigenen Steckers auf Geräteseite ist es darf nur kein USB Stecker sein) durch die geringe Abschirmung Probleme auftreten würden dieses Kabel mit einem Full Speed Gerät wird. Ein High Speed Kabel gibt es die Full Speed Kabel der USB 1.0 1.1 Spezifikation waren technisch bereits völlig ausreichend die 480MBit/sec des High Speed USB zu Kabel die im Handel als "USB 2.0 verkauft werden sind daher als Aufschneiderei anzusehen ein Hinweis darauf dass das daneben hängende 1.1 Kabel eher als Wäscheleine geeignet ist... Länge eines Kabels vom Hub zum Device auf fünf Meter begrenzt (Low Speed Kabel von der Spezifikation auf 3m beschränkt dies technisch jedoch unbegründet und wird voraussichtlich in zukünfitgen Fassung der Spec entfallen). Die Spezifikation Verlängerungen aus. Sind sie notwendig müssen USB-Hubs geschaltet werden. Diese und andere Geräte mit Stromverbrauch können über den Bus mitversorgt werden. der Vorteile geringer Adernzahl sind kleine Stecker zudem verpolungssicher ausgeführt sind.

Geschwindigkeiten Datenraten

USB erlaubt es einem Gerät mit 5 MBit/s (Low Speed) 12 MBit/s (Full oder mit 480 MBit/s (High Speed ab 2.0 verfügbar) Daten zu übertragen. Diese Übertragungsraten auf dem Systemtakt der jeweiligen USB-Geschwindigkeit und die theoretisch maximale Übertragungsrate dar. In der Praxis muss mit spürbar geringeren Übertragungsrate gerechnet werden. Geräte mit Datenaufkommen können mit preiswerteren Chips ausgestattet werden im Falle von Low Speed Geräten sogar Kabel mit einfacherem Schirm zu verwenden.

Vergleich zu IEEE1394 (FireWire i.Link)

Auch wenn die maximale Datenrate von 2.0 eine Überlegenheit zu IEEE 1394a / FireWire (USB 2.0 bis zu 480 Mbit/s 1394a bis zu 400 Mbit/s) erwarten lässt für USB technische Einschränkungen die im praktischen deutliche Nachteile gegenüber FireWire bringen. Dies ist Beispiel darin begründet dass alle Kommunikation vom (in der Regel der Desktop-PC) gesteuert werden Ein USB-Device hat keine Möglichkeit mit einem USB-Device zu kommunizieren ohne dass sämtliche Daten in den Host gelesen und von dort herausgeschrieben werden. FireWire bietet hier die Möglichkeit Peer-To-Peer -Kommunikation auf Request-Ebene d.h. ein Device kann Kommunikation mit einem anderen Device aufbauen ohne die Steuerung durch einen Host erforderlich ist.

Begriff "USB 2.0"

Wird die Schnittstelle eines Geräts mit 2.0" angegeben führt dies manchmal zu Verwechsungen High Speed. Demzufolge wird erwartet dass ein USB 2.0 kompatibel bezeichnetes Gerät auch eine von 480 MBit/s anbietet. Korrekt ist jedoch ein USB 2.0-kompatibles Gerät grundsätzlich jede der Geschwindigkeiten benutzen kann und die 2.0 Kompatibilität erster Linie bedeutet dass die neueste Fassung Spezifikation eingehalten wird. Lediglich bei Hubs und Computern bzw. USB Karten bedeutet "USB 2.0" High Speed. Bei allen anderen Geräten muss geachtet werden dass sie über das Logo 2.0 Hi-Speed" verfügen wenn man ein Gerät bis zu 480 MBit/s erwartet. Low Full High Speed Geräte lassen sich an einem 2.0 Host fast beliebig mischen ohne dass entstehen. Lediglich bei den Hubs muss man ein USB 1.1 Hub kann natürlich kein Speed Gerät mit High Speed versorgen hinter Hub stehen dann nur noch Full und Speed zur Verfügung. Ebenfalls empfindlich die Datenrate können USB 2.0 Hubs die über nur sogenannten "Transaction Translator" verfügen. Bis zu einem 2.0 Hub läuft die Kommunikation an einem 2.0 Host immer mit High Speed auch an dem Hub ein Low oder Full Gerät angeschlossen ist. Der Transaction Translator ist zuständig die Kommunikation mit dem langsamen Gerät zwischen den Geschwindigkeiten umzusetzen. Dadurch werden andere nicht durch die langsamen Geräte ausgebremst. Hat Hub aber nur einen TT so kann Kommunikation mit mehreren Low und Full Speed an diesem Hub auf Geschwindigkeiten deutlich unter an einem USB 1.1 Host zusammenbrechen.

Die verschiedenen Host-Controller

Die USB-Controller-Chips in den PCs halten an einen von drei etablierten Standards. Diese sich jeweils in ihrer Leistungsfähigkeit und der von bestimmten Funktionalitäten (entweder erledigt sie der von selbst "in Hardware" oder der Treiber muss softwareseitig dafür sorgen). Für ein sind die verwendeten Controller vollständig transparent allerdings es für den Benutzer des PC mitunter feststellen zu können welche Art Chip der verwendet um den korrekten Treiber auswählen zu

Universal Host Controller Interface (UHCI)

UHCI wurde im November 1995 von Intel spezifiziert. Die aktuelle Version des Dokuments die Revisionsnummer 1.1 daher nennen sich auch gegenwärtigen USB-Geräte USB-1.1-kompatibel. UHCI-Chips bieten Unterstützung für mit 1 5 oder 12 MBit/s Bandbreite . Sie werden hauptsächlich in Hauptplatinen von Intel verbaut man findet sie auch in Produkten anderer Hersteller z.B. VIA Technologies .

Open Host Controller Interface (OHCI)

OHCI ist eine Spezifikation die gemeinsam Compaq Microsoft und National Semiconductor entwickelt wurde. Version des Standards wurde im Dezember 1995 veröffentlicht die aktuelle Fassung trägt die 1.0a und stammt von September 1999 . Ein OHCI-Controller hat prinzipiell die gleichen wie seine UHCI-Pendants erledigt aber mehr Aufgaben Hardware und ist dadurch marginal schneller als UHCI-Controller (der Unterschied bewegt sich in Bereichen gerade noch messbar sind daher kann man in der Benutzung vernachlässigen für Geräteentwickler können hier aber gemeine Fallen auftun...). Bei den auf Hauptplatinen die nicht von Intel oder stammen handelt es sich mit großer Wahrscheinlichkeit OHCI.

Enhanced Host Controller Interface (EHCI)

Der Enhanced Host Controller ist der der bei USB 2.0 verwendet wird. Er dabei nur die Übertragungen im Hi-Speed-Modus (480 ab. Wenn man USB-1.1-Geräte an einen Port EHCI-Chip steckt reicht der EHCI-Controller den Datenverkehr einen hinter ihm liegenden UHCI- oder OHCI-Controller (diese Controller sind typischerweise auf dem gleichen Wenn kein EHCI-Treiber verfügbar ist werden die 2.0-fähigen Geräte ebenfalls an den USB 1.1-Controller und arbeiten dann mit langsamerer Geschwindigkeit.

USB auf dem Low-Level

Endpunkte

Generell gilt beim USB dass ein nur dann Daten senden darf wenn ihm Host-Controller eine Erlaubnis erteilt hat. Dies führt dass der Controller sich bei zeitkritischen Datenströmen Anwendungsfall sind Mausbewegungen) häufig genug beim Gerät muss ob es Daten senden will um zu vermeiden. USB Geräte verfügen über eine von "Endpunkten" gewissermaßen Unteradressen des Gerätes. Die sind in den Geräten hardwareseitig vorhanden und von der USB SIE (Serial Interface Engine) Über diese Endpunkte können voneinander unabhängige Datenströme Geräte mit mehreren getrennten Funktionen (z. B. Webcams die Video und Audio übertragen) benutzen mehrere Endpunkte. Die Übertragungen bzw. zu den Endpunkten erfolgen meist unidirektional h. für bidirektionale Übertragungen ist ein IN - und ein OUT -Endpunkt erforderlich (IN und OUT beziehen sich auf die Sicht des Host-Controllers). Einzige Ausnahme Endpunkte die den sogenannten Control Transfer Modus Dies ist z.B. generell der Endpunkt 0 immer vorhanden sein muß da über ihn Erkennung und Konfiguration des Gerätes läuft. Zusätzlich auch noch andere Funktionen über den Endpunkt ablaufen. Maximal möglich sind 31 Endpunkte pro das ist der eine Control Endpunkt (der zwei Endpunkte zusammenfasst) und je 15 In Out Endpunkte. Low Speed (1 5MBit) Geräte auf Endpunkt 0 plus maximal zwei weitere im Interrupt Transfer Modus beschränkt.

Übertragungsmodi

Der USB bietet den angeschlossenen Geräten Übertragungsmodi die diese für jeden einzelnen Endpoint können.

Isochroner Transfer

Der isochrone Modus bietet sich besonders die Übertragung zeitkritischer Daten an. Das Gerät dem Host-Controller dazu mit in welchen Zeitabständen Daten senden will und wieviel Bandbreite es benötigt. Wenn der Host-Controller über ausreichend freie verfügt wird diese fest für das Gerät Um Zeit zu sparen findet keine Fehlerkorrektur statt. (Nicht für Low Speed Geräte

Interrupt-Transfer

Interrupt-Transfers dienen zur Übertragung von kleinen die zu nicht genau bestimmbaren Zeitpunkten verfügbar Im Endpoint Descriptor teilt das Gerät mit welchen maximalen Zeitabständen es nach neuen Daten werden möchte. Der kleinstmögliche Zeitraum ist dabei ms (10ms bei Low Speed Geräten). Die Klasse (Human Input Device also alles von Tastatur und Maus über Joystick bis hin zum Datasuit) verwendet praktisch den Interrupt Transfer (abgesehen vom Control Transfer).

Bulk-Transfer

Bulk-Transfers sind für große Datenmengen gedacht jedoch nicht zeitkritisch sind. Diese Transfers sind priorisiert und werden vom Controller durchgeführt wenn isochronen und Interrupt-Transfers abgeschlossen sind und noch übrig ist. Dafür sind die Bulk Transfers die Daten kommen also definitv an nur ist nicht festgelegt. (Nicht für Low Speed verfügbar)

Control-Transfer

Control-Transfers sind eine besondere Art von die einen Endpunkt erfordern der sowohl In auch Out Operationen durchführen kann. Control Transfers generell in beide Richtungen bestätigt so dass und Empfänger immer sicher sein können dass Daten auch angekommen sind. Daher wird der 0 im Control-Transfer Modus verwendet.

Konfigurationen Interfaces und Alternate Settings

Intern adressiert der USB-Controller die angeschlossenen mit einer sieben Bit langen Kennung wodurch die 127 maximal anschließbaren Geräte ergeben. Die 0 wird automatisch von Geräten belegt die Reset Signal erhalten. Wenn an einem oder Ports neue Geräte detektiert werden so schaltet Host-Controller einen dieser Ports ein sendet dem angeschlossenen Gerät einen Reset und versucht dann Gerät zu identifizieren. Danach teilt er dem eine eindeutige Adresse mit. Da immer nur ein Port noch nicht konfiguriertem Gerät aktiviert wird kommt zu keinen Adresskollisionen. Der Host-Controller fragt meist nach einem Device-Deskriptor der z. B. die Hersteller- und enthält. Mit weiteren Deskriptoren teilt das Gerät mit welche alternativen Konfigurationen es besitzt in die es von Gerätetreiber geschaltet werden kann. Bei einer Webcam diese Alternativen z. B. darin bestehen ob Kamera eingeschaltet ist oder ob nur das läuft. Für den Controller ist dabei relevant die unterschiedlichen Konfigurationen auch einen unterschiedlichen Stromverbrauch sich bringen. Ohne besondere Freigabe durch das darf ein Gerät nicht mehr als 100 Strom verbrauchen. Innerhalb einer Konfiguration kann das verschiedene Interfaces definieren die jeweils über einen oder Endpunkte verfügen. Unterschiedlicher Bedarf an reservierter Bandbreite wird über so genannte Alternate Settings signalisiert. Praktisches Beispiel ist wieder die die z. B. in zwei verschiedenen Auflösungen senden kann. Das Alternate Setting 0 wird wenn ein Gerät keine Daten übertragen möchte somit pausiert.

Geräteklassen

Um nicht für jedes Gerät eigene zu erfordern definiert der USB-Standard verschiedene Geräteklassen sich durch generische Treiber steuern lassen. Auf Weise sind USB-Tastaturen Mäuse USB-Massenspeicher und andere mit ihren grundlegenden Funktionen sofort startklar ohne erst ein Treiber von CD installiert werden müsste. Herstellerspezifische (die dann einen eigenen Treiber erfordern) sind Die Information zu welchen Geräteklassen sich ein zählt kann im Device-Deskriptor (wenn das Gerät einer Klasse angehört) oder in einem Interface-Deskriptor Geräten die zu mehreren Klassen gehören) untergebracht

Siehe auch

  • PictBridge

Externe Verweise



Bücher zum Thema Universal Serial Bus

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/USB.html">Universal Serial Bus </a>