Liefert der USB-Host immer Strom am VBUS?

Ich weiß ziemlich viel über USB, aber aus irgendwelchen Gründen kann ich diese Frage nicht selbst beantworten.

Liefert der USB-Host-Anschluss (z. B. USB 2.0) immer 5 V am VBUS-Pin? Wenn nicht, wie erkennt es die Geräteverbindung?

Für ein Gerät (Bus-betriebenes Gehäuse) ist es einfach, den Host durch Erfassen des VBUS-Pins zu erkennen, aber damit dies funktioniert, sollte der USB-Host immer 5 V am VBUS-Pin bereitstellen, was dazu führt, dass ich diese Frage stelle.

Eine Sache, die mir einfällt, ist, dass es standardmäßig 5 V, 100 mA und mehr nur nach erfolgreicher Aufzählung liefern kann. Aber soweit ich beobachtet habe, haben die USB-Anschlüsse am Laptop standardmäßig 5 V VBUS aktiviert und sind nicht auf 100 mA begrenzt, daher möchte ich nur aus der Sicht des USB-Standards verstehen.

Jede Antwort wird sehr geschätzt.

Antworten (2)

Ein standardmäßiger klassischer USB-Host muss immer VBUS (+5 V +-10 %) an einen Downstream-Port liefern, damit ein Gerät die Verbindungssequenz einleiten kann (D+ oder D- hochziehen). Der Port muss mindestens 500 mA (Version 2.0) oder 900 mA (Version 3.0) liefern, unabhängig davon, ob eine Kommunikation oder ein Anschluss oder anderes stattfindet. Dies sind „mindestens“ Anforderungen für klassische USB 2.0- und USB 3.0-„High-Power-Ports“ und Powered-Hubs, damit sie auf Wunsch mehr liefern können. Die Anforderungen sind in Abschnitt 7.2 der USB 2.0-Spezifikationen aufgeführt. Kleine batteriebetriebene Geräte haben möglicherweise eine Ausnahme.

ANMERKUNG 1: VBUS muss auch im "Schlaf"-Modus (Suspend-Zustand) vom Host bereitgestellt werden.

--

ANMERKUNG 2: Wenn ein Host den VBUS nicht hoch treibt, würde/sollte kein Anschluss erfolgen, selbst wenn das Gerät über eine eigene Stromversorgung verfügt. Verbindungsanforderungen (D+- oder D-Pull-Ups) dürfen nur erfolgen, wenn VBUS vorhanden ist, gemäß den USB-2.0-Spezifikationen, Abschnitt 7.2.1. Es ist also eine Spezifikationsverletzung, nur die Klimmzüge zu "haben", der Klimmzug muss mit VBUS bedingt sein.

--

HINWEIS3: Also kein VBUS => keine Kommunikation. Aufgrund dieser Regel ist ohne VBUS kein "Partial"- oder "Host-Signaling"-Modus möglich.

Die 500 mA sind eine Voraussetzung für USB HOST . Diese Versorgungsnummer wird häufig mit der Forderung nach einem USB DEVICE als Verbraucher verwechselt. Ein USB-Gerät SOLLTE in der Anfangsphase der Verbindung NICHT mehr als 100 mA ziehen und kann nur dann die volle Leistung ziehen, wenn es aufgelistet wird und den Befehl „set_configuration ()“ erhält. USB-Geräte melden ihren Strombedarf während dieser ersten "100-mA"-Sitzung im Gerätedeskriptor. Wenn der Host sein Energiebudget erschöpft hat, kann er die Aufzählung stoppen und das Gerät effektiv zurückweisen.

ANMERKUNG 4: Wie man sehen kann, gibt es keine "Verhandlung", es ist entweder "mein [Host]-Weg" oder "Autobahn".

--

ANMERKUNG 5: USB-Hosts haben keine spezifizierten Mittel, um den tatsächlichen Stromverbrauch ihrer Ports zu überwachen. USB-Hostcontroller haben keine Register, die den Portverbrauch messen/melden können. Daher kann ein Host die 100-mA-Grenze nicht erzwingen, um fehlerhafte Geräte auszusondern, die möglicherweise die 100-mA-Spezifikation verletzen, es sei denn, es tritt ein drastisches Ereignis eines Port-Überstroms auf. Die Einhaltung der 100-mA-Grenze wurde auf der Ebene des USB-IF-Zertifizierungsprozesses berücksichtigt.

Kurz gesagt, die 500 mA und 100 mA sind Anforderungen für verschiedene USB-Entitäten, eine für Hosts und Hubs und eine andere für Geräte, wiederum wie in Abschnitt 7.2.1 beschrieben. So funktioniert es aus Sicht des USB-Standards.

Jetzt sind die Dinge mit der Einführung des Typ-C-Anschlusses etwas anders . Typ-C-Geräte (sowohl Hosts als auch Peripheriegeräte) dürfen zunächst VBUS nicht ausgeben. Anstatt also mutig VBUS-Strom an einem Typ-C-Port anzulegen, muss der Host die VBUS-Quelle nur dann einschalten, wenn die Portlogik das Vorhandensein von Kabel/Gerät erkennt. Dies geschieht durch Erfassen des Spannungspegels am "CC" (Communication Channel) Pin. Ein Typ-C-Host hat einen Pullup an beiden CC-Pins. Ein Gerät (oder eine Legacy-Kabelbaugruppe) muss einen 5,1-k-Pulldown haben. Wenn das Gerät/Kabel eingesteckt wird, erkennt der Host, dass 5.k seinen Pull-up nach unten zieht, und an diesem Punkt hat der Host das Recht, die VBUS-Stromversorgung zu aktivieren, und die USB-Kommunikation beginnt.

vielen Dank für die ausführliche und gut referenzierte Antwort. Ich schätze deine Hilfe sehr. Ich stecke stark in einem Projekt fest und kann daher keine Zeit darauf verwenden, hier weiter nachzudenken. Ich werde hier kommentieren, wenn ich weitere Fragen dazu habe.
"Der USB-Host kann ein vom USB unabhängiges Energieverwaltungssystem haben" aus usb_20.pdf Kapitel 4.3.2 Energieverwaltung. "Ein klassischer Standard-USB-Host muss immer VBUS bereitstellen" ist also nicht richtig. Aus Energieverwaltungsgründen kann das System VBUS herunterfahren.
@iouzzr, ein "von USB unabhängiges Powermanagement" macht den USB-Host nicht als "Standard" und "klassisch". Es ist jedoch wahr, dass der Markt für tragbare Geräte das Konzept des "Kalt-Standby" mit ausgeschaltetem VBUS erfunden hat, hauptsächlich weil viele USB-Geräte die SUSPEND-Leistungsgrenzen nicht eingehalten haben und um eine langfristige Entladung kleiner Batterien zu verhindern. Aber diese Art von Geräten hat normalerweise einen Spitznamen "tragbare Geräte", was kaum "klassisches USB" ist, also trifft meine Aussage immer noch zu. Aber danke trotzdem für die Erwähnung dieser Nuance.
Bietet ein USB-C-Wandladegerät immer VBUS?
@Bram, nein, ein Typ-C-kompatibles Ladegerät sollte keinen VBUS liefern, bis der Anschluss / das Kabel die richtigen Pulldowns an den CC-Pins sieht (es sei denn, es ist eingesteckt).

Ja, ein normaler (Classic 1.0/1.1/2.0) USB-Host würde VBUS immer mit Strom versorgen, es sei denn, er befindet sich in einer Art Schlaf- oder Überstromfehlermodus.

USB-Geräte werden vom Host erkannt, weil sie einen Pull-up-Widerstand auf einer der Datenleitungen haben - D-für ein Gerät mit niedriger Geschwindigkeit und D+für ein Gerät mit voller Geschwindigkeit (oder ein Gerät mit hoher Geschwindigkeit; die hohe Geschwindigkeit wird in der Signalisierung erkannt ).

Während die USB-Spezifikation es Peripheriegeräten verbietet, ohne Verhandlung mehr als 100 mA zu ziehen, erzwingen viele (die meisten) Hosts dies in der Praxis nicht. Typischerweise haben sie eine Art PTC oder aktiven Überstromschutz, der irgendwo über 500 mA einsetzt (einige, wie die ursprünglichen Raspberry Pis, hatten niedrigere Grenzen und konnten nicht den vollen USB-Spezifikationsstrom liefern).

Einige frühe Smartphones hatten teilweise nicht konforme USB-Host-Fähigkeiten, sie waren in der Lage, in der Host-Signalisierungsrolle zu arbeiten , aber keinen VBUS an ein Peripheriegerät zu liefern. Die meisten haben heute entweder eine Ladungspumpe zur Versorgung von VBUS oder erlauben überhaupt keinen Betrieb im Host-Modus.

Vielen Dank für Ihre ausführliche Antwort. Ich schätze es sehr.