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