Search code examples
usbprotocolspacket-sniffers

USB interrupt endpoint is unidirectional?


On reading about usb protocol in http://www.beyondlogic.org/usbnutshell/usb4.shtml It is said that interrupt endpoint is unidirectional and periodic.

Yet, I see in the description for IN interrupt endpoint, that host initiate the IN token and then data packet is send from device to host.

"If an interrupt has been queued by the device, the function will send a data packet containing data relevant to the interrupt when it receives the IN Token."

So, If the data packet is sent on this IN endpoint from device to host, doesn't it mean that the same endpoint is used both the transmit and receive ?


Solution

  • I believe the terminology "unidirectional" is meant for only data and not for token and handshake packets. So "IN" endpoint is for reading data and "OUT" endpoint is for writing data. That's why its called unidirectional.

    But control endpoint is bidirectional because you can read or write data using the control endpoint. Check the standard USB commands like "Get Descriptor" and "Set Descriptor".