張劍,王茜竹
(重慶郵電大學 通信與信息工程學院,重慶 400065)
?
移動終端的USB3.0高速數(shù)據通路設計
張劍,王茜竹
(重慶郵電大學 通信與信息工程學院,重慶 400065)
現(xiàn)在USB接口已經成為移動終端最普及的接口,隨著存儲在移動終端媒體文件的容量越來越大,要求USB3.0接口支持的傳輸速度越快越好。為了匹配USB超速傳輸模式,本文在內存中專門規(guī)劃一片區(qū)域用于USB數(shù)據緩沖,設計驅動,搭建測試環(huán)境,測試USB數(shù)據傳輸速度。經測試,USB數(shù)據傳輸速度有著明顯的提高。
USB3.0;Mass Storage;C8410;移動終端;驅動程序
據不完全統(tǒng)計,全球支持USB功能的移動終端已達到60多億部。支持USB功能的終端在移動終端中的占有率幾乎可以達到100%。隨著存儲在移動終端的多媒體文件越來越大,這必將對PC機與移動終端之間的傳輸速度的要求變得越來越高[1]。為了在實際應用中進一步加快USB3.0接口的數(shù)據傳輸速率,對基于移動終端的USB接口設計進行改進顯得尤為重要。
本文在USB3.0及其補充協(xié)議Mass Storage規(guī)范下,實現(xiàn)手機端與PC機之間大容量數(shù)據的高速傳輸,并有效提升數(shù)據傳輸速度。設計思想是在DDR中分配500 MB的內存塊用于DDR與NAND Flash之間的數(shù)據緩存。實驗結果證明,該設計能很好地確保數(shù)據傳輸有效性及高速性。同時,本文采用模塊化的設計步驟,便于拓展該設計的應用范圍,給嵌入式設備帶來良好的發(fā)展前景。
本課題的研究工作基于的硬件平臺是以重郵信科通信技術有限公司的C8410芯片為核心,集成了眾多外圍電路模塊的智能手機系統(tǒng)。C8410是一款基于65 nm工藝的芯片,其設計的目的是提供一種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)多媒體功能。其結構圖如圖1所示。
圖1 C8410芯片結構
2.1Buffer 設計
2.1.1傳統(tǒng)軟Buffer設計
如圖2所示,傳統(tǒng)的Bufrer緩存方案是當需要內存空間進行數(shù)據緩存時,軟件上調用內存分配函數(shù)動態(tài)分配一塊連續(xù)的內存空間,數(shù)據傳輸后再釋放該內存空間。
圖2 軟件Buffer模型
2.1.2硬件Buffer設計
USB理論傳輸速度為500 Gbps,而本文采用的外部存儲器EMMC支持最大的讀寫速度為104 MB/s,因此FIFO設置不同的讀寫時鐘,分別設置為讀FIFO為20 MHz,寫FIFO為100 MHz,即USB向FIFO寫入的數(shù)據時鐘為100 MHz,EMMC從FIFO中讀出的數(shù)據時鐘為20 MHz。FIFO數(shù)據單元的位寬設置為32位,最大數(shù)據量為512字節(jié)。片上FIFO的Modelsim仿真結果如圖3所示。
clk_20m:讀FIFO時鐘;clk_100m:寫FIFO時鐘;sdram_wr_ack:FIFO讀請求信號,高電平有效;write_fifo_req:FIFO寫請求信號,高電平有效;write_fifo_data_in:寫入FIFO的數(shù)據;sys_data_in:FIFO讀出的數(shù)據;wrf_use:當前FIFO隊列里存在的數(shù)據個數(shù)。
圖3 FIFO初始化完成
2.2驅動設計
驅動的開始是通過模塊加載函數(shù)usb_stor_init,把代表USB Mass Storage驅動的結構體usb_driver加載到內核,該結構體及其初始化如下:
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ù)storage_probe,該初始化函數(shù)分為2步——usb_stor_probe1和usb_stor_probe2,設備的初始化具體實現(xiàn)流程如圖4所示。
圖4 USB Mass Storage設備初始化
3.1調試環(huán)境
本文采用Source Insight 3.5軟件進行代碼編輯,使用RVDS4.0編譯生成調試使用的.axf文件和燒入使用的.bin文件,最后使用Trace32調試軟件加載.axf文件,調試代碼。
調試環(huán)境如圖5所示。其中①為ARM調試器,一端通過JTAG接口連接到FPGA仿真平臺,另一端連接到PC端。圖中的連接器②為USB-RS232轉換器件,一端連接在目標板的UART口,另一端連接在PC端。在調試代碼的時候需要一些額外的打印信息,此器件接收從芯片UART接口輸出的消息,轉換為USB數(shù)據包后,最終顯示在PC機的超級終端上,大大提升了調試的效率。圖中很大的一塊電路板③是在FPGA仿真平臺④(圖中鐵架中的整個部分)的作用下仿真C8410芯片。電路板⑤為插在FPGA平臺上的USB3.0模塊,仿真C8410芯片的USB3.0功能。
圖5 調試環(huán)境
3.2枚舉測試
圖6是設備枚舉過程的數(shù)據包。
圖6 USB協(xié)議分析儀抓取的枚舉數(shù)據
3.3Mass Storage協(xié)議測試
圖7是主機與設備間Mass Storage協(xié)議下的通信過程抓取的數(shù)據包。
圖7 USB協(xié)議分析儀抓取的Mass Storage數(shù)據
3.4U盤功能測試
通過以上的測試說明,在以FPGA為工具的仿真重郵信科手機C8410手機基帶芯片在平臺上成功實現(xiàn)了手機U盤功能?,F(xiàn)使用USB數(shù)據線,連接重郵信科C8410手機與PC端,打開PC端的“我的電腦”,可成功看見手機的U盤的盤符如圖8所示。說明手機的U盤功能枚舉成功。
圖8 設備端枚舉成U盤圖
3.5速度測試
使用HD Turn硬盤性能診斷軟件來測試手機U盤功能的讀寫速度。將手機通過USB線纜連接到PC,速度測試如圖9所示,設計方案的讀寫速度達到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ù)據傳輸速度。由USB3.0協(xié)議可知,USB3.0最高速率可達5 Gbps,經過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ù)據帶寬;F為總線頻率;D為總線位數(shù)。
表1 USB3.0速度對比測試表
相比其他廠家的USB設備,本論文設計方案有效地提升了USB設備的數(shù)據傳輸速度。
本文的目的是在以FPGA為工具仿真的重郵信科C8410基帶芯片平臺上,設計出能有效提升USB3.0數(shù)據傳輸速度的USB3.0移動終端設備。為了實現(xiàn)此目的,首先分析了目前USB3.0移動終端設備數(shù)據傳輸速度不理想的原因——軟Buffer的數(shù)據緩存方案緩存空間過小。其次,為了解決此問題,提出了使用硬件數(shù)據緩存。再次,通過仿真驗證硬件數(shù)據緩存方案的可行性,設計傳輸流程及方案驅動代碼。最后,在大容量數(shù)據傳輸時用USB協(xié)議分析儀抓取USB3.0數(shù)據包,分析其完成設備枚舉的過程,完成USB 補充協(xié)議Mass Storage協(xié)議的過程,用HD Turn軟件對USB接口的數(shù)據傳輸?shù)乃俣冗M行測試,并對測試結果分析,提出設計的不足。
由于本人水平有限,可供研究的資源不足,故本文的研究還存在一些不足,需要下一步進行深入研究:
① 本文的設計是基于設備側的,下一步需要研究基于主機側PC端的設計,這樣才是真正意義上整個USB體系的研究。
② 減少USB代碼設計上的冗余,提高執(zhí)行效率。
[1] 劉妍秀. USB3.0體系結構及發(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 詳細設計說明書,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設備驅動程序[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