论文部分内容阅读
USB(Universal Serial Bus,通用串行总线)作为计算机外设总线标准,问世以来,以其高速、稳定、易用、廉价、易扩展等优点,赢得市场的认可并迅速普及,目前已成为众多便携式移动终端和数字设备与计算机互连的首选总线标准。北京市嵌入式系统实验室有多个USB相关的项目。本文就是要在研究USB2.0总线技术体系结构的基础上,设计并实现能在不同项目间复用,能满足基本功能需求,又具有良好扩展性和通用性的USB设备控制器的固件及驱动程序。本文根据USB项目的实际应用,分析固件的具体需求,指出现有USB设备控制器固件设计的不足,然后依据实际应用与需求,划分出固定功能的模块以及需要支持扩展功能的模块,提出本文实现的固件的总体框架设计以及可扩展机制,并对每个具体模块的功能与实现做详细的描述。接着,介绍驱动程序中的体系结构、定义的主要数据结构,分析现有的驱动程序核心状态机的设计,通过实际测试发现其中的不足并加以完善,增加若干关键状态及状态间的处理,然后依据WDM(Windows Driver Model)的规范实现包括即插即用、分发传输在内的各个模块,并且描述驱动程序与应用程序间的调用接口。最后,制定测试方案,并对测试结果进行分析,找出系统瓶颈,针对传输缓冲问题提出进一步的解决方法,对代码进行优化。本文实现的固件程序采用模块化结构,设计了功能扩展机制,可以根据实际项目需要方便的添加自定义功能,具有良好的可扩展性;实现的驱动程序具有很好的通用性,以及对边界情况的良好处理。实验室多个USB项目以本文的固件程序为基础进行功能扩展,驱动程序也在这些不同项目中得到验证和使用。本课题所取得的成果,实现了在相关的不同项目间,最大程度地复用代码,节省开发、调试以及测试的时间,缩短系统开发周期,降低了系统开发成本。