Bus-Analyse Fehlersuche an USB-Bussen mit dem Oszilloskop

Serielle USB-Busse kommen häufig auch in einfachen eingebetteten Systemen zum Einsatz. Entwickler integrieren diese über USB-2.0-Standard-Module. Ohne geeignete Testgeräte können sich Prüfung und Fehlersuche dieser integrierten Bussysteme jedoch mühsam gestalten. Hintergrundwissen sowohl über USB-Busse als auch über die Funktionsprüfung eines USB-2.0-Busses mit dem Oszilloskop sind unerlässlich.

Mit der USB-2.0-Spezifikation, die im Jahr 2000 die USB-1.1-Spezifikation ablöste, wurden die Schnittstellen erweitert: Neben den bekannten Schnittstellen Low Speed und Full Speed wurde eine High-Speed-Schnittstelle eingeführt:

 USB-Geschwindigkeit Bit-Rate Bit-Periode
 Low-Speed-USB 2.0
 1,5 Mbit/s
 667 ns
 Full-Speed-USB 2.0
 12 Mbit/s
 83,3 ns
 High-Speed-USB 2.0 480 Mbit/s 2,8 ns
 Super-Speed-USB 3.0 5 Gbit/s200 ps
Tabelle 1. Übersicht der USB-Datengeschwindigkeiten

Zu den Erweiterungen der Spezifikation gehörten auch Interchip-USB (IC-USB) und High- Speed-Interchip-USB (HSIC). War früher nur eine System-zu-System- Kommunikation möglich, wurden ICUSB und HSCI z.B. auch für Chip-zu- Chip-Kommunikation eingesetzt.

Im Jahr 2008 erschien die Super- Speed-Schnittstelle der USB-3.0-Spezifikation auf dem Markt. Sie ist zehnmal schneller als die USB-2.0-Spezifikation und abwärts-kompatibel mit USB-2.0-Geräten. USB 3.0 ist eine zusätzliche Spezifikation, die in Verbindung mit der USB 2.0 verwendet wird, diese aber nicht ersetzt. SuperSpeed- USB-Geräte sind in der Lage, Framework- Befehle und -Deskriptoren von USB-2.0-Geräten zu verarbeiten. Das USB Implementers Forum (USB-IF) verwaltet und entwickelt USB-Standards und -Technologie.

So funktioniert USB

USB ist eine abgestufte Sterntopologie, bestehend aus einem Host-Controller und bis zu 127 Geräten. Zur Erweiterung des Bussystems dienen optional Hubs (Bild 1). Der Host ist die einzige übergeordnete Einheit, die den gesamten Busverkehr steuert; er initiiert die gesamte Kommunikation mit den Geräten. Die Geräte können den Host nicht unterbrechen.

In Tabelle 1 sind die vier USB-Geschwindigkeiten aufgeführt. High-Speed-Geräte beginnen bei Full-Speed und gehen in der Spezifizierung dann zu High-Speed über. Die Geschwindigkeit eines USB-2.0-Busses wird durch das langsamste an den Host- Controller angeschlossene Gerät begrenzt. Bei SuperSpeed- USB werden zwei Host-Controller verwendet: Einer für SuperSpeed-USB-Geräte und einer für USB- 2.0-Geräte. Wie bei einem USB-2.0-System wird die Geschwindigkeit des Busses für die USB- 2.0-Geräte durch das langsamste Gerät begrenzt.

Geräte-Endpunkte sind Datenquellen und -senken im Gerät. Jedes Gerät verfügt über bis zu 16 Daten-Endpunkte (Bild 2). Der Endpunkt „0“ ist obligatorisch und wird vom Host zur Kommunikation mit dem Gerät verwendet. Eine Pipe ist eine logische Verbindung zwischen der Anwendungs- Software im Host und dem Geräte-Endpunkt.

Als Enumerationsprozess bezeichnet man den Konfigurationsvorgang, der unmittelbar nach dem Einschalten oder Anstecken von Geräten (Hot-Plugging) erfolgt. Der Host erkennt, dass das Gerät an den USB-Bus angeschlossen ist. Im nächsten Schritt fragt der Host das Gerät mit dem SETUP-Token ab, wobei die Adresse „0“ und der Endpunkt „0“ verwendet werden. Anschließend weist der Host dem Gerät eine eindeutige Adresse im Bereich von 1 bis 127 zu; zusätzlich erkennt der Host die Gerätegeschwindigkeit und die Art der Datenübertragung. Während der Enumeration wird die Klasse eines Geräts bestimmt. Die Geräteklasse legt die Funktion eines Geräts fest, z.B. ob es sich um einen Drucker oder ein Massenspeichergerät, eine Video- bzw. Audio-Schnittstelle oder ein Human Interface Device (HID) handelt.

Der Host verwendet einen A-Upstream- Stecker, die Geräte einen B-Downstream-Stecker. Jeden Stecker gibt es in drei Ausführungen: Standard, Mini und Micro. Das USB-2.0-Kabel verfügt über vier Adern (Bild 3). Zwei der Adern sind für die Stromversorgung des Hosts vorgesehen: 5-V-Stromversorgung (roter Leiter) und Masse (schwarzer Leiter). Die Stecker sind so aufgebaut, dass die Kontakte für Stromversorgung und Masse vor den Kontakten für die Datenübertragung verbunden werden. Der Host stellt Strom von 100 mA bis 500 mA bereit und nutzt dabei eine intelligente Energieverwaltung. So kann z.B. die Stromversorgung eines Geräts durch den Host oder den Hub überwacht und bei Auftreten eines Überstroms abgeschaltet werden.

Für die bidirektionale Kommunikation des vom Host gesteuerten Halb- Duplex-Differenz-Signalübertragungspfades wird ein verdrilltes, differenzielles Leiterpaar verwendet, das aus Data+ (D+, grüner Leiter) und Data– (D–, grauer Leiter) besteht. Die Signalpegel sind in Tabelle 2 aufgeführt. Der Bus ist DC-gekoppelt.

 USB-Geschwindigkeit Zustand "Low"
Zustand "High"
 Low Speed
 < 0,3 V
 > 2,8 V
 Full Speed
 < 0,3 V
 > 2,8 V
 High Speed 0 V ± 10 % 400 mV ± 10 %
Tabelle 2. Eigenschaften des elektrischen Signals bei USB

Wenn kein Gerät angeschlossen ist, zieht der Host die Pegel von D+ und D– herunter. Dies wird als unsymmetrischer Nullzustand bezeichnet. Wird ein Gerät an den USB-Bus angeschlossen, wandert die Spannung des USB in den positiven oder den negativen Bereich. Dabei gibt die Polarität die Geschwindigkeit des Geräts an. Im inaktiven Zustand „J“ zieht ein Low-Speed-Gerät D– hoch, was zu einer negativen Differenzspannung führt. Zieht ein Full-Speed-Gerät D+ hoch, so führt dies zu einer positiven Differenzspannung. Der Zustand „K“ entspricht dem Gegenteil von Zustand „J“.

Für die Datenübertragung wird die invertierte Non-Return-to-Zero-Codierung (NRZI) mit Bit-Stuffing verwendet, um eine möglichst geringe Anzahl an Übergängen zu gewährleisten. Das niedrigstwertige Bit wird zuerst, das höchstwertige Bit zuletzt übertragen.