Something About USB On-The-Go

來源:互聯網
上載者:User
USB On-The-Go是什麼

    USB介面的裝置現在是隨處可見了,印表機、相機、手機、MP3等幾乎目前能想到的消費類電子裝置都具有USB介面。USB傳輸速率快,介面簡單、支援熱插拔的特性,使其在諸多介面中脫穎而出,大有統一天下之勢。但傳統的USB協議(USB2.0)限制了在這龐大的裝置群中必須有一個HOST作為主子,通常是PC。兩個外設之間的資料交換必須通過這個主子中轉才能完成,效率較低,不大方便。隨著嵌入式裝置的爆炸式增長,兩個USB裝置之間直接進行資料交換的需求越來越強烈,USB On-The-Go就應運而生了。一些手機、PDA和行動裝置的廠商在USB2.0的基礎上合作開發了USB On-The-Go(OTG)。USB OTG首先解決了USB裝置之間點對點的資料交換問題,擺脫了附庸於USB HOST的繁瑣。舉例來說,有了USB OTG,數位相機可以直接將照片通過印表機列印出來,而不必先將照片拷貝到PC上,再由PC控制印表機列印。

    USB OTG還有以下幾個特性:

n         介面更小巧,有效減小了電子產品的體積

n         既能充當HOST又能用做Device,即DRD(Dual-role-devices)

n         OTG裝置依然可以串連到PC上用做普通的外設,即POD(Peripheral-Only Device)

n         功耗更低,以延長採用電池供電的USB裝置的待機時間

USB OTG介面

    傳統的USB裝置分為A和B兩種。A介面的裝置提供電源VBus,用做主子。B介面的裝置在通訊過程中作為外設。無論是A介面、B介面還是各自的Mini介面,雖然外形有些差別,但使用的引腳都遵循以下定義:

    1腳:VCC電源

    2腳:D-差分負極

    3腳:D+差分正極

    4腳:GND接地

USB OTG增加了一個ID引腳,它的介面(Mini-AB)定義如下:

1腳:VBus

2腳:D-

3腳:D+

4腳:ID

5腳:GND

USB OTG通過ID訊號線來識別是Mini A還是Mini B插頭。為了使用方便,不同的接外掛程式顏色不一樣:Mini A採用白色,Mini B採用黑色,Mini AB採用灰色。

USB OTG協議簡述

USB OTG中引入了兩個新的協議, SRP(Session Request Protocol)和HNP(Host Negotiation Protocol),即會話請求協議和主機交流協議。

    SRP用於B裝置向A裝置請求建立會話和使用匯流排。OTG系統中的A裝置一般採用電池供電,因此,OTG系統電源管理是非常重要的。為了節省OTG系統的功耗,OTG規定A裝置在沒有匯流排活動的時候,可以關掉VBus上的電源。這樣,當一個B裝置串連到A裝置上之後,就要初始化SRP,並發送給A裝置,請求A裝置在VBus上提供電流支援,進而進行通訊。OTG中,DRD既可作為A裝置,也可作為B裝置,因此DRD必須支援初始化SRP和響應SRP,POD只能作B裝置,所以只能初始化SRP。B裝置有兩種方式向A裝置發送請求,要求建立SRP:資料線脈衝(Data-Line Pulsing),一種是VBus脈衝(VBus Pulsing)。任何一個A裝置只要求能響應一種SRP方式,而B裝置必須能初始化兩種SRP方式。這樣就能保證,當B裝置線初始化一種SRP,A裝置無法響應時,B裝置能用另一種SRP方式。

    HNP用於兩個OTG裝置互連時角色切換。為了實現HNP,A裝置必須首先允許B裝置通過OTG最新定義的Set_Feature命令來控制匯流排。一旦該請求被A裝置接受,B裝置就可以對匯流排進行控制。如果A裝置想給B裝置一個機會來控制匯流排,它將中止對匯流排的操作,將匯流排掛起。接著B裝置就將D+拉低來終止以前的串連。接著,A裝置啟用位於D+處的上拉寄存器,完成這個轉換。此後,B裝置就將作為主控裝置使用,而A裝置將作為外圍裝置使用。同樣,B裝置也可以通過將匯流排掛起並啟用D+上拉寄存器,A裝置探測到匯流排上的變化後,清除D+上拉寄存器並重新作為主控裝置使用。簡而言之,兩個OTG裝置互連時,可以通過HNP協議協商主從地位。

WinCE下USB OTG驅動概述

    USB OTG的軟體結構包括3部分:

u       OTG控制器的驅動:包括SRP和HNP

u       OTG的外設驅動:實現標準的USB類,來實現特定的USB外設功能

u       OTG系統HOST驅動:包括HOST驅動、作業系統支援軟體和支援外設的類庫。

    對於移植這一部分的驅動來說,需要注意ID偵測訊號、VBUS的控制訊號,這兩個訊號一般串連到MCU的GPIO上,根據硬體修改,而SRP和HNP一般由廠商完成,無需修改。我在調試這一部分時碰到的主要問題是,插入隨身碟後,OTG驅動檢測到隨身碟插入,並提供了VBUS的供電,但卻馬上停止通訊,無法正常使用隨身碟,後來經過進一步調試發現是MCU的OTG_VBUS的供電不足5V導致,不能用時的電壓為4.6V左右,串連到5V後就沒有問題了,目前USB OTG支援隨身碟,USB鍵鼠似乎是不能用的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.