
2 連接器和電纜
2.1 連接器
USB IF在OTG中定義了更小的連接器,可以同時用于主機式和外設式的設備、具有更低的電源需求、擴展的電源保護模式和利于上層軟件開發(fā)的簡潔設計。
OTG和現(xiàn)有的USB2.0規(guī)范完全兼容,一個主要的機械上改進是它的新式連接器。USB 2.0定義了三種連接器對(插頭和插座):Standard-A、Standard-B和Mini-B。Mini-B連接器是專為較小的外設(如移動電話等)開發(fā)的。OTG規(guī)范增加了第四種插頭: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更接近于正方形。另外,他們的插頭和插座內(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兩用設備需要一個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負責為總線供電因此它控制通信發(fā)生的時機,B-device只有通過SRP協(xié)議向“主機”請求傳輸。
設計一個兩用設備是比較困難的,因為它要具備:有限的主機能力、可作為一個全速的外設(可選的高速方式)、OTG目標設備的列表、目標設備的驅動程序、支持SRP、支持HNP、一個Mini-AB插座、VBUS上不小于8mA的電流輸出、與用戶通信的方式。
3.2 外設式OTG設備(Peripheral-only OTG device)
外設式OTG設備是普通的USB外設。它有一個OTG功能描述符說明其支持事務請求協(xié)議SRP而且它不是兩用OTG設備。此外,外設式OTG設備只能配置Mini-B型插座或者必須有一個帶Mini-A插頭的附屬電纜,而不能使用Mini-AB型插座。
SRP是B-device(此處指外設式設備)向A-device請求傳輸事務時必須使用的協(xié)議。它由前面提到的數(shù)據(jù)線脈沖調(diào)制和VBUS脈沖調(diào)制(B-device產(chǎn)生)兩種方法構成。A-device必須能檢測這兩種方法之一的信號,并開始一個相應的傳輸事務。除了固件(firmware)略有增加外,B-device同時可產(chǎn)生兩種信號的成本并沒有增加成本,而且還使實現(xiàn)A-device更加簡單(只需根據(jù)實際情況提供其中一種方式的檢測)。
一個OTG設備不必實現(xiàn)OTG的所有性能。例如,一個外設式OTG設備可能只需支持SRP和一個小于等于8mA的默認電流消耗配置。其實,添加對SRP支持也較簡單:在VBUS上接一個驅動電阻并增加一些簡單的邏輯,從而產(chǎn)生VBUS脈沖調(diào)制信號。
另外,無論是兩用OTG設備還是外設式OTG設備,都可以和通用的許機相連,只不過兩用OTG設備具有一定的主機能力(可以驅動特定的一組OTG設備工作)。
4 驅動程序
與PC主機不同,便攜式設備沒有便捷的方式和足夠的空間裝載新的驅動程序。因此,OTG規(guī)范要求每個兩用OTG設備有一個支持的外設式OTG目標設備的列表,列表中包括設備的類型和制造商等信息。USB IF正計劃定義“OTG Type”規(guī)范。對于符合此規(guī)范的設備,OTG主機只需提供一個驅動程序即可,這將使OTG主機無需為每個設備提供單獨的驅動程序,從而支持盡量多的OTG外設。
與PC機不同,OTG兩用設備的驅動程序棧由USB主機棧和USB設備棧構成以滿足兩種工作方式的需要,見圖3。OTG驅動程序通過連接器的不同或者不否有NHP交換設備的工作方式來決定使用USB主機棧還是USB設備棧。
當OTG兩用設備以主機方式工作時,USB主機棧工作。其中的主機控制器驅程序負責USB主機棧與硬件端點的數(shù)據(jù)交換,USB驅動程序枚舉并保存設備的信息,目標外設主機類驅動程序支持目標設備列表里的設備。主機類驅動程序由芯片制造商提供,同時,OTG提供通用的主機類驅動程序(可以修改以用于非通用設備)。
當OTG兩用設備以從機方式工作時,USB設備棧工作。其中的設備控制器驅動程序負責USB設備棧與硬件端點的數(shù)據(jù)交換,USB協(xié)議層負責處理USB協(xié)議規(guī)范,設備類驅動程序的功能取決于該兩用設備的功能(如數(shù)碼照相機、存儲設備、打印機等)。
OTG驅動程序負責處理兩用OTG設備的工作方式轉換,同時,它還可以返回其結果(如設備是否支持HNP)并處理總線錯誤。應用層程序通過OTG驅動程序開始或者結束一個傳輸事務,通過USB主機;蛟O備棧與硬件層交換數(shù)據(jù)。OTG兩用設備的驅動程序棧配置見圖3。
5 數(shù)據(jù)流模型
OTG主機和設備被劃分為功能層、USB設備層和USB接口層三個不販層次,見圖4。
USB接口層為OTG主機和OTG設備提供物理連接,USB系統(tǒng)軟件使用主機控制器來管理主機與USB設備的數(shù)據(jù)傳輸。USB系統(tǒng)軟件相對于主機控制器而言,處理的是以客戶角度觀察的數(shù)據(jù)傳輸及客戶與設備的交互。USB設備層為USB主機系統(tǒng)軟件提供一個可用的邏輯設備。主機通過與之功能匹配的客戶軟件實現(xiàn)其各種功能。
OTG設備與以往的USB設備一樣的兩種通道:數(shù)據(jù)流通道和消息通道。數(shù)據(jù)流通道沒有定義好的結果,而消息通道則有固定的結構。但是,每個通道都有一定的帶寬、傳輸類型、傳輸方向和緩沖區(qū)大小。自供電設備配置一個默認的控制通道,由它提供該設備的配置和狀態(tài)等信息。
USB OTG規(guī)范是USB2.0規(guī)范的補充而不是替代品。PC主機和標準外設并沒有被取代,因為新的OTG僅適用于需要具有主機功能和更小體積的便攜式設備。OTG在這些外設間引入了點對點的(point-to-point)通信方式,這使得便攜式儀器的發(fā)展有了更加廣闊的空間。USB OTG已受到Cypress等芯片供應商、軟件開發(fā)商和設備制造商的廣泛支持,OTG不久將會成為新一代的“移動計算”解決方案。





