Universal Serial Bus (USB)
One of the main functions of the USB interface is the possibility of connecting devices to the PC without having to restart the PC (hot plugging). The standard provides power to devices via the bus and a total of 127 devices can be connected via hubs. The complete data transfer via USB is controlled by the PC and is now found on most motherboard chipsets removing the need for a separate interface card. It is possible, however, to expand the USB capacity of a PC by additional host controller boards.
The bandwidth of the original USB 1.0 standard is 12 Mb/s, which was also adopted for the revised standard USB 1.1. This throughput is only approximately 1 MB/s, which is enough for the original target application such as that of connecting the keyboard and the mouse, but it was not enough for applications requiring the huge bandwidth needed for the connection of cameras. When the successor, USB 2.0, was launched in 2001, the bandwidth increased to 480 Mb/s, which made USB 2.0 interesting for devices with higher data rates such as bulk storage, CD burners and also for imaging and machine vision.
With an effective bandwidth between 40 MB/s (as a function of the USB host controller) and 45 MB/s, depending on the protocol used, the performance of USB 2.0 is approximately between IEEE 1394a and b. Even if these two interfaces may seem very much alike at first glance, there are a few major differences. USB uses a star topology with several levels, i.e. several devices can be connected to node points, e.g. USB hubs.
Up to six levels with node points are permitted below the host controller. It should be noted, however, that daisy chaining of devices or PCs can also be done in IEEE 1394, but not with USB. USB in general uses different protocols such as bulk or isochroneous. On most USB devices and on all current USB3 Vision cameras the bulk protocol is used which provides guaranteed delivery but has no assigned bandwidth.
The successor USB 3.0, also known as superspeed USB, was released in November 2008 and we have seen many devices reach the market with 2012 seeing the launch of the first machine vision cameras. USB 3.0 operates at a bandwidth of 5 Gb/s enabling net data rates of substantially more than 350 MB/s. This places USB 3.0 roughly on a level with CameraLink Base, but unlike CameraLink or CoaXPress, it does not require an extra frame grabber because a USB3 interface is already integrated on many motherboards and laptop computers. Like USB 2.0, USB 3.0 is downwards compatible. This means that USB 3.0 devices with a correspondingly lower bandwidth can operate on USB 2.0 ports and USB 2.0 devices can operate on USB 3.0 ports. However, as USB 3.0 also comes with new connectors, care needs to be taken when integrating legacy devices and USB 3.0 devices. It should be noted that USB 3.0 is no longer compatible with the "old" USB 1.1 controllers. Like other generic interfaces such as Gigabit Ethernet, the standard does not define a specification for working with cameras and as such it is necessary to install and use the software of the camera manufacturer when using a USB camera. This creates a problem for the user when new cameras need to be integrated, and it can provide difficulties in embedded solutions because a camera manufacturer may not be able to provide drivers for any conceivable operating system. If a uniform standard existed, the integration could be handled by specialist developers other than the manufacturer. In addition a new software platform would have to be installed only once and could be used for different camera manufacturers.
Some USB devices load the camera firmware from the host during the booting phase of the camera. While this means drivers from the camera manufacturers must be used, it does mean new features can easily be added to a camera by simply releasing a new driver. USB cameras in the market use different data transfer implementations. For example data can be transferred using bulk transfer which has no reserved bandwidth. The bandwidth must be managed on the bus by the host controller. The difference for example to GigE is that we have guaranteed delivery so that even if the bus is under heavy load, the application might not receive all images, but it will only receive complete images. The advantage of bulk traffic is that many cameras can operate on the same bus.
Alternatively, data can be transferred via isochronous channels. Isochronous channels have a fixed bandwidth reserved for them in the software which is engaged even if no data is transferred at a given time. In USB 2.0 the number of isochronous channels was limited, thus limiting the number of cameras that could be connected.