USB On-The-Go 技術(shù)概述
1新的協(xié)議
OTG補(bǔ)充規(guī)范對(duì)USB2。0的最重要的擴(kuò)展是其更具節(jié)能性的電源管理和允許設(shè)備以主機(jī)和外設(shè)兩種形式工作。OTG有兩種設(shè)備類(lèi)型:兩用OTG設(shè)備(Dual-roledevice)和外設(shè)式OTG設(shè)備(Perip-heral-onlyOTGdevice)。兩用OTG設(shè)備完全符合USB2。0規(guī)范,同時(shí)它還要提供有限的主機(jī)能力和一個(gè)MiniAB插座、支持主機(jī)流通協(xié)議(HostNegotiationProtocol,HNP),并和外設(shè)式OTG設(shè)備一樣支持事務(wù)請(qǐng)求協(xié)議(SessionRequestProtocolSRP)。當(dāng)作為主機(jī)工作時(shí),兩用OTG設(shè)備可在總線上提供8mA的電流,而以往標(biāo)準(zhǔn)主機(jī)則需要提供100~500mA的電流。
兩個(gè)兩用OTG設(shè)備連接在一起時(shí)可交替以主機(jī)和從機(jī)的方式工作,這個(gè)特點(diǎn)兼容了現(xiàn)有USB規(guī)范主機(jī)/外設(shè)的結(jié)構(gòu)模型。OTG主機(jī)同樣負(fù)責(zé)初始化數(shù)據(jù)通信的任務(wù),比如:總線復(fù)位、獲取USB各種描述符和配置設(shè)備。這些配置完成后,兩個(gè)OTG設(shè)備便可以分別以主機(jī)和從機(jī)方式傳輸信息,兩個(gè)設(shè)備主從角色交換的過(guò)程由主機(jī)傳輸協(xié)議(HNP)定義。以下以?xún)捎肙TG設(shè)備為例討論SRP和HNP。
1。1事務(wù)請(qǐng)求協(xié)議SRP
在以往的USB系統(tǒng)運(yùn)行過(guò)程中,主機(jī)提供5V的電源和不低于100mA的總線電流。當(dāng)OTG主機(jī)(指以主機(jī)方式工作的兩用OTG設(shè)備,又稱(chēng)A-device)連接到有線電源時(shí)這種方法是適用的,但像手機(jī)這樣的自供電移動(dòng)設(shè)備則不能承受如此大的電能浪費(fèi)。為了節(jié)約電源延長(zhǎng)電池的使用壽命,當(dāng)總線上沒(méi)有活動(dòng)時(shí),OTG主機(jī)將掛起總線電源VBUS。SRP協(xié)議可使OTG從機(jī)(指外設(shè)式設(shè)備或者以外設(shè)方式工作的兩用OTG設(shè)備,又稱(chēng)B-device,此處指后者)請(qǐng)求A-device重新使能VBUS,而后A-device使用HNP協(xié)議交換兩個(gè)設(shè)備的工作方式,這兩步完成后由新的OTG主機(jī)開(kāi)始事務(wù)傳輸。B-device可在前一事務(wù)結(jié)束2ms后的任意時(shí)間開(kāi)始SRP。
B-device將先后執(zhí)行數(shù)據(jù)線脈沖調(diào)制(data-linepul-sing)和VBUS脈沖調(diào)制(VBUSpulsing)。它通過(guò)使能數(shù)據(jù)線上拉電阻(全速和高速設(shè)備為D+,低速設(shè)備為D-)5~10ms實(shí)現(xiàn)前者,后者通過(guò)驅(qū)動(dòng)VBUS實(shí)現(xiàn)。VBUS必須要有足夠長(zhǎng)的時(shí)間對(duì)其電容充電,這個(gè)時(shí)間應(yīng)能保證不大于13μF的電容充電至2。1V(OTG設(shè)備的電容是6。5μF或更?。?,從而不會(huì)對(duì)標(biāo)準(zhǔn)主機(jī)的96μF或更高的電容充電至2。0V。該限制保證了從B-device引來(lái)的VBUS電流不會(huì)破壞標(biāo)準(zhǔn)主機(jī)的端口。
A-device檢測(cè)到數(shù)據(jù)線脈沖調(diào)制或者VBUS脈沖調(diào)制后,首先復(fù)位總線,然后發(fā)送Set_feature命令而先不進(jìn)行設(shè)備的枚舉,此時(shí)B-device尚處在默認(rèn)的從機(jī)狀態(tài)。如果Set_feature命令成功執(zhí)行,說(shuō)明B-device為兩用OTG設(shè)備,A-device(使用HNP協(xié)議)掛起VBUS準(zhǔn)備讓B-device交換為主機(jī)方式接管總線。如果Set_feature命令執(zhí)行失敗,說(shuō)明B-device為外設(shè)式OTG設(shè)備,于是A-device使能VBUS準(zhǔn)備開(kāi)始一個(gè)傳輸事務(wù)。此時(shí),A-device只是被喚醒,并未改變工作方式。當(dāng)A-device認(rèn)為總線上沒(méi)有傳輸需要時(shí),掛起VBUS以結(jié)束該事務(wù)。這種A-device自動(dòng)檢測(cè)B-device是否支持HNP協(xié)議的特征稱(chēng)為“NoSilentFailure”。
1。2主機(jī)流通協(xié)議HNP
當(dāng)兩用設(shè)備連接了一個(gè)Mini-A插頭或者M(jìn)ini-B插頭時(shí),它相應(yīng)的便以O(shè)TG主機(jī)或者OTG外設(shè)的默認(rèn)方式工作。A-device為默認(rèn)主機(jī),所以由它提供VBUS電源,且在檢測(cè)到有設(shè)備接入時(shí)復(fù)位總線、枚舉并配置B-device。
A-device在完成對(duì)B-device的使用后,可以通過(guò)查詢(xún)B-device的OTG性能描述符來(lái)判斷它是否支持HNP協(xié)議(即是否為兩用OTG設(shè)備)。如支持HNP,B-device將返回有效的OTG性能描述符,A-device則產(chǎn)生一個(gè)Set_feature命令(即HNP_Enable)來(lái)通知B-device可以在總線掛起的時(shí)候以主機(jī)方式工作,隨后A-device掛起總線。
B-device通過(guò)上拉電阻(全速時(shí))或者下拉電阻(高速時(shí))拉低D+以示連接斷開(kāi)。隨后,作為對(duì)B-device斷開(kāi)的響應(yīng),A-device使能它的數(shù)據(jù)線并開(kāi)始以從機(jī)方式工作。完成這些轉(zhuǎn)換后,B-device和A-device便各自以主機(jī)角色和外設(shè)角色使用總線。如果該B-device屬于兩用OTG設(shè)備且A-device不再使用它了,A-device便重發(fā)Set_feature命令并掛起總線。若B-device申請(qǐng)角色轉(zhuǎn)換時(shí)出錯(cuò),A-device則拉低VBUS以結(jié)束該事務(wù)。當(dāng)B-device正常結(jié)束傳輸事務(wù)時(shí)便掛起VBUS使能其上拉電阻,重新以從機(jī)方式運(yùn)行。A-device檢測(cè)到總線掛起后,發(fā)出一個(gè)連接斷開(kāi)信號(hào)并重新以主機(jī)方式工作。
2連接器和電纜
2。1連接器
USBIF在OTG中定義了更小的連接器,可以同時(shí)用于主機(jī)式和外設(shè)式的設(shè)備、具有更低的電源需求、擴(kuò)展的電源保護(hù)模式和利于上層軟件開(kāi)發(fā)的簡(jiǎn)潔設(shè)計(jì)。
OTG和現(xiàn)有的USB2。0規(guī)范完全兼容,一個(gè)主要的機(jī)械上的改進(jìn)是它的新式連接器。USB2。0定義了三種連接器對(duì)(插頭和插座):Standard-A、Standard-B和Mini-B。Mini-B連接器是專(zhuān)為較小的外設(shè)(如移動(dòng)電話等)開(kāi)發(fā)的。OTG規(guī)范增加了第四種插頭?Mini-A,兩種插座:Mini-A和Mini-AB。這些連接器比最初的USB連接器要小許多(如:Mini-A插頭截面積只有Standard-A插頭的38%),更適合于便攜式設(shè)備。
Mini-AB插座用于兩用設(shè)備。Mini-A新增的ID腳(以前的USB插頭不含此腳)在連接Mini-AB時(shí)接地短路,而Mini-B則使該腳斷開(kāi),這樣兩用設(shè)備便可識(shí)別連接設(shè)備的類(lèi)型以決定設(shè)備的默認(rèn)角色。
評(píng)論