Is a USB interrupt order available?

I found in a rather amazing book called "USB to NutShell" , which interrupts the transfer, provides reliable delivery (through error detection and automatic retry).

But I wonder, does it guarantee that translations will not change places someday? Since the bus is serial, I guess yes, reordering should never happen. But I don’t have much of it, so I doubt it.

Can anyone clarify?

+3
source share
1 answer

It is guaranteed that interrupt packets will be delivered in order. In fact, ALL USB packets defined through USB 2.0 (volume, iso-storage, interruption, management, including split-transaction / etc) are delivered in order.

Wired packets do not have sequence numbers (outside DATA0 / DATA1, which is used to disambiguate lost packets), so each packet is re-checked on the wire until it is delivered.

I did not work on USB 3.0, so it’s possible to create something new that’s not okay, but even if it is, existing ones will continue to be in order.

+2
source

Source: https://habr.com/ru/post/1784977/


All Articles