摘要
随着信息技术的发展和后PC时代的到来,嵌入式产品成为当今计算机产业的重要需求之一,同时巨大的嵌入式应用也对嵌入式设备提出了更高的要求。在掌上终端领域,为了支持视频播放等应用,要求掌上终端能够和主机进行数据通讯,能够从主机下载视频文件。正是在这一背景下,提出在掌上终端上实现USB海量存储功能,这样就很容易通过USB与PC进行数据通讯。
本文首先详细分析了USB海量存储设备类规范(Universal Serial Bus Mass Storage Class Specification)及其相关协议,在移植uClinux到基于S3C4510B处理器的评估板,和编写相关驱动后,实现了USB存储盘,最后在USB存储盘上实现网络存储功能,即通过远程网络可以对USB存储盘进行读写。
本文所研究实现的USB存储盘遵守USB1.1规范和USB Mass Storage协议的要求,通过USB与任何兼容此规范的主机相连后,该主机便可以把该USB存储盘当作本地磁盘来存取。本课题所实现的网络存储功能,意味着用户能够通过网络对USB存储盘进行读写,用户无需携带存储盘就能在远程对文件进行存取操作。
With the fast development of information technology and the coming of post-PC era, the embedded product becomes one of the most important products of computer industry. Meanwhile, plenty of the embedded applications call for better performance and functionality. In handset field, to support application such as video playback, handset is required to be able to exchange data with PC, and download video file from PC. Under this background, it is put forward in this dissertion that handset should implement the function of USB mass storage, so that it can easily exchange data with PC through USB line.
This dissertion first does a detailed research in the Universal Serial Bus Mass Storage Class Specification and its relevant protocols, after porting uClinux2.6 to evaluation board that base on processor S3C4510B, and designing relevant drivers for the system, the USB storage disk is made. Finally this dissertion implements network storage function on USB storage disk, which means one can read and write USB storage disk through remote network.
The USB storage disk realized by this dissertion is compatible with USB1.1 protocol and USB Mass Storage protocol, after connect PC that is compatible with these protocols with USB line, the PC can read and write USB storage disk as its local disk. The network storage function realized by this dissertion, means that user will be able to read and write USB storage disk through network without having to carry it.
引文
[1] Jan Axelson.Universal Serial Bus Complete.北京:中国电力出版社,2001,220-224
[2] Universal Serial Bus Specification Revision 2.0. April 27,2000,1-32
[3] 周涛,张辉.采用PDIUSBD12的USB系统固件程序设计.电子技术应用,2003,29(5): 70-72
[4] 衣晓峰,苏彦锋,周荣政等.USB外设控制器固件的设计.微型电脑应用,2003,19(4):27-30
[5] 周立功.PDIUSBD12 USB固件编程与驱动开发.北京:北京航空航天大学出版社,2003,60-159
[6] 周余,王自强,都思丹.Linux Gadget系统及其在S3c2410上的海量存储研究.计算机应用,2006,26(12):305-306
[7] Don Anderson.Universal Serial Bus System Architecture.北京:中国电力出版社,2000,189-190
[8] 方加喜,徐善锋.通用串行总线原理及其外设接口设计.半导体技,2002,27(11):33-37
[9] 张弘.USB接口设计.西安.西安电子科技大学出版社,2002,22-37
[10] 张念淮,江浩著.USB总线接口开发指南.北京.国防土业出版社,,2001,177-180
[11] Compaq,Intel. Universal Serial Bus Specification Revision 1.1, 1998. 125-126
[12] CWG (USB Mass Storage Class Working Group). Universal Serial Bus Mass Storage Class Specification Overview, Revision 1.1 .USB Implernenters Forum,2000,1-3
[13] Al Rickey, Mike Glass,Alan Haffner, et al. USB Mass Storage Class Bulk-Only Transport,Revision 1.0. USB Implementers Forum, 1999,3-4
[14] Jim Blackson, Mark Williams, Mike Glass, et al. USB Mass Storage Class Control/Bulk /Interrupt (CBI) Transport,Revision 1.0. USB Implementers Forum,1998,1-3
[15] Jim Blackson.USB Mass Storage Class UFI Command Specification,Revision 1.0. USB Implementers Forum, 1998,2-4
[16] Ron Roberts.Reduced Block Commands (RBC),T10/1240-D. Sierra-Pac Technology, 1999,11-13
[17] 明健,黄光明.基于CBI传输结构的USB硬盘接口应用设计.单片机与嵌入式系统 应用,2001,1(12):47-51
[18] 粟皓,黄嵩.SCSI接口的原理、发展及其应用.电气传动自动化,2000,22(05):47-49
[19] 刘强,蒋智平,吴智铭.SCS协议的实现.微型电脑应用,2000,12(04):34-35
[20] 李驹光.ARM应用系统开发详解.北京.清华大学出版社,2003,71-99
[21] DATA SHEET OF K9F2808,Nand Flash.Samsung.2002
[22] DATA SHEET OF PDIUSBD12,USB Device.Philips.2001
[23] 粟皓,黄嵩.基于uClinux嵌入式系统的设备驱动程序的研究.电子工程师,2004,30(01):67-71
[24] 肖杰,李仁发,徐成.基于uClinux嵌入式系统开发平台的建立.科学技术与工程,2005,5(01):28-33
[25] 刘少峰,韦克平.USB软件系统的开发.计算机应用研究,2002,19(3):102-104
[26] 冯欣,秦娟英.uClinux平台下的Flash存储技术单片机与嵌入式系统应用.2004,4(02):36-38
[27] 秦益霖.在嵌入式uCLinux上实现设备驱动程序的添加.常州信息职业技术学院学报,2003,2(03):25-27
[28] 谭航,曹昌勇,谭善文.基于uClinux环境下微处理器的GPIO设备驱动程序的开发西华大学学报(自然科学版),2007,26(01):75-79
[29] Mullerburg. Software intensive embedded systems.Information and Software Technology. 1999, 41(14):979-984
[30] Saijo Yoshifumi,Nitta Shin-ichi,Kobayashi Kazuto,et al. Development of an ultra-portable echo device connected to USB port. Ultrasonics, 2004,42(1):699-703
[31] 衣美丽,刘庆文,杨扬等.基于uClinux+S3C4510B的嵌入式系统的研究微计算机信息,2005,20(01):125-126
[32] 陈坚华,范燕,冉立新.基于ARM7TDMI的uClinux移植电子器件,2003,26(01):15-18
[33] 廖羽,戴瑜兴.基于uCLinux的嵌入式系统开发过程湖南工程学院学报(自然科学版),2004,14(04):12-15
[34] Wookey, Tak-Shing,Aleph One. Porting the Linux Kernel to a New ARM Platform. www.alephl.co.uk
[35] Arpith Chacko Jacob. uClinux porting HOWTO. http://www.arpith.com
[36] The Linux/Microcontrollerproject,available from http: //www.uclinux.org/
[37] Linux2.6 for MMU-less ARM Project,available from http: //opensrc.sec.samsung.com/
[38] 陆宝辂,邵贝贝,李荐民.uClinux的设备驱动程序开发单片机与嵌入式系统应用,2003,3(06):81-83
[39] 张宏伟.Linux系统下USB设备驱动程序的编写.计算机应用研究,2001,18(9):141-146
[40] 李传伟,胡金春.嵌入式Linux下USB Gadget驱动框架研究航天控制,2006,24(06):51-55
[41] Linux USB Community.Linux USB Gadget API Framework. http://www.Linux-usb.org/gadget,2005.
[42] David Brownell.USB Gadget API for Linux.http://tali.admingilde.org/linux-docbook/gadget,2004.
[43] 刘伟平,毛玉良,潘纯.嵌入式Linux下硬件中断驱动程序的开发航空精密制造技术,2003,39(03):21-23
[44] Philips Corp.Firmware programming guide for PDIUSBD 12 version 1.0 [Z] .Philips Corp. September 1998.
[45] Daniel P. Bovet,Marco Cesat. Understanding The Linux Kernel. 南京:东南大学出版社,2006. 131-188
[46] Microsoft Corporation. Microsoft Extensible Firmware Initiative FAT32 File System Specification Version 1.03. www.microsoft.com
[47] 徐虹,何嘉.操作系统实验指导.北京.清华大学出版社,2004,127-136
[48] 孙天泽,袁文菊,张海峰.嵌入式设计及Linux驱动开发指南.北京.电子工业出版社,2005,135-137
[49] 陆宝骆,何锐.如何编译uClinux内核.单片机与嵌入式系统应用,2002,11:133-136
[50] 王永杰,刘京菊,孙乐昌.Linux可装载模块的开发与应用.计算机应用研究,2002,19(7):143-147