OUT 事务的 PING 流量控制

PING Flow Control for OUT Transactions

libusb 是否支持 OUT 事务的 PING 流量控制?

根据我正在连接的设备的数据表,"A NYET handshake is returned to the Host for each OUT packet. The Host pings the OUT endpoint, when internal processing of the device is complete, an ACK is returned in response to a PING."

是否可以使用 libusb 实现此目的?

PING 是一个令牌数据包,由您的 USB 主机控制器而非软件生成。 PING 令牌由您的主机控制器自动处理。

EHCI 控制器为每个队列头保留 PING 状态位(每个队列头将对应每个端点)。您的主机控制器驱动程序将每个队列头的 ping 状态初始化为 0。

Ping 状态 -

0B - (Do OUT) - 主机控制器将在下一次到此端点的总线事务期间使用 OUT PID。

1B - ( Do Ping) - 主机控制器将在下一个总线期间使用 PING PID 到此端点的交易。

协议 -

主机控制器会先发送OUT数据包。如果响应是 NAK 或 NYET,控制器会将 ping 状态更改为 1 并开始发送 PING 令牌。 当 PING 令牌返回 ACK 时,主机控制器将引脚状态更改回 0 并且 re-transmit OUT 令牌。

所以软件开发人员不用担心,您什么都不用做。