At the start of this chapter, we looked at RS-232C, that old standard of communication that’s not so standard after all. RS-232C has lots of problems and lots of limitations. Getting any two RS-232C devices to talk is not easy. You need the right cable with the right sort of connectors, and then you need to manually coordinate the communication parameters such as data rate, parity, and handshaking. At best it is a nuisance, at worst, a headache. For hardware manufacturers, it presents a dilemma. Your goal in developing your product should be to make that product as easy to use as possible. You don’t want users stumbling around with incorrect cables, manually configuring settings and failing to seamlessly integrate your product with the rest of their system. This doesn’t make for a happy user.
Universal Serial Bus (USB) is the solution. It allows peripherals and computers to interconnect in a standard way with a standard protocol and opens up the possibility of plug and play for peripherals. USB is rapidly dominating the desktop computer market, making RS-232C an endangered species. Apple Macintoshes no longer have RS-232C/RS-422 ports, and soon all PCs will go the same way. Therefore, an understanding of USB (and how to build a USB port) is critical if you wish to interface your embedded computer to the desktop machines of the future. USB supports the connection of printers, modems, mice, keyboards, joysticks, scanners, cameras, and much more.
USB opens a wealth of possibilities, ...