USB transfer modes - ISOC or Bulk?
USB, stands for Universal Serial Bus, was designed to standardize the method peripherals are integrated with PCs. It enables communication as well as carrier power. It has largely replaced interfaces such as parallel ports and serial ports.
There are also distinction based on the data transfer modes supported by USB. USB device communication is based on pipes. Pipes connect the host controller to entities within the device which are called endpoints. Each USB device can have upto 32 end points, 16 in and 16 out. When the device gets enumerated, the device defines and numbers each of the endpoints. During operations the pipes to these endpoints are opened and closed based on the use case.
There are 2 types of pipes:
→ Message Pipe is bi-directional and is used for control transfer which are usually short and simple commands.
→ Stream Pipe is a uni-directional pipe that connects with a uni-directional endpoint that transfers data.
The data transfer happens via the stream pipe using one of the 3 transfer modes:
→ Isochronous transfer mode - In this mode, the USB device blocks the bandwidth required for the transfer upfront. This way it guarantees consistent data rate. Used by devices such as audio devices, cameras.
→ Interrupt transfer mode – This mode is used by devices that requires guaranteed quick response. Used by devices such as pointing devices, mice, keyboards.
→ Bulk transfer mode – In this mode, the device does not block bandwidth upfront. The device use the available bandwidth for large sporadic transfer as and when required. This mode is used for file transfers or certain devices such as cameras.
When are dealing with cameras, we can expect to find cameras that supports Isochronous or bulk transfer modes. Isochronous mode supported cameras limits the use of multiple cameras over single host as each of the device tries to block the bandwidth upfront. This brings limitation on using only low resolution or low fps cameras.
However, bulk transfer mode supported cameras enables multi-camera applications. In this case, we need to keep a watch on the possibility of frame loss since each camera transfers based on the available bandwidth. Thus, we need to estimate the total bandwidth requirement and plan the camera operations accordingly.
Please feel free to get in touch with us in case of any queries.