《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 無MCU的USB2.0設備控制器IP設計與驗證
無MCU的USB2.0設備控制器IP設計與驗證
來源:微型機與應用2013年第10期
袁志堅1, 黃 魯2, 徐 駿2
(1. 中國科學技術大學 電子科學與技術系 集成電路實驗室, 安徽 合肥 230027; 2. 中國
摘要: 實現了一種無需MCU的USB2.0設備控制器IP核。使用硬件電路代替傳統單片機實現的MCU和固件功能,支持高速(480 Mb/s)和全速(12 Mb/s)傳輸。所設計的IP核在FPGA上經過了驗證,結果表明它可以作為獨立的模塊用于SoC系統中。
關鍵詞: FPGA IP USB SOC MCU
Abstract:
Key words :

摘  要:  實現了一種無需MCUUSB2.0設備控制器IP核。使用硬件電路代替傳統單片機實現的MCU和固件功能,支持高速(480 Mb/s)和全速(12 Mb/s)傳輸。所設計的IP核在FPGA上經過了驗證,結果表明它可以作為獨立的模塊用于SoC系統中。
關鍵詞: IP; USB; SoC; MCU

    通用串行總線USB(Universal Serial Bus)是現今最為流行的計算機接口,它是一種快速、雙向、同步、可動態監測的串行接口[1]。目前大多數的USB設計都是經過系統集成,采用現成的商用USB芯片進行開發,并沒有涉及到IP(Intellectual Property)核的設計與開發。在SoC(System on Chip)開發中可以利用已有的IP核開發成果,縮短系統芯片的設計周期,提高效率。本文通過分析USB2.0協議,實現了一個無需外置MCU(Micro Control Unit)的USB2.0設備控制器IP核,并進行了FPGA驗證,可用于SoC的集成中。
1 USB2.0設備控制器系統設計
    目前USB2.0設備控制器廣泛使用的系統架構是串行接口引擎SIE(Serial Interface Engine) +MCU模式,SIE負責解釋USB協議層的動作[2]。一方面,SIE模塊將主機發送的信息解釋成后端功能設備能夠識別的信息;另一方面,將功能模塊相關數據按照符合USB協議的格式發送給主機。這種傳統的USB設備控制器設計核心是針對事務(Transaction)和信息包(Packet)的處理。對于關鍵的控制傳輸,則需要外置單片機和固件的輔助,因為這種傳統的USB設備控制器不能獨立完成USB與主機通信過程中最核心的枚舉過程。
    本文使用硬件電路代替傳統單片機實現MCU和固件的功能。整體框架如圖1所示,圖中實心箭頭代表應用與主機之間的數據流。

    采用Top-to-Down(自頂向下)的設計結構將USB設備控制器劃分為以下主要功能模塊:
    (1)Init模塊:實現UTMI協議(USB 2.0 Transceriver Macrocell Interface(UTMI) Specification)的相關細節,主要用于控制總線掛起/恢復模式與速度模式的切換。
    (2)Packet模塊:對接收到的USB格式的信息包進行處理,提取其中的數據,檢驗CRC;對發送的數據進行封裝,添加CRC檢驗位。
    (3)Transaction模塊:對USB定義的基本事務(transaction)類型(如IN、OUT、SETUP和PING等)按照協議規范處理。以上模塊實現SIE的功能, 其事務處理流程如圖2所示。

    (4)Serial模塊:例化調用其他模塊,同時對傳輸過程中的錯誤進行處理。
    (5)Descriptor ROM和Control模塊:完成枚舉過程中的控制傳輸。

 


2 硬件電路代替MCU和固件
2.1方案分析

    微控制器的主要功能是負責執行固件框架程序,協助完成 USB的控制傳輸。這一部分可以用單片機或者硬件電路實現,目前常用單片機實現,優點是設計簡單、靈活;缺點是單片機的速度比較慢,遠遠低于硬件電路。
    使用硬件電路實現雖然設計復雜而且靈活度不如單片機,但它的優點是:(1)降低協議開銷,從而得到更快的傳輸速度;(2)降低用戶使用開發周期,因為使用硬件電路實現MCU功能,省去了后期固件和驅動程序的開發;(3)不使用單獨的單片機,顯著地降低了成本。
2.2 MCU和固件功能模擬
    本設計中Descriptor ROM模塊用于存儲控制傳輸協議中需要用到的各種描述符,模擬枚舉過程中固件的功能。例如18 B的設備描述符定義如下:
    constant desc_dev: byte_array(0 to 19) := (
    X"12",  -- bLength = 18 bytes
    X"01",  -- bDescriptorType=device descriptor
    X"00", 
    X"02",  -- bcdUSB = 2.00
    X"02",  --bDeviceClass=CDC
    X"00",  -- bDeviceSubClass = none
    X"00",  -- bDeviceProtocol = none
    X"40",  -- bMaxPacketSize0 = 64 bytes
    VENDORID(7 downto 0),   -- idVendor
    VENDORID(15 downto 8),
    PRODUCTID(7 downto 0),  -- idProduct
    PRODUCTID(15 downto 8),
    VERSIONBCD(7 downto 0), -- bcdDevice
    VERSIONBCD(15 downto 8),
    X"01",  -- iManufacturer
    X"02",  -- iProduct
    X"03",  -- iSerialNumber
    X"01",  -- bNumConfigurations = 1
    X"00", X"00" ); -- 2 bytes padding
    ([注] byte_array是自定義的數組類型)
    Control模塊模擬MCU的行為,根據控制傳輸時主機請求的類型,在Descriptor ROM中選擇相應的描述符返回給主機。為了精簡工作流程,設計中按照“在保證傳輸正確的基礎上盡量減少中斷”的設計原則[3],實現了設備控制器最大限度精簡指令。根據USB2.0規定的標準設備請求的結構, Control模塊的主要工作流程圖3所示。

    Control模塊代碼的結構主體是一個三重狀態機。圖3是Control模塊簡化流程示意圖, 沒有標出差錯處理機制和其他細節??刂苽鬏斨?主機發送數據域長度為8 B的請求,當Transaction模塊檢測到Setup類型傳輸時,通知Control模塊,Control模塊檢測識別標準USB請求的8 B數據,進行相應操作(如SetAddress、GetDesciriptor和GetConfiguration)。按照主機發送8 B請求的順序,核心處理步驟如下:
    (1)檢測bmRequestType字節,bmRequestType的D6~5位為00代表USB協議定義的標準請求(bRequest)。(2)檢查bRequest字節,USB支持11類的標準請求,此步驟可以確定請求的描述符類型。(3)檢查wValue域(2 B),低字節表示索引號,用來選擇同一種描述符(例如字符串描述符和配置描述符)中具體某個描述符;高字節表示描述符的類型編號。(4)檢查wIndex域,在獲取字符串描述符時表示字符串的語言ID號。(5)最后檢查wLength,表示數據過程(如果有時)所需要傳輸的字節數。
    當Endpoint(端點)寄存器為“0000” (表示控制端點)且內部Dscbusy寄存器為‘0’(控制傳輸,但請求的不是描述符)時,選擇發送給主機的數據是代表當前的Device(設備)、Endpoint和Interface(接口)狀態的數據;當Endpoint(端點)寄存器為“0000”(表示控制端點)且Dscbusy寄存器為‘1’時,選擇wValue確定的描述符發送給主機;其他情況發送的是來自應用系統(Application)的數據。
2.3 錯誤檢測和處理的改進
    USB規范中列出了種類繁多的錯誤的產生及其相應的檢測恢復方法。對于傳統的SIE+MCU系統,傳輸過程中發生的任何錯誤都向外部MCU提出中斷,固件對規范中的錯誤類型應有處理及恢復機制[4]。例如Host發出 IN令牌包接收到數據以后,必須及時地返回握手包,否則超時。超時后,MCU馬上產生中斷并選擇在下一個IN令牌包來時重傳上一次數據。這種處理的缺點是中斷頻繁、效率比較低。本設計中沒有使用MCU,對錯誤的檢測和處理均是在設備控制器內部進行。由于省去了中斷請求與處理的延時,對傳輸過程中發生的錯誤能夠得到高效的處理。例如對上述所提到的錯誤,Serial選擇在下一個IN令牌到來時自動重傳上一次數據,且最多嘗試3次,如果問題依舊存在,作為線路故障處理。這種處理方法能夠充分發揮硬件電路的高速優勢。
3 系統仿真與FPGA驗證
    在驗證過程中,利用事務模型建立USB虛擬主機和應用模型完成系統功能仿真,然后綜合代碼、設置引腳、自動布局布線后下載到FPGA內驗證。本文選用Cypress公司的CY7C68000芯片作為前端的收發器(PHY)和Xilinx公司的Spartan-3E(XC3S500E -4PQ208C)芯片制作的 FPGA開發板作為驗證USB設備控制器IP核的平臺。XC3S500E系統門數達50萬,可提供高達340 MHz的內部性能。
    枚舉過程屬于控制傳輸,一般分為3個階段,以Get_descriptor為例,過程如下:
    (1)建立階段:如圖4所示,USB主機首先發送來一個SETUP令牌包,PID為0x2d,設備地址為0x00,端點0x00(控制端點)。后面緊跟一個DATA0的數據包,PID為0xc3,后面的數據0x80、0x06、0x00、0x01、0x00、0x00、0x12、0x00表示這是一個Get_Descriptor標準設備請求的數據包。其中PHY_TXVALID、 PHY_TXREADY、 PHY_DATAOUT是符合UTMI定義數據發送接口信號,PHY_RXVALID、PHY_RXACTIVE、PHY_DATAIN是符合UTMI規范的數據接收接口信號。

    (2)數據階段:主機發出一個IN包,如圖5所示,PID為0x69,設備收到IN包后用數據包DATA1(PID為0x4b)返回自己的設備描述符,與前面定義的18 B設備描述符數據一致。主機收到正確的數據包后返回一個ACK握手包(PID為0xd2),表示接收正確。

    (3)狀態階段:主機發出OUT包,但與數據階段不同,狀態階段所發數據包內容為空。設備成功收到數據包后應答ACK握手包。
    本文實現了一種有別于傳統的MCU+SIE方案的USB2.0設備控制器IP核設計。使用硬件電路代替單片機實現MCU和固件功能,顯著地降低了系統硬件規模和實現成本。同時簡化了錯誤檢測和處理的流程,有利于進一步提高USB傳輸速度。FPGA驗證表明,該方案實現的USB2.0設備控制器IP核有效可行,可以進一步完成ASIC設計,使之作為獨立模塊添加到SoC系統中。
參考文獻
[1] USB Implementers Forum, Inc. Universal serial bus specification(Rev 2.0)[EB/OL]. (2002-04-xx)[2013-01-24]. http://www.usb.org.
[2] 陳亮,袁志堅,史大龍,等.內嵌8051的USB2.0設備控制器IP設計[J]. 微型機與應用,2012,31(17):28-30.
[3] [美]AXELSON J. USB開發大全[M]. 李鴻鵬, 鄭瑞霞,陳香凝,等譯. 北京:人民郵電出版社, 2011.
[4] 黃衛華,朱向東, 沈緒榜.一種高速USB設備控制器IP核的設計與實現[J]. 微電子學與計算機, 2005,22(5):106-109.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美一区在线直播| 一片黄亚洲嫩模| 欧美亚洲成人精品| 国产精品日韩高清| 欧美婷婷在线| 国产日韩免费| 欧美激情亚洲国产| 麻豆视频一区二区| 欧美视频在线观看 亚洲欧| 亚洲小说春色综合另类电影| 伊人精品久久久久7777| 国产亚洲一区二区三区在线播放| 亚洲精品久久久久| 亚洲第一网站| 欧美日韩黄色大片| 亚洲天堂免费在线观看视频| 国产一区二区无遮挡| 欧美日韩精品一区二区在线播放| 久久久久久久国产| 亚洲清纯自拍| 亚洲欧美成人一区二区在线电影| 亚洲午夜精品国产| 亚洲激情第一页| 亚洲精品免费一二三区| 国产精品久久久久久久久久直播| 国产欧美一区二区三区另类精品| 亚洲国产小视频在线观看| 噜噜噜噜噜久久久久久91| 精品不卡一区| 久久高清免费观看| 国产精品一区二区在线| 国产精品日韩一区二区三区| 国产伦精品一区二区三区视频孕妇| 国产精品h在线观看| 久久精品视频在线观看| 欧美精品乱人伦久久久久久| 最新高清无码专区| 国内精品美女av在线播放| 亚洲国产美国国产综合一区二区| 欧美理论在线播放| 国产精品一区二区在线| 亚洲神马久久| 久久免费视频在线| 国产精品免费视频观看| 美女精品在线观看| 欧美在线一二三四区| 99www免费人成精品| 国产免费亚洲高清| 看欧美日韩国产| 亚洲国产成人tv| 国产精品麻豆欧美日韩ww| 久久国产精品久久久久久久久久| 国产精品亚洲美女av网站| 99riav国产精品| 亚洲激情在线观看视频免费| 久久综合九九| 欧美专区中文字幕| 最新亚洲电影| 亚洲午夜av在线| 日韩午夜av电影| 亚洲精选成人| 狠狠色狠狠色综合日日91app| 欧美三级乱码| 亚洲精品美女在线观看| 国产精品99久久久久久www| 欧美激情精品久久久久久变态| 久久免费国产| 欧美a级片网| 一区二区三区精品在线| 欧美日韩国产欧美日美国产精品| 午夜精品久久久久久久白皮肤| 亚洲欧洲日韩综合二区| 亚洲精品国产品国语在线app| 国产女人水真多18毛片18精品视频| 欧美日韩国产欧美日美国产精品| 欧美一级淫片aaaaaaa视频| 蜜桃久久精品乱码一区二区| 亚洲欧美在线网| 国产一区二区三区观看| 欧美寡妇偷汉性猛交| 国产精品99久久久久久人| 久久精精品视频| 国产一区二区按摩在线观看| 玖玖精品视频| 一区二区三区 在线观看视频| 黄色日韩网站视频| 日韩亚洲在线| 国产欧美亚洲日本| 欧美精品高清视频| 国产麻豆日韩欧美久久| 欧美久久一级| 午夜国产一区| 香蕉成人啪国产精品视频综合网| 亚洲女人天堂成人av在线| 国产三级欧美三级| 久久福利精品| 国产精品99久久久久久有的能看| 亚洲青色在线| 亚洲国产精品女人久久久| 欧美日韩国内自拍| 精品不卡一区二区三区| 久久久亚洲午夜电影| 欧美一级淫片aaaaaaa视频| 欧美日韩视频专区在线播放| 在线免费日韩片| 亚洲欧美日韩网| 欧美18av| 欧美日韩美女在线| 国产日韩欧美中文在线播放| 一本色道久久综合亚洲精品按摩| 亚洲欧美一区二区精品久久久| 亚洲色图制服丝袜| 久久精品国产99| 国产精品日本| 欧美美女操人视频| 欧美aa国产视频| 欧美一区2区三区4区公司二百| 国产精品久久久久久一区二区三区| 亚洲午夜精品久久| 国产一区二区黄| 激情亚洲成人| 国产精品福利网| 欧美不卡高清| 国产精品亚发布| 亚洲美女少妇无套啪啪呻吟| 免费观看在线综合色| 国产伦精品一区二区三区四区免费| 亚洲高清影视| 久久成人羞羞网站| 99在线|亚洲一区二区| 亚洲精品久久在线| 亚洲欧美日韩成人高清在线一区| 欧美va天堂| 免费在线观看一区二区| 久久国产精品久久久久久电车| 国内精品久久久久久久影视麻豆| 久久激情五月婷婷| 欧美美女福利视频| 久久久国产精彩视频美女艺术照福利| 国产精品你懂的| 在线视频亚洲欧美| 亚洲一区二区综合| 欧美福利电影网| 另类人畜视频在线| 欧美成人精品激情在线观看| 国产麻豆9l精品三级站| 在线观看国产精品网站| 欧美一区二区在线免费观看| 美女91精品| 国产精品乱子久久久久| 国产精品一国产精品k频道56| 久久精品欧美日韩| 久久人体大胆视频| 亚洲欧美日韩国产另类专区| 国内成人精品视频| 影院欧美亚洲| 免费欧美视频| 国产精品hd| 黑人极品videos精品欧美裸| 欧美日韩午夜精品| 在线观看亚洲精品| 亚洲美女色禁图| 亚洲视频福利| 中文一区在线| 国产偷自视频区视频一区二区| 影音先锋中文字幕一区二区| 亚洲一区二区三区在线观看视频| 中文av字幕一区| 国产精品yjizz| 国产一区二区三区四区| 精品成人a区在线观看| 久久综合九色综合久99| 国产精品久久久久久久久婷婷| 国产精品美女久久久| 日韩一区二区电影网| 亚洲欧美日韩中文在线制服| 国产精品99一区二区| av成人免费在线| 国产精品人成在线观看免费| 国产精品亚洲视频| 国产亚洲一区二区三区在线播放| 1024成人| 国产精品久久久久av免费| 国产精品video| 亚洲性夜色噜噜噜7777| 一区二区三区视频在线播放| 榴莲视频成人在线观看| 国产精品第一区| 久久婷婷av| 久久精品国产亚洲5555| 国产欧美一区二区在线观看| 久久久久.com| 牛牛影视久久网| 亚洲第一在线综合网站| 黄色欧美成人| 欧美高清在线视频观看不卡| 亚洲日本欧美日韩高观看| 蜜桃久久精品一区二区| 国产欧美一区二区三区在线老狼| 亚洲欧美激情精品一区二区| 久久成人这里只有精品| 久久嫩草精品久久久精品| 国产在线乱码一区二区三区| 一区二区三区成人| 亚洲精品一线二线三线无人区| 在线高清一区| 亚洲永久在线观看| 欧美日韩精品免费观看视频完整| 在线观看亚洲一区| 欧美黑人一区二区三区| 国产一区在线免费观看| 国产三级欧美三级日产三级99| 鲁鲁狠狠狠7777一区二区| 亚洲黄色影院| 一区二区三区四区五区视频| 欧美日韩国产综合一区二区| 欧美午夜影院| 在线观看日韩av先锋影音电影院| 国产精品国产三级国产普通话蜜臀| 亚洲激情成人网| 在线观看的日韩av| 狠狠做深爱婷婷久久综合一区| 久久人人97超碰人人澡爱香蕉| 久久午夜精品| 亚洲一区二区三区中文字幕在线| 亚洲久久在线| 国产三级欧美三级日产三级99| 国产精品久久久久一区二区三区| 日韩视频免费看| 国产欧美亚洲精品| 亚洲女人天堂成人av在线| 一本色道久久综合亚洲精品小说| 1769国产精品| 一区二区三区回区在观看免费视频| 久久久久一本一区二区青青蜜月| 欧美区二区三区| 欧美激情网友自拍| 欧美一级久久久久久久大片| 亚洲欧美日韩专区| 国产婷婷一区二区| 久久人人看视频| 欧美亚洲第一区| 国产欧美一区二区精品婷婷| 99精品国产热久久91蜜凸| 国产精品日日做人人爱| 免费久久99精品国产| 亚洲一区二区三区在线看| 日韩一级网站| 国内精品久久久久影院色| 国产欧美日韩三区| 欧美一区二区日韩一区二区| 日韩一二在线观看| 一区二区在线观看视频在线观看| 国产精品区一区| 欧美精品一区二区三区久久久竹菊| 欧美性视频网站| 韩国久久久久| 国产噜噜噜噜噜久久久久久久久| 国产精品爽爽ⅴa在线观看| 国产专区一区| 99pao成人国产永久免费视频| 精品动漫一区二区| 狠狠色狠狠色综合日日小说| 免费成人高清视频| 亚洲永久免费精品| 欧美天天视频| 亚洲欧美日韩国产综合在线| 国产午夜精品理论片a级探花| 欧美人与性动交cc0o| 欧美国产精品日韩| 免费亚洲电影在线| 欧美久久久久| 韩国av一区| 欧美日韩伦理在线免费| 国产精品成人在线观看| 欧美国产日韩xxxxx| 欧美黄色一级视频| 国产亚洲aⅴaaaaaa毛片| 狠狠狠色丁香婷婷综合激情| 亚洲愉拍自拍另类高清精品| 亚洲激情精品| 亚洲第一久久影院| 国产精品福利在线| 国产精品视频九色porn| 伊人一区二区三区久久精品| 在线观看国产一区二区| 国产精品视频一区二区三区| 在线看欧美视频| 午夜日韩av| 欧美一区在线视频| 国产在线观看一区| 亚洲国产清纯| 国产有码一区二区| 久久字幕精品一区| 一区二区激情| 国产精品扒开腿爽爽爽视频| 亚洲人成在线播放网站岛国| 亚洲高清网站| 欧美一区二区三区电影在线观看| 日韩一级成人av| 性欧美xxxx大乳国产app| 欧美成人伊人久久综合网| 国产精品视频不卡| 99re亚洲国产精品| 欧美色图一区二区三区| 亚洲与欧洲av电影| 亚洲欧美日韩国产成人| 国产精品亚洲激情| 亚洲激情中文1区| 国产精品高潮呻吟久久av黑人| 亚洲伊人色欲综合网| 欧美多人爱爱视频网站| 亚洲深夜福利| 欧美激情一区二区三区全黄| 国产精品乱码久久久久久| 国产精品一区二区久久国产| 美女视频黄a大片欧美| 午夜在线精品偷拍| 国产精品扒开腿爽爽爽视频| 国产精品久久二区| 欧美视频免费在线| 欧美在线观看一区二区| 午夜视频一区二区| 国产精品久久久久久久久久ktv| 亚洲在线播放电影| 亚洲精品免费在线| 欧美成人免费在线| 夜夜爽夜夜爽精品视频|