论文摘要
随着USB的普及和嵌入式技术的发展,嵌入式系统对USB的需求不断增长。在此背景下,本文针对嵌入式系统设计了USB设备协议栈,并在搭载NXP LPC2478微控制器(ARM7TMDI-S内核)的评估板上得到了实现。本文设计和实现的USB设备协议栈采用的是一种开放的层次结构和模块结构。协议栈从下至上由3个层次组成,依次是硬件层、协议层和应用层。硬件层主要负责对USB设备控制器的硬件进行操作,包括硬件初始化和USB数据包的收发等;协议层处理USB规范中定义的与USB设备相关的所有操作,包括总线枚举、地址分配、配置、电源管理和各种请求处理等;应用层则为用户提供了应用程序接口,使用户可以通过这些接口函数完成实际应用。这3个层次通过特殊的层间接口联系在一起,形成完整的USB设备协议栈软件构架;各层次可以根据特定的硬件环境或应用环境而重新实现,以提高协议栈的可移植性;同时协议栈预留了各类扩展接口,方面用户扩展功能所用。为了对协议栈进行验证,本文在LPC2478评估板上实现了3个典型的USB类,分别是通讯设备类(USBCDC)、大容量存储类(USBMSC)以及测试与测量类(USBTMC)。USBCDC类的实现将设备模拟成一个USB虚拟串口,使上位机可以通过串口调试工具与其进行数据收发。USBMSC类实现了一个可移动磁盘,使上位机可以像操作普通U盘一样对其进行操作。USBTMC类的实现则使得设备可以与NI的MAX (Measurement & Automation Explorer)软件进行基本通讯。