usb-OTG-ADP-HNP-SRP

1. USB速率

這得從USB的發展過程說起。
USB 1.0:最早的USB標準,有187.5Kbps和1.5Mbps兩種傳輸速率,最高傳輸速率1.5Mbps
USB 1.1:傳輸速率爲USB 1.0標準的8倍,有1.5Mbps和12Mbps兩種傳輸速率,最高速率12Mbps
USB 2.0:較新的USB標準,最高傳輸速率爲480Mbps
USB 3.0:據說是最新的USB標準,最高傳輸速率爲4.8Gbps(還沒見過這種設備)
可能是出於兼容性方面的原因,USB 2.0支持三種傳輸速率:
low speed:1.5Mbps(HID設備,例如鼠標、鍵盤、遊戲手柄,通常使用這種速率)
full speed:12Mbps
high speed:480Mbps

2. USB OTG

想了解USB OTG的工作原理,需要知道三個協議:
ADP:Attach Detection Protocol
HNP:Host Negotiation Protocol
SRP:Session Request Protocol

2.1 ADP

USB主從設備或USB OTG設備,如何知道USB總線上有沒有掛接其它USB設備呢?USB設備會週期性地檢測USB端口的電容值,如果USB端口電容值變化足夠大,大到可以確定有新的USB設備接入了,那麼USB A型設備會爲USB總線提供電源,並檢測設備連接;而USB B型設備則發起一個會話請求(SRP),並等待A型設備的響應。

2.2 HNP

2.2.1 主從設備是如何確定的?

USB OTG既可以做主設備,也可以做從設備。在系統運行過程中,OTG設備的角色(主設備or從設備)可以轉換,但是,在系統剛啓動時,OTG設備的角色是確定的。如何確定的呢?下面來解決這個問題 
 

上圖是幾種典型的USB接口,其中Mini-A型、Mini-B型、Micro-AB型和Micro-B型口都有五個管腳,管腳順序是
1:Vbus
2:D-
3:D+
4:ID
5:GND
若是ID管腳接地,則該設備爲A設備;若ID管腳懸空,則該設備是B設備,其中A設備是initial host,B設備是initial peripheral。即系統剛啓動時,A設備是主設備,B設備是從設備。如下圖所示,左邊的設備是B設備,右邊的USB設備是A設備。
 

值得注意的是,在系統運行的過程中,USB設備的主從角色可能會變化,但是A設備/B設備的名稱不會變化。也就是說,在系統運行過程中,A設備有可能從主設備變成從設備,但是A設備仍然叫做A設備;B設備類似。
另外,A設備始終是供電設備,而與A設備扮演的角色無關。即使A設備變成了從設備,仍然由A設備供電。

2.2.2 爲什麼需要更換主從設備的角色呢?

 
上圖爲一個需要互換角色的例子。左邊是一臺PDA,PDA裏有打印機驅動,但由於它是B設備,因此初始角色是從設備。很顯然,在打印服務的過程中,有必要互換PDA和打印機的角色。
我們在開發i.MX233開發板的過程中,ID管腳沒有引出來,因此,默認i.MX233是從設備。可是USB攝像頭也是從設備,這樣i.MX233沒有辦法轉換成主設備,從而i.MX233無法使用USB Camera。

2.3 SRP


正如剛剛提到的那樣,A設備一直供電,即使A設備通過HNP協議由主設備變成從設備了,也一直由A設備供電。然而,在嵌入式系統裏,尤其是隻有電池供電的系統裏,功耗是一個很重要的性能指標。A設備可以通過停止供電終止會話,進而降低功耗。這樣就產生了一個問題,如果B設備要求開啓一個會話,該怎麼辦?
SRP可以解決這個問題。根據SRP,B設備可以請求A設備打開電源,開始一個會話(session)。
 
如上圖所示,B設備中的SRP PULSE會先給D+引腳一個脈衝,之後再給VBUS一個脈衝,這樣可以喚醒A設備。相應的,右邊的A設備檢測到D+或VBUS上的信號,則開啓VBUS並啓動會話。

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