USB2.0规范
+ -

USB端点控制请求

2026-08-17 本文链接为:http://www.usbzh.com/article/detail-1795.html ,欢迎转载,转载请附上本文链接。

USB端点控制请求有以下几种

                    主机对端点发请求
                          │
                    设备处于什么状态?
                   ┌──────┴──────┐
                   │             │
             ADDRESSED       CONFIGURED
             (未配置)         (已配置)
                   │             │
            端点未打开       端点已打开
                   │             │
          非EP0→STALL      正常处理HALT
           (请求非法)      (SET_FEATUER/CLR_FEATUER/GET_STATUS)

190911306656

请求 1:SET_FEATURE(设置端点特性)

语义:主机要求设置端点特性,对端点唯一有效的是 USB_FEATURE_EP_HALT(要求停止端点)。

设备状态 处理 为什么
ADDRESSED 非 EP0 端点 → DCD_EP_Stall 未配置时端点还没打开,请求非法,STALL 表示”不存在”
CONFIGURED wValue==EP_HALT 且非 EP0 → Stall;然后 class_cb->Setup + 发状态包 已配置才能正常设置 HALT
其他 USBD_CtlError 默认态请求错误

关键CLEAR_FEATURE 里多了 class_cb->Setup(pdev, req),主机清除 STALL 后,类层需要知道并做后续处理。

请求 2:CLEAR_FEATURE(清除端点特性)

语义:主机要求清除 HALT(取消 STALL,恢复端点)。

设备状态 处理 为什么
ADDRESSED 非 EP0 → Stall SET_FEATURE,未配置端点非法
CONFIGURED wValue==EP_HALT → ClrStall + class_cb->Setup + 发状态包 清除 STALL,恢复端点

请求 3:GET_STATUS(查询端点状态)

语义:主机查询端点是否处于 HALT 状态,返回 2 字节(bit0 = HALT)。

设备状态 处理 为什么
ADDRESSED 非 EP0 → Stall 未配置端点非法
CONFIGURED 读 is_stall 填充 USBD_ep_status,返回 2 字节 报告端点 HALT 状态
本文链接为:http://www.usbzh.com/article/detail-1795.html ,欢迎转载,转载请附上本文链接。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936     USB技术交流3:1031974172

0 篇笔记 写笔记

USB端点控制请求
USB端点控制请求有以下几种SET_FEATUERCLEAR_FEATUREGET_STATUS 主机对端点发请求 │ 设备处于什么状态? ......
关注公众号
  • HID人机交互
  • Linux&USB
  • Linux-USB百科
  • MIDI V1.0
  • TinyUSB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB3测试
  • USB3知识点
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • USB资源
  • XHCI 1.2b 规范
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!