论文部分内容阅读
随着数码产品的快速更新和嵌入式产品的层出不穷,我们迎来了信息产业的迅猛发展,在这个信息时代里,数据的快速传输和方便存储无疑是我们关注的热点问题。嵌入式系统以应用为核心,依托计算机技术基础,软硬件可裁剪,其硬件系统高度集成,将各种总线控制器集成到处理器中,具有超低功耗和较小的体积,可实现对特定领域完成特定功能。随着ARM、PowerPC等嵌入式芯片以及其他硬件设备的微型化,嵌入式设备得到了迅速发展,用户可以通过各种手持设备,完成个人PC的任务。USB是大家所熟知的在计算机总线中应用最为广泛的接口技术,同样它在嵌入式系统中有着举足轻重的地位,由于USB设备具有使用方便,传输速度快等优点,USB传输成了首选之一。而Linux操作系统以其内核小,效率高,多平台支持,开源免费等特性在嵌入式市场中占有很高的份额。本文提出了在Linux平台下USB大容量存储系统的设计方案。本论文分析了Linux设备模型、SCSI协议和USB协议的技术手册。通过设计和开发在Linux操作系统上的USB的设备驱动和Gadget存储类驱动,实现嵌入式海量存储设备OTG的功能,即嵌入式海量存储设备既可以作为设备端被PC机识别为海量存储设备,同时也可以作为主机端驱动U盘等可移动存储设备类。本文中选用ARM11芯片S3C6410作为核心处理器,构建和实现了USB主机和USB设备的海量的存储系统,采用Nand Flash作为非易失性存储器,存储根文件系统以及用户文件等。在硬件资源方便,本设计提供给用户3个A类型的USB Hub接口、一个mini USB接口以及一个SD卡读卡器,向用户提供了多种读取移动存储设备的方式,方便用户转存数据。在软件方面,本设计主要包括USB驱动、用户操作界面、Gadget驱动程序等。本设计采用QT图形界面系统,向用户提供了一个友好的本地操作移动存储设备内文件的界面。此外,用户还可以通过PC将本设计识别为海量存储设备,并进行读写操作。本设计涉及的硬件电路以及软件均采用模块化设计方法,层次清晰,便于分析等。此方法可以很好的实现嵌入式USB海量存储系统。