在可以使用恢复信号之前,主机必须使用USB 2.0规范的设备框架(第九章)中定义Set Feature命令开启它。 16.8.3管理端点USB 2.0规范定义了端点,端点也被称为设备端点或地址端点。它是USB设备的唯一可寻址部分,可以在主机和设备之间的通信信道中发送或接收数据。端点地址由端点号和端点方向的组合规定。主机与特定设备上的一个端点之间的信道代表一条数据管道。设备的端点0始终是一条控制型的数据信道,用于设备发现和枚举。USB支持的其他类型的端点包括:批量、中断和等时。每一种端点都有与分组响应和错误处理有关的特定行为。关于端点操作的更多细节请查阅USB 2.0规范。 USB_DR最多支持6个具有指定编号的端点,DCD可以启用、禁用和配置每个端点。每个端点方向本质上都是独立的,并且把每个方向配置为不同的行为。DCD可以把端点1-IN配置为批量端点,把端点1-OUT配置为等时端点。这样可以节省设备操作所需的端点总数。唯一的例外是控制端点,必须在一个端点号上同时使用两个方向,以作为控制端点工作。例如端点0始终为控制端点,同时使用两个方向。每个端点都需要在存贮器中分配队列头。假如最多有6个端点,每个端点方向都有一个。
值得一提的是,在优化USB设备控制器端点缓冲区的设计时,可以参考这个优化设计方案,它详细介绍了如何高效配置和管理端点缓冲区,从而提升设备性能。
对于那些对实际编程实现感兴趣的读者,可以查看端点API源码,这将为你提供具体的代码示例,帮助你更好地理解和实现端点配置和管理。
如果你在使用STM32的USB库时遇到问题,不妨参考这篇文章,它详细介绍了如何使用该库支持控制端点的相关内容,或许能为你提供一些实用的帮助。
暂无评论