USB On-The-Go ( USB on the go ), USB OTG eller OTG är en USB- gränssnittsspecifikation som gör att en USB-enhet, till exempel en surfplatta eller smartphone, kan vara både en USB-värd och en kringutrustning. Till exempel kan en mobiltelefon läsa data från flyttbara media som en värd, men när den är ansluten till en värddator, presentera sig som en kringutrustning (USB-masslagringsenhet). Eller så kan kameran vara en värd när den skriver ut foton på en skrivare och en kringutrustning när den är ansluten till en dator. Vanligtvis, i värdläge, kan du ansluta USB-kringutrustning med standarddrivrutiner - USB-minne , digitalkamera, mus eller tangentbord (flera enheter kan anslutas via en USB-hubb).
USB OTG definierar två roller för en enhet: OTG-enhet A och OTG-enhet B. OTG-enhet A är strömkällan för USB-bussen och OTG-enhet B är strömsänkan. I standardkonfigurationen fungerar OTG A som en USB-värd och OTG B fungerar som en USB-kringutrustning. Växling mellan värdläge och perifert läge kan göras senare med Host Negotiation Protocol (HNP ) .
Den initiala rollen för varje USB-enhet bestäms av vilken kontakt användaren sätter i sitt uttag [1] .
Den första enheten med OTG släpptes i slutet av 2001.
Standard USB använder en värdenhetsarkitektur . Värden fungerar som en styrenhet för hela bussen, och den (perifera) enheten fungerar som en slavenhet. I standardimplementeringen av USB måste enheter fylla en viss roll, med datorer som vanligtvis fungerar som värdar medan (till exempel) skrivare vanligtvis fungerar som kringutrustning. I avsaknad av USB OTG implementerar mobiltelefoner vanligtvis en funktion som endast är perifer, vilket gör att data kan överföras från telefon till dator och vice versa. Sådana (gamla) telefoner som identifierar sig som USB-kringutrustning kan inte enkelt kopplas till skrivare, eftersom skrivare också fungerar som kringutrustning. USB OTG löser detta problem.
Så snart en kringutrustning ansluts till USB-bussen upprättar huvudenheten (värden) kommunikation med den nya enheten och utför dess konfiguration (värdprogramvaran förbereder eller utför nödvändig databehandling för filhantering eller annan erforderlig typ av dataöverföring eller kommunikationsfunktioner med enheten). Detta gör att kringutrustningen kan vara väldigt enkel jämfört med värden, till exempel innehåller musen väldigt lite kontrolllogik och överlåter nästan allt indatabearbetningsarbete till värden. Värden kontrollerar överföringen av all data på USB-bussen, och kringutrustning själva kan bara signalera till den när de frågas att de kräver värdens uppmärksamhet. För att överföra data mellan två enheter, till exempel från en telefon till en skrivare, läser värden först data från en enhet och skickar den sedan till den andra.[ klara upp ]
En USB OTG-kompatibel enhet kan fungera som både en värd och en enhet beroende på konfigurationen. När du använder OTG kan enheten antingen vara en värd när den fungerar som en master eller en kringutrustning när den fungerar som en slav. Valet mellan värd- och kringutrustning beror helt på vilken ände av kabeln enheten är ansluten till. En enhet som är ansluten till OTG-kabelkontakten "A" eller " A-enhet ", fungerar som standardvärd, medan en ansluten till kontakt "B" fungerar som förinställd kringutrustning eller " B-enhet ".
Efter den första inställningen fungerar bussen precis som en vanlig USB, enhet A ( A-enhet ) konfigurerar enhet B ( B-enhet ) och hanterar all kommunikation. Men när samma enhet A är ansluten till ett annat USB-enhetssystem eller direkt till en USB-värd, kan den bli en slav.
USB OTG är en del av bilagan till USB 2.0-specifikationen , som ursprungligen godkändes i slutet av 2001 och sedan reviderades. Den senaste versionen av denna applikation definierar också beteendet för en inbäddad värd som har målfunktioner och samma standard USB A- port som används i persondatorer [2] .
USB OTG och Embedded Host Supplement till USB 3.0-specifikationen beskriver stöd för SuperSpeed OTG- enheter , inbäddade värdar och kringutrustning [3] .