0
\$\begingroup\$

Does the bInterval field specify something in USB 2.0 high-speed bulk in endpoints or is it ignored? In the latter case, does the host controller just polls the endpoint as many times as it can in a microframe until it gets data and not a NAK?

Thanks

\$\endgroup\$

1 Answer 1

0
\$\begingroup\$

For high speed OUT endpoints, bInterval describes the maximum NAK rate of the endpoint. But for IN endpoints, this field is ignored. The specification says:

An endpoint has no way to indicate a desired bus access frequency for a bulk pipe. The USB balances the bus access requirements of all bulk pipes and the specific IRPs that are pending to provide “good effort” delivery of data between client software and functions.

The host controller can poll at any frequency it likes. Many HCs indeed poll at a very high frequency if no other transactions are active.

Bulk endpoints are supposed to be used in situations where the driver knows or suspects that data is available, and schedules packets to be received only then. If you want to be notified by the device, use interrupt endpoints instead.

\$\endgroup\$
6
  • \$\begingroup\$ Isn't the NAK rate valid only for BULK OUT endpoints? And about the "the specification does not demany any specific polling algorithm" means that the HC can do whatever it wants, both wait for the next microframe or start polling continuously, right? If the host wants to read, and issues a TOKEN IN, and the device has no data, then the device replies with a NAK, then the HC can both retry to send the TOKEN IN or ignore the endpoint until the next microframe(s). Right? Thanks a lot for your answer! :) \$\endgroup\$ Commented Sep 19 at 14:14
  • \$\begingroup\$ Thanks, corrected. \$\endgroup\$
    – CL.
    Commented Sep 20 at 7:08
  • \$\begingroup\$ I have another small detail to clarify. Why in some documents (e.g. usb.org/sites/default/files/DWG_Smart-Card_CCID_Rev110.pdf) the bInverval field for high-speed IN endpoints is not ignored? Does the HC comply with what it's written there or does it comply with the USB standard? \$\endgroup\$ Commented Sep 24 at 9:15
  • \$\begingroup\$ The CCID specification is wrong. \$\endgroup\$
    – CL.
    Commented Sep 24 at 19:14
  • \$\begingroup\$ Thanks! Should I file a bug report somewhere for this? If so, where? \$\endgroup\$ Commented Sep 26 at 13:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.