论文部分内容阅读
在USB1.0,USB1.1以及USB2.0规范相继推出后,USB接口技术以其灵活、稳定、成本低、速度快等优点得到了迅速发展。目前,具有USB接口的海量存储设备是USB接口技术中最广泛的应用之一。在这样的背景下,设计并实现针对海量存储设备的USB2.0主机控制器具有非常重要的意义。本课题是在FPGA上用硬件描述语言VHDL设计并实现了USB2.0主机控制器。首先分析了设计USB2.0主机控制器的背景以及意义。然后介绍了设计USB2.0主机控制器所需要的相关规范,其中包括USB2.0规范,UTMI规范,USB Mass Storage Class规范,SCSI命令集以及FPGA的设计原理和方法。在了解了相关的背景知识之后分析了主机控制器的功能以及与USB设备控制器的相互区别,主要讨论了USB主机控制器对海量存储设备的枚举以及对设备的FAT文件系统的访问与管理两个方面。在掌握了USB主机控制器的功能和工作原理之后,开始了针对海量存储设备的USB2.0主机控制器的IP核的设计。首先搭建了硬件平台,并给出了设计的总体框架。之后对各个模块的实现做了详细的介绍。最后对部分模块的仿真结果进行了分析,仿真结果符合设计要求。该设计的硬件平台由Xilinx公司FPGA芯片Spartan-3系列的XC3S1000-FT256-4-C,物理层芯片CYPRESS公司的CY7C68000以及三星公司的FLASH芯片K9F5608U0B三部分组成。USB2.0主机控制器的设计主要分为四个模块:UTMI模块,主控制模块,FLASH接口模块以及MCU接口模块。UTMI模块是连接USB2.0主机控制器和物理层芯片的接口电路,实现了对设备工作模式以及速度的转换;主控制模块负责USB包的收发以及对传输事务的控制,此外还实现了对设备的枚举和FAT文件系统的管理;FLASH接口模块负责对FLASH进行读写操作;MCU接口模块提供了主机控制器与微处理器的接口。USB2.0主机控制器IP核不仅实现了USB传输的基本功能,而且创新性的改进了USB系统设计的层次结构,将总线枚举和FAT文件系统的管理这两部分用硬件描述语言来实现,实现了USB驱动程序的软件硬化,极大地增强了USB2.0主机控制器在嵌入式系统应用中的独立性。