论文部分内容阅读
随着计算机技术的不断发展,各种总线层出不穷,这些总线包括ISA、MCA、 EISA、VESA、PCI、USB等个人计算机总线。然而,USB(Universal Serial Bus,通用串行总线)作为开发与应用最为广泛的一种个人计算机总线,在嵌入式系统中开发USB驱动必将成为一种趋势。一般来说,USB HOST端用来控制所有的传输,而外围设备(如Android智能手机、数码相机等)作为USB DEVICE端用来实现不同的功能。Linux操作系统由于系统性能稳定、便于移植、网络功能强大等优点成为世界上最流行的开源操作系统,越来越多的项目开始使用它。Android(基于Linux内核)系统是目前最流行的智能手机开发平台,在移动电话、平板电脑等消费类电子产品中已成为潮流。在各行各业的产品开发中,ARM处理器占有了绝对的优势,已成为当前应用最为广泛的微处理器。本项目是基于S3C2440A芯片(ARM920T内核)、Linux操作系统、Android系统为开发平台,要求提供USB HOST端和USB DEVICE端两个接口。Android系统采用android-2.3.1-rl, Linux操作系统采用linux-2.6.32.2内核,而S3C2440A本身带有支持USB1.1版本的USB HOST接口和USB DEVICE接口。本项目着重研究和讨论嵌入式Linux操作系统、Android系统、三星自主研发的S3C2440A芯片来开发并实现Linux操作系统下USB大容量存储设备的识别、开发板模拟U盘、Android系统下通过USB使用ADB,这些功能都具有较大的实用价值。论文从以下几个方面来重点叙述:首先说明USB硬件接口电路;接着描述了USB协议以及Linux内核USB驱动总体结构;再次详细阐述了S3C2440A的USB总线驱动(USB主机端驱动和USB设备端驱动),最后说明如何在USB主机端驱动上实现USB Mass Storage设备驱动,以及如何在USB设备端驱动上实现USB Gadget设备驱动(File-storage Gadget驱动和Android USB Gadget驱动)。