基于单片机的嵌入式USB主机系统的实现
2.3 软件层次划分
从嵌入式USB主机的软件层次划分来看,系统软件主要包括主控制器驱动程序、USB核心驱动程序,以及用户软件;从功能划分来看,系统软件可分为以下几个部分:
1.主CPU与各系统模块的初始化程序设计
实现主CPU及各系统模块的初始化,包括实现I2C接口的LED显示、键盘、时钟芯片以及主CPU与USB主机控制芯片之间的数据通信功能。
主要完成核心驱动程序的功能,具体来说就是实现USB的4种基本数据的传输方式,实现USB设备的枚举过程,并获取USB设备的描述符等。这些功能都可以通过读写主控制器寄存器来完成。因此,系统中只需分别定义一个读寄存器函数和写寄存器函数,然后以此函数为基础来构成各功能子函数,实现数据传输、设备枚举以及获取描述符等各种操作。
3.Mass Storage类协议的程序设计
实现Mass Storage设备类中Bulk-Only传输协议和Mass Storage类中UFI子类的各种请求命令,对设备进行各种访问和读写操作。
4.应用程序设计
主要实现FAT文件系统。可根据FAT文件系统的基本体系,通过Mass Storage类协议中的UFI子类命令和标准的设备请求命令与设备的Flash闪存建立连接关系,并在USB主机系统中建立磁盘的空间结构,定义 MBR, DBR的数据结构,建立FAT表,FDT表,实现对文件系统进行读取等操作功能即可。
系统的软件设计即可按照上述的4个功能模块来依次构建。
3结束语
本设计建立了基于单片机的嵌入式USB主机系统,该系统实现了USB协议中的Mass Storage类协议和精简的FAT文件系统,能够对U盘中的文件数据进行读写,完成相应的文件操作等各种功能。结果表明:利用该嵌入式USB主机系统对具体U盘中的文件进行读操作时,平均速度为60~80KB/S,对之进行写操作时,平均速度为40~50KB/S。该系统真正实现了便携式,摆脱了PC机对USB设备的控制,无需PC主机即可对USB设备进行读写操作,具有广阔的应用前景。程序主要采用C语言编写,因此它可以很方便地移植到其它处理器中。
本文创新之处:目前,市场上脱离PC对U盘操作的单纯产品很少,而且有些此功能的产品都有一定的应用背景。本设计开发了U盘对拷器,留有扩展口,可作U盘对拷器用,也可在此基础上作二次开发。
参考文献
[1] 王成儒.USB 2.0原理与工程开发[M].北京:国防工业出版社,2004.1
[2] 伊勇,王洪成.单片机开发环境uVision2使用指南及USB固件编程与调试[M]. 北京:北京航空航天大学出版社,2004.11
[3] 李群芳 张士军编.单片微型计算机与接口技术(第2版)[M].西安:电子工业出版社,2005.1
[4] 郭文彬 孙智权等. 基于NiosⅡ的usb接口模块设计[J].微计算机信息,2006,10-2:278-279。
评论