USB On-The-Go 工作原理分析和應(yīng)用研究
1994年,Intel,Compaq等七家軟硬件全球知名企業(yè)為了突破當(dāng)時(shí)PC使用串口和并口傳輸速度的限制,成立了通用串行總線開(kāi)發(fā)者論壇(USB Implementers Forum, USB IF),并在1994年11月提出了USB 0.7版,到了1998年開(kāi)始出現(xiàn)了支持USB 1.1的設(shè)備,他的高速性(USB1.1支持1.5 Mb/s和12 Mb/s兩種速度[1])和易用性迅速使之成為P C外設(shè)的寵兒。為了對(duì)抗1394速度的優(yōu)勢(shì)(1394可以達(dá)到400 Mb/s),1999年提出了US B 2.0規(guī)范的思想,2000年4月USB IF推出USB 2.0。USB 2.0向下兼容1.1,提供3種速度 ,最高可以達(dá)到480 Mb/s[2]。
USB 1.1和2.0都是必須依賴于PC的,為了在一定程度擺脫對(duì)PC的完全依賴,有一定程度的主機(jī)功能,2001年12月推出了OTG 1.0,經(jīng)過(guò)6次修改,于2003年6月推出了USB OTG 1.0 a,正式成為一個(gè)達(dá)到市場(chǎng)實(shí)用的規(guī)范[3]。
本文中分析討論了USB 2.0補(bǔ)充規(guī)范OTG的工作原理,并且針對(duì)目前數(shù)碼相機(jī)伴侶存在的問(wèn)題,作者提出了自己的解決方案。1USB OTG的工作原理
OTG補(bǔ)充規(guī)范對(duì)USB 2.0的最重要的擴(kuò)展是其更具節(jié)能性的電源管理和允許設(shè)備以主機(jī)和外設(shè)兩種形式工作。OTG有兩種設(shè)備類型:兩用OTG設(shè)備(Dualrole device)和外設(shè)式OTG設(shè)備(Peripheralonly OTG device) 。兩用OTG設(shè)備完全符合USB 2.0規(guī)范,同時(shí),他還要提供有限的主機(jī)能力和一個(gè)MiniAB插座、支持主機(jī)流通協(xié)議(Host Negotiatio n Protocol, HNP),并和外設(shè)式OTG設(shè)備一樣支持事務(wù)請(qǐng)求協(xié)議(Session Request Protocol, SRP)。當(dāng)作為主機(jī)工作時(shí),兩用OTG設(shè)備可在總線上提供8 mA的電流,而以往標(biāo)準(zhǔn)主機(jī)則需要 提供100~500 mA的電流。
2個(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è)備。這些配置完成后,2個(gè)OTG設(shè)備便可以分別以主機(jī)和從機(jī)方式傳輸信息,2個(gè)設(shè)備主從角色交換的過(guò)程由主機(jī)傳輸協(xié)議(HNP)定義。
下面從5個(gè)方面說(shuō)明OTG的工作原理。
1.1主機(jī)(Adevice)和從機(jī)(Bdevice)的初始功能
設(shè)備的初始功能是通過(guò)定義連接器來(lái)實(shí)現(xiàn)的。OTG定義了一個(gè)叫做MiniAB的袖珍插孔,他能直接接入MiniA或者M(jìn)iniB插口,MiniAB有一個(gè)ID引腳 上拉至電源端,MiniA插頭有一個(gè)與地連接好的ID(R<10 Ω),Mini B插頭有一個(gè)與地連接的開(kāi)路ID引腳(R>100 kΩ)。當(dāng)2個(gè)OTG設(shè)備連接到一起的時(shí)候 ,MiniA插頭邊的ID引腳會(huì)注入一個(gè)“0”狀態(tài),MiniB插頭邊的ID引腳為 “1”,ID為0的OTG設(shè)備默認(rèn)為主機(jī)(Adevice),ID為1的OTG設(shè)備默認(rèn)為從機(jī)(B device)。圖1對(duì)上述內(nèi)容進(jìn)行了圖解[4]。 1.2對(duì)話請(qǐng)求協(xié)議SRP(Session Request Protocol)
這個(gè)協(xié)議允許Adevice(可以是電池供電)在總線未使用時(shí)通過(guò)切斷Vbus來(lái)節(jié)省電源消耗,也為Bdevice啟動(dòng)總線活動(dòng)提供了一種方法。任何一個(gè)Adevice, 包括PC或便攜式電腦,都可以響應(yīng)SRP;任何一個(gè)Bdevice,包括一個(gè)標(biāo)準(zhǔn)USB外設(shè), 都可以啟動(dòng)SRP;要求一個(gè)雙重功能設(shè)備既能啟動(dòng)SRP,又能響應(yīng)SRP。
1.3主機(jī)流通協(xié)議HNP(Host Negotiation Protocol)
HNP是一種用來(lái)實(shí)現(xiàn)Adevice和Bdevice主機(jī)/從機(jī)轉(zhuǎn)換的協(xié)議(實(shí)際上是電纜的反轉(zhuǎn))。主/從機(jī)功能交換的結(jié)果表現(xiàn)在下列過(guò)程中:
(1)利用上拉電阻來(lái)發(fā)送信號(hào)給從機(jī)。
(2)Adevice可在Bdevice上設(shè)置“HNP Enable”特性。
(3)Bdevice斷開(kāi)上拉。
(4)ADevice與上拉電阻相連,表明Adevice從屬于從機(jī)。
(5)Adevice給Vbus供電。
(6)Bdevice檢測(cè)Adevice的上拉。
(7)復(fù)位/列舉/使用Adevice。
1.4驅(qū)動(dòng)程序[5]
與PC主機(jī)不同,便攜式設(shè)備沒(méi)有便捷的方式和足夠的空間裝載新的驅(qū)動(dòng)程序。因此,OTG 規(guī)范要求每個(gè)兩用OTG設(shè)備有一個(gè)支持的外設(shè)式OTG目標(biāo)設(shè)備的列表,列表中包括設(shè)備的類型和制造商等信息。
與PC機(jī)不同,OTG兩用設(shè)備的驅(qū)動(dòng)程序棧由USB主機(jī)棧和USB設(shè)備棧構(gòu)成以滿足兩種工作方式的需要。OTG驅(qū)動(dòng)程序通過(guò)連接器的不同或者是否有NHP交換設(shè)備的工作方式來(lái)決定使用USB主機(jī)棧還是USB設(shè)備棧。
當(dāng)OTG兩用設(shè)備以主機(jī)方式工作時(shí),USB主機(jī)棧工作。其中的主機(jī)控制器驅(qū)動(dòng)程序負(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)用層程序通過(guò)OTG驅(qū)動(dòng)程序開(kāi)始或者結(jié)束一個(gè)傳輸事務(wù), 通過(guò)USB主機(jī)?;蛟O(shè)備棧與硬件層交換數(shù)據(jù)。
1.5數(shù)據(jù)流模型
OTG主機(jī)和設(shè)備被劃分為功能層、USB設(shè)備層和USB接口層3個(gè)不同層次,如圖2所示[5 ]。USB接口層為OTG主機(jī)和OTG設(shè)備提供物理連接,USB系統(tǒng)軟件使用主機(jī)控制器來(lái)管理主機(jī)與 USB設(shè)備的數(shù)據(jù)傳輸。USB系統(tǒng)軟件相對(duì)于主機(jī)控制器而言,處理的是以客戶角度觀察的數(shù)據(jù)傳輸及客戶與設(shè)備的交互。USB設(shè)備層為USB主機(jī)系統(tǒng)軟件提供一個(gè)可用的邏輯設(shè)備。主機(jī)通過(guò)與之功能匹配的客戶軟件實(shí)現(xiàn)其各種功能。
OTG設(shè)備與以往的USB設(shè)備一樣有兩種通道:數(shù)據(jù)流通道和消息通道。數(shù)據(jù)流通道沒(méi)有定義好的結(jié)果,而消息通道則有固定的結(jié)構(gòu)。但是,每個(gè)通道都有一定的帶寬、傳輸類型、傳輸方向和緩沖區(qū)大小。自供電設(shè)備配置一個(gè)默認(rèn)的控制通道,由他提供該設(shè)備的配置和狀態(tài)等信息。2目前數(shù)碼相機(jī)伴侶存在的問(wèn)題及其解決方案
上面對(duì)USB OTG的工作原理的主要部分進(jìn)行了說(shuō)明,下面將探討USB OTG的應(yīng)用。
當(dāng)前隨著中高檔數(shù)碼設(shè)備如數(shù)碼相機(jī)的價(jià)格的下降,已經(jīng)開(kāi)始普及到千家萬(wàn)戶,統(tǒng)計(jì)表明 ,2003年上半年數(shù)碼相機(jī)的銷量達(dá)到38.5萬(wàn)臺(tái),年底有望突破100萬(wàn)臺(tái),其進(jìn)口量比去年同期增加了53倍,而現(xiàn)在一般使用的數(shù)碼相機(jī)象素在200萬(wàn)~400萬(wàn),尤其以320萬(wàn)象素左右的為市場(chǎng)熱點(diǎn),如果要拍攝高質(zhì)量的照片,每張會(huì)超過(guò)1M,即使是256M的存儲(chǔ)空間也會(huì)很快消耗光了,而現(xiàn)在市場(chǎng)上CF卡等存儲(chǔ)介質(zhì)的價(jià)格一直高居不下,所以就應(yīng)運(yùn)而生了一種叫做數(shù)碼相機(jī)伴侶(典型的產(chǎn)品如Phototainer,韓國(guó)Innoplus公司產(chǎn)品)的電子消費(fèi)類產(chǎn)品。 這類產(chǎn)品能夠提供以下功能:
(1)通過(guò)讀卡機(jī),能把各種存儲(chǔ)介質(zhì)(比如SD卡,CF卡等)上的內(nèi)容拷貝到移動(dòng)硬盤中去 ,為外出旅行的人們提供了極大的方便。
(2)通過(guò)USB口,可以在計(jì)算機(jī)上和數(shù)碼相機(jī)伴侶之間進(jìn)行數(shù)據(jù)拷貝、刪除等功能。
(3)提供大容量的存儲(chǔ)空間(從10 GB到40 GB都有),外出旅行的人再也不必為存儲(chǔ)卡的容量操心了,大可放心的拍攝。
作者認(rèn)為這類產(chǎn)品美中不足的是:
(1)他讀取數(shù)碼相機(jī)存儲(chǔ)介質(zhì)的方法是通過(guò)讀卡機(jī)來(lái)實(shí)現(xiàn)的,也就是必須把數(shù)碼相機(jī)的存儲(chǔ)介質(zhì)取下來(lái),插到數(shù)碼相機(jī)伴侶上的插口里,不但很不方便,而且注定了數(shù)碼相機(jī)伴侶的尺寸重量不會(huì)很小,由于存在不同存儲(chǔ)介質(zhì)還必須有不同類型的插口(一般都是要兩種插口 )。
(2)為了兼容多種存儲(chǔ)介質(zhì),還必須要配置轉(zhuǎn)接設(shè)備。
(3)耗電量也很大的,一般來(lái)說(shuō),一次充電只能用1~2 h。?
(4)當(dāng)前許多此類產(chǎn)品還采用USB 1.1接口,傳輸速度顯然不可能達(dá)到用戶的期望。
針對(duì)上面存在的問(wèn)題,作者考慮把USB OTG技術(shù)應(yīng)用到數(shù)碼相機(jī)伴侶上來(lái),從以下幾個(gè)方面進(jìn)行改進(jìn):
(1)采用PHILIPS ISP1362芯片[4]來(lái)實(shí)現(xiàn)USB OTG功能。優(yōu)點(diǎn)如下:
①利用USB OTG的雙重角色功能,使之可以在連接到其他便攜式數(shù)碼產(chǎn)品或者存儲(chǔ)介質(zhì)時(shí)可以作為主機(jī),來(lái)完成數(shù)據(jù)從其他外設(shè)拷貝到移動(dòng)硬盤中;當(dāng)他連接到PC中時(shí),就可以作為普通的USB設(shè)備,由PC控制,進(jìn)行數(shù)據(jù)的操作。
②采用USB OTG,整體結(jié)構(gòu)將發(fā)生翻天覆地的變化,將讀取數(shù)據(jù)等工作將由芯片完成 ,也就省去了很多關(guān)系存儲(chǔ)卡的工作,所以可以將尺寸和重量做的很小,而且在使用的時(shí)候也是很方便的,只要使用USB電纜連接移動(dòng)硬盤和數(shù)碼相機(jī)伴侶等設(shè)備就可以了。
③USB OTG的優(yōu)秀電源管理能力也能使電池的使用時(shí)間更加持久。
(2)可以考慮采用大容量微硬盤,一方面滿足大容量的存儲(chǔ)需求,另一方面可以把整個(gè)數(shù)碼相機(jī)伴侶體積大幅度的減小。
(3)USB 2.0在速度上的優(yōu)勢(shì)已經(jīng)得到了市場(chǎng)的積極支持,所以采用的USB 2.0接口保證了數(shù)據(jù)傳輸?shù)母咝А?
經(jīng)過(guò)改進(jìn)后的數(shù)碼相機(jī)伴侶與目前市面上的數(shù)碼相機(jī)伴侶相比,具有如下特點(diǎn):
(1)PHILIPS ISP1362芯片來(lái)實(shí)現(xiàn)USB OTG功能,無(wú)需PC就可把圖像等數(shù)據(jù)拷貝到硬盤上。
(2)內(nèi)置1英寸大容量微硬盤,滿足現(xiàn)在數(shù)據(jù)大量存儲(chǔ)的要求。
(3)無(wú)需取下數(shù)碼相機(jī)等數(shù)碼設(shè)備的存儲(chǔ)卡,使用方便。
(4)采用USB 2.0規(guī)范,最高速度可以達(dá)到480 Mb/s。?
(5)可以充當(dāng)便攜式移動(dòng)硬盤,完成數(shù)據(jù)備份等工作。
(6)簡(jiǎn)單控制,只有電源和復(fù)制按鈕,即可輕松實(shí)現(xiàn)對(duì)存儲(chǔ)數(shù)據(jù)的操作。
(7)采用微硬盤,典型的產(chǎn)品如Magicstore,體積可以更小,更時(shí)尚誘人。
(8)使用LCD顯示各種狀態(tài)。
(9)由于使用了OTG的特別供電模式,電源耐久性會(huì)有很好表現(xiàn)。
具有USB OTG功能的數(shù)碼相機(jī)伴侶由于其具有海量存儲(chǔ)、存取數(shù)據(jù)、存取速度快和出色的電源管理等特點(diǎn),不僅可以充當(dāng)便攜式移動(dòng)硬盤,更為外出旅行的人提供了極大的方便。3結(jié)語(yǔ)
分析討論了USB 2.0補(bǔ)充規(guī)范OTG的工作原理,作者針對(duì)目前數(shù)碼相機(jī)伴侶存在的問(wèn)題提出了應(yīng)用USB OTG技術(shù)進(jìn)行改進(jìn)的方案。USB OTG已受到Cypress等芯片供應(yīng)商、軟件開(kāi)發(fā)商和設(shè)備制造商的廣泛支持,該方案從理論上和實(shí)際應(yīng)用上都是實(shí)際可行的,非常具有應(yīng)用價(jià)值。USB OTG規(guī)范是USB 2.0規(guī)范的補(bǔ)充而不是替代品。PC主機(jī)和標(biāo)準(zhǔn)外設(shè)并沒(méi)有被取代, 因?yàn)樾碌腛TG僅適用于需要具有主機(jī)功能和更小體積的便攜式設(shè)備。OTG在這些外設(shè)間引入了點(diǎn)對(duì)點(diǎn)的(point to point)通信方式,這使得便攜式儀器的發(fā)展有了更加廣闊的空間,OTG不久將會(huì)成為新一代的“移動(dòng)計(jì)算”解決方案。
參考文獻(xiàn) [1] Universal serial bus specification.Revision 1.1.Compaq Computer Corporatio n, Intel Corporation, Microsoft Corporation, NEC Corporation, September 1998.
[2] Universal serial bus specification.Revision 2.0.Compaq Computer Corporatio n, Intel Corporation, Microsoft Corporation, NEC Corporation etc, Apri l 2000.??
[3] On-The-Go supplement to the USB 2.0 specification Revisio n 1.0aUSB Implementers Forum,Inc(USB-IF),June 2003??
[4]ISP1362 USBOTG.廣州周立功單片機(jī)發(fā)展公司,2003,5?
[5] 楊智君,田地,余青松,等.USB On-The-Go 技術(shù)概述[J].電子技術(shù)應(yīng) 用,2003,(6):44-49.