基于USB接口的OTG應(yīng)用技術(shù)開發(fā)
(3)a設(shè)備在總線上檢測到b設(shè)備要成為主機(jī)的請求,連接其d+線上拉電阻以作為響應(yīng)。
(4)b設(shè)備發(fā)現(xiàn)d+線是高電平d 線是低電平,這表示a設(shè)備識別來自b設(shè)備的hnp請求,此時,b設(shè)備成為主機(jī)而且發(fā)送總線復(fù)位信號,開始使用總線。
(5)當(dāng)b設(shè)備使用完總線后,它停止所有的總線活動。
(6)a設(shè)備在一定的時間內(nèi)檢測到?jīng)]有總線活動時就會斷開其d+線上的上拉電阻。
(7)b設(shè)備連接其上拉電阻。
(8)a設(shè)備發(fā)現(xiàn)d+線是高電平d 線是低電平,表示b設(shè)備正在發(fā)送連接信號并準(zhǔn)備作為外圍設(shè)備響應(yīng),此時,a設(shè)備變?yōu)橹鳈C(jī),并發(fā)送總線復(fù)位信號開始使用總線。
srp
otg規(guī)范定義了兩種b設(shè)備向a設(shè)備請求開始會話的方式,稱為數(shù)據(jù)線脈沖調(diào)制(data-line pulsing)和vbus脈沖調(diào)制(vbus pulsing)。這兩種方法組成了會話請求協(xié)議(srp)。srp 的初始條件是:b設(shè)備必須在確定a設(shè)備前一次會話結(jié)束以后才能嘗試啟動新的會話。a設(shè)備通過檢測到vbus下降到低于其會話有效閾值來確定會話結(jié)束。b設(shè)備在檢測到d+和d 線至少在2ms的時間內(nèi)為低電平(se0),這確保a設(shè)備檢測到設(shè)備的斷開。數(shù)據(jù)線脈沖調(diào)制時,b設(shè)備等待滿足上述條件后,接入其數(shù)據(jù)線上拉電阻(d+或d )。雙重角色b設(shè)備只能在全速初始化srp,因此只能上拉d+。vbus脈沖調(diào)制時在滿足初始條件后驅(qū)動vbus。b設(shè)備先執(zhí)行數(shù)據(jù)線脈沖調(diào)制,然后執(zhí)行vbus脈沖調(diào)制,a設(shè)備設(shè)計為能響應(yīng)其中一種srp的方式。
linux操作環(huán)境下驅(qū)動程序的編寫
當(dāng)otg雙角色設(shè)備以主機(jī)方式工作時(如圖5),usb主設(shè)備軟件包工作,以從機(jī)方式工作時,usb設(shè)備軟件包工作。otg通過驅(qū)動連接器中的id的不同連接,或通過是否有主設(shè)備轉(zhuǎn)換協(xié)議spr以確定雙角色設(shè)備的工作方式,并確定使用usb主設(shè)備軟件包或usb設(shè)備軟件包。
評論