当前位置 博文首页 > dadalaohua的博客:【USB笔记】 标准请求 清除特性Clear Feature

    dadalaohua的博客:【USB笔记】 标准请求 清除特性Clear Feature

    作者:[db:作者] 时间:2021-07-27 11:49

    USB笔记 标准请求 清除特性 Clear Feature

    格式

    bmRequestTypebRequestwValuewIndexwLengthData
    00000000B
    00000001B
    00000010B
    CLEAR_FEATUREFeature SelectorZero
    Interface
    Endpoint
    ZeroNone

    功能

    这个请求用于清除或禁用特定的特性(feature)。

    bmRequestType

    共有三种接收端Recipient:设备(Device),接口(Interface),端点(Endpoint)。

    1.设备

    bmRequestType00000000B
    ??bmRequestType.Recipient0b00000(Device)
    ??bmRequestType.Type0b00(Standard)
    ??bmRequestType.Direction0b0(Host-to-Device)

    接收端:设备(Device)

    类型:标准(Standard)

    方向:主机到设备(Host-to-Device)

    2.接口

    bmRequestType00000001B
    ??bmRequestType.Recipient0b00001(Interface)
    ??bmRequestType.Type0b00(Standard)
    ??bmRequestType.Direction0b0(Host-to-Device)

    接收端:接口(Interface)

    类型:标准(Standard)

    方向:主机到设备(Host-to-Device)

    3.端点

    bmRequestType00000010B
    ??bmRequestType.Recipient0b00010(Endpoint)
    ??bmRequestType.Type0b00(Standard)
    ??bmRequestType.Direction0b0(Host-to-Device)

    接收端:端点(Endpoint)

    类型:标准(Standard)

    方向:主机到设备(Host-to-Device)

    bRequest

    CLEAR_FEATURE: 0x01

    wValue

    所要清除的特性(feature)。

    wValue字段的特性选择器(Feature selector)值应当与接收端相匹配,既与bmRequestType.Recipient位设置的Recipient相匹配。当接收端是设备时,只能使用设备特性选择器值;当接收端是接口时,只能使用接口特性选择器值;当接收端是端点时,只能使用端点特性选择器值。

    特性选择器(feature selector)值与接收端的对应,参照下表。

    Feature SelectorRecipientValue含有该Feature的协议
    ENDPOINT_HALTEndpoint0USB1.0/USB1.1/USB2.0/USB3.0/USB3.1/USB3.2
    FUNCTION_SUSPENDInterface0USB3.0/USB3.1/USB3.2
    DEVICE_REMOTE_WAKEUPDevice1USB1.0/USB1.1/USB2.0/USB3.1/USB3.2
    TEST_MODEDevice2USB2.0/USB3.1/USB3.2
    b_hnp_enableDevice3USB3.1/USB3.2
    a_hnp_supportDevice4USB3.1/USB3.2
    a_alt_hnp_supportDevice5USB3.1/USB3.2
    WUSB_DEVICEDevice6USB3.1/USB3.2
    U1_ENABLEDevice48USB3.0/USB3.1/USB3.2
    U2_ENABLEDevice49USB3.0/USB3.1/USB3.2
    LTM_ENABLEDevice50USB3.0/USB3.1/USB3.2
    B3_NTF_HOST_RELDevice51USB3.1/USB3.2
    B3_RSP_ENABLEDevice52USB3.1/USB3.2
    LDM_ENABLEDevice53USB3.1/USB3.2

    wIndex

    1.设备

    当wValue字段的特性选择器(Feature selector)值的接收端是设备时(既使用的是设备特性选择器值),wIndex字段值为0。

    2.接口

    当wValue字段的特性选择器(Feature selector)值的接收端是接口时(既使用的是接口特性选择器值),wIndex字段值为接口号,格式如下所示。

    D7D6D5D4D3D2D1D0
    Interface Number
    D15D14D13D12D11D10D9D8
    Reserved (Reset to zero)

    Bit 7…5用于表示接口号,其他bits保留为0。

    3.端点

    当wValue字段的特性选择器(Feature selector)值的接收端是端点时(既使用的是端点特性选择器值),wIndex字段值为端点号,格式如下所示。

    D7D6D5D4D3D2D1D0
    DirectionReserved (Reset to zero)Endpoint Number
    D15D14D13D12D11D10D9D8
    Reserved (Reset to zero)

    Bit 7,方向(Direction)位被设置为0时表示指定端点号的OUT端点,被设置为1时则表示IN端点。对于控制管道,请求中的方向(Direction)位应该设置为0,但设备可以接受方向(Direction)位的任何一个值。

    Bit 3…0用于表示端点号。

    其他bits保留为0。

    wLength

    wLength字段固定为0x0000。

    如果wLength不为零,则无效,不指定设备的行为。

    Data

    无数据阶段(Data stage)。

    说明

    ClearFeature()请求如果使用不能清除、不存在的特性(feature),或者使用不存在的接口或端点,将导致设备以请求错误来响应,返回STALL。

    对于USB 2.0,这个请求可以清除DEVICE_REMOTE_WAKEUP和ENDPOINT_HALT特性。Test_Mode功能无法通过ClearFeature()请求清除。

    对于Enhanced SuperSpeed,这个请求可以清除ENDPOINT_HALT、LTM_ENABLE、U1_ENABLE和U2_ENABLE特性。只有当设备处于配置状态时,设备才会处理U1_ENABLE、U2_ENABLE、 LTM_ENABLE。

    Clear Feature(ENDPOINT_HALT)这个请求会将bulk, interrupt, isochronous 的数据切换(data toggle)重置为DATA0 (USB 2.0)、Sequence Numbers重置为零(Enhanced SuperSpeed) 和重置增强型超高速批量端点(Enhanced SuperSpeed bulk endpoints)的突发大小(burst size)。

    集线器(Hubs)支持其他特性。

    支持的状态

    支持地址状态(Address state)和配置状态(Configured state),具体如下:

    默认状态(Default state):未定义设备处于默认状态时,接收到该请求时的设备行为。

    地址状态(Address state):当设备处于地址状态时,该请求有效;使用默认控制管道以外的接口或端点,将导致设备响应请求错误。

    配置状态(Configured state):当设备处于配置状态时,这是一个有效的请求。

    示例

    Clear Feature

    Setup packet

    Clear Feature Setup packet


    [参考资料]

    Universal Serial Bus Specification Revision 1.0

    Universal Serial Bus Specification Revision 1.1

    Universal Serial Bus Specification Revision 2.0

    Universal Serial Bus 3.0 Specification

    Universal Serial Bus 3.1 Specification

    Universal Serial Bus 3.2 Specification

    USB Complete, 5th Edition


    本文链接:https://blog.csdn.net/u012028275/article/details/114765691

    cs