USB OTG 的进一步理解
一直以來在做安卓系統相關的嵌入式通訊(USB、BLE、網絡、串口等),最近在討論 OTG 問題的時候,對該規范又重新理解了一次,這里僅做一些概要和核心點說明,下方會給出具體 OTG 包含協議的參考鏈接,大同小異就不多贅述了。
1. 硬件接口
與傳統的 4 線USB接口不同,OTG接口除了 VCC、GND、D+、D-之外還多了一根 ID 線,對支持 OTG 規范的設備來說,按照連接時的 ID 線狀態分為 A 設備與 B 設備,這在傳統 USB 中是不區分的。OTG 設備連接時 ID 線被拉低(低電平)代表通訊中的 A 設備,ID 線懸空(高電平)代表通訊中的 B 設備,其中 A 設備始終為總線活動提供 VBus,這點要尤其注意,在連接時就已經確定供電與被供電的設備。
2. USB 主從關系
與傳統 USB 通訊不同,OTG 規范規定了符合其規范的設備可以使用 HNP (主機協商協議)來協商 A 設備和 B 設備的主從關系,也即 A 或者 B 都可以作為 USB 主機主動發起通信,相應另一方作為 USB 設備接受主機請求。如 B 通過協商后作主機時仍由 A 設備為總線供電。但是連接時 A 設備會默認作為 USB Host,B 設備作為 USB Slave。
3. OTG 中使用的協議
ADP(Attach Detection Probing):連接檢測協議。USB 設備會周期性檢測 USB 端口是否有設備插入,如果發起檢測的是 A 設備,那么打開電源供電。若是 B 設備,會發送 SNP 會話請求,等待 A 的響應;
SRP(Session Request Protocol):會話請求協議。為了省電,A 設備可以在總線不活動的時候選擇關閉 VBus 供電,若 B 設備需要電源來完成通訊,那么可以通過 D+、D-上的信號線脈沖與 A 設備完成 SRP 請求與回應,成功后 A 設備打開 VBus供電。
HNP(Host Negotiation Protocol):主機協商協議。如前所述,開始連接時 A 作為 Host 會枚舉 B 型設備,枚舉中收到 OTG 描述符以指示 B 是否支持這幾種協議。若支持,A 會發送 Set_Feature 使能 B 設備的該特性以允許 B 型設備根據 HNP 在總線掛起時請求作為主機運行。
有關 OTG 中的 SRP 與 HNP 詳細的可以參見下方博客:
USB OTG規范的SRP和HNP協議?
有問題可隨時給我評論或郵件,覺得有用就點贊吧~:-D
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的USB OTG 的进一步理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《数字图像处理 第三版》(冈萨雷斯)——
- 下一篇: hive中任意相邻时间段数据获取