9.6.4 Endpoin
    Each endpoint used for an interface has its own descriptor. This descriptor contains the information required by the host to determine the bandwidth requirements of each endpoint. An endpoint descriptor is always returned as part of the configuration information returned by a GetDescriptor(Configuration) request. An endpoint descriptor cannot be directly accessed with a GetDescriptor() or SetDescriptor() request. There is never an endpoint descriptor for endpoint zero. Table 9-10 shows the standard endpoint descriptor.


    9.6.4 端点

    接口所使用的每个端点都有其自己的描述符。该描述符包含了主机确定每个端点带宽需求所需的信息。端点描述符总是作为 GetDescriptor(Configuration) 请求返回的配置信息的一部分被返回。不能使用 GetDescriptor()SetDescriptor() 请求直接访问端点描述符。永远不存在针对端点0的端点描述符。 表 9-10 显示了标准的端点描述符。

    表 9-10. 标准端点描述符

    偏移量 字段 大小 值类型 描述
    0 bLength 1 数字 本描述符的大小(以字节为单位)
    1 bDescriptorType 1 常量 端点描述符类型
    2 bEndpointAddress 1 端点 此描述符所描述的端点位于 USB 设备上的地址。该地址编码如下:
    位 3…0:端点号
    位 6…4:保留,复位为零
    位 7:方向(对于控制端点可忽略)
    0 = OUT 端点(主机到设备)
    1 = IN 端点(设备到主机)
    3 bmAttributes 1 位图 此字段描述了端点在使用 bConfigurationValue 配置时的属性。
    位 1..0:传输类型
    00 = 控制传输
    01 = 同步传输
    10 = 批量传输
    11 = 中断传输
    所有其他位均保留。
    4 wMaxPacketSize 2 数字 当选定此配置时,该端点能够发送或接收的最大数据包大小。

    对于同步端点,此值用于在调度中保留总线时间,以满足每帧数据载荷的需求。管道在实际持续传输中使用的带宽可能少于所保留的带宽。如有必要,设备可通过其正常的、非USB定义的机制报告实际使用的带宽。

    对于中断、批量和控制端点,可以发送较小的数据载荷,但这将终止传输,并且可能需要干预才能重新启动,也可能不需要。更多信息请参见第 5 章。
    6 bInterval 1 数字 用于轮询端点以进行数据传输的时间间隔。以毫秒为单位表示。

    对于批量和控制端点,此字段被忽略。对于同步端点,此字段必须设置为 1。对于中断端点,此字段的范围可以从 1 到 255。