USB设备枚举与Mass Storage类协议实现

需积分: 32 10 下载量 101 浏览量 更新于2024-08-10 收藏 2.2MB PDF 举报
"这篇硕士学位论文主要探讨了USB接口在嵌入式系统中的实现,特别是主动USB接口和从动USB接口的开发。论文作者曹放在导师苑玮琦的指导下,研究了如何利用单片机实现与USB产品的直接交互,特别是在便携式仪器或嵌入式系统中实现外接海量存储功能。" 在USB技术中,设备被分为主机(Host)和从属设备(Slave)。主机通常由PC机扮演,而大部分USB产品作为从属设备。然而,随着嵌入式系统的普及,需要单片机能够直接与USB设备通信,因此主动USB接口的研究变得尤为重要。论文选取华邦公司的W78E54B作为主控芯片,Cypress公司的SL811HS作为USB主/从控制芯片,构建了一个能同时支持主动和从动模式的USB接口模块。 论文详细介绍了USB设备的枚举过程,这是USB设备接入主机后的重要步骤,主机通过执行一系列标准USB请求命令(如Set Address、Get Descriptor和Set Configuration)来识别和配置设备。枚举过程中,设备需提供诸如批量输出和输入端点号以及最大包尺寸等信息。实现这些命令的程序代码分别在SetAddress0、SetConfiguration0和GetDesc()函数中体现。 在枚举设备和获取描述符之后,论文讨论了Mass Storage类协议的程序设计,这对于USB闪存盘等存储设备至关重要。本系统支持的USB设备属于Mass Storage类,使用Bulk-Only传输协议,该协议基于SPC-2和RBC(Reduced Block Commands)指令集。Bulk-Only协议通过批量传输In和批量传输Out函数实现,包括CBW(Command Block Wrapper)和CSW(Command Status Wrapper)封包的发送与接收,以及特定的SPC-2和RBC指令,以实现对USB闪存盘的读写操作。 在主动USB接口的软件设计中,系统不仅实现了主机控制器驱动、核心驱动和用户软件,还支持设备的枚举和配置功能,以及Mass Storage类协议。此外,建立了一个简化版的FAT文件系统,使得对USB闪存盘的文件操作成为可能。从动USB接口的软件设计则涉及单片机固件程序和PC主机的驱动程序及应用程序,以确保模块作为从设备时与PC之间的数据传输。 实验结果表明,该系统运行稳定,代码简洁,具有良好的可移植性,可以方便地应用到其他单片机或DSP等嵌入式系统中。关键词包括主动/从动USB接口、USB闪存盘、单片机,反映了研究的核心内容。