USB OTG技術簡介
OTG是On The Go的縮寫,在越來越多的USB裝置出現後,漸漸有部分裝置想要脫離電腦的管束互相連結,但是USB舊有的架構限制了USB裝置間連結的可能性。所以當兩個USB裝置碰在一起,沒有任何一端可以做主。對此,USB協會又推出了USB OTG的規範來彌補這樣子的缺陷。
USB OTG並不是一個獨立於USB 2.0存在的規範,所有在USB OTG中未提到的事項都必須以USB 2.0的規範為準。因此USB OTG存在的目的僅在於提供一個方式,讓兩個USB裝置得以連結。USB OTG 1.0中提到一個具備雙重角色裝置(Dual-role device)的概念。就是說一個OTG的裝置,可以當主機,也可以當設備端。如此一來,當兩個OTG裝置遇上的時候,就可以由其中一方當作主機,另一方當作設備端。就可以完全符合USB對兩個裝置相連的需求了。除此之外,OTG的裝置還必須具備以下的特性:
1. 有限的主機功能。
2. 為設備端時必須支援全速傳輸。
3. 為主機端時要支援全速的USB設備,但不強支援高速或是低速設備。
4. 當OTG裝置成為主機端時,並沒有辦法真的支援所有的USB裝置,因此在道義上OTG裝置必須將其所支援的設備清單列出,以利消費者選擇可連接的設備。
5. 必須告知使用者傳輸的狀態。
6. 至少能提供8mA的電源給設備端。
7. 支援SRP(Session request protocol):
當OTG裝置成為主機端時,可以將Vbus的電源切斷,以節省電源。SRP則是提供一個機制讓設備端告知主機端重新提供電源,並且恢復在USB線路上的相關活動
8. 支援HNP(Host negotiation protocol):
當兩個OTG裝置相連結時,由於兩個裝置都有當主機端的能力,所以會先由連接兩個裝置的纜線(Mini-A plug to Mini-B plug)決定哪一個裝置(連接Mini-A plug的裝置)在一開始的時候扮演主機(A-device)的角色,另一裝置則是扮演設備端(B-device)的角色。當兩個裝置經由纜線結合在一起之後,若是想要互換角色,則必須經由HNP所定義的訊號溝通過之後,才可以互換角色。
9. 僅能有一個且唯一的一個Mini-AB插座。
USB OTG提供了一個讓兩個USB裝置連結的機制,原本要由電腦做的事情,現在都要落在當主機端的OTG裝置身上。因此,為了要對應不同的設備,就需要不同的驅動程式。原本USB裝置的製造商只要熟悉自己的產品就可以了,在加入OTG的概念後,就必須要對想要連結的設備有一定的了解。如此便能夠使用相同資料格式,相同傳輸方式來傳輸資料。藉由這些不同裝置類別的規範,就有機會大大簡化在OTG裝置上對驅動程式的需求。OTG裝置只要能夠支援某一個類別,就可以支援符合該類別的所有設備。