<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > USB設備控制器端點(diǎn)緩沖區的優(yōu)化設計

USB設備控制器端點(diǎn)緩沖區的優(yōu)化設計

作者: 時(shí)間:2011-05-26 來(lái)源:網(wǎng)絡(luò ) 收藏
2000年發(fā)布的USB 2.0規范,將USB接口的傳輸速度提高了40倍。傳輸速度的提升使得控制器的設計指標也隨之提高,雖然協(xié)議中對于緩沖區的設計要求并沒(méi)有本質(zhì)上的改變,但是由于總線(xiàn)帶寬與傳輸速度的提高,各個(gè)芯片供應商均推出了自己的緩沖區設計方案。為了提高USB接口的數據存取速度,通常使用異步FIFO來(lái)設計。這里首先簡(jiǎn)要介紹USB中端點(diǎn)的概念,并給出一款異步FIFO的設計方案。然后根據USB四種傳輸類(lèi)型的特點(diǎn),提出基于該FIFO結構的不同類(lèi)型的的設計方案。特別是對于控制端點(diǎn)提出了一種新型的雙向異步FIFO結構,在保證控制傳輸的前提下,減小了將近1/2的電路面積。最后給出在Synopsys平臺下電路的VLSL實(shí)現結果。

  1 USB協(xié)議中的端點(diǎn)及實(shí)施方案

  1.1 的端點(diǎn)

  USB主機和設備之間傳輸的數據是以信息包的格式來(lái)傳輸的,可分為令牌包、數據包、握手包和特殊包。在數據包中包括了主機和設備通信的數據分組。圖1是一個(gè)典型的USB數據包的格式。


  PID域是為了增加USB通信的健壯性而設定的數據分組的辨識符;CRC16域是對數據分組進(jìn)行CRC校驗的結果。DATA域是實(shí)際傳送的數據內容。控制器會(huì )將接收到的主機數據包放入指定的;或者從指定的端點(diǎn)取出待發(fā)送的數據組裝成USB信息包發(fā)送到主機。

  由此可見(jiàn),所謂端點(diǎn)實(shí)際上是主機與設備之間通信的來(lái)源或目的,所有的傳輸都要傳送到設備的端點(diǎn),或是由設備的端點(diǎn)發(fā)出。一系列相互獨立的端點(diǎn)在一起就構成了USB邏輯設備。從物理層的角度來(lái)看,端點(diǎn)是一塊存儲器區域,用以緩沖實(shí)際接收到或待發(fā)送的數據包。

  USB協(xié)議中定義了四種傳輸類(lèi)型,分別是控制傳輸、批量傳輸、中斷傳輸和同步傳輸。所有USB設備控制器都應該支持控制傳輸,其他三種傳輸方式根據不同的應用背影而用于不同類(lèi)型的設備。按照傳輸類(lèi)型可將端點(diǎn)分為控制端點(diǎn)、批量端點(diǎn)、中斷端點(diǎn)和同步端點(diǎn)。其中控制端點(diǎn)較為特殊,只有它可以雙向的傳輸數據,而其他端點(diǎn)只能傳輸單方向的數據。

  1.2 使用異步FIFO設計USB端點(diǎn)

  由于USB設備控制器的緩沖區空間是對應各個(gè)不同的端點(diǎn)。每個(gè)端點(diǎn)所對應的傳輸方式、傳輸方向也不同。通??刂贫它c(diǎn)會(huì )連接控制器的MCU單元,而其他類(lèi)型的端點(diǎn)一般連接設備端的接口??梢?jiàn)USB的端點(diǎn)緩沖區實(shí)際上是在串行接口引擎時(shí)鐘和設備時(shí)鐘或MCU時(shí)鐘的兩個(gè)時(shí)鐘域之間傳輸數據。而使用異步FIFO來(lái)實(shí)現該結構顯然是一個(gè)不錯的選擇。


  圖2是本文所采用的異步FIFO的結構框圖。該異步FIFO由一塊雙端口SRAM、寫(xiě)地址/滿(mǎn)邏輯和讀地址/空邏輯、以及為了消除亞穩態(tài)的兩級同步電路組成。左端口在寫(xiě)時(shí)鐘下進(jìn)行數據的寫(xiě)入操作;右端口在讀時(shí)鐘下實(shí)現數據的讀出操作。

  對于異步FIFO的設計,產(chǎn)生準確的空滿(mǎn)標準是設計中的核心任務(wù),它與FIFO是否能穩定工作息息相關(guān)。寫(xiě)滿(mǎn)不溢出,讀空不多讀是異步FIFO空滿(mǎn)標志判斷的基本原則。傳統的判斷方法是另外設置一個(gè)狀態(tài)位,作為最高位,其余位作為地址位,當讀寫(xiě)指針的地址位和狀態(tài)位全部吻合時(shí),FIFO處于空狀態(tài);當讀寫(xiě)指針的地址位相同而狀態(tài)位相反,FIFO處于滿(mǎn)狀態(tài)。這種異步FIFO由于是通過(guò)直接比較二進(jìn)制讀寫(xiě)指針來(lái)判斷滿(mǎn)和空的,在跨時(shí)鐘傳遞時(shí)會(huì )有毛刺產(chǎn)生。下面將介紹一種通過(guò)直接比較格雷碼指針的方法生成FIFO的空滿(mǎn)信號,從而消除了毛刺,提高了電路的穩定性。

  比如要設計一個(gè)深度為8的異步FIFO,需要使用3 b的格雷碼計數器對讀寫(xiě)指針計數,與二進(jìn)制類(lèi)似,還是需要使用一個(gè)狀態(tài)位來(lái)判斷滿(mǎn)和空狀態(tài)。此時(shí)FIFO的格雷碼指針跳變情況如表1所示。


  觀(guān)察表1可知,當讀指針為4’b0011時(shí)(二進(jìn)制為4’b0010),此時(shí)比他多一個(gè)周期所對應的格雷碼為4’b1111(二進(jìn)制為4’b1010)。兩者的高二位恰好相反,但低位完全相同。對比表1左右兩列可知當讀寫(xiě)指針相差一個(gè)周期即FIFO滿(mǎn)時(shí)對應的格雷碼指針的最高兩位相反,而低位則完全相同;當兩者完全相等時(shí)對應為FIFO的空狀態(tài)。圖3給出的是在設計的FIFO的深度為8時(shí),在Modelsim中的仿真波形。由圖3可知,當FIFO從空到滿(mǎn)時(shí),對應的格雷碼寫(xiě)指針為4’b1100,而同步后的讀指針為4’b0000;當從滿(mǎn)被讀空時(shí),讀指針為4’b1100;由此可見(jiàn)仿真的FIFO的空滿(mǎn)信號與設計一致。

  2 基于FIFO結構的優(yōu)化端點(diǎn)設計方案

  2.1 基于新型FIFO結構設計控制端點(diǎn)

  上文已經(jīng)論述過(guò)控制端點(diǎn)是一個(gè)雙向傳輸的端點(diǎn),但是在同一時(shí)刻只能是單向的數據傳輸。該端點(diǎn)主要是用于USB設備的枚舉過(guò)程,主機發(fā)送一個(gè)信息包,設備負責回應一個(gè)信息包。對于該端點(diǎn)的設計現有的方案都是采用雙FIFO來(lái)實(shí)現雙向傳輸的。一個(gè)FIFO用以接收主機發(fā)送過(guò)來(lái)的數據包;另外一個(gè)FIFO用以向主機發(fā)送數據包。在傳輸數據包時(shí)總有一個(gè)FIFO處于空閑狀態(tài),這樣會(huì )造成存儲器資源的浪費。為此,本文提出一種新型的異步FIFO結構,該結構使用一塊雙端口sram來(lái)實(shí)現控制端點(diǎn)的單工雙向傳輸,而傳統的雙FIFO結構需要兩塊SRAM用來(lái)實(shí)現雙向傳輸。由于SRAM占據了FIFO的大部分面積,在實(shí)現控制傳輸的功能下少用了一塊SRAM,可以預見(jiàn)最終的電路實(shí)現面積會(huì )減小將近1/2。

  圖4是本文所設計的新型異步FIFO結構,該FIFO的實(shí)現是基于一塊雙端SRAM。在上文所提到的異步FIFO結構的基礎上增加一套讀寫(xiě)指針邏輯和滿(mǎn)空判斷標志。這個(gè)電路可以看作是原來(lái)電路模塊的復制,即兩者設計完全一致。這兩個(gè)新增的指針模塊用以產(chǎn)生訪(fǎng)問(wèn)SRAM的地址和用以產(chǎn)生滿(mǎn)和空的格雷碼指針。這樣在同一方向對于SRAM的訪(fǎng)問(wèn)就會(huì )有兩個(gè)地址,其中一個(gè)是讀地址,另一個(gè)是寫(xiě)地址。這樣需要設計一個(gè)選擇器,用以選擇當前訪(fǎng)問(wèn)SRAM的是讀地址或寫(xiě)地址。這個(gè)選擇器的選擇端可以根據不同方向的讀寫(xiě)使能信號來(lái)切換。這是由于在同一時(shí)刻不可能出現一個(gè)方向的讀/寫(xiě)使能均有效的現象。


  對于圖4的數據路徑可簡(jiǎn)介如下,方向0在其寫(xiě)使能信號的控制下,往FIFO內寫(xiě)入數據,寫(xiě)滿(mǎn)之后方向1控制其讀使能將方向0寫(xiě)入的數據讀出來(lái)。然后方向1控制其寫(xiě)使能將數據寫(xiě)入雙端口SRAM,方向0負責把SRAM內的數據讀出。

  對于USB的控制端點(diǎn),其接收的最大數據包為64 b。故本文設計的雙向FIFO使用的sram亦為64 b。使用memory complier生成。圖5是設計的雙向FIFO在Modelsim下的仿真波形圖。該波形顯示了方向0寫(xiě)數據,方向1讀數據和方向1寫(xiě)數據,方向0讀數據的過(guò)程。


  2.2 其他端點(diǎn)的優(yōu)化設計

  對于USB設備控制器的其他端點(diǎn),由于其與控制端點(diǎn)有所不同??刂贫它c(diǎn)是一個(gè)雙向端點(diǎn),而非控制端點(diǎn)單向的傳輸。故對于非控制端點(diǎn)對應的緩沖區的容量設定,應使USB的帶寬利用率盡量達到最高。由于USB規范中規定緩沖區必須有足夠的空間,可以為全(高)速設備容納一個(gè)時(shí)間片所能傳輸的數據量的兩倍的容量。這樣USB在處理一個(gè)數據分組的同時(shí),可以接收下一個(gè)數據分組。以此種重疊技術(shù)可以提高總線(xiàn)利用率。如果批量端點(diǎn)的緩沖區的深度設計為1 024 B。就可以得到最大的帶寬利用率。

  圖6是其他端點(diǎn)所采用的雙緩沖FIFO方案示意圖。在狀態(tài)1,req0控制訪(fǎng)問(wèn)FIFO0,reql控制訪(fǎng)問(wèn)FIFO1;在狀態(tài)2,req0切換到訪(fǎng)問(wèn)FIFO1,req1切換到訪(fǎng)問(wèn)FIFO0?;陔p緩沖FIFO的設計方案可使其他端點(diǎn)的帶寬利用率達到最高,滿(mǎn)足高速傳輸的需求。


  3 電路的ASIC實(shí)現結果

  對上述設計方案采用Verilog硬件描述語(yǔ)言進(jìn)行設計。仿真工具為Modelsim SE 6.2b,前仿真通過(guò)后,對設計好的電路使用Design Complier進(jìn)行綜合。綜合所使用的工藝庫是SMIC 0.18 μm工藝庫。

  對于控制端點(diǎn),考慮到其主要處在SIE時(shí)鐘和MCU時(shí)鐘之間,對其所加的時(shí)鐘約束分別為60 MHz和30 MHz;此外還對傳統的雙緩沖FIFO結構進(jìn)行了綜合,兩者所加約束完全一致。將兩者的電路的綜合結果對比如表2所示。


  對比表2可知在保證控制端點(diǎn)功能的前提下,本文所采用的新型FIFO結構比傳統雙FIFO結構在電路的實(shí)現面積方面減小了45.3%。


  對于其他端點(diǎn)所采用的雙緩沖FIFO方案保證了傳輸速度,但卻是以犧牲面積為代價(jià)換來(lái)的。表3給出了批量(Bulk)傳輸端點(diǎn)(兩個(gè)深度為512 B的FIFO)的實(shí)現面積報告。

  4 結 語(yǔ)

  USB設備控制器端點(diǎn)緩沖區的性能,直接關(guān)系到總線(xiàn)的帶寬利用率。這里分析了USB的四種傳輸類(lèi)型并根據其特點(diǎn)靈活的設計了不同的方案,并給出了最終電路的ASIC實(shí)現結果。特別是針對控制端點(diǎn)所提出的一種新方案具有一定的通用性,該方案可以應用在其他類(lèi)似場(chǎng)合的設計中。

pid控制器相關(guān)文章:pid控制器原理




關(guān)鍵詞: USB設備 端點(diǎn)緩沖區

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>