- 相關(guān)推薦
USB On-The-Go 技術(shù)概述論文
摘要:USB OTG(On—The—Go)是USB 2.0規(guī)范的補(bǔ)充,它使外設(shè)可以在無主機(jī)參與的情況下直接互連進(jìn)行通信工程。本文討論了USB OTG補(bǔ)充規(guī)范的新增特性,包括OTG事務(wù)請(qǐng)求協(xié)議SRP和主機(jī)流通協(xié)議HNP、連接器和電纜、兩用OTG設(shè)備和外設(shè)式OTG設(shè)備、驅(qū)動(dòng)程序以及數(shù)據(jù)流模型。
關(guān)鍵詞:USB 2.0 OTG 規(guī)范
USB的廣泛應(yīng)用其正在成為外設(shè)與PC機(jī)及膝上型電腦連接的工業(yè)標(biāo)準(zhǔn)USB外設(shè)主要是便攜式設(shè)備,隨著其數(shù)量的不斷增多,設(shè)備之間無主機(jī)參與的直接通信成為亟待解決的問題。我們開發(fā)了基于USB總線(接口芯片為Philips公司的PDIUSBD12)的數(shù)據(jù)采集系統(tǒng),取得了滿意的效果。但在開發(fā)USB1.1設(shè)備時(shí)遇到的設(shè)備互連直接通信的解決方案。USB 2.0 雖然在速度等方面有很大的改進(jìn),但同樣要依賴計(jì)算機(jī)主機(jī)進(jìn)行通信。
2001年底,USB開發(fā)者論壇(USB Implementers Forum,USB IF)發(fā)布了專門用于USB外設(shè)間“可移動(dòng)互連”的USB2.0補(bǔ)充規(guī)范USB On—The—Go,其目標(biāo)是使外設(shè)以主機(jī)的身份和另外特定的一組外設(shè)直接通信。本文中歸納USB 2.0補(bǔ)充規(guī)范OTG的相關(guān)技術(shù),并主要討論其新增特性。
1 新的協(xié)議
OTG補(bǔ)充規(guī)范對(duì)USB2.0的最重要的擴(kuò)展是其更具節(jié)能性的電源管理和允許設(shè)備以主機(jī)和外設(shè)兩種形式工作。OTG有兩種設(shè)備類型:兩用OTG設(shè)備(Dual—role device)和外設(shè)式OTG設(shè)備(Perip—heral—only OTG device) 。兩用OTG設(shè)備完全符合USB2.0規(guī)范,同時(shí)它還要提供有限的主機(jī)能力考核成績(jī)和一個(gè)MiniAB插座、支持主機(jī)流通協(xié)議(Host Negotiation Protocol,HNP),并和外設(shè)式OTG設(shè)備一樣支持事務(wù)請(qǐng)求協(xié)議(Session Request Protocol,SRP)。當(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é)補(bǔ)始化數(shù)據(jù)通信的任務(wù),比如:總線復(fù)位、獲取USB各種描述符和配置設(shè)備。這些配置完成后,兩個(gè)OTG設(shè)備便可以分別以主機(jī)和從機(jī)方式傳輸信息,兩個(gè)設(shè)備主從角色交換的過程由主機(jī)傳輸協(xié)議(HNP)定義。以下以兩用OTG設(shè)備為例討論SRP和HNP。
1.1 事務(wù)請(qǐng)求協(xié)議SRP
在以往的USB系統(tǒng)運(yùn)行過程中,主機(jī)提供5V的電源和不低于100mA的總線電流。當(dāng)OTG主機(jī)(指以主機(jī)方式工作的兩用OTG設(shè)備,又稱A—device)連接到有線電源時(shí)這種方法是適用的,但像手機(jī)這樣的自供電移動(dòng)設(shè)備則不能承受如此大的電能浪費(fèi)。為了節(jié)約電源延長(zhǎng)電池的使用壽命,當(dāng)總線上沒有活動(dòng)時(shí),OTG主機(jī)將掛起總線電源VBUS。SRP協(xié)議可使OTG從機(jī)(指外設(shè)式設(shè)備或者以外設(shè)方式工作的兩用設(shè)備,又稱B—device,此處指后者)請(qǐng)求A—device重新使能VBUS,而后A—device使用HNP協(xié)議交換兩個(gè)設(shè)備的工作方式,這兩步完成后由新的OTG主機(jī)開始事務(wù)傳輸。B—device可在前一事務(wù)結(jié)束2ms后的任意時(shí)間開始SRP,SRP的時(shí)序波形見圖形1.
B—device將先后執(zhí)行數(shù)據(jù)線脈沖調(diào)制(data—line pul—sing)和VBUS脈沖調(diào)制(VBUS pulsing) 。它通過使能數(shù)據(jù)線上拉電阻(全速和高速設(shè)備為D+,低速設(shè)備為D—)5~10ms實(shí)現(xiàn)前者,后者通過驅(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引來的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í)行,說明B—device為兩用OTG設(shè)備,A—device(使用HNP協(xié)議)掛起VBUS準(zhǔn)備讓B—device交換為主機(jī)方式接管總線。如果Set_feature命令執(zhí)行失敗,說明B—device為外設(shè)式OTG設(shè)備,于是A—device使能VBUS準(zhǔn)備開始一個(gè)傳輸事務(wù)(此時(shí),A—device只是被喚醒,并未改變工作方式)。當(dāng)A—device認(rèn)為總線上沒有傳輸需要時(shí),掛起VBUS以結(jié)束該事務(wù)。這種A—device自動(dòng)檢測(cè)B—device是否支持HNP協(xié)議的特征稱為"No Silent Failure"。
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的使用后,可以通過查詢B—device的OTG性能描述符來判斷是否支持HNP協(xié)議(即是否為兩用OTG設(shè)備)。如支持HNP,B—device將返回有效的OTG性能描述符,A—device則產(chǎn)生一個(gè)Set_feature命令(即HNP_Enable)來通知B—device可以在總線掛起的時(shí)候以主機(jī)方式工作,隨后A—device掛起總線。HNP的時(shí)序波形見圖2.
B—device通過上拉電阻(全速時(shí))或者下拉電阻(高速時(shí))拉低D+以示連接斷開。隨后,作為對(duì)B—device斷開的響應(yīng),A—device使能它的數(shù)據(jù)線并開始以從機(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è)連接斷開信號(hào)并重新以主機(jī)方式工作。
2 連接器和電纜
2.1 連接器
USB IF在OTG中定義了更小的連接器,可以同時(shí)用于主機(jī)式和外設(shè)式的設(shè)備、具有更低的電源需求、擴(kuò)展的電源保護(hù)模式和利于上層軟件開發(fā)的簡(jiǎn)潔設(shè)計(jì)。
OTG和現(xiàn)有的USB2.0規(guī)范完全兼容,一個(gè)主要的機(jī)械上改進(jìn)是它的新式連接器。USB 2.0定義了三種連接器對(duì)(插頭和插座):Standard—A、Standard—B和Mini—B。Mini—B連接器是專為較小的外設(shè)(如移動(dòng)電話等)開發(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則使該腳斷開,這樣兩用設(shè)備便可識(shí)別連接設(shè)備的類型以決定設(shè)備的默認(rèn)角色。
Mini—A和Mini—B插頭是嚴(yán)格配對(duì)適用的,如:不能將Mini—A插頭和Mini—B插座配合使用。但是,Mini—AB插座適合于以上兩種插頭。在外形上,Mini—A更新近于橢圓形,而Mini—B更接近于正方形。另外,他們的插頭和插座內(nèi)部的塑料都有顏色:Mini—A為白色,Mini—B為黑色,Mini—AB為灰色。
2.2 電纜
USB 2.0規(guī)范定義了兩種電纜:Standard—A至Standard—B和Standard—A至Mini—B。OTG新增了兩種電纜:Mini—A至Standard—B和Mini—A至Mini—B。Mini—A—to—Mini—B電纜的延遲被減少到可以在“A端”使用適配器,如:用Standard—A插頭連接OTG兩用設(shè)備需要一個(gè)Standard—A插座至Mini—A插頭的適配器,而且Mini—A插頭連接Standard—A插座時(shí)需要一個(gè)Mini—A插座至Standard—A插頭的適配器。
3 USB On—The—Go設(shè)備類型
OTG有兩種設(shè)備:兩用OTG設(shè)備和外設(shè)式OTG設(shè)備。兩用OTG設(shè)備可以作為USB外設(shè)或者USB OTG主機(jī),并且可為總線提供8mA電流。而外設(shè)式OTG設(shè)備不具備主機(jī)性能,它必須在向兩用設(shè)備(主機(jī))的請(qǐng)求獲準(zhǔn)后才能通信。兩用OTG設(shè)備必須能以全速方式運(yùn)行,而高速運(yùn)行的方式是可選的。外設(shè)型OTG設(shè)備可以設(shè)計(jì)在高速、全速和低速中的任意一種方式下工作。
3.1 兩用OTG設(shè)備(dual—role device)
兩用OTG設(shè)備都有一個(gè)Mini—AB插槽,所以一個(gè)Mini—A至Mini—B電纜可以直接將兩個(gè)兩用OTG設(shè)備連接在一起,而此時(shí)用戶不會(huì)覺察到兩個(gè)設(shè)備的不同,也不知道它們的默認(rèn)主從配置。
A—device(主機(jī))必須在事務(wù)傳輸過程中提供總線電源,這是A—device和B—device的主要不同,同時(shí)也說明了兩個(gè)設(shè)備的連接的非對(duì)等關(guān)系。A—device負(fù)責(zé)為總線供電因此它控制通信發(fā)生的時(shí)機(jī),B—device只有通過SRP協(xié)議向“主機(jī)”請(qǐng)求傳輸。
設(shè)計(jì)一個(gè)兩用設(shè)備是比較困難的,因?yàn)樗邆洌河邢薜闹鳈C(jī)能力、可作為一個(gè)全速的外設(shè)(可選的高速方式)、OTG目標(biāo)設(shè)備的列表、目標(biāo)設(shè)備的驅(qū)動(dòng)程序、支持SRP、支持HNP、一個(gè)Mini—AB插座、VBUS上不小于8mA的電流輸出、與用戶通信的方式。
3.2 外設(shè)式OTG設(shè)備(Peripheral—only OTG device)
外設(shè)式OTG設(shè)備是普通的USB外設(shè)。它有一個(gè)OTG功能描述符說明其支持事務(wù)請(qǐng)求協(xié)議SRP而且它不是兩用OTG設(shè)備。此外,外設(shè)式OTG設(shè)備只能配置Mini—B型插座或者必須有一個(gè)帶Mini—A插頭的附屬電纜,而不能使用Mini—AB型插座。
SRP是B—device(此處指外設(shè)式設(shè)備)向A—device請(qǐng)求傳輸事務(wù)時(shí)必須使用的協(xié)議。它由前面提到的數(shù)據(jù)線脈沖調(diào)制和VBUS脈沖調(diào)制(B—device產(chǎn)生)兩種方法構(gòu)成。A—device必須能檢測(cè)這兩種方法之一的信號(hào),并開始一個(gè)相應(yīng)的傳輸事務(wù)。除了固件(firmware)略有增加外,B—device同時(shí)可產(chǎn)生兩種信號(hào)的成本并沒有增加成本,而且還使實(shí)現(xiàn)A—device更加簡(jiǎn)單(只需根據(jù)實(shí)際情況提供其中一種方式的檢測(cè))。
一個(gè)OTG設(shè)備不必實(shí)現(xiàn)OTG的所有性能。例如,一個(gè)外設(shè)式OTG設(shè)備可能只需支持SRP和一個(gè)小于等于8mA的默認(rèn)電流消耗配置。其實(shí),添加對(duì)SRP支持也較簡(jiǎn)單:在VBUS上接一個(gè)驅(qū)動(dòng)電阻并增加一些簡(jiǎn)單的邏輯,從而產(chǎn)生VBUS脈沖調(diào)制信號(hào)。
另外,無論是兩用OTG設(shè)備還是外設(shè)式OTG設(shè)備,都可以和通用的許機(jī)相連,只不過兩用OTG設(shè)備具有一定的主機(jī)能力(可以驅(qū)動(dòng)特定的一組OTG設(shè)備工作)。
4 驅(qū)動(dòng)程序
與PC主機(jī)不同,便攜式設(shè)備沒有便捷的方式和足夠的空間裝載新的驅(qū)動(dòng)程序。因此,OTG規(guī)范要求每個(gè)兩用OTG設(shè)備有一個(gè)支持的外設(shè)式OTG目標(biāo)設(shè)備的列表,列表中包括設(shè)備的類型和制造商等信息。USB IF正計(jì)劃定義“OTG Type”規(guī)范。對(duì)于符合此規(guī)范的設(shè)備,OTG主機(jī)只需提供一個(gè)驅(qū)動(dòng)程序即可,這將使OTG主機(jī)無需為每個(gè)設(shè)備提供單獨(dú)的驅(qū)動(dòng)程序,從而支持盡量多的OTG外設(shè)。
與PC機(jī)不同,OTG兩用設(shè)備的驅(qū)動(dòng)程序棧由USB主機(jī)棧和USB設(shè)備棧構(gòu)成以滿足兩種工作方式的需要,見圖3.OTG驅(qū)動(dòng)程序通過連接器的不同或者不否有NHP交換設(shè)備的工作方式來決定使用USB主機(jī)棧還是USB設(shè)備棧。
當(dāng)OTG兩用設(shè)備以主機(jī)方式工作時(shí),USB主機(jī)棧工作。其中的主機(jī)控制器驅(qū)程序負(fù)責(zé)USB主機(jī)棧與硬件端點(diǎn)的數(shù)據(jù)交換,USB驅(qū)動(dòng)程序枚舉并保存設(shè)備的信息,目標(biāo)外設(shè)主機(jī)類驅(qū)動(dòng)程序支持目標(biāo)設(shè)備列表里的設(shè)備。主機(jī)類驅(qū)動(dòng)程序由芯片制造商提供,同時(shí),OTG提供通用的主機(jī)類驅(qū)動(dòng)程序(可以修改以用于非通用設(shè)備)。
當(dāng)OTG兩用設(shè)備以從機(jī)方式工作時(shí),USB設(shè)備棧工作。其中的設(shè)備控制器驅(qū)動(dòng)程序負(fù)責(zé)USB設(shè)備棧與硬件端點(diǎn)的數(shù)據(jù)交換,USB協(xié)議層負(fù)責(zé)處理USB協(xié)議規(guī)范,設(shè)備類驅(qū)動(dòng)程序的功能取決于該兩用設(shè)備的功能(如數(shù)碼照相機(jī)、存儲(chǔ)設(shè)備、打印機(jī)等)。
OTG驅(qū)動(dòng)程序負(fù)責(zé)處理兩用OTG設(shè)備的工作方式轉(zhuǎn)換,同時(shí),它還可以返回其結(jié)果(如設(shè)備是否支持HNP)并處理總線錯(cuò)誤。應(yīng)用層程序通過OTG驅(qū)動(dòng)程序開始或者結(jié)束一個(gè)傳輸事務(wù),通過USB主機(jī)棧或設(shè)備棧與硬件層交換數(shù)據(jù)。OTG兩用設(shè)備的驅(qū)動(dòng)程序棧配置見圖3.
5 數(shù)據(jù)流模型
OTG主機(jī)和設(shè)備被劃分為功能層、USB設(shè)備層和USB接口層三個(gè)不販層次,見圖4。
USB接口層為OTG主機(jī)和OTG設(shè)備提供物理連接,USB系統(tǒng)軟件使用主機(jī)控制器來管理主機(jī)與USB設(shè)備的數(shù)據(jù)傳輸。USB系統(tǒng)軟件相對(duì)于主機(jī)控制器而言,處理的是以客戶角度觀察的數(shù)據(jù)傳輸及客戶與設(shè)備的交互。USB設(shè)備層為USB主機(jī)系統(tǒng)軟件提供一個(gè)可用的邏輯設(shè)備。主機(jī)通過與之功能匹配的客戶軟件實(shí)現(xiàn)其各種功能。
OTG設(shè)備與以往的USB設(shè)備一樣的兩種通道:數(shù)據(jù)流通道和消息通道。數(shù)據(jù)流通道沒有定義好的結(jié)果,而消息通道則有固定的結(jié)構(gòu)。但是,每個(gè)通道都有一定的帶寬、傳輸類型、傳輸方向和緩沖區(qū)大小。自供電設(shè)備配置一個(gè)默認(rèn)的控制通道,由它提供該設(shè)備的配置和狀態(tài)等信息。
USB OTG規(guī)范是USB2.0規(guī)范的補(bǔ)充而不是替代品。PC主機(jī)和標(biāo)準(zhǔn)外設(shè)并沒有被取代,因?yàn)樾碌腛TG僅適用于需要具有主機(jī)功能和更小體積的便攜式設(shè)備。OTG在這些外設(shè)間引入了點(diǎn)對(duì)點(diǎn)的(point—to—point)通信方式,這使得便攜式儀器的發(fā)展有了更加廣闊的空間。USB OTG已受到Cypress等芯片供應(yīng)商、軟件開發(fā)商和設(shè)備制造商的廣泛支持,OTG不久將會(huì)成為新一代的“移動(dòng)計(jì)算”解決方案。
【USB On-The-Go 技術(shù)概述論文】相關(guān)文章:
溫拌瀝青混合料技術(shù)概述工學(xué)論文05-01
污水的除磷技術(shù)概述04-27
EZ-USB接口設(shè)備的軟配置技術(shù)05-01
USB連接技術(shù)在測(cè)量和控制中的應(yīng)用05-01
廢有機(jī)溶劑再生技術(shù)概述05-01