<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > USB協(xié)議架構(gòu)及驅(qū)動架構(gòu)

          USB協(xié)議架構(gòu)及驅(qū)動架構(gòu)

          作者: 時間:2016-12-15 來源:網(wǎng)絡(luò) 收藏

          1. USB協(xié)議

          1.1 USB主機(jī)系統(tǒng)

          在USB主機(jī)系統(tǒng)中,通過根集線器與外部USB從機(jī)設(shè)備相連的處理芯片,稱為USB主機(jī)控制器。USB主機(jī)控制器包含硬件、軟件和固件一部分。

          本文引用地址:http://www.ex-cimer.com/article/201612/330442.htm

          1.2 USB設(shè)備系統(tǒng)

          USB設(shè)備按功能分為兩部分:集線器(Hub)和功能部件。從下圖可知,主機(jī)通過根集線器連接到各種外圍設(shè)備(集線器和功能部件)。

          1.3 主機(jī)和設(shè)備之間通信模型

          主機(jī)與設(shè)備之間的通信模型


          上圖展示了USB主機(jī)和USB設(shè)備之間的數(shù)據(jù)傳輸過程。在設(shè)備端,USB設(shè)備將非USB格式的數(shù)據(jù)進(jìn)行打包處理,轉(zhuǎn)換成USB格式的數(shù)據(jù)包,然后傳遞到鏈路層,經(jīng)過硬件處理、傳遞到物理層,由物理層通過PHY以數(shù)據(jù)流的形式傳輸?shù)街鳈C(jī)。

          USB主機(jī)在USB設(shè)備和USB主機(jī)之間發(fā)起的傳輸過程,穩(wěn)為事務(wù)。每次事務(wù)以2到3個數(shù)據(jù)包的形式進(jìn)行USB總線傳輸。每個數(shù)據(jù)包包含2到3個步驟:
          1) USB主機(jī)控制器向USB設(shè)備發(fā)出命令
          2) USB控制器和USB設(shè)備之間傳遞讀寫請求,其方向取決于第一部分的命令是讀還是寫
          3) 握手信號。
          USB主機(jī)控制器向USB設(shè)備發(fā)送事務(wù)類型請求,通過分組標(biāo)識符來進(jìn)行識別。

          1.4 USB分組標(biāo)識

          主機(jī)和設(shè)備之間進(jìn)行操作,通過分組標(biāo)識(PID)來進(jìn)行傳輸。數(shù)據(jù)包傳輸格式一般由:PID、數(shù)據(jù)/控制信息、CRC校驗碼組成。
          常見的PID主要包括令牌、數(shù)據(jù)、握手等類型組成。PID碼以特定的方式組成,如下表所示:

          PID分組碼是數(shù)據(jù)傳輸流程中的重要元素。無論硬件還是軟件,都要對PID分組碼進(jìn)行分析,從而做出正確響應(yīng)。USB主機(jī)和設(shè)備嚴(yán)格按照PID分組碼信息進(jìn)行信息交互。

          1.5 數(shù)據(jù)包傳輸模式

          當(dāng)USB設(shè)備連接到集線器,集線器狀態(tài)將發(fā)生相應(yīng)的變化,并將狀態(tài)變化信息傳遞給USB主機(jī)。USB主機(jī)通過根集線器向USB設(shè)備發(fā)送命令,獲取USB設(shè)備的各種信息,包含USB設(shè)備傳輸類型、ID號、Product、USB速度等信息。
          USB主機(jī)和USB設(shè)備之間的數(shù)據(jù)傳輸共有四種類型:控制傳輸、批量傳輸、中斷傳輸和同頻傳輸。與之對應(yīng),USB主機(jī)和USB設(shè)備之間有四種事務(wù):控制事務(wù)、批量事務(wù)、中斷事務(wù)和同步事務(wù)。


          1.5.1 批量(Bulk)傳輸


          作用:主要用于非實時性傳輸,數(shù)據(jù)包較大而延時要求較低。
          特點:數(shù)據(jù)傳輸準(zhǔn)備即可,采用批量傳輸模式的USB從機(jī)設(shè)備,如U盤
          數(shù)據(jù)傳輸分三個階段:
          a)令牌階段:主機(jī)發(fā)送請求,USB設(shè)備依據(jù)請求PID來判斷IN或OUT傳輸
          b)數(shù)據(jù)傳輸階段:依據(jù)令牌階段的IN或OUT傳輸,來決定數(shù)據(jù)傳輸為DATA0或DATA1來進(jìn)行數(shù)據(jù)傳輸
          c)握手階段:接收信息的一方發(fā)送ACK信號以表示接收成功;若為NAK,表示發(fā)送失??;STALL表示不可預(yù)知的錯誤

          1.5.2 控制(Control)傳輸


          作用:USB傳輸過程必須支持的傳輸模式。USB主機(jī)為了獲取設(shè)備描述符、ID、Product等信息,向USB設(shè)備發(fā)送相應(yīng)的PID命令。
          特點:唯一可以進(jìn)行IN/OUT傳輸?shù)膫鬏斈J健?br />數(shù)據(jù)寬度:控制傳輸方式可以以8、16、32或64字節(jié)的數(shù)據(jù)進(jìn)行傳輸,這取決于設(shè)備的傳輸速度。
          USB主機(jī)和設(shè)備之間必須支持控制傳輸,通過端點0進(jìn)行數(shù)據(jù)傳輸??刂苽鬏敺譃榱钆?、數(shù)據(jù)傳輸和握手階段。

          1.5.3 中斷傳輸事務(wù)


          作用:按照一定時刻輪詢設(shè)備是否有中斷傳輸請求
          特點:查詢頻率取決于端點的模式結(jié)構(gòu),從1到255ms不等
          中斷傳輸主要用于實時性要求非常高的從機(jī)設(shè)備,如鍵盤操縱桿和Mouse等
          傳輸過程也分為令牌階段、數(shù)據(jù)傳輸和握手階段

          1.6 USB描述符

          USB協(xié)議中共定義了以下四種描述符:
          1) 設(shè)備描述符
          2) 配置描述符
          3) 接口描述符
          4) 端點描述符

          其關(guān)系如下圖所示:

          1.6.1 設(shè)備描述符

          每個USB設(shè)備都有一個唯一的設(shè)備描述符,如下表所示:

          1.6.2 配置描述符

          每個USB設(shè)備都有默認(rèn)的配置描述符,支持至少一個接口,每個配置描述符如下表:

          1.6.3 接口描述符

          設(shè)備應(yīng)至少支持一個接口,如:塊傳輸數(shù)據(jù)接口,部分設(shè)備可能支持其它的接口。復(fù)合設(shè)備可以支持額外接口,以支持音頻和視頻功能。標(biāo)準(zhǔn)中并沒有定義此類接口。接口可能有多個可選設(shè)置,主機(jī)將會檢查每個可選的設(shè)置。


          1.6.4 端點描述符

          每個設(shè)備至少支持控制端點0。USB設(shè)備應(yīng)該支持三類端點:控制端點、輸入端點和輸出端點。

          2. OTG協(xié)議

          OTG設(shè)備采用Mini-AB插座,相對于傳統(tǒng)的USB數(shù)據(jù)線,Mini-AB接口多了一根數(shù)據(jù)線ID,ID線是否接入將Mini-AB接口分為Mini-A和Mini-B接口兩種類型。在OTG設(shè)備之間數(shù)據(jù)連接的過程中,通過OTG數(shù)據(jù)線Mini-A和Mini-B接口來確定OTG設(shè)備的主從:接入Mini-A接口的設(shè)備默認(rèn)為A設(shè)備(主機(jī)設(shè)備);接入Mini-B接口的設(shè)備,默認(rèn)為B設(shè)備(從設(shè)備)。

          A設(shè)備和B設(shè)備無需交換電纜接口,即可通過主機(jī)交換協(xié)議(HNP)實現(xiàn)A、B設(shè)備之間的角色互換。同時,為了節(jié)省電源,OTG允許總線空閑時A設(shè)備判斷電源。此時,若B設(shè)備希望使用總線,可以通過會話請求協(xié)議(SRP)請求A設(shè)備提供電源。

          2.1 HNP(主機(jī)交換)協(xié)議

          當(dāng)Mini-A接口接入A設(shè)備并確定A設(shè)備為主機(jī)時;若B設(shè)備希望成為主機(jī),則A設(shè)備向B設(shè)備發(fā)送SetFeature命令,允許B設(shè)備進(jìn)行主機(jī)交換。B設(shè)備檢測到總線掛起5ms后,即掛起D+并啟動HNP,使總線處于SE0狀態(tài)。此時A設(shè)備檢測到總線處于SE0狀態(tài),即認(rèn)為B設(shè)備發(fā)起主機(jī)交換,A設(shè)備進(jìn)行響應(yīng)。待B設(shè)備發(fā)現(xiàn)D+線為高電平而D-線為低電平(J狀態(tài)),表示A設(shè)備識別了B設(shè)備的HNP請求。B設(shè)備開始總線復(fù)位并具有總線控制權(quán),主機(jī)交換協(xié)議完成。

          2.2 SRP(會話請求)協(xié)議

          對于主機(jī),要求能響應(yīng)會話請求;對于設(shè)備,僅要求能夠發(fā)起SRP協(xié)議。OTG設(shè)備,不僅要求發(fā)起SRP,而且還能響應(yīng)SRP請求。
          SRP分為數(shù)據(jù)線脈沖調(diào)制和電壓脈沖調(diào)兩種方式,B設(shè)備發(fā)起SRP必須滿足以下兩個條件:
          1) B設(shè)備檢測到A設(shè)備低于其有效的電壓閾值,同時B設(shè)備低于有效的電壓閾值。
          2) B設(shè)備必須檢測到D+和D-數(shù)據(jù)線至少在2ms的時間內(nèi)低于有效閾值,即處于SE0狀態(tài)。

          數(shù)據(jù)線脈沖調(diào)制會話請求:B設(shè)備必須等到滿足以上兩個條件后,將數(shù)據(jù)線接入上拉電阻一定的時間,以備A設(shè)備過濾數(shù)據(jù)線上的瞬間電壓。與此同時,B設(shè)備上拉D+以便于在全速模式下進(jìn)行初始化操作。A設(shè)備在檢測到D+變?yōu)楦唠娖交駾-變?yōu)榈碗娖綍r產(chǎn)生SRP指示信號。

          Vbus脈沖調(diào)制會話請求:B設(shè)備同樣需等待滿足上述兩個初始化條件,然后B設(shè)備通過對電容充電以提高總線電壓,待達(dá)到總線上的電壓閾值,喚醒A設(shè)備。在充電過程中,一定要保證充電的電壓峰值在一定的范圍以避免燒壞A設(shè)備。

          3. USB驅(qū)動架構(gòu)

          USB驅(qū)動架構(gòu)如下圖所示:

          3.1 USB主機(jī)端驅(qū)動

          USB核心(USBD)是整個USB驅(qū)動的核心部分,從上圖可知,一方面USBD對接收到USB主機(jī)控制器的數(shù)據(jù)進(jìn)行處理,并傳遞給上層的設(shè)備端驅(qū)動軟件;同時也接收來自上層的非USB格式數(shù)據(jù)流,進(jìn)行相應(yīng)的數(shù)據(jù)處理后傳遞給USB主機(jī)控制器驅(qū)動。


          上一頁 1 2 下一頁

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();