USB On-The-Go引腳 說明

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一般由廠商完成,無需修改。我在調試這一部分時碰到的主要 問題是,插入U盤後,OTG驅動檢測到U盤插入,並提供了VBUS的供電,但卻馬上停止通信,無法正常使用U盤,後來經過進一步調試發現是MCU的 OTG_VBUS的供電不足5V導致,不能用時的電壓爲4.6V左右,連接到5V後就沒有問題了,目前USB OTG支持U盤,USB鍵鼠似乎是不能用的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章