張劍,王茜竹
(重慶郵電大學 通信與信息工程學院,重慶 400065)
?
移動終端的USB3.0高速數(shù)據(jù)通路設(shè)計
張劍,王茜竹
(重慶郵電大學 通信與信息工程學院,重慶 400065)
現(xiàn)在USB接口已經(jīng)成為移動終端最普及的接口,隨著存儲在移動終端媒體文件的容量越來越大,要求USB3.0接口支持的傳輸速度越快越好。為了匹配USB超速傳輸模式,本文在內(nèi)存中專門規(guī)劃一片區(qū)域用于USB數(shù)據(jù)緩沖,設(shè)計驅(qū)動,搭建測試環(huán)境,測試USB數(shù)據(jù)傳輸速度。經(jīng)測試,USB數(shù)據(jù)傳輸速度有著明顯的提高。
USB3.0;Mass Storage;C8410;移動終端;驅(qū)動程序
據(jù)不完全統(tǒng)計,全球支持USB功能的移動終端已達到60多億部。支持USB功能的終端在移動終端中的占有率幾乎可以達到100%。隨著存儲在移動終端的多媒體文件越來越大,這必將對PC機與移動終端之間的傳輸速度的要求變得越來越高[1]。為了在實際應(yīng)用中進一步加快USB3.0接口的數(shù)據(jù)傳輸速率,對基于移動終端的USB接口設(shè)計進行改進顯得尤為重要。
本文在USB3.0及其補充協(xié)議Mass Storage規(guī)范下,實現(xiàn)手機端與PC機之間大容量數(shù)據(jù)的高速傳輸,并有效提升數(shù)據(jù)傳輸速度。設(shè)計思想是在DDR中分配500 MB的內(nèi)存塊用于DDR與NAND Flash之間的數(shù)據(jù)緩存。實驗結(jié)果證明,該設(shè)計能很好地確保數(shù)據(jù)傳輸有效性及高速性。同時,本文采用模塊化的設(shè)計步驟,便于拓展該設(shè)計的應(yīng)用范圍,給嵌入式設(shè)備帶來良好的發(fā)展前景。
本課題的研究工作基于的硬件平臺是以重郵信科通信技術(shù)有限公司的C8410芯片為核心,集成了眾多外圍電路模塊的智能手機系統(tǒng)。C8410是一款基于65 nm工藝的芯片,其設(shè)計的目的是提供一種4模(GSM/GPRS/EDGE、TD-SCDMA、LTE、LTE-A)單芯片的解決方案,為此,在C8410 芯片中集成了一顆ARM1176核、兩顆ARM Cortex-A7核、兩顆ZSP981核、兩顆ZSP800核、一顆CEVA的DSP核以及GSM&TD 專用的加速器,用于實現(xiàn)基帶功能。同時,集成LCD控制器、CAMERA控制器、2D加速器和Codec音頻編解碼器,用于實現(xiàn)多媒體功能。其結(jié)構(gòu)圖如圖1所示。

圖1 C8410芯片結(jié)構(gòu)
2.1Buffer 設(shè)計
2.1.1傳統(tǒng)軟Buffer設(shè)計
如圖2所示,傳統(tǒng)的Bufrer緩存方案是當需要內(nèi)存空間進行數(shù)據(jù)緩存時,軟件上調(diào)用內(nèi)存分配函數(shù)動態(tài)分配一塊連續(xù)的內(nèi)存空間,數(shù)據(jù)傳輸后再釋放該內(nèi)存空間。

圖2 軟件Buffer模型
2.1.2硬件Buffer設(shè)計
USB理論傳輸速度為500 Gbps,而本文采用的外部存儲器EMMC支持最大的讀寫速度為104 MB/s,因此FIFO設(shè)置不同的讀寫時鐘,分別設(shè)置為讀FIFO為20 MHz,寫FIFO為100 MHz,即USB向FIFO寫入的數(shù)據(jù)時鐘為100 MHz,EMMC從FIFO中讀出的數(shù)據(jù)時鐘為20 MHz。FIFO數(shù)據(jù)單元的位寬設(shè)置為32位,最大數(shù)據(jù)量為512字節(jié)。片上FIFO的Modelsim仿真結(jié)果如圖3所示。
clk_20m:讀FIFO時鐘;clk_100m:寫FIFO時鐘;sdram_wr_ack:FIFO讀請求信號,高電平有效;write_fifo_req:FIFO寫請求信號,高電平有效;write_fifo_data_in:寫入FIFO的數(shù)據(jù);sys_data_in:FIFO讀出的數(shù)據(jù);wrf_use:當前FIFO隊列里存在的數(shù)據(jù)個數(shù)。

圖3 FIFO初始化完成
2.2驅(qū)動設(shè)計
驅(qū)動的開始是通過模塊加載函數(shù)usb_stor_init,把代表USB Mass Storage驅(qū)動的結(jié)構(gòu)體usb_driver加載到內(nèi)核,該結(jié)構(gòu)體及其初始化如下:
static struct usb_driver usb_storage_driver = {
.name = "usb-storage",
.probe = storage_probe,
.disconnect = usb_stor_disconnect,
.suspend = usb_stor_suspend,
.resume = usb_stor_resume,
.reset_resume = usb_stor_reset_resume,
.pre_reset = usb_stor_pre_reset,
.post_reset = usb_stor_post_reset,
.id_table = usb_storage_usb_ids,
.supports_autosuspend = 1,
.soft_unbind = 1,
};
其中最重要的是設(shè)備的初始化函數(shù)storage_probe,該初始化函數(shù)分為2步——usb_stor_probe1和usb_stor_probe2,設(shè)備的初始化具體實現(xiàn)流程如圖4所示。

圖4 USB Mass Storage設(shè)備初始化
3.1調(diào)試環(huán)境
本文采用Source Insight 3.5軟件進行代碼編輯,使用RVDS4.0編譯生成調(diào)試使用的.axf文件和燒入使用的.bin文件,最后使用Trace32調(diào)試軟件加載.axf文件,調(diào)試代碼。
調(diào)試環(huán)境如圖5所示。其中①為ARM調(diào)試器,一端通過JTAG接口連接到FPGA仿真平臺,另一端連接到PC端。圖中的連接器②為USB-RS232轉(zhuǎn)換器件,一端連接在目標板的UART口,另一端連接在PC端。在調(diào)試代碼的時候需要一些額外的打印信息,此器件接收從芯片UART接口輸出的消息,轉(zhuǎn)換為USB數(shù)據(jù)包后,最終顯示在PC機的超級終端上,大大提升了調(diào)試的效率。圖中很大的一塊電路板③是在FPGA仿真平臺④(圖中鐵架中的整個部分)的作用下仿真C8410芯片。電路板⑤為插在FPGA平臺上的USB3.0模塊,仿真C8410芯片的USB3.0功能。

圖5 調(diào)試環(huán)境
3.2枚舉測試
圖6是設(shè)備枚舉過程的數(shù)據(jù)包。

圖6 USB協(xié)議分析儀抓取的枚舉數(shù)據(jù)
3.3Mass Storage協(xié)議測試
圖7是主機與設(shè)備間Mass Storage協(xié)議下的通信過程抓取的數(shù)據(jù)包。

圖7 USB協(xié)議分析儀抓取的Mass Storage數(shù)據(jù)
3.4U盤功能測試
通過以上的測試說明,在以FPGA為工具的仿真重郵信科手機C8410手機基帶芯片在平臺上成功實現(xiàn)了手機U盤功能。現(xiàn)使用USB數(shù)據(jù)線,連接重郵信科C8410手機與PC端,打開PC端的“我的電腦”,可成功看見手機的U盤的盤符如圖8所示。說明手機的U盤功能枚舉成功。

圖8 設(shè)備端枚舉成U盤圖
3.5速度測試
使用HD Turn硬盤性能診斷軟件來測試手機U盤功能的讀寫速度。將手機通過USB線纜連接到PC,速度測試如圖9所示,設(shè)計方案的讀寫速度達到4.3 MB/s。

圖9 C8410速度測試
3.6速度測試分析
在FPGA平臺提供20 MHz的時鐘頻率下,C8410的速度為4.3 MB/s。由式(1)可知,在ARM Cortex-A7提供的800 MHz時鐘頻率下,等同于172 MB/s的數(shù)據(jù)傳輸速度。由USB3.0協(xié)議可知,USB3.0最高速率可達5 Gbps,經(jīng)過8b/10b編解碼,且1 Byte=8 bit,故USB3.0最大速率理論上是500 MB/s。本文選取一些商用USB3.0接口的U盤,最大速率在170 MB/s左右。表1是一些廠家的USB3.0U盤與本文U盤的速度對比。
B=F×D÷8
式中,B為數(shù)據(jù)帶寬;F為總線頻率;D為總線位數(shù)。

表1 USB3.0速度對比測試表
相比其他廠家的USB設(shè)備,本論文設(shè)計方案有效地提升了USB設(shè)備的數(shù)據(jù)傳輸速度。
本文的目的是在以FPGA為工具仿真的重郵信科C8410基帶芯片平臺上,設(shè)計出能有效提升USB3.0數(shù)據(jù)傳輸速度的USB3.0移動終端設(shè)備。為了實現(xiàn)此目的,首先分析了目前USB3.0移動終端設(shè)備數(shù)據(jù)傳輸速度不理想的原因——軟Buffer的數(shù)據(jù)緩存方案緩存空間過小。其次,為了解決此問題,提出了使用硬件數(shù)據(jù)緩存。再次,通過仿真驗證硬件數(shù)據(jù)緩存方案的可行性,設(shè)計傳輸流程及方案驅(qū)動代碼。最后,在大容量數(shù)據(jù)傳輸時用USB協(xié)議分析儀抓取USB3.0數(shù)據(jù)包,分析其完成設(shè)備枚舉的過程,完成USB 補充協(xié)議Mass Storage協(xié)議的過程,用HD Turn軟件對USB接口的數(shù)據(jù)傳輸?shù)乃俣冗M行測試,并對測試結(jié)果分析,提出設(shè)計的不足。
由于本人水平有限,可供研究的資源不足,故本文的研究還存在一些不足,需要下一步進行深入研究:
① 本文的設(shè)計是基于設(shè)備側(cè)的,下一步需要研究基于主機側(cè)PC端的設(shè)計,這樣才是真正意義上整個USB體系的研究。
② 減少USB代碼設(shè)計上的冗余,提高執(zhí)行效率。
[1] 劉妍秀. USB3.0體系結(jié)構(gòu)及發(fā)展前景[J]. 長春大學學報:自然科學版, 2010, 25(1): 138-142.
[2] Compaq, Hewlett-Packard, Intel, et al. Universal Serial Bus 3.0 Specification Revision 1.0,2008.
[3] LU Rongjian, YAN Fang, ZHANG Qi. USB interface provided with host/device function and its control method[J]. Informatization Research,2010(5).
[4] CYIT. C8410 詳細設(shè)計說明書,2009.
[5] Synopsys. Design Ware Cores SuperSpeed USB 3.0 Controller Datebook Version 2.50a,2012.
[6] Tomoaki Kouyamat. The Design of a USB Device Controller IYOYOYO[C]//Design Automation Conference 2003, Asia and South Pacific,Proceedings of the ASP-DAC: 2003.
[7] JONATHAN CORBET, ALESSANDRO RUBINI.魏永明,耿岳,等譯. LINUX設(shè)備驅(qū)動程序[M].北京:中國電力出版社,2009:324-356.
[8] USB Mass Storage Class Working Group. Universal Serial Bus Mass Storage Class Specification Overview Revision 1.4, 2010.
[9] USB Mass Storage Class Working Group.Universal Serial Bus Mass Storage Class Control/Bulk/Interrupt(CBI) Transport Revision 1.1,2003.
[10] USB Mass Storage Class Working Group.Universal Serial Bus Mass Storage Class Bulk-Only Transport Revision 1.0,1999.
[11] USB Mass Storage Class Working Group.Universal Serial Bus Mass Storage Class UFI Command Specification Revision 1.0, 1998.
[12] USB Mass Storage Class Working Group. Universal Serial Bus Small Compute Systerm Command Specification Revision 1.0,2009.
[13] SKhyni.MCP Specification Revision1.0, 2013.
張劍(碩士研究生),主要研究方向為嵌入式系統(tǒng)、無線通信;王茜竹(副教授),主要研究方向為無線通信、信息系統(tǒng)與信息安全。
(責任編輯:楊迪娜收修改稿日期:2016-03-28)
USB3.0 High-speed Data Transmission System for Mobile Communication Terminal
Zhang Jian,Wang Qianzhu
(School of Communication and Information Engineering,Chongqing University of Posts and Telecommunication,Chongqing 400065,China)
Now the USB has become the most popular interface in the mobile terminal.As the media files stored in the mobile terminal are increasing, the speed of USB3.0is required as fast as possible.In order to match the high-speed transfer mode of USB,a special area of memory for USB data buffer is planned.The driver is designed,the test environment is set up and the USB data transmission speed is tested.The test results turn out that the USB transfer speed has been significantly improved.
USB3.0;mass storage;C8410;communication terminal;driver
TN929.5
A