I have commented before on “fashions” in the embedded software world and part of my job is to understand what the hot topics among embedded developers are. A subject that just seems to run and run is USB. I posted about it a while back and promised to write more. In the meantime, we ran a Web seminar, which broke records for attendance, and published a new tech paper, which has proven incredibly popular.
I guess that it is time to deliver on my promise …
Today I am going to focus briefly on one specific area of USB functionality: data transfer speeds.
USB offers a variety of data transfer speeds, each of which may be appropriate for specific situations. Now there are basically four options; this range has gradually increased as USB has been developed:
- Low speed [1.5Mb/s] - This functionality was included in USB 1.1 and is quite satisfactory for devices needing to transfer low volumes of data at modest speed. For example: mice, keyboards, joysticks and gamepads.
- Full speed [12Mb/s] - This higher speed was also supported by USB 1.1 and makes sense for more demanding devices, with greater volumes of data. Examples include: modems, digital cameras, printers, scanners and microphones.
- High speed [480Mb/s] - USB 2.0 added a much faster speed option aimed for large volume storage devices and multimedia application. For example: mass storage, broadband, home networking, residential gateways and digital video/audio.
- Very high speed [4.8Gb/s] - Another 10X speed increase is offered by USB 3.0, addressing the need of even larger data storage devices and demanding multimedia like full HD video.
As the USB standards have progressed, backwards compatibility has been maintained, while adding the greater data rate options; i.e. USB 3.0 supports all the functionality of USB 2.0, which embraces all the capabilities of USB 1.1.
A network of USB devices exhibits the “weakest link” phenomenon. Broadly speaking, the maximum data rate of the system is governed by the hardware and software USB standard compliance. For example, if most of the devices in a chain are USB 3.0, but one is USB 2.0, the maximum transfer speed along that line will be 480Mb/s.
In deploying USB, care is needed to ensure full interoperability with other devices. One way to avoid problems is to use a fully certified USB stack, like that supplied by Mentor Embedded.