彭 丹,張勁松,張 特
(1.武漢郵電科學(xué)研究院,湖北 武漢 430074;2.武漢群茂科技有限公司,湖北 武漢 430074)
一種基于FPGA的USB3.0 HUB的研究與設(shè)計(jì)
彭 丹1,2,張勁松1,2,張 特1,2
(1.武漢郵電科學(xué)研究院,湖北 武漢 430074;2.武漢群茂科技有限公司,湖北 武漢 430074)
HUB(集線器)是USB體系中不可或缺的一部分,它是USB的最新規(guī)范,由英特爾等公司發(fā)起。首先介紹了USB3.0 HUB的原理、基本功能和枚舉過程;然后提出USB3.0 HUB的總體設(shè)計(jì)方案;重點(diǎn)描述了此方案中關(guān)鍵模塊的設(shè)計(jì)和實(shí)現(xiàn);并對該方案進(jìn)行FPGA仿真與驗(yàn)證,驗(yàn)證結(jié)果表明該方案的可行性以及它所達(dá)到的效果。
USB3.0;集線器;高級加密標(biāo)準(zhǔn);FPGA
【本文獻(xiàn)信息】彭丹,張勁松,張?zhí)?一種基于FPGA的USB3.0 HUB的研究與設(shè)計(jì)[J].電視技術(shù),2013,37(11).
USB總線是目前最為成功,應(yīng)用最為廣泛的外設(shè)接口。隨著時(shí)代的進(jìn)步和發(fā)展,電子產(chǎn)品、手持設(shè)備、超大容量的高清視頻設(shè)備以及千萬像素的數(shù)碼相機(jī)等設(shè)備的需求越來越高,USB接口規(guī)范也需要相應(yīng)地進(jìn)行不斷地更新和升級。USB3.0的最高理論速度達(dá)到了5 Gbit/s,向需要更大電力支持的設(shè)備提供更好的支持和電力供應(yīng),它在USB2.0的基礎(chǔ)上增加了新的電源管理功能,采用全雙工數(shù)據(jù)通信,提供更快的傳輸速度,并且向下兼容USB2.0和USB1.1設(shè)備。USB體系主要包括三個(gè)部分:主機(jī),設(shè)備和物理連接。主機(jī)通常是PC或者主機(jī)控制器;設(shè)備是指常用的U盤、帶USB的攝像頭、相機(jī)等設(shè)備;物理連接就是通常用的傳輸線,在USB3.0系統(tǒng)中,采用了對偶單純形四線制差分信號線,因此可以支持雙向并發(fā)數(shù)據(jù)流傳輸,這也是USB3.0相比于USB2.0設(shè)備速度提升的關(guān)鍵因素[1]。
HUB是USB系統(tǒng)中的重要組成部分,且能夠應(yīng)用在大多數(shù)操作系統(tǒng),它是建立主機(jī)與USB設(shè)備之間的橋梁。作為一類特殊的USB設(shè)備,可以同時(shí)將一個(gè)接口轉(zhuǎn)換為多個(gè)接口,為用戶提供了效率和便捷。
根據(jù)最新USB3.0的協(xié)議規(guī)定,USB3.0 HUB主要由Super Speed HUB,Vbus Control Logic,USB2.0 HUB以及上下行端口組成[2]。由于USB3.0是向下兼容的,所以它有完整的USB2.0HUB設(shè)計(jì),而Super Speed HUB部分就是 USB3.0 HUB 區(qū) 別 于 USB2.0 HUB 的 主 要 部 分 。USB3.0 HUB基本結(jié)構(gòu)如圖1所示。
USB3.0 HUB是USB系統(tǒng)中的重要部分,它的基本功能如下:
1)基本連接功能。
2)電源管理功能。USB3.0能夠提供900 mA的電源,這樣就可以給那些連接USB3.0的設(shè)備更快更好地完成充電。由于新的接口提供了額外的兩條線,900 mA的電力支持能夠驅(qū)動(dòng)無線適配器,這樣在900 mA的高電力支持下可以擺脫靠線纜連接的必要性。在大量數(shù)據(jù)傳輸?shù)耐瑫r(shí),空閑的設(shè)備可以自動(dòng)進(jìn)入低功耗狀態(tài),給正在傳輸?shù)脑O(shè)備提供更好更快的性能支持。
3)設(shè)備連接和斷開檢測。
4)總線的錯(cuò)誤檢測和恢復(fù)。
5)HUB3.0的自動(dòng)掛起和恢復(fù)功能。
6)向下兼容,下行端口同時(shí)支持高/低/全速設(shè)備。
USB3.0 HUB是一種便攜的低成本的USB3.0擴(kuò)展接口,它的下行端口面向USB設(shè)備,上行端口面向PC主機(jī)或者嵌入式主機(jī)控制器,速度由上行端口的主機(jī)來決定,同時(shí)它在下行端口給設(shè)備提供連接和斷開的檢測,根據(jù)USB3.0最新協(xié)議規(guī)范,要實(shí)現(xiàn)上節(jié)所述各項(xiàng)功能設(shè)計(jì)。Super Speed HUB的整體構(gòu)架如圖2所示,包括SIE、控制、處理轉(zhuǎn)換、中繼、路由、AES加解密等部分。
Super Speed HUB中的SIE模塊處理USB規(guī)范中物理層和協(xié)議層的協(xié)議解析,它主要實(shí)現(xiàn)包的識別與產(chǎn)生、比特填充和提取、時(shí)鐘與數(shù)據(jù)分離、NRZI編碼和解碼、PID(包標(biāo)識符)的產(chǎn)生和檢測、CRC校驗(yàn)碼的識別和產(chǎn)生、地址檢測等。SIE模塊設(shè)計(jì)中,分為SIE_PL和SIE_FUC兩個(gè)部分。SIE_PL模塊負(fù)責(zé)數(shù)據(jù)包的解析與組織,PID(包標(biāo)識符)產(chǎn)生與檢測、CRC校驗(yàn)識別與產(chǎn)生、地址檢測等。SIE_FUC模塊主要實(shí)現(xiàn)SIE模塊與MCU的接口邏輯功能。另外,為了使本系統(tǒng)設(shè)計(jì)更加穩(wěn)定,SIE模塊中采用跨時(shí)鐘域的設(shè)計(jì),一個(gè)是本地的48 MHz的全局時(shí)鐘,另外一個(gè)是USB主機(jī)從接收到的數(shù)據(jù)流中采樣接收的12 MHz數(shù)據(jù)時(shí)鐘(即將48 MHz本地全局時(shí)鐘4分頻得到)[3]。SIE模塊設(shè)計(jì)框圖如圖3所示。
HUB控制器主要完成HUB的管理及控制,實(shí)現(xiàn)與主機(jī)的交互。主機(jī)端通過類請求與HUB控制器模塊通信,取得HUB端口的描述符,并且完成USB HUB及其下行端口的管理和控制。主機(jī)通過向端點(diǎn)0發(fā)送類請求和標(biāo)準(zhǔn)請求來實(shí)現(xiàn)HUB的枚舉過程。
AES是一種基于置換和代替的算法,它實(shí)現(xiàn)加解密功能。在USB3.0 Super Speed模式下,根據(jù)用戶的需求,當(dāng)數(shù)據(jù)從上行端口向下行端口傳輸時(shí),對數(shù)據(jù)進(jìn)行加密,以防止信息竊取。同樣,在數(shù)據(jù)由下行端口向上行端口傳輸時(shí)實(shí)現(xiàn)其解密過程。AES算法加解密過程如圖4所示。
在加解密的過程中,由于USB3.0 HUB的傳輸速度可達(dá)到3 200 Mbit/s,但是AES的加解密IP在250 MHz的吞吐率下最高速率只能達(dá)到2 400 Mbit/s,因此在加解密的過程中需要2個(gè)AES來實(shí)現(xiàn)其功能。圖5是USB3.0 AES加密原理圖,從圖中可以看到上行端口會(huì)向EM_A發(fā)送奇數(shù)128 bit數(shù)據(jù),向EM_B發(fā)送偶數(shù)128 bit數(shù)據(jù),同時(shí),Mem_buf模塊也會(huì)輪詢地從EM_A模塊和EM_B模塊接受數(shù)據(jù)。而在以前的USB2.0的模式下,數(shù)據(jù)位寬只有8 bit,全速的帶寬為480 Mbit/s,所以只需要1個(gè)AES就可以。
ROUTING模塊即路由邏輯模塊,它的作用是根據(jù)連接到下行端口設(shè)備的速度來決定將下行端口連接到中繼模塊還是連接到TT模塊。由于在USB3.0 HUB的上行端口中的速度是高速的,而下行端口則不確定為高速、全速或者低速,所以當(dāng)下行端口設(shè)備的速度為高速時(shí),ROUTING模塊連接到中繼模塊,如果下行端口設(shè)備的速度為全速或者低速時(shí)就連接到TT模塊。
集線器中繼模塊在HUB的數(shù)據(jù)轉(zhuǎn)發(fā)中起到建立和拆除上行端口和下行端口之間的連接,并且處理集線器的掛起和喚醒的作用。中繼器把上行端口的數(shù)據(jù)發(fā)送到下行端口,把下行端口的數(shù)據(jù)發(fā)送到上行端口,并且要用本地時(shí)鐘來從端口上發(fā)送和接受數(shù)據(jù)。它以數(shù)據(jù)包為單位控制端口的建立和連接以及HUB的喚醒和掛起[4]。如圖6所示為Repeater的連接狀態(tài)機(jī)。
PHY模型就是通常所說的USB物理收發(fā)器模型[5],它的作用是實(shí)現(xiàn)數(shù)據(jù)的串并轉(zhuǎn)換。因?yàn)樵谏闲卸丝谑遣⑿袛?shù)據(jù),而在面向設(shè)備和電纜中的下行端口是串行數(shù)據(jù)。
TT模塊的作用是完成傳輸事務(wù)轉(zhuǎn)發(fā)和速度的匹配[6]。當(dāng)上行端口在高速環(huán)境下運(yùn)行而下行端口在全速或者低速下運(yùn)行時(shí),TT處理轉(zhuǎn)換器就是將高速事務(wù)轉(zhuǎn)換成低速事務(wù)。由于要滿足速度的匹配,因此TT處理器必須采用緩存的方式來存儲(chǔ),在緩存的上行端口是一個(gè)高速處理器,用來處理高速數(shù)據(jù)的收發(fā);緩存的下行端口是全速和低速處理器,用來處理全/低速數(shù)據(jù)的接受和發(fā)送。
為了更好地完成仿真和驗(yàn)證,采用Modelsim SE和Navos公司的Debussy軟件。首先搭建仿真環(huán)境,包括編譯測試文件、仿真調(diào)用文件、引導(dǎo)文件、宏定義文件以及激勵(lì)文件。首先將C語言的驅(qū)動(dòng)程序在Linux環(huán)境下轉(zhuǎn)換為二進(jìn)制的kvout激勵(lì)文件,把二進(jìn)制的kvout文件存儲(chǔ)在外掛的Flash中然后再存儲(chǔ)到內(nèi)置的RAM中,使其成為發(fā)出指令的源頭;同時(shí)USB Device的行為級模型也會(huì)裝載部分命令以達(dá)到仿真的目的。如圖6所示為USB3.0 HUB高速數(shù)據(jù)批量傳輸仿真結(jié)果。
圖6中數(shù)據(jù)包的總大小為4 096 byte,rst_n為系統(tǒng)復(fù)位信號,clk30為主機(jī)端12 M時(shí)鐘,pci_clk為本地時(shí)鐘,cpu_datao是從主機(jī)發(fā)送出的數(shù)據(jù),utm0_data,utm1_data,utm2_data,utm3_data分別為經(jīng)過USB3.0 HUB擴(kuò)展后的4路高速信號,Utm_rxready,utm_rxvalid,utm_rxactive分別為端口的控制信號。
為了加強(qiáng)整個(gè)設(shè)計(jì)的可靠性,必須進(jìn)行FPGA驗(yàn)證,F(xiàn)PGA驗(yàn)證選擇的是Altera的StratixII S180開發(fā)板,采用QuartusII將RTL級的verilog代碼進(jìn)行變異并且綜合成網(wǎng)表,然后通過USB-blaster下載線下載到FPGA測試版中,另外激勵(lì)文件是在Linux環(huán)境下編譯產(chǎn)生的,并且通過EJTAG下載到測試版中。把激勵(lì)文件下載到FPGA板子中后,把HUB的上行端口連接到USB的主機(jī),此時(shí)如果主機(jī)檢查出有USB HUB連接,會(huì)產(chǎn)生1個(gè)復(fù)位信號;在HUB復(fù)位后,USB主機(jī)向USB Device發(fā)送令牌包,并且對HUB進(jìn)行枚舉,主機(jī)識別出該HUB;當(dāng)主機(jī)對USB3.0 HUB成功枚舉后按照USB協(xié)議進(jìn)行數(shù)據(jù)傳輸。
在傳輸速率上,可以通過USB3.0HUB傳輸1個(gè)比較大的文件,并且用ATTO DISK BENCHMARK軟件來測試其讀寫速度,通過ATTO可以顯示出讀取數(shù)據(jù)可以提高到1 088 Mbit/s,寫入速度可以達(dá)到840 Mbit/s(USB2.0 HUB的讀寫速度分別為240 Mbit/s和184 Mbit/s);很顯然這個(gè)讀寫速度比USB2.0的提高了5~6倍。當(dāng)然由于軟件和硬件的各種原因,這個(gè)實(shí)際的傳輸速度離其理論最大值5 Gbit/s有一定的差距,但已基本實(shí)現(xiàn)其高速傳輸?shù)墓δ堋?/p>
從verilog的功能仿真、時(shí)序仿真和FPGA驗(yàn)證表明,USB3.0 HUB基本實(shí)現(xiàn)了高速數(shù)據(jù)的傳輸,達(dá)到了預(yù)期的效果。
USB及HUB接口是目前計(jì)算機(jī)以及微控制器中最常用的通用高速接口,它可以連接串口、U盤、音頻、視頻、手機(jī)、相機(jī)等絕大多數(shù)的外設(shè)設(shè)備。USB3.0正在以其高速度、高性能、高可靠性、低成本等特點(diǎn)逐漸代替更多的USB2.0產(chǎn)品,成為通信電子市場的主要接口。本文中設(shè)計(jì)的USB3.0 HUB實(shí)現(xiàn)了多媒體數(shù)據(jù)的高速同步及時(shí)傳輸;更佳的電源管理功能以及支持AES加密解密等功能,這些都將促使它在市場上迅速普及。但是USB3.0及其HUB依舊有自己的瓶頸,比如在某些應(yīng)用中需要盡可能高的吞吐量時(shí),線纜的長度會(huì)受到限制;同時(shí)電纜的材質(zhì)以及信號的質(zhì)量也會(huì)在整體上影響傳輸?shù)男Ч栽趥鬏敯僬滓陨蠑?shù)據(jù)流時(shí),所用線纜最好不要超過3 m。
:
[1] 黃輝.USB3.0技術(shù)發(fā)展和展望[J].大眾硬件,2008(10):37-140.
[2] 范垂榮.USB集線器設(shè)計(jì)與開發(fā)[J].大眾科技,2005(11):145-148.
[3] 占揚(yáng)林.基于FPGA的USB3.0 HUB的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北方工業(yè)大學(xué),2011.
[4] 胡錦,胡立琴,陳訓(xùn)亮.一種嵌入式USB2.0主機(jī)控制器IP核的研究與設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2009,26(1):133-137.
[5] ENGBRETSON M.USB3.0 physical layer measurements[J].Evaluation Engineering,2009,48(1):14-19.
[6] The Fujitsu USB 3.0-SATA Bridge IC Earns USB-IF Compliance Certification for SuperSpeed USB[EB/OL].[2012-09-01].http://www.fujitsu.com/us/news/pr/fma_20100106-1.html .
Resarch and Design of USB3.0 HUB Based on FPGA
PENG Dan1,2,ZHANG Jinsong1,2,ZHANG Te1,2
(1.Wuhan Research Institute of Post&Telecommunication,Wuhan 430074,China;2.Wuhan Trimode Technology,Wuhan 430074,China)
HUB is an integral part of the USB system,USB3.0 is the latest USB specification,initiated by Intel and other companies.USB3.0 HUB principles,basic functions and enumeration process are introuduced in this paper.And the overall design of the USB3.0 HUB is proposed.The design and implementation of key modules of this program are described.The results of FPGA simulation and verification demonstrate the feasibility of the program.
USB3.0;HUB;AES;FPGA
TP303
A
彭 丹(1984—)女,碩士生,主研IC設(shè)計(jì);
張勁松(1970—)博士,碩士生導(dǎo)師,主要從事通信終端設(shè)計(jì)研究;
張 特(1987—)碩士生,主研光模塊設(shè)計(jì)。
責(zé)任編輯:魏雨博
2012-10-08