Was ist der Unterschied zwischen USB On-The-Go (OTG) und USB Host Mode?

23

Was ist der Unterschied zwischen USB On-The-Go (OTG) und USB Host Mode?

Sie scheinen mehr oder weniger gleich zu sein. Sind sie?

geffchang
quelle

Antworten:

26

Im Zusammenhang mit Android-Geräten werden die Begriffe häufig synonym verwendet.

Host-Modus

USB verfügt über zwei verschiedene Arten von Endpunkten (verbundene Geräte), z. B. eine Client-Server-Schnittstelle. Ein Gerät ist der Computer (oder Host ), und es ist verantwortlich: Es ist der Server. Alle anderen Geräte (die Peripheriegeräte ) sind die Clients und können nur mit dem Server kommunizieren. Normalerweise kann ein Gerät nur in einer dieser beiden Rollen agieren: Es wäre nicht sinnvoll, wenn (sagen wir) eine Tastatur als Host fungiert. So funktioniert das Protokoll, und die Anschlüsse sollen es den Benutzern einfacher machen: Hosts haben den rechteckigen A-Anschluss und Peripheriegeräte haben entweder den quadratischen B-Anschluss oder eine Mini- oder Mikroversion.

Der Host-Modus ist ein Name, wenn ein Gerät als Host fungiert. Jede USB-Verbindung hat genau ein Gerät im Host-Modus . PCs laufen immer im Host-Modus. (Normalerweise würde man das für einen PC nicht so nennen, weil es nicht wirklich ein "Modus" ist, es ist immer so.)

USB-OTG

Ein Telefon ist jedoch ein bisschen anders. Manchmal möchten Sie, dass es als Peripheriegerät fungiert. Sie können es beispielsweise an einen PC anschließen, damit der PC auf den Speicher des Telefons zugreifen kann. Manchmal möchten Sie, dass es als Host fungiert, z. B. um eine physische Tastatur oder Maus daran anzuschließen. Aus diesem Grund unterstützen viele Android-Geräte jetzt sowohl den USB-Host- als auch den USB-Peripheriemodus: Sie können in beiden Rollen agieren. Aber wie können Sie dies erreichen, wenn sich die USB-Buchse eines Hosts von der eines Peripheriegeräts unterscheidet?

Hier kommt USB-on-the-go (OTG) ins Spiel. Es fügt der Micro-USB-Buchse einen zusätzlichen Pin hinzu. Wenn Sie ein normales A / B-USB-Kabel anschließen, befindet sich das Gerät im Peripheriemodus. Wenn Sie ein spezielles USB-OTG-Kabel anschließen, ist der Pin an einem Ende angeschlossen, und das Gerät an diesem Ende befindet sich im Host-Modus.

Dies kann etwas verwirrend sein, wenn ein Kabel an beiden Enden scheinbar identische Stecker hat, die unterschiedliche Funktionen haben. Kabel mit USB-OTG an beiden Enden sind jedoch selten: In der Regel wird ein Adapter verwendet, der an einem Ende einen USB-OTG-Stecker im Host-Modus und am anderen Ende eine rechteckige USB-A-Buchse aufweist. Sie können ein normales USB-Kabel an diesen Adapter anschließen, und es funktioniert normal.

Fazit

Die Namen beziehen sich auf zwei verschiedene Teile der USB-Technologie, sind sich jedoch sehr ähnlich. Wenn ein Gerät "USB-OTG unterstützt", muss es das Handeln im "Host-Modus" unterstützen. Das Gegenteil ist oft der Fall, aber nicht immer. Die meisten Android-Geräte, die den Host-Modus unterstützen, tun dies über USB-OTG. Es gibt jedoch einige Beispiele: Der ursprüngliche Asus Eee Pad Transformer verfügt beispielsweise über USB-A-Buchsen auf der Tastatur, sodass er im Host-Modus ohne USB agieren kann -OTG Kabel. Und natürlich unterstützen PCs den Host-Modus ohne USB-OTG.

Kann ich einen USB-Stick an mein Telefon anschließen, obwohl die Begriffe in der Android-Welt normalerweise dasselbe bedeuten? - und für die meisten Geräte spielt es keine Rolle, wovon Sie sprechen, es gibt einen Unterschied.

Dan Hulme
quelle
Vergessen Sie nicht die Stromversorgung .... OTG benötigt ein Y-Split-Kabel für diejenigen, die eine externe Stromversorgung benötigen - vielleicht für ein Gerät, das eine stärkere Stromversorgung benötigt ... Auch USB-Peripheriegeräte wurden erst nach Honeycomb eingeführt.
t0mm13b
1
@ t0mm13b Eigentlich ist es durchaus möglich, angeschlossene Geräte über USB-OTG mit Strom zu versorgen, genau wie bei normalem USB. Es ist nur so, dass die meisten Telefone nicht genug Strom für Hochstromgeräte wie Festplatten liefern. Dies hängt jedoch vom jeweiligen Gerät ab, unabhängig davon, ob USB-OTG oder normales USB verwendet wird.
Dan Hulme
@ t0mm13b Ich bin mir nicht sicher, was Sie unter "USB-Peripheriegerät" verstehen, bevor Honeycomb es eingeführt hat. Android hat es immer unterstützt, als USB-Peripheriegerät zu fungieren.
Dan Hulme
Nein, es war ein angepasster Kernel erforderlich - und es war fragwürdige Unterstützung, abhängig vom Chipsatz. In der Honeycomb-API wurde die USB-Unterstützung eingeführt und in ICS aufwärts populärer
t0mm13b
1
@Dan Hulme: Ich denke nicht, dass es eine andere Frage ist, trotzdem danke.
Omne