1994年,Intel,Compaq等七家軟硬體全球知名企業為了突破當時PC使用串口和並口傳輸速度的限制,成立了通用串行總線開發者論壇(USB Implementers Forum, USB IF),並在1994年11月提出了USB 0.7版,到了1998年開始出現了支持USB 1.1的設備,他的高速性(USB1.1支持1.5 Mb/s和12 Mb/s兩種速度)和易用性迅速使之成為P C外設的寵兒。為了對抗1394速度的優勢(1394可以達到400 Mb/s),1999年提出了US B 2.0規範的思想,2000年4月USB IF推出USB 2.0。USB 2.0向下兼容1.1,提供3種速度 ,最高可以達到480 Mb/s。
USB 1.1和2.0都是必須依賴於PC的,為了在一定程度擺脫對PC的完全依賴,有一定程度的主機功能,2001年12月推出了OTG 1.0,經過6次修改,於2003年6月推出了USB OTG 1.0 a,正式成為一個達到市場實用的規範。
本文中分析討論了USB 2.0補充規範OTG的工作原理,並且針對目前數位相機伴侶存在的問題,作者提出了自己的解決方案。
1、USB OTG的工作原理
OTG補充規範對USB 2.0的最重要的擴展是其更具節能性的電源管理和允許設備以主機和外設兩種形式工作。OTG有兩種設備類型:兩用OTG設備(Dualrole device)和外設式OTG設備(Peripheralonly OTG device) 。兩用OTG設備完全符合USB 2.0規範,同時,他還要提供有限的主機能力和一個MiniAB插座、支持主機流通協議(Host Negotiatio n Protocol, HNP),並和外設式OTG設備一樣支持事務請求協議(Session Request Protocol, SRP)。當作為主機工作時,兩用OTG設備可在總線上提供8 mA的電流,而以往標準主機則需要 提供100~500 mA的電流。
2個兩用OTG設備連接在一起時可交替以主機和從機的方式工作,這個特點兼容了現有USB 規範主機/外設的結構模型。OTG主機負責初始化數據通信的任務,比如:總線復位、獲取USB 各種描述符和配置設備。這些配置完成後,2個OTG設備便可以分別以主機和從機方式傳輸信息,2個設備主從角色交換的過程由主機傳輸協議(HNP)定義。
下面從5個方面說明OTG的工作原理。
1.1主機(Adevice)和從機(Bdevice)的初始功能
設備的初始功能是通過定義連接器來實現的。OTG定義了一個叫做MiniAB的袖珍插孔,他能直接接入MiniA或者MiniB插口,MiniAB有一個ID引腳 上拉至電源端,MiniA插頭有一個與地連接好的ID(R<10 Ω),Mini B插頭有一個與地連接的開路ID引腳(R>100 kΩ)。當2個OTG設備連接到一起的時候,MiniA插頭邊的ID引腳會注入一個「0」狀態,MiniB插頭邊的ID引腳為 「1」,ID為0的OTG設備默認為主機(Adevice),ID為1的OTG設備默認為從機(B device)。圖1對上述內容進行了圖解。
1.2對話請求協議SRP(Session Request Protocol)
這個協議允許Adevice(可以是電池供電)在總線未使用時通過切斷Vbus來節省電源消耗,也為Bdevice啟動總線活動提供了一種方法。任何一個Adevice, 包括PC或可攜式電腦,都可以響應SRP;任何一個Bdevice,包括一個標準USB外設, 都可以啟動SRP;要求一個雙重功能設備既能啟動SRP,又能響應SRP。
1.3主機流通協議HNP(Host Negotiation Protocol)
HNP是一種用來實現Adevice和Bdevice主機/從機轉換的協議(實際上是電纜的反轉)。主/從機功能交換的結果表現在下列過程中:
(1)利用上拉電阻來發送信號給從機。
(2)Adevice可在Bdevice上設置「HNP Enable」特性。
(3)Bdevice斷開上拉。
(4)ADevice與上拉電阻相連,表明Adevice從屬於從機。
(5)Adevice給Vbus供電。
(6)Bdevice檢測Adevice的上拉。
(7)復位/列舉/使用Adevice。