USB On-The-Go

架構

標準的USB使用主從式的架構，USB主機端（即電腦）是「主」，而USB周邊裝置是「從」。只有USB伺服器可以排程該連結的設定與資料傳輸。USB周邊裝置不能夠自行啟動資料傳輸，只能回應伺服器的指令。
USB OTG改變了這種狀況，配件不再需要一定要成為單純的周邊裝置，它們有時候也可以成為主機端。舉例來說，USB印表機與電腦連接時作為電腦的外界周邊被電腦控制，與其他USB儲存裝置連接時作為控制主機來讀取儲存裝置；平板電腦等手持智慧型終端與電腦連接時主要作為電腦的儲存裝置等，單獨與USB儲存裝置或USB輸入裝置連接時則作為這些接入裝置的主機來操控儲存裝置或接收輸入。
不過目前支援的廠商比較少，主要是數位伴侶支援此功能，行動電話和平板電腦在硬體情況允許並使用Windows Mobile或Android系統的支援此功能。現在不少播放器開始支援此功能，但大多數在主端時只支援讀取功能。

規格

USB OTG是原本制定於2001年底USB2.0規範，後來修訂的補充的一部分。
最新版本的補充還定義了用於嵌入式主機端從而有針對性的行為能力和使用電腦相同的USB標準A埠。
超高速OTG裝置，嵌入式主機端和週邊通過USB3.0的補充USB On-The-Go與嵌入式主機端規格被支援。

協定

USB 2.0規範的USB OTG和嵌入式主機補充介紹了三種新的通訊協定：

附加檢測協定（ADP）

允許OTG裝置，嵌入式主機或USB裝置在USB匯流排不通電的情況下確定連接狀態，同時啟用基於插入的行為和顯示連接狀態的功能。它通過定期測量USB埠上的電容來確定是否連接了其他裝置，懸空電纜或無電纜。當檢測到足夠大的電容變化來指示裝置連接時，A裝置將向USB匯流排供電並尋找裝置連接。同時，B裝置將生成SRP並等待USB匯流排上電。

會話請求協定（SRP）

允許通訊裝置控制鏈路的電源會話何時處於活動狀態; 在標準的USB中，只有主機能夠這樣做。這樣可以精確控制功耗，這對於電池供電裝置（如相機和手機）非常重要。OTG或嵌入式主機可以使USB鏈路斷電，直到外設（可以是OTG或標準USB裝置）需要電源。OTG和嵌入式主機通常只有很少的電池電量可供使用，因此將USB鏈路斷電會有助於延長電池運行時間。

主機協商協定（HNP）

允許這兩個裝置交換其主機/外設角色，前提是兩個裝置都是OTG雙角色裝置。通過使用HNP來逆轉主機/外設角色，USB OTG裝置能夠獲取對資料傳輸調度的控制。因此，任何OTG裝置都能夠通過USB OTG匯流排啟動資料傳輸。最新版本的補充說明還介紹了HNP輪詢，其中主機裝置在活動會話期間定期輪詢外設以確定它是否希望成為主機。
HNP的主要目的是容納連接了A和B裝置（見下文）的用戶在錯誤的方向上執行他們想要執行的任務。例如，印表機作為A裝置（主機）連接，但不能用作特定相機的主機，因為它不理解相機對列印作業的表示。當相機知道如何與印表機通話時，印表機將使用HNP切換到從屬角色，相機成為主機，因此存儲在相機中的相片可以在不重新連接電纜的情況下列印出來。新的OTG協定不能通過標準USB集線器，因為它們基於電訊號通過專用線路。
所述USB OTG和嵌入式主機補編USB 3.0規範引入附加協定，角色交換協定（RSP）。通過擴展USB 3.0規範提供的標準機制，實現了與HNP（即角色交換）相同的目的。繼USB 2.0規範的USB OTG和嵌入式主機補充之後，還需要遵循USB 2.0補充規範，以保持向後相容性。超高速外設功能的OTG裝置（SS-OTG）需要支援RSP。超高速外設功能的OTG裝置（SSPC-OTG）不需要支援RSP，因為它們只能作為超高速外設功能的上運行; 他們沒有超高速外設功能的主機，所以只能在USB 2.0資料速率下使用HNP進行角色交換。

裝置角色

USB OTG為裝置定義兩種角色：OTG A裝置和OTG B裝置，指定哪一端為鏈路供電，最初是主機。OTG A裝置是電力供應商，而OTG B裝置是電力消費者。在默認連結配置中，A裝置充當USB主機，B裝置充當USB外設。主機和外設模式可能會在以後使用HNP進行交換。由於每個OTG控制器都支援這兩種角色，因此它們通常被稱為雙重角色控制器，而不是OTG控制器。
對於積體電路（IC）設計人員來說，USB OTG的一個有吸引力的特性是能夠用更少的門實現更多的USB功能。
「傳統」方法包括四個控制器，從而導致更多的測試和調試門：
基於EHCI的 USB高速主機控制器（一個暫存器介面）
基於OHCI的全速/低速主機控制器（另一個暫存器介面）
USB裝置控制器，支援高速和全速
第四個控制器在主機和裝置控制器之間切換OTG根埠
另外，大多數小工具必須是主機或裝置。OTG硬體設計將所有控制器合併為一個雙角色控制器，比單個裝置控制器稍微複雜一些。

目標外設列表

在將主機裝置聚焦於特定的產品或應用程式，而不是像普通PC一樣用作通用主機。TPL指定「定位」主機支援的產品，定義需要支援的產品，包括輸出功率，傳輸速度，支援的協定和裝置類別。它適用於所有目標主機，包括充當主機和嵌入式主機的OTG裝置。

OTG迷你介面

最初的USB OTG標準引入了一種名為mini-AB的插座，在稍後的版本（1.4版以後）中被micro-AB取代。它可以接受mini-A插頭或mini-B插頭，而mini-A適配器可以連接到來自外圍裝置的標準A USB電纜。標準OTG電纜的一端有一個mini-A插頭，另一端有一個mini-B插頭（它不能有兩個相同類型的插頭）。
插入mini-A插頭的裝置成為OTG A裝置，插入迷你B插頭的裝置成為B裝置。插入的插頭類型通過ID引腳的狀態進行檢測（mini-A插頭的ID引腳接地，而mini-B插頭懸空）。
純mini-A插座也存在，用於需要緊湊主機埠的地方，但OTG不受支援。

OTG微型介面

隨著USB微型插頭的推出，還引入了一種名為micro-AB的新插頭插座。它可以接受一個micro-A插頭或一個micro-B插頭。Micro-A適配器允許連接到標準A插頭，如在固定或標准裝置上使用的那樣。OTG產品必須有一個微型AB插座，並且不能有其他USB插座。
OTG電纜的一端有一個micro-A插頭，另一端有一個micro-B插頭（它不能有兩個相同類型的插頭）。OTG為標準USB連接器添加了第五個引腳，稱為ID引腳; micro-A插頭的ID引腳接地，而micro-B插頭的ID懸空。插入micro-A插頭的裝置成為OTG A裝置，插入了micro-B插頭的裝置成為B裝置。所插入的插頭的類型由引腳ID的狀態來檢測。
在標稱阻值124kΩ，68kΩ和36.5kΩ的情況下，相對於接地引腳定義了三個額外的ID引腳狀態。這些允許裝置與USB附件充電器適配器一起工作，允許OTG裝置同時連接到充電器和另一個裝置。
這三種狀態用於以下情況：
一個充電器和一個沒有斷言V BUS（不提供電源）的裝置或A裝置都被連接。允許OTG裝置充電並啟動SRP，但不能連接。
充電器和斷言V BUS（正在提供電源）的A裝置已連接。允許OTG裝置充電並連接，但不啟動SRP。
充電器和B裝置連接在一起。OTG裝置被允許充電並進入主機模式。
USB 3.0引入了micro-AB插座和micro-A和micro-B插頭的向後相容SuperSpeed擴展。它們包含非超速微型連接器的所有引腳，並使用ID引腳標識A裝置和B裝置角色，並添加SuperSpeed引腳。

OTG微電纜

當支援OTG的裝置連接到PC時，它使用自己的USB-A或USB Type-C電纜（通常以現代裝置的微B，USB-C或Lightning插頭結尾）。當啟用OTG的裝置連接到USB從裝置（如閃存驅動器）時，從裝置必須以裝置的適當連接結束，或者用戶必須提供以USB-A結尾的適當適配器。該適配器可將任何標準USB外設連接到OTG裝置。將兩台支援OTG的裝置連接在一起需要一個適配器連接從裝置的USB-A電纜，或者使用適當的雙面電纜和一個軟體實施來管理它。USB Type-C裝置正變得越來越普遍。

充電器的相容性

USB OTG裝置向後相容USB 2.0（適用於SuperSpeed OTG裝置的USB 3.0），並且在連接到標準（非OTG）USB裝置時，將作為標準USB主機或裝置運行。主要的例外是OTG主機只需要為TPL上列出的產品提供足夠的電力，這些產品可能足以連接未列出的外設。有源USB集線器可能會迴避這個問題（如果支援的話），因為它會根據USB 2.0或USB 3.0規範提供自己的電源。
在OTG補充版本的1.3和2.0版本之間引入了HNP和SRP中的一些不相容問題，這會在使用這些協定版本時導致互操作性問題。
有些裝置可以通過USB埠為其電池充電；有些甚至可以檢測到專用充電器，並汲取大於500mA的電流量，以幫助其更快速的充電。OTG裝置也不例外。