天天看點

USB OTG的工作原理-互相切換和互動流程

USB OTG的工作原理

  OTG補充規範對USB 2.0的最重要的擴充是其更具節能性的電源管理和允許裝置以主機和外設兩種形式工作。OTG有兩種裝置類型:兩用OTG裝置(Dualrole device)和外設式OTG裝置(Peripheralonly OTG device) 。兩用OTG裝置完全符合USB 2.0規範,同時,他還要提供有限的主機能力和一個MiniAB插座、支援主機流通協定(Host Negotiatio n Protocol, HNP),并和外設式OTG裝置一樣支援事務請求協定(Session Request Protocol, SRP)。 當作為主機工作時,兩用OTG裝置可在總線上提供8 mA的電流,而以往标準主機則需要 提供100~500 mA的電流。

  2個兩用OTG裝置連接配接在一起時可交替以主機和從機的方式工作,這個特點相容了現有USB 規範主機/外設的結構模型。OTG主機負責初始化資料通信的任務,比如:總線複位、擷取USB 各種描述符和配置裝置。這些配置完成後,2個OTG裝置便可以分别以主機和從機方式傳輸資訊,2個裝置主從角色交換的過程由主機傳輸協定(HNP)定義。

1.1主機(Adevice)和從機(Bdevice)的初始功能

  裝置的初始功能是通過定義連接配接器來實作的。OTG定義了一個叫做MiniAB的袖珍插孔,他能直接接入MiniA或者MiniB插口,MiniAB有一個ID引腳 上拉至電源端,MiniA插頭有一個與地連接配接好的ID(R<10 Ω),Mini B插頭有一個與地連接配接的開路ID引腳(R>100 kΩ)。當2個OTG裝置連接配接到一起的時候 ,MiniA插頭邊的ID引腳會注入一個“0”狀态,MiniB插頭邊的ID引腳為 “1”,ID為0的OTG裝置預設為主機(Adevice),ID為1的OTG裝置預設為從機(B device)。圖1對上述内容進行了圖解。

USB OTG的工作原理-互相切換和互動流程

1.2對話請求協定SRP(Session Request Protocol)   這個協定允許Adevice(可以是電池供電)在總線未使用時通過切斷Vbus來節省電源消耗,也為Bdevice啟動總線活動提供了一種方法。任何一個Adevice, 包括PC或便攜式電腦,都可以響應SRP;任何一個Bdevice,包括一個标準USB外設, 都可以啟動SRP;要求一個雙重功能裝置既能啟動SRP,又能響應SRP。 1.3主機流通協定HNP(Host Negotiation Protocol)

  HNP是一種用來實作Adevice和Bdevice主機/從機轉換的協定(實際上是電纜的反轉)。主/從機功能交換的結果表現在下列過程中:

  (1)利用上拉電阻來發送信号給從機。

  (2)Adevice可在Bdevice上設定“HNP Enable”特性。

  (3)Bdevice斷開上拉。

  (4)ADevice與上拉電阻相連,表明Adevice從屬于從機。

  (5)Adevice給Vbus供電。

  (6)Bdevice檢測Adevice的上拉。

  (7)複位/列舉/使用Adevice。

1.4驅動程式

  與PC主機不同,便攜式裝置沒有便捷的方式和足夠的空間裝載新的驅動程式。是以,OTG 規範要求每個兩用OTG裝置有一個支援的外設式OTG目标裝置的清單,清單中包括裝置的類型和制造商等資訊。

  與PC機不同,OTG兩用裝置的驅動程式棧由USB主機棧和USB裝置棧構成以滿足兩種工作方式的需要。OTG驅動程式通過連接配接器的不同或者是否有NHP交換裝置的工作方式來決定使用USB主機棧還是USB裝置棧。

  當OTG兩用裝置以主機方式工作時,USB主機棧工作。其中的主機控制器驅動程式負責USB 主機棧與硬體端點的資料交換,USB驅動程式枚舉并儲存裝置的資訊,目标外設主機類驅動程式支援目标裝置清單裡的裝置。主機類驅動程式由晶片制造商提供,同時,OTG提供通用的主機類驅動程式(可以修改以用于非通用裝置)。

  當OTG兩用裝置以從機方式工作時,USB裝置棧工作。其中的裝置控制器驅動程式負責USB 裝置棧與硬體端點的資料交換,USB協定層負責處理USB協定規範,裝置類驅動程式的功能取決于該兩用裝置的功能(如數位照相機、儲存設備、列印機等)。

  OTG驅動程式負責處理兩用OTG裝置的工作方式轉換,同時,他還可以傳回其結果(如裝置是否支援HNP)并處理總線錯誤。應用層程式通過OTG驅動程式開始或者結束一個傳輸事務, 通過USB主機棧或裝置棧與硬體層交換資料。

1.5資料流模型

  OTG主機和裝置被劃分為功能層、USB裝置層和USB接口層3個不同層次,如圖2所示。

USB OTG的工作原理-互相切換和互動流程

  USB接口層為OTG主機和OTG裝置提供實體連接配接,USB系統軟體使用主機控制器來管理主機與 USB裝置的資料傳輸。USB系統軟體相對于主機控制器而言,處理的是以客戶角度觀察的資料傳輸及客戶與裝置的互動。USB裝置層為USB主機系統軟體提供一個可用的邏輯裝置。主機通過與之功能比對的客戶軟體實作其各種功能。

  OTG裝置與以往的USB裝置一樣有兩種通道:資料流通道和消息通道。資料流通道沒有定義好的結果,而消息通道則有固定的結構。但是,每個通道都有一定的帶寬、傳輸類型、傳輸方向和緩沖區大小。自供電裝置配置一個預設的控制通道,由他提供該裝置的配置和狀态等資訊。

一問一答: 1 . 什麼是USB OTG?

     USB OTG是USB 2.0的補充規範

2.  USB OTG針對USB 2.0的最重要擴充是什麼?

    更具節能性的電源管理和允許裝置以主機和外設兩種形式工作。

3. USB2.0中定義三種類型: HOST(主機),Device(裝置), HUB

    OTG新增兩種裝置: Dual-role device(兩用裝置),Perip-heral-only OTG device(OTG外設)

4. USB 2.0中定義了三種連接配接器對(插頭和插座): Standard-A(主機),Standard-B(外設),Mini-B(較小的外設)

    OTG新增插頭: Mini-A

    OTG新增插座: Mini-A和Mini-AB(同時支援Mini-A或Mini-B的插頭)

    其中插頭和插座内部的塑膠顔色:Mini-A為白色,Mini-B為黑色,Mini-AB為灰色

5. USB 2.0中定義了兩種電纜: Standard-A至Standard-B,  Standard-A至Mini-B

    OTG增加的兩種電纜:Mini-A至Standard-B, Mini-A至Mini-B

6. OTG的Dual-role device(兩用裝置)必須具備:

    1) 有限的主機能力

    2) 可作為全速的外設(可選的高速方式)

    3)可作為全速的主機(可選的低速或高速方式)

    3) OTG目标裝置的清單及驅動程式

    4)支援SRP,HNP

    5)一個Mini-AB插座

    6)VBUS上不小于8mA的電流輸出

    7)與使用者通訊的方式

7. Perip-heral-only OTG device(OTG外設):

    1.是普通的USB外設

    2. 支援SRP

    3. 一個Mini-B插座(不能使用Mini-AB)   轉載于: http://blog.csdn.net/ljzcom/article/details/8843360 相關文章:

  • Linux(52)
  • Linux Kernel(12)
  • C(6)
  • Bootloader(4)
  • Shell(10)
  • English(4)
  • USB(17)
  • UVC(1)
  • Embed(14)
  • Images(19)
  • TI Davinci(1)
  • SVN(2)
  • IT(6)
  • Others(7)
  • Samba(1)
  • Resource(3)
  • VIM(3)
  • Live(8)
  • Net(13)