USB - Universal Serial Bus

USB-Logo
Der USB ist eine universelle externe Schnittstelle für alle möglichen Peripheriegeräte, die an einem Computer angeschlossen werden können. Egal ob Tastatur, Maus, Modem, Drucker, Mikrofon, Lautsprecher, Kamera oder Scanner. Der USB kennt nur einen Steckertyp für alle Geräte auf der Computerseite, so dass Verwechslungen von Schnittstellen ausgeschlossen sind. Mit USB werden die Anwender unabhängig von der Anzahl der verfügbaren Schnittstellen und Steckplätze für Erweiterungskarten. Die Identifikation der Geräte wird vom USB-Hostadapter im Rechner durchgeführt, der auch das Laden der Treiber und die Grundkonfiguration vornimmt. Zusätzlich reduziert Hot-Plugging, durch das Hinzufügen und Entfernen von Peripherie-Geräten im laufenden Betrieb, die Fehlerrate.

Übersicht: USB - Universal Serial Bus

Warum wurde der USB eingeführt/entwickelt?

Der Kauf von externen Geräte scheiterte vor der Zeit von USB häufig daran, dass ein PC nicht genug freie Schnittstellen hatte. Und der Einbau von Erweiterungskarten war wegen begrenzter Ressourcen nicht immer möglich. Hinzu kam, dass die unterschiedlichen Geräte unterschiedliche Stecker und Schnittstellen hatten. Fast jeder Gerätetyp hatte seine eigene Schnittstelle. Zwar konnte ein Gerät leichter einem festen Steckplatz zugeordnet werden. Doch das war etwas für Experten und nicht für unbedarfte Anwender.

Der USB sollte mit den unterschiedlichen Schnittstellen und Anschlussbegrenzungen Schluss machen. Gefordert wurde:

Installation von USB-Geräten

Die Installation eines USB-Geräts ist vergleichsweise einfach. Die Installation ist ohne technisches Wissen und im laufenden Betrieb möglich. Bei den meisten Geräten reicht es aus, den Stecker einzustecken. Danach installiert das Betriebssystem die Treiber selbst. Nach einer kurzen Installationsphase ist das Gerät betriebsbereit. Manche USB-Geräte verfügen über einen internen Speicher in dem der Treiber gespeichert ist. Er wird automatisch beim erstmaligen Einstecken installiert. Bei den meisten USB-Geräten ist es jedoch so, dass nach dem Einstecken nach einer Treiber-CD gefragt wird. Der Treiber muss dann von CD installiert werden. Alternativ lässt sich auch der aktuelle Treiber von der Webseite des Herstellers herunterladen und installieren.
Bei manchen Geräten ist etwas mehr Aufwand nötig. Der Treiber muss zuerst von einer CD-ROM installiert werden, um nach einen Systemneustart das Gerät einstecken und in Betrieb nehmen zu können. Doch auch das erweist sich als einfach, da man in der Regel nur die CD oder DVD einlegen muss und danach der Treiber fast automatisch installiert wird. Alle weiteren Handgriffe seitens des Anwenders werden während des Installationsvorgangs erklärt, manchmal sogar in einer Kurzanleitung erläutert.

Warum der USB die serielle und parallele Schnittstelle nicht ersetzen kann!

Trotz ihrer langsamen Übertragungsgeschwindigkeit hielten sich die parallele und auch die serielle Schnittstelle sehr lange. Der Grund, sie lassen sich einfacher programmieren als der USB. Die serielle Schnittstelle lässt sich sehr einfach ansteuern. Jede Programmiersprache hat die dafür notwendigen Befehle und Bibliotheken integriert. So muss man nur den gewünschten Port öffnen (COM1, COM2, ...) und die Daten in den Port schreiben oder daraus lesen. Die gesamte Steuerung des Datenflusses übernimmt der Treiber des Betriebssystems.
Inzwischen gibt es keinen Grund mehr auf die alten Schnittstellen zurückzugreifen. Über programmierbare Schnittstellen (API) lassen sich alle elektronischen Geräte mit einem USB-Port ausstatten.
Trotzdem sind USB-Stecker im industriellen Umfeld weniger gern gesehen. Die Standard-USB-Stecker sind nicht industrietauglich. Sie lassen sich nicht gegen Herausziehen sichern. Außerdem sind sie nicht vibrationsfest. Die Auswahl industriekompatibler USB-Stecker ist gering und teuer. Der Stecker der seriellen und parallelen Schnittstelle lässt sich dagegen festschrauben. Wenn nötig kann man sich so einen Stecker auch selber an ein Kabel löten und so zum Beispiel ein paar Meter mehr überbrücken, als es mit dem USB-Kabel möglich ist.

Ein weiterer Nachteil des USB ist das fehlende Übertragungsprotokoll auf der Anwendungsebene. Das hat den Effekt, dass für die USB-Gerätetreiber entwickelt werden "müssen". Der einfache Wechsel von einer alten Schnittstelle zum USB ist nicht möglich, weil dazu ein neues Protokoll notwendig wäre. Für bestimmte USB-Geräte, wie zum Beispiel Maus, Tastatur und Massenspeicher haben sich Standard-Treiber vom Betriebssystem durchgesetzt. Für viele andere Anwendungen, die die serielle Schnittstelle unterstützen, wird ein VCP-Treiber (Virtual COM Port) installiert, der im Betriebssystem eine serielle Schnittstelle emuliert. Der Zugriff auf Anwendungsebene erfolgt dann wie auf eine physikalisch vorhandene serielle Schnittstelle. Das hat den Vorteil, dass für bestehende Anwendungen, die eine serielle Schnittstelle unterstützen kein neuer Treiber entwickelt werden muss.

Topologie und Verkabelung

Topologie des USB
Obwohl der USB von der Namensgebung her ein Bus sein müsste, handelt es sich dabei um eine mehrstufige Sterntopologie. Der Mittelpunkt des Sterns wird jeweils von einem Hub gebildet. Der Ausgangspunkt des USB ist der Host-Controller (Root Hub) auf dem Motherboard des Computers. Der Host-Controller steuert den gesamten Datenverkehr des USB. Am Host-Controller können bis zu 127 Geräte angeschlossen werden. Das können einzelne Geräte (Node) oder Hubs sein, an denen wiederum Geräte (Node) hängen.
Neben der Stromverteilung sorgen die Hubs auch dafür, dass immer nur ein USB-Gerät seine Daten zum Host-Controller schickt. Die Hubs können beliebig kaskadiert werden, wodurch ein pyramidenförmiger Aufbau entsteht. Wobei jedes Leitungssegment eine Punkt-zu-Punkt-Verbindung ist.

Ursprünglich ist eine direkte Kommunikation zwischen den USB-Geräten nicht vorgesehen. Eine Ergänzung (durch USB 2.0) ist USB-on-the-Go (OTG). Innerhalb eines USB-Baumes, der an einem PC hängt, kann ein Gerät ein anderes Gerät dadurch ansprechen.

USB-Geräte-Treiber

Für viele USB-Geräte gibt es Standard-Treiber in den Betriebssystemen. Dazu zählen Tastaturen, Mäuse, Digitalkameras, Scanner und Massenspeicher. Im Prinzip kann man jede Tastatur, Maus oder USB-Stick an jedem Computer ohne Probleme in Betrieb nehmen.
Die Treiber in Windows bestehen aus einer oder mehreren *.sys-Dateien (der eigentliche Treiber) sowie einer oder mehreren Windows-DLL-Dateien. Die DLL-Dateien enthalten die Softwareschnittstelle zum Treiber. Jedes Windows-Programm kann die DLL-Funktionen benutzen, um mit dem Geräte-Treiber zu kommunizieren.

HID-Treiber

Der HID-Treiber (human interface device, hid.dll) gehört zu Windows. Er ist für den Anschluss einfacher Geräte wie Tastatur oder Maus gedacht. Die Bezeichnung HID (human interface device) leitet sich aus der Anwendung für Bediengeräte für Menschen ab. Tastaturen und Mäuse, die sich an den HID-Standard halten, werden von den HID-Treibern von Windows unterstützt, so dass diese Geräte keine eigenen Treiber benötigen. Um den HID-Treiber nutzen zu können, muss sich das USB-Gerät als HID-Gerät in Windows anmelden.

CDC-Treiber

Der CDC-Treiber (communication device class, usbser.sys, MsPorts.dll) von Windows ermöglicht die RS232-Emulation über den USB. Beim Anschluss eines entsprechenden USB-Geräts wird in Windows ein virtueller COM-Port eingerichtet. Jedes Programm kann darauf zugreifen, wie wenn es eine echte RS232-Schnittstelle wäre. Die erreichbare Transfergeschwindigkeit beträgt bis zu 1 MBit/s (125 kByte/s) und ist deutlich schneller als bei der echten RS232-Hardware mit nur 115.200 Bit/s.

Storage-Treiber

Für USB 2.0 gibt es das USB-Mass-Storage-Protocol, welches bei der Kommunikation mit USB-Massenspeicher, also externe Festplatten und USB-Sticks, zum Einsatz kommt. Die entsprechenden Treiber bringen alle Betriebssysteme mit (bei Windows usbstor.sys). Deshalb werden in der Regel alle USB-Speichersticks und USB-Festplatten ohne Probleme erkannt.
USB 3.0 bringt das USB Attached SCSI Protocol (UASP) mit, welches das USB-Mass-Storage-Protocol ablösen soll. Es bringt unter anderem die Unterstützung für NCQ (Native Command Queuing) mit. Das hat auch Vorteile für alte USB-2.0-Massenspeicher. Sie sind an einem USB-3.0-Port um bis zu 15% schneller.

Stromversorgung

Über die Kabelverbindungen versorgt der USB einfache Geräte, wie Maus und Tastatur, aber auch Scanner mit Strom. Unabhängig vom Stecker muss ein Host oder Hub die angeschlossenen Geräte mit mindestens 100 mA versorgen. Bis zu 500 mA (2,5 Watt) kann er dem Gerät auf Anforderung liefern.

Übertragungstechnik

Neben den beiden Leitungen für die Stromversorgung (+5V) gibt es zwei Datenleitungen. Die Datenübertragung erfolgt symmetrisch über zwei verdrillte Leitungen. Die eine Leitung überträgt das Datensignal, die andere das invertierte Datensignal. Man spricht von einer differenziellen Übertragung. Dabei ist der Spannungsunterschied bei der Signalspannung doppelt so groß, als wenn das Datensignal gegen Masse übertragen werden würde. Beim Empfänger wird die Differenz zwischen beiden Signalen gebildet, wobei Signalstörungen ausgeblendet werden. Das erhöht die Übertragungssicherheit, unterdrückt Gleichtaktstörungen und verbessert die elektromagnetische Verträglichkeit.

Übertragungsgeschwindigkeit

USB-Version USB 1.0/1.1 USB 2.0 USB 3.0 USB 3.1
Low-Speed Full-Speed High-Speed Super-Speed Super-Speed+
Symbolrate 1,875 MBi/ts 15 MBit/s 600 MBit/s 5 GBit/s 10 GBit/s
Datenrate (brutto) 1,5 MBit/s 12 MBit/s 480 MBit/s 4 GBit/s -
Datenrate (theoretisch) 188 kByte/s 1,5 MByte/s 60 MByte/s 500 MByte/s 800 MByte/s
Datenrate (netto) ca. 150 kByte/s ca. 1 MByte/s ca. 35 MByte/s ca. 300 MByte/s -
Interface UHCI/OHCI UHCI/OHCI EHCI xHCI -
Leitungslänge 5 m 5m 5m 3 m 1 m
Anwendungen Maus, Tastatur Audio Video, Speichermedien

Um langsame Geräte wie Tastatur, Maus und auch schnelle Geräte wie Modems oder Videokameras über ein und den selben Bus zu führen, wurde die Übertragung in Kanäle unterteilt.
Es gibt einen Low-Speed-Kanal bis 1,5 MBit/s (Maus, Tastatur) und einen Medium-Speed-Kanal mit 12 MBit/s (ISDN, Audio) die über dieselbe Schnittstelle geführt werden. Ein High-Speed-Kanal mit 480 MBit/s (Video, Speichermedien) ist auch vorgesehen (USB 2.0).

Neben der Geschwindigkeitskategorie gibt es auch unterschiedliche Prioritäten bei der Übertragung. Die höchste Priorität haben Geräte, die Daten in Echtzeit liefern und bei denen der Datenfluss nicht unterbrochen werden darf. Die mittlere Priorität ist für Interrupt-Übertragungen, wenn z. B. ein Gerät die Aufmerksamkeit des Prozessors erhalten will. Die niedrigste Priorität haben Massentransfer-Geräte. Die Übertragung dieser Daten ist meist nicht besonders dringend.

Mögliche USB-Geräte

Stecker und Kabel

Die Anschlusskabel dürfen maximal 5 Meter lang sein. Nach 5 Metern muss ein aktiver Hub oder ein aktives USB-Kabel als Verlängerung in die Kabelverbindung eingefügt werden. Trotzdem haben manche USB-Geräte ein Problem mit langen USB-Kabeln oder -Kabelstrecken. Meist melden sie sich nicht am System an. Es scheint, als ob sie nicht angeschlossen sind.

Unabhängig welcher Geschwindigkeitskategorie ein Gerät angehört, es wird immer der gleiche vierpolige Stecker verwendet. Unterschiede gibt es nur beim Anschlusskabel. High-Speed-Geräte benötigen ein geschirmtes und verdrilltes Kabel (USB 2.0). Für Low-speed-Gerät kann ein ungeschirmtes und unverdrilltes Kabel verwendet werden (USB 1.0/1.1).

Wegen der zunehmenden Miniaturisierung von Geräten, wie Digitalkameras, Handys und MP3-Player, war ein besonders kleiner Stecker gefragt. Der Micro-USB-Stecker ist eine noch kleinere Steckverbindung als der Mini-USB-Stecker.

USB-A-Stecker (Host) USB-A-Stecker (Host)
USB-B-Stecker (Endgerät) USB-B-Stecker (Endgerät)
momentan kein Bild Mini-A-Stecker
(innen Weiß)
Mini-B-Stecker Mini-B-Stecker
(innen Schwarz)
momentan kein Bild Mini-AB-Stecker
Mini-B-Stecker von Hirose Mini-B-Stecker von Hirose
(z. B. für Digitalkameras)
Mini-B-Stecker von Mitsumi Mini-B-Stecker von Mitsumi
(z. B. für Digitalkameras)
Mini-B-Stecker von Fuji Mini-B-Stecker von Fuji
(z. B. für Digitalkameras)

USB-Wendestecker oder USB-Flipper-Kabel

Die USB-Stecker haben den Nachteil, dass sie nur in einer Richtung in eine Buchse passen. Für den alten USB-2.0-Standard gibt es Typ-A-Stecker mit Wendestecker, was man auch als Flipper-Kabel bezeichnet. Der Typ-A-Stecker ist dabei so kontruiert, dass der innere Kunststoff-Isolator dünner ist und die Kontakte beidseitig im Stecker liegen. Das funktioniert aber nur bei USB-2.0-Anschlüssen. USB-3.0-Anschlüsse (blauer Innenteil) sind anders belegt.

USB-C-Stecker

Der USB-C-Stecker und die dazugehörigen Kabel sollen den Wildwuchs bei den USB-Steckern und -Kabeln beseitigen. Hier gibt es nicht nur A- und B-Stecker, sondern auch die ganzen Mini-Stecker und unterschiedliche Varianten für USB 2.0 und 3.0.
Der C-Stecker ist für USB 2.0, 3.0 und auch 3.1 gemacht. Die Kabel vertragen bei 5 V bis zu 5 A. Mit speziellen Kabeln für USB Power Delivery ist bei höherer Spannung bis zu 100 W zulässig.
Damit sich der C-Stecker auch für mobile Geräte eignet hat er eine Abmessung von 8,25 x 2,4 mm. Die Buchse ist 8,34 x 2,56 mm groß. Das entspricht ungefähr einem USB-2.0-Micro-Anschluss, der bei Smartphones verwendet wird. Damit die korrekte Orientierung nicht mehr zur Qual wird, passt der C-Stecker auch in umgekehrter Steckposition.

Eine kurze Übersicht mit den wichtigsten Merkmalen des USB-C-Steckers:

Wie sicher ist USB?

Prinzipiell ist jedes mit einem Speicher ausgestattete USB-Gerät ein potentielles Einfallstor für Schadsoftware.
Ursprünglich konnte ein USB-Massenspeicher über die AutoRun-Funktion von Windows XP ein beliebiges Programm starten. Diese Funktion wurde unter anderem dafür verwendet, um für ein USB-Gerät Treiber auf dem Computer installieren zu können, ohne dass ein Nutzereingriff notwendig war. Gleichzeitig konnte aber auch ein "böser" USB-Stick auf diese Weise Schadsoftware installieren.
Um diese Sicherheitslücke zu schließen, wurden unter Windows Vista die AutoRun-Programme erst nach einer Nachfrage gestartet, was aber kaum mehr Sicherheit brachte, weil der Nutzer das in der Regel einfach unbedacht weggeklickt hat. Bei einem mit Schadsoftware versehenen USB-Stick hat das dann zum Ausführen des Schadcodes geführt. In Windows 7 hat deshalb die AutoRun-Funktion nur noch bei optischen Laufwerken funktioniert. Doch ein entsprechend manipulierter USB-Stick ist in der Lage, sich als CD- oder DVD-Laufwerk auszugeben.
Eine weitere Gefahr geht von USB-Sticks aus, die sich beim Anschluss an den Rechner als Tastatur ausgeben, konfigurierte Aktionen ausführen und den Rechner auch übernehmen können. Böse ist das deshalb, weil eine "Tastatur" auf allen Systemen funktioniert. Zumindest bis zur nächsten Passwort-Abfrage.
Richtig böse ist es, wenn der Controller auf dem USB-Stick manipuliert ist oder wird. Die Kommunikation zwischen PC und USB-Stick verwendet das alte SCSI-Protokoll, dass in die Host- und Controller-Chips eingebaut ist und um zusätzliche Hersteller-spezifische Funktionen und Befehle erweitert ist. Beispielsweise um die Firmware eines solchen USB-Sticks auszulesen oder eine neue Firmware reinzuschreiben. Das Problem ist, dass eine Absicherung dieser Kommunikation praktisch nicht stattfindet.
Da in der Praxis die Controller von nur drei Herstellern verbreitet sind, am meisten die von Phison, wäre es denkbar, dass ein Angreifer die speziellen Kommunikationsbefehle durch Ausprobieren ermittelt und für die Firmware-Manipulation nutzt, um zum Beispiel mit Schadcode zu versehen, der sich bei jedem Einstecken in einen anderen PC dort einnistet. Bei jedem neuen USB-Stick würde der Schadcode auch diesen USB-Stick infizieren. Ein USB-Virus wäre geboren.

Um sich tatsächlich wirksam zu schützen, dürften keine USB-Geräte an einem PC angeschlossen werden. Auch keine USB-Tastaturen und -Mäuse. Als Alternative blieben nur noch PS/2-Tastaturen übrig und eine technologische Rückkehr zur seriellen und parallelen Schnittstelle. Gleichzeitig müssten USB-Ports mechanisch außer Betrieb gesetzt werden. Beispielsweise durch Verkleben mit Heißkleber.

Übersicht: Externe Schnittstellen, die durch den USB ersetzt werden

Übersicht: USB - Universal Serial Bus