新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種高速USB設備控制器IP核的設計與實現

        一種高速USB設備控制器IP核的設計與實現

        作者: 時間:2013-08-31 來源:網絡 收藏

          1 引言

          為了滿足各種不同設備類型需求,USB2.0 規范在USB1.1 全速(12Mbps)及低速(1.5Mbps)的基礎上增加了高速(480Mbps)傳輸速率,同時為了兼容USB1.x 規范,高速設備在全速信號環境中必須以全速正常工作,即能夠在高/全速兩種信號環境中正確地進行速率切換,這也加大了高速的設計難度。本文通過分析USB2.0 協議, 利用VerilogHDL 實現了符合該規范的高速IP 核,同時對設計中的幾個問題加以討論并提出相應的解決方案。

          2 USB2.0 協議

          包(Packet)是USB 傳輸的最小單位。每個數據包的開始都有同步頭(SYNC)以及相應的包標示符(PID),包的結尾處都有包結束符(EOP)。在全/低速信號環境中,SYNC 長度為8 個時鐘周期(對應一個字節01h),EOP 為2 個時鐘周期的單端0 (singleend,SE0)。而在高速信號環境中,除了新添加了幾個信息包PID,以及同步頭、EOP 分別增加到4 個字節長度和1 個字節(有個例外, 就是SOF 后面的EOP 可以到4 字節)長度以外,為保證包中數據的正確性而進行的PID 互補校驗以及數據字段的CRC 校驗都沒有變化。

          USB 傳輸(Transfer)是通過一個或者多個包含一系列數據包的事務(transaction)完成的,事務的格式示意圖如圖1(a)所示。令牌數據包定義傳輸類型、目標設備地址、端點號碼以及數據傳輸方向,如圖1(b);數據階段的數據包裝載長度與傳輸類型相關的數據,如圖1(c);握手應答包(在同步傳輸中沒有)定義該次事務的結果, 視接收情況分為4 種:ACK、NAK、STALL、NYET,分別表示數據成功接受、設備忙、設備(端點)不可用、還沒有足夠的緩存空間接受下一個數據包。

          每一個USB 設備的端點都有其特定的屬性標明如何訪問它,每一種傳輸類型也都和具體的應用要求相聯系。為了支持各種設備類型,USB 規范提供中斷(interrupt) 傳輸、塊(bulk) 傳輸和同步(isochronous) 傳輸以滿足不同的應用要求。控制(control)傳輸基本用于主機(HOST)對設備進行配置以及下達各種命令,且有專門的PID 標示。因高速環境中總線帶寬大大的提升,所以包的數據字段的有效載荷都相應的加大了。不過對于任何高速設備來說,首先都是以全速設備出現,如果其復位時發出握手信號(線性調頻脈沖)主機端應答成功,則斷開上拉電阻而進入高速模式。

          3 核的設計與實現

          3.1 設計思想

          目前USB 設備端控制器的實現主要有兩種方式:一是全集成芯片,如專用的微處理器(MCU)內嵌符合USB 規范的SIE(Serial Interface Engine);二是部分集成芯片,如分立的通用微處理器+SIE。前者涉及到要開發專用的MCU,開發時間長、風險大;后者集成度雖低,但不需專門設計MCU,極大地縮短了開發時間和風險性,同時應用時具有更大靈活性。考慮設計開發時間、設計工作量及應用測試等因素,本設計采用第二種方式(外置通用MCU),完成設備控制器整個數字部分IP 核的設計。

          設計完成的IP 核實現了控制,中斷,批量,同步四種模式傳輸,同時根據總線信號環境自動完成高/全速轉換。為了降低MCU 的開發難度,精簡內部的中斷產生, 自動實現數據重傳而不需要MCU 的任何干預。

          3.2 模塊劃分及具體實現

          該USB 設備控制器的邏輯功能框圖如圖2(a)所示。SIE(串行接口引擎)為該設計的核心。設備在接收數據時, 對NRZI 數據流進行解碼并提交數據及其接收情況;發送數據時生成相應的數據PID 并進行NRZI 編碼發送出去。為了更好地實現整個控制邏輯,把整個設備端控制器核劃成6 大塊:物理層PHY,收發器宏單元接口UTMI,協議層PL,存儲接口仲裁MIA , 內部狀態控制寄存器CSR 以及端點存儲DPRAM,如圖2(b)所示。

          3.2.1 PHY

          由USB2.0 協議規范可知, 高速設備控制器必須能在高/全速信號環境之間正確切換, 因此PHY必須能夠根據工作模式確定其信號環境;其次必須進行高速480M/全速12 MHz 的NRZI 數據流解碼、編碼工作及其相應的串并、并串轉換。設計中PHY使用了Philips 的ISP1501, 因此該部分數模混合設計不做介紹,ISP1501 的詳情請參考文獻。

          3.2.2 UTMI

          UTMI 控制suspend/resume 的產生以及生成全/高速之間切換的模式信號, 由于ISP1501 的數據線寬度為16 bits,一次處理一個字(1 word=2 bytes),故還要起到PHY 與協議層(PL)之間數據交換的緩沖作用。內部框架如圖3 所示。速度協商控制(SNC)為該模塊的核心。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 托克托县| 黄骅市| 内乡县| 奉化市| SHOW| 桐柏县| 米易县| 朝阳区| 呼和浩特市| 小金县| 霍林郭勒市| 沅江市| 丽江市| 资阳市| 崇左市| 资兴市| 松江区| 突泉县| 永仁县| 临朐县| 怀仁县| 陇南市| 漯河市| 滁州市| 庄浪县| 东方市| 阿拉善右旗| 社会| 绥阳县| 巨鹿县| 许昌县| 林周县| 吉林市| 岳阳市| 陵水| 东乌| 宁武县| 鸡东县| 新干县| 日照市| 涡阳县|