Clarity from complexity

1 min read

What began life as a convenient interface for pc peripherals could soon be truly ubiquitous. By Philip Ling.

The U in USB currently stands for ‘universal’, but the rate at which USB is being integrated in to all manner of devices could justify it being replaced by ‘ubiquitous’. Its convenience is undeniable; ‘plug and play’ is an expression that is often used, but rarely delivered. Not so for USB, and its convenience is matched by its reliability. Yet its convenience belies its complexity. The term ‘digital’ is now synonymous with ‘reliable’ but, as any engineer will appreciate, digital is considered reliable largely because it’s predictable. But ‘reliable’ isn’t synonymous with ‘quality’. The reason why USB is predictable, reliable, and largely of a high quality isn’t because it’s simple; on the contrary, it is surprisingly complex, particularly when considered against old stalwarts such as RS232, parallel and uart interfaces. Clearly, complexity is the price paid for USB’s predictable, reliable quality; there’s always a trade off. Such is its complexity compared to other interface technologies that the market now offers a range of emulation devices, designed to convert USB traffic into, for instance, RS232, or to offer a uart interface that gives the impression of a USB interface in legacy equipment. The benefit here is that the USB protocol is often handled by the silicon, allowing the application to treat the interface as an existing uart or fifo, but providing the outside world with what looks like a USB port. The downside is that the driver required by the host to interface to the device isn’t necessarily standard and so may not be installed. This means, of course, that it needs to be supplied by the manufacturer and, in the event that the host pc doesn’t recognise the device natively, installed by the end user. This may be acceptable for industrial systems, where the connectivity is perhaps between a data logger and a particular pc, or ‘closed’ systems where the device is used as a licensing dongle for a specific application running on the host. But for standard peripherals (consumer devices, for instance) where such a union doesn’t exist, this becomes untenable.