OTG

**USB On-The-Go** 通常縮寫為 **USB OTG**，是 USB 2.0 規格的補充標準。它可使 USB 裝置，例如播放器或手機，從 USB 周邊裝置變為 USB 主機，與其他 USB 裝置連接通信。在正常情況下，這些支援 OTG 的 USB 裝置和 USB 主機（如桌上型電腦或者筆記型電腦），仍然作為 USB 周邊裝置使用。

支援 OTG 的裝置，如 USB 印表機，可以不連接電腦的情況下直接接入 USB 隨身碟來讀取裝置內檔案進行列印；或平板電腦可以直接接入 USB 儲存碟、鍵盤或滑鼠來擴充外界硬體功能。

## 歷史

* USB On-The-Go Supplement 0.7：2000 年 11 月 7 日發布。
* USB On-The-Go Supplement 1.0：2001 年 12 月 18 日發布。
* USB On-The-Go Supplement 1.0a：2003 年 6 月 24 日發布。
* USB On-The-Go Supplement 1.2：2006 年 4 月 4 日發布。
* USB On-The-Go Supplement 1.3：2006 年 12 月 5 日發布。

## 架構

標準的 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 OTG 最早出現於 USB 1.1 延伸規範，但此規格與其後的 USB 2.0 延伸規範，並不完全相容，當兩者互動混用易生相容性問題。

## 協定

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 裝置也不例外。

## 參考文獻

## 外部連結

* （中文）USB OTG（On-The-Go）簡介
* （英文）USB On-The-Go Basics （頁面存檔備份，存於網際網路檔案館）
* （英文）USB On-The-Go 官方網站

## 參見

* USB