USB以其具有高速度、低成本、低功耗、即插即用和使用維護(hù)方便等優(yōu)點(diǎn),使得USB接口的設(shè)備正在以驚人的速度發(fā)展。隨著USB應(yīng)用領(lǐng)域的逐漸擴(kuò)大,人們對(duì)于USB的期望也越來越高,希望USB能應(yīng)用在各種計(jì)算機(jī)領(lǐng)域中,尤其是在移動(dòng)數(shù)據(jù)領(lǐng)域中,希望能通過PDA等移動(dòng)設(shè)備來直接與USB外設(shè)通信,使得USB能應(yīng)用在沒有PC的領(lǐng)域中。正是在這種新的需求下,USB On-The-Go(USB OTG)技術(shù)應(yīng)運(yùn)而生。本文主要介紹了USB OTG技術(shù)的性能特點(diǎn)、芯片類型及其主要應(yīng)用領(lǐng)域。
1 USB OTG 的性能特點(diǎn)
1.1 Mini-AB插座和插件
USB 2.0協(xié)議規(guī)范中定義了3種主機(jī)與設(shè)備的連接方式對(duì):主機(jī)上的標(biāo)準(zhǔn)A插頭和插座、外設(shè)上的標(biāo)準(zhǔn)B插頭和插座以及外設(shè)上可選擇的Mini B插頭和插座。USB OTG主要是為了應(yīng)用在便攜的移動(dòng)USB設(shè)備上,要求減小插頭和插座的大小。為此,OTG 1.0作為USB 2.0的補(bǔ)充,新定義了2種接插件:Mini A插頭和插座、Mini AB插座。Mini AB插座正是為 OTG DRD的特點(diǎn)精心設(shè)計(jì)的。Mini A插座是設(shè)計(jì)在主機(jī)上的,用于連接外設(shè)的Mini A插頭;同理,Mini B插座設(shè)計(jì)在外設(shè)上,用于連接主機(jī)的Mini B插頭。因此,不同的插座類型,區(qū)分了不同的USB 設(shè)備。當(dāng)OTG DRD需要進(jìn)行設(shè)備角色變換時(shí),就需要相應(yīng)的改變插座的類型。所以,OTG DRD 上應(yīng)該同時(shí)具有2種插座。Mini AB正是巧妙地應(yīng)用機(jī)械原理,一個(gè)插座可以連接Mini A和Mini B插頭,而系統(tǒng)又可以通過ID信號(hào)線來識(shí)別是Mini A還是Mini B插頭。同時(shí),為了方便用戶識(shí)別,對(duì)接插件的封裝顏色進(jìn)行了不同的定義:Mini A插頭和插座采用白色(White),Mini B插頭和插座采用黑色(Black),Mini AB插座采用灰色(Gray)。
1.2 OTG的電氣層協(xié)議
USB OTG通過五角接口和五線電纜傳輸數(shù)據(jù)。除了傳統(tǒng)的四個(gè)針腳外,第五個(gè)針腳為“ID”腳,ID腳決定了初始化的主從角色:在Mini-A插頭中,ID短路接地,所連設(shè)備被初始化為主;在Mini-B插頭中,ID懸空,所連設(shè)備被初始化為從。在軟件控制下,主從角色也可以利用主設(shè)備轉(zhuǎn)換協(xié)議(HNP)進(jìn)行互換。圖1為USB OTG 主從角色的設(shè)定。
圖1 USB OTG 主從角色的設(shè)定
主設(shè)備可提供低功率輸出,最小為8mA的電流到USB電纜,當(dāng)不傳輸時(shí)可關(guān)掉VBUS。在VBUS關(guān)閉時(shí),如從屬設(shè)備需要使用總線,則可請(qǐng)求主設(shè)備開啟VBUS,為VBUS重新供電。低功耗可支持USB設(shè)備在電池供電的情況下正常工作,延長電池壽命,節(jié)省能源。
1.3 OTG的軟件結(jié)構(gòu)
OTG的軟件結(jié)構(gòu)包括3部分:OTG系統(tǒng)硬件驅(qū)動(dòng),包括會(huì)話請(qǐng)求協(xié)議(SRP)
和主機(jī)交流協(xié)議(HNP);OTG系統(tǒng)外設(shè)軟件,實(shí)現(xiàn)標(biāo)準(zhǔn)的USB類,來實(shí)現(xiàn)特定的USB外設(shè)功能;OTG系統(tǒng)主機(jī)軟件,包括主機(jī)驅(qū)動(dòng)程序、操作系統(tǒng)支持軟件以及支持外設(shè)的類庫。
1.3.1 OTG硬件驅(qū)動(dòng)
●會(huì)話請(qǐng)求協(xié)議SRP
會(huì)話請(qǐng)求協(xié)議(Session Request Protocol,簡(jiǎn)寫為 SRP)用于B設(shè)備向A設(shè)備請(qǐng)求建立會(huì)話和使用總線。
OTG規(guī)范對(duì)USB協(xié)議最大的擴(kuò)展就是讓雙重角色的USB外設(shè)具有有限的主控設(shè)備能力,能夠提供動(dòng)態(tài)的能源管理以及自動(dòng)轉(zhuǎn)換主控設(shè)備或者外圍設(shè)備功能,這是通過SRP和HNP實(shí)現(xiàn)的。
在一個(gè)標(biāo)準(zhǔn)的USB系統(tǒng)中,主控設(shè)備在設(shè)備連接的整個(gè)過程中無論總線是否空閑,始終向USB總線提供標(biāo)準(zhǔn)的5V/100mA能量,這樣的要求對(duì)于能源有限的便攜式設(shè)備比如手機(jī)來說就很苛刻。為了能夠節(jié)省能源,USB2.0為OTG主控設(shè)備(A設(shè)備)提供了一種方法以便在USB總線上沒有數(shù)據(jù)傳輸時(shí)暫時(shí)關(guān)掉VBUS以節(jié)省能量,并且A設(shè)備能在外圍設(shè)備(B設(shè)備)發(fā)出請(qǐng)求后重新提供VBUS并重新啟動(dòng)一個(gè)新的數(shù)據(jù)傳輸任務(wù)。
作為USB外設(shè)的B設(shè)備可以在前一個(gè)任務(wù)完成2ms之后的任何時(shí)刻啟動(dòng)SRP。B設(shè)備這樣做可以提供“資料線暫停(data-line pulsing)”和“VBUS暫停(VBUSpulsing)”。A設(shè)備一直在總線上檢測(cè)“數(shù)據(jù)線暫停”和“VBUS暫停”,并在它認(rèn)為適當(dāng)?shù)臅r(shí)候通過啟動(dòng)VBUS來開始下一個(gè)任務(wù)。這個(gè)任務(wù)一直進(jìn)行到A設(shè)備認(rèn)為在總線上沒有傳輸?shù)男枰臅r(shí)候,這時(shí)A設(shè)備就結(jié)束了這個(gè)任務(wù)。
● 主機(jī)交流協(xié)議HNP
主機(jī)交流協(xié)議(Host Negotiation Protocol,簡(jiǎn)寫為HNP)用于初始B設(shè)備與初始A設(shè)備之間切換主機(jī)角色。
當(dāng)一個(gè)雙重身份的設(shè)備與一個(gè)Mini-A插件連接時(shí),這個(gè)設(shè)備缺省作為主控設(shè)備使用;當(dāng)它與一個(gè)Mini-B插件連接時(shí),這個(gè)設(shè)備缺省作為外圍設(shè)備使用。但如果需要轉(zhuǎn)換該設(shè)備的身份是,并不需要用戶進(jìn)行任何操作,一個(gè)作為缺省從端作用的雙重身份的設(shè)備可以通過HNP協(xié)議來改變身份。
一次完整的HNP流程是這樣的:B設(shè)備希望控制總線,成為主機(jī);在A設(shè)備發(fā)送了SET_FEATURE命令后,B設(shè)備就可以來請(qǐng)求控制總線;A設(shè)備掛起總線,通知B設(shè)備可以控制總線;B設(shè)備發(fā)送信號(hào),斷開與A設(shè)備的連接;A設(shè)備啟動(dòng)D+信號(hào)在線的上拉電阻,將D+置高;這樣,A設(shè)備就開始作為外設(shè),放棄了總線的控制權(quán),B設(shè)備成為了主機(jī);在B設(shè)備完成了對(duì)總線的控制,就需要上拉其上的D+電阻,放棄總線控制權(quán)。當(dāng)然,這一系列的HNP活動(dòng),不僅僅是通過信號(hào)在線的電平變化來實(shí)現(xiàn)的。電平變化只是一種標(biāo)志,真正內(nèi)部對(duì)總線的控制權(quán)的變化,則要通過軟件來實(shí)現(xiàn)。
1.3.2 OTG系統(tǒng)外設(shè)軟件
考慮到USB協(xié)議的復(fù)雜性,用戶在進(jìn)行USB主機(jī)系統(tǒng)軟件設(shè)計(jì)時(shí),可先側(cè)重實(shí)現(xiàn)一部分功能,以后再逐步實(shí)施和完善。這里側(cè)重Mass Storage 類協(xié)議軟件。
● Mass Storage 類協(xié)議
Mass Storage 類(也就是大容量類)主要用于為軟盤接口、ATA接口、IDE硬盤接口及Flash內(nèi)存等設(shè)備建立的USB接口,類代碼(bInterfaceClass字段的值)為0x08。這一類的特點(diǎn)是數(shù)據(jù)交換量大,有可能直接涉及