11.16.2.3 获取总线状态

    这是一个可选的、针对单个端口的诊断请求,它返回在上一个 EOF2 采样点采样的总线状态值。

    bmRequestType bRequest wValue wIndex wLength 数据
    10100011B GET_STATE 端口号 每端口总线状态

    端口号必须是该集线器的一个有效端口号(大于零)。如果指定了无效的端口号,或者 wValue 或 wLength 不符合上述规定,则集线器应在请求的数据阶段返回 STALL(并中止状态阶段)。

    集线器可以实现一个可选的诊断辅助功能,以方便系统调试。集线器通过此可选请求来实现此辅助功能。该诊断特性提供在最后一个 EOF2 采样点采样的 USB 总线状态快照。

    实现此诊断功能的集线器应在每个 EOF2 状态点存储总线状态,以备在后续 USB 帧中可能收到此请求。

    返回的数据按以下方式位映射:

    • 位 0:D- 信号线的值
    • 位 1:D+ 信号线的值
    • 位 2-7:保留供未来使用,并复位为零。

    集线器必须能够在接收到请求的同一帧内,在数据阶段事务中返回总线状态。如果集线器发送的数据包未收到 ACK,且主机继续数据阶段,设备无需重发相同的数据包。相反,集线器将始终返回紧接的前一个 EOF2 采样点的总线状态,并使用 DATA0 PID。

    未实现此请求的集线器应在请求的数据阶段返回 STALL(并中止状态阶段)。

    如果集线器未完成配置,则其对此请求的响应是未定义的。