USB On-The-Go 技術概述

摘要:USB OTG(On-The-Go)是USB 2.0規範的補充,它使外設可以在無主機參與的情況下直接互連進行通信工程.本文討論了USB  OTG補充規範的新增特性,包括OTG事務請求協議SRP和主機流通協議HNP、連接器和電纜、兩用OTG設備和外設式OTG設備、驅動程序以及數據流模 型。 關鍵詞:USB 2.0 OTG 規範USB的廣泛應用其正在成爲外設與PC機及膝上型電腦連接的工業標準USB外設主要是便攜式設備,隨着其數量 的不斷增多,設備之間無主機參與的直接通信成爲亟待解決的問題。我們開發了基於USB總線(接口芯片爲Philips公司的PDIUSBD12)的數據採 集系統,取得了滿意的效果。但在開發USB1.1設備時遇到的設備互連直接通信的解決方案.USB 2.0 雖然在速度等方面有很大的改進,但同樣要依賴 計算機主機進行通信。2001年底,USB開發者論壇(USB Implementers Forum,USB IF)發佈了專門用於USB外設間“可移 動互連”的USB2.0補充規範USB On-The-Go,其目標是使外設以主機的身份和另外特定的一組外設直接通信。本文中歸納USB 2.0補充規 範OTG的相關技術,並主要討論其新增特性。

 

1 新的協議OTG補充規範對USB2.0的最重要的擴展是其更具節能性的電源管理和允許設備以主機和外設兩種形式工作。OTG有兩種設備類型:兩 用OTG設備(Dual-role device)和外設式OTG設備(Perip-heral-only OTG device) 。兩用OTG設備完 全符合USB2.0規範,同時它還要提供有限的主機能力考覈成績和一個MiniAB插座、支持主機流通協議(Host Negotiation  Protocol,HNP),並和外設式OTG設備一樣支持事務請求協議(Session Request Protocol,SRP).當作爲主機工作 時,兩用OTG設備可在總線上提供8mA的電流,而以往標準主機則需要提供100~500mA的電流。兩個兩用OTG設備連接在一起時可交替以主機和從機 的方式工作,這個特點兼容了現有USB規範主機/外設的結構模型。OTG主機同樣負責補始化數據通信的任務,比如:總線復位、獲取USB各種描述符和配置 設備。這些配置完成後,兩個OTG設備便可以分別以主機和從機方式傳輸信息,兩個設備主從角色交換的過程由主機傳輸協議(HNP)定義。以下以兩用OTG 設備爲例討論SRP和HNP。1.1 事務請求協議SRP在以往的USB系統運行過程中,主機提供5V的電源和不低於100mA的總線電流。當OTG主機 (指以主機方式工作的兩用OTG設備,又稱A-device)連接到有線電源時這種方法是適用的,但像手機這樣的自供電移動設備則不能承受如此大的電能浪 費。爲了節約電源延長電池的使用壽命,當總線上沒有活動時,OTG主機將掛起總線電源VBUS。SRP協議可使OTG從機(指外設式設備或者以外設方式工 作的兩用設備,又稱B-device,此處指後者)請求A-device重新使能VBUS,而後A-device使用HNP協議交換兩個設備的工作方式, 這兩步完成後由新的OTG主機開始事務傳輸。B-device可在前一事務結束2ms後的任意時間開始SRP,SRP的時序波形見圖形1。

 

B- device將先後執行數據線脈衝調製(data-line pul-sing)和VBUS脈衝調製(VBUS pulsing) 。它通過使能數據線上 拉電阻(全速和高速設備爲D+,低速設備爲D-)5~10ms實現前者,後者通過驅動VBUS實現。VBUS必須要有足夠長的時間對其電容充電,這個時間 應能保證不大於13μF的電容充電至2.1V(OTG設備的電容是6.5μF或更小),從而不會對標準主機的96μF或更高的電容充電至2.0V。該限制 保證了從B-device引來的VBUS電流不會破壞標準主機的端口。A-device檢測到數據線脈衝調製或者VBUS脈衝調製後,首先復位總線,然後 發送Set_feature命令而先不進行設備的枚舉,此時B-device尚處在默認的從機狀態。如果Set_feature命令成功執行,說明B- device爲兩用OTG設備,A-device(使用HNP協議)掛起VBUS準備讓B-device交換爲主機方式接管總線。如果 Set_feature命令執行失敗,說明B-device爲外設式OTG設備,於是A-device使能VBUS準備開始一個傳輸事務(此時,A- device只是被喚醒,並未改變工作方式)。當A-device認爲總線上沒有傳輸需要時,掛起VBUS以結束該事務。這種A-device自動檢測 B-device是否支持HNP協議的特徵稱爲"No Silent Failure"。1.2 主機流通協議HNP當兩用設備連接了一個Mini-A插 頭或者Mini-B插頭時,它相應的便以OTG主機或者OTG外設的默認方式工作。A-device爲默認主機,所以由它提供VBUS電源,且在檢測到有 設備接入時復位總線、八舉並配置B-device。A-device在完成對B-device的使用後,可以通過查詢B-device的OTG性能描述符 來判斷是否支持HNP協議(即是否爲兩用OTG設備)。如支持HNP,B-device將返回有效的OTG性能描述符,A-device則產生一個 Set_feature命令(即HNP_Enable)來通知B-device可以在總線掛起的時候以主機方式工作,隨後A-device掛起總線。 HNP的時序波形見圖2。B-device通過上拉電阻(全速時)或者下拉電阻(高速時)拉低D+以示連接斷開。隨後,作爲對B-device斷開的響 應,A-device使能它的數據線並開始以從機方式工作。完成這些轉換後,B-device和A-device便各自以主機角色和外設角色使用總線。如 果該B-device屬於兩用OTG設備且A-device不再使用它了,A-device便重發Set_feature命令並掛起總線。若B- device申請角色轉換時出錯,A-device則拉低VBUS以結束該事務。當B-device正常結束傳輸事務時便掛起VBUS使能其上拉電阻,重 新以從機方式運行。A-device檢測到總線掛起後,發出一個連接斷開信號並重新以主機方式工作。

2 連接器和電纜2.1 連接器USB IF在OTG中定義了更小的連接器,可以同時用於主機式和外設式的設備、具有更低的電源需求、擴展的電源保護模式 和利於上層軟件開發的簡潔設計。OTG和現有的USB2.0規範完全兼容,一個主要的機械上改進是它的新式連接器。USB 2.0定義了三種連接器對(插 頭和插座):STANDARD-A、STANDARD-B和MINI-B。MINI-B連接器是專爲較小的外設(如移動電話等)開發的。OTG規範增加了 第四種插頭:MINI-A,兩種插座:MINI-A和MINI-AB。這些連接器比最初的USB連接器要小許多(如:MINI-A插頭截面積只有 STANDARD-A插頭的38%),更適合於便攜式設備。MINI-AB插座用於兩用設備。MINI-A新增的ID腳(以前的USB插頭不含此腳)在連 接MINI-AB時接地短路,而MINI-B則使該腳斷開,這樣兩用設備便可識別連接設備的類型以決定設備的默認角色。MINI-A和MINI-B插頭是 嚴格配對適用的,如:不能將MINI-A插頭和MINI-B插座配合使用。但是,MINI-AB插座適合於以上兩種插頭。在外形上,MINI-A更新近於 橢圓形,而MINI-B更接近於正方形。另外,他們的插頭和插座內部的塑料都有顏色:MINI-A爲白色,MINI-B爲黑色,MINI-AB爲灰色。 2.2 電纜USB 2.0規範定義了兩種電纜: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兩用設備需要一個STANDARD-A插座至MINI-A插頭的適配器,而且MINI-A插頭連接 STANDARD-A插座時需要一個MINI-A插座至STANDARD-A插頭的適配器。3 USB ON-THE-GO設備類型OTG有兩種設備:兩 用OTG設備和外設式OTG設備。兩用OTG設備可以作爲USB外設或者USB OTG主機,並且可爲總線提供8MA電流。而外設式OTG設備不具備主機 性能,它必須在向兩用設備(主機)的請求獲准後才能通信。兩用OTG設備必須能以全速方式運行,而高速運行的方式是可選的。外設型OTG設備可以設計在高 速、全速和低速中的任意一種方式下工作。3.1 兩用OTG設備(DUAL-ROLE DEVICE)兩用OTG設備都有一個MINI-AB插槽,所以一 個MINI-A至MINI-B電纜可以直接將兩個兩用OTG設備連接在一起,而此時用戶不會覺察到兩個設備的不同,也不知道它們的默認主從配置。A- DEVICE(主機)必須在事務傳輸過程中提供總線電源,這是A-DEVICE和B-DEVICE的主要不同,同時也說明了兩個設備的連接的非對等關係。 A-DEVICE負責爲總線供電因此它控制通信發生的時機,B-DEVICE只有通過SRP協議向“主機”請求傳輸。設計一個兩用設備是比較困難的,因爲 它要具備:有限的主機能力、可作爲一個全速的外設(可選的高速方式)、OTG目標設備的列表、目標設備的驅動程序、支持SRP、支持HNP、一個 MINI-AB插座、VBUS上不小於8MA的電流輸出、與用戶通信的方式。3.2 外設式OTG設備(PERIPHERAL-ONLY OTG  DEVICE)外設式OTG設備是普通的USB外設。它有一個OTG功能描述符說明其支持事務請求協議SRP而且它不是兩用OTG設備。此外,外設式 OTG設備只能配置MINI-B型插座或者必須有一個帶MINI-A插頭的附屬電纜,而不能使用MINI-AB型插座。SRP是B-DEVICE(此處指 外設式設備)向A-DEVICE請求傳輸事務時必須使用的協議。它由前面提到的數據線脈衝調製和VBUS脈衝調製(B-DEVICE產生)兩種方法構成。 A-DEVICE必須能檢測這兩種方法之一的信號,並開始一個相應的傳輸事務。除了固件(FIRMWARE)略有增加外,B-DEVICE同時可產生兩種 信號的成本並沒有增加成本,而且還使實現A-DEVICE更加簡單(只需根據實際情況提供其中一種方式的檢測)。一個OTG設備不必實現OTG的所有性 能。例如,一個外設式OTG設備可能只需支持SRP和一個小於等於8MA的默認電流消耗配置。其實,添加對SRP支持也較簡單:在VBUS上接一個驅動電 阻並增加一些簡單的邏輯,從而產生VBUS脈衝調製信號。另外,無論是兩用OTG設備還是外設式OTG設備,都可以和通用的許機相連,只不過兩用OTG設 備具有一定的主機能力(可以驅動特定的一組OTG設備工作)。

 

4 驅動程序與PC主機不同,便攜式設備沒有便捷的方式和足夠的空間裝載新的驅動程序。因此,OTG規範要求每個兩用OTG設備有一個支持的外設式OTG 目標設備的列表,列表中包括設備的類型和製造商等信息。USB IF正計劃定義“OTG Type”規範。對於符合此規範的設備,OTG主機只需提供一個 驅動程序即可,這將使OTG主機無需爲每個設備提供單獨的驅動程序,從而支持儘量多的OTG外設。與PC機不同,OTG兩用設備的驅動程序棧由USB主機 棧和USB設備棧構成以滿足兩種工作方式的需要,見圖3。OTG驅動程序通過連接器的不同或者不否有NHP交換設備的工作方式來決定使用USB主機棧還是 USB設備棧。當OTG兩用設備以主機方式工作時,USB主機棧工作。其中的主機控制器驅程序負責USB主機棧與硬件端點的數據交換,USB驅動程序枚舉 並保存設備的信息,目標外設主機類驅動程序支持目標設備列表裏的設備。主機類驅動程序由芯片製造商提供,同時,OTG提供通用的主機類驅動程序(可以修改 以用於非通用設備)。當OTG兩用設備以從機方式工作時,USB設備棧工作。其中的設備控制器驅動程序負責USB設備棧與硬件端點的數據交換,USB協議 層負責處理USB協議規範,設備類驅動程序的功能取決於該兩用設備的功能(如數碼照相機、存儲設備、打印機等)。OTG驅動程序負責處理兩用OTG設備的 工作方式轉換,同時,它還可以返回其結果(如設備是否支持HNP)並處理總線錯誤。應用層程序通過OTG驅動程序開始或者結束一個傳輸事務,通過USB主 機棧或設備棧與硬件層交換數據。OTG兩用設備的驅動程序棧配置見圖3。5 數據流模型OTG主機和設備被劃分爲功能層、USB設備層和USB接口層三個 不販層次,見圖4。USB接口層爲OTG主機和OTG設備提供物理連接,USB系統軟件使用主機控制器來管理主機與USB設備的數據傳輸。USB系統軟件 相對於主機控制器而言,處理的是以客戶角度觀察的數據傳輸及客戶與設備的交互。USB設備層爲USB主機系統軟件提供一個可用的邏輯設備。主機通過與之功 能匹配的客戶軟件實現其各種功能。OTG設備與以往的USB設備一樣的兩種通道:數據流通道和消息通道。數據流通道沒有定義好的結果,而消息通道則有固定 的結構。但是,每個通道都有一定的帶寬、傳輸類型、傳輸方向和緩衝區大小。自供電設備配置一個默認的控制通道,由它提供該設備的配置和狀態等信息。USB  OTG規範是USB2.0規範的補充而不是替代品。PC主機和標準外設並沒有被取代,因爲新的OTG僅適用於需要具有主機功能和更小體積的便攜式設備。 OTG在這些外設間引入了點對點的(point-to-point)通信方式,這使得便攜式儀器的發展有了更加廣闊的空間。USB OTG已受到 Cypress等芯片供應商、軟件開發商和設備製造商的廣泛支持,OTG不久將會成爲新一代的“移動計算”解決方案。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章