论文部分内容阅读
随着USB应用领域的逐渐扩大,人们希望USB能应用在各种计算机领域中,尤其是在移动数据交换等没有PC的领域中。USB的拓扑结构中居于核心地位的是主机(Host),任何一次USB的数据传输都必须由主机来发起和控制。因此,“如何将USB应用到嵌入式领域?如何实现USB点对点的通信?”等问题,开始进入了USB开发者的讨论议程。正是在这种新的需求之下,相对于嵌入式系统中USB设备的开发来说,USB主机的嵌入式应用成了该领域新的兴奋点。 本设计的目的是在ARM的平台上,开发USB主接口和从接口。主要的工作是驱动程序的编写。驱动程序编写主要有两大部分:主设备驱动软件包、设备驱动软件包。其中,主设备驱动软件包中主要编写了主机控制器的驱动程序(HCD),它是对主控制器的抽象,提供控制功能和与USB驱动(USBD)的接口函数。然后是编写了最上层的设备类驱动程序,它是最终与应用程序交互的模块,实现访问特定的USB设备,为应用程序提供访问接口。Linux支持多种设备类驱动。在设计中实现的是MASS STORAGE类设备的驱动。设备软件包编写了设备控制器驱动程序,它主要完成总线上数据的传输;协议层驱动程序,它主要是实现标准的USB请求协议; 嵌入式系统对于USB主机功能的需求越来越多,嵌入式USB主机就必须逐步扩大支持设备的类型。USB Hub作为构成USB体系不可缺少的一类设备,更应该被嵌入式USB主机所支持。USB Hub的重要性与它在USB拓扑结构中的位置相关,Hub连接主机和设备,是USB体系的中继站,也是所有USB设备连接进USB体系的门户和连接点。本设计中,在主机端扩展了对Hub的支持,通过Hub可以实现对USB设备的访问。