What USB Has Replaced (And What it Hasn't) (arstechnica.co.uk)
An anonymous reader writes with a story at Ars Technica about the evolution thus far of USB as an enabling technology: Like all technology, USB has evolved over time. Despite being a 'Universal' Serial Bus, in its 18-or-so years on the market it has spawned multiple versions with different connection speeds and many, many types of cables. A casual search around the shelves by my desk shows that I've got at least 12 varieties, and that's not even counting serial and PS/2 adapters. What have you replaced with USB?
Yup, pretty much this.
It's trivial to implement a serial connection in a microcontroller. All you need is a level shifter like the dime-for-dozen MAX232 and you're set. For USB, this requires a lot more implementation overhead (not to mention getting a genuine UID if you want to ship it), and literally EVERYONE who has ever even dabbled in microcontroller programming knows how to deal with a MAX232. Pushing information down the serial line is like the Hello World of microcontroller tinkering.
That's why you can still get PCI-E serial controller rather cheaply. And, lo and behold, almost all of them contain some variant of the MAX232.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
...I know I haven't managed to replace serial ports. I haven't found any stable RS232 converter on USB...
Either drivers don't work, or everything I get is badly made (fake?).
Kind of weird that *serial* ports don't work well on an *universal serial bus*. But ah well.
Before USB, the PC had parallel ports, serial ports, Keyboard and mouse ports, ALL of which were unencumbered by patents and none of which required ID codes that had to be purchased from a monopolistic trade entity for $4000 or more. There was a minimal cost of entry for anybody in a garage who had a clever idea for something to add to a PC and even individuals could quickly hack together an interface to some custom hardware via the parallel port with no need for complex USB code and drivers. If you only plan to make a hundred gadgets, USB is insane. The Price to get a required ID number for your gadget is not reasonable, and if you use a USB-to-Serial chip with somebody else's ID number, you have essentially admitted you could have just used a standard serial port but are putting extra junk in your design because the host PC is missing the old standard serial port.
Microsoft hated this openness because it meant a huge array of stuff with which they had to avoid breaking compatibility in each new Windows release, so they wanted it all replaced in the PC99 spec with USB. At the time, they pretended no modern computer could run efficiently while connected to such old slow interfaces (something Linux proves is false) and that this was all for the benefit of the users.
Sadly, most people seem not to realize that many of the things (like mice,keyboards,serial adapters, etc) that use USB do not even need its speed. We would all have been much better served with an open, un-patented, USB-type interface without the MPEG-LA-style USB authority. There's no reason why ID numbers should not be bought as easily as MAC numbers (i.e. if a developer wants a few without going to the responsible authority, he can buy s cheap EEPROM from somebody like Microchip with a unique assigned number already burned-in).
USB is a very "mixed-bag" - better for live connect/disconnect, power and management on std cables and cons, but soul-sucking rights-hogging and freedom-squelching.
Personally, I'd like to see the whole industry replace USB with PoE (NOT using the infamous and un-necessary PoE patents). Drop all interfaces on a PC and do EVERYTHING with PoE - Keyboards, mice, printers, scanners, drives, everything. An open UDP-based protocol stack could be used to ID devices and detect when they plug-in. All devices could have standard (royalty-free) assigned device type codes just as we have standard assigned numbers. There's no reason other than control and royalties for why we need an authority selling numbers over a desktop bus.
Unlike ethernet, which is pretty much standard from platform to platform and basically trivial to support, USB code is completely different between linux, OS X, and Windows, and is a mess, API-wise.
I write software defined radio stuff, and after one incredible nightmare getting a USB SDR to work on all three platforms using conditional compilation (I did succeed), I swore off. No more. If it doesn't have an ethernet interface, or a USB-to-ethernet server app compatible with the standard SDR protocols that makes it appear to me as an ethernet SDR, it's not happening.
Luckily, some of the best SDR manufacturers out there have done it right. Andrus, AFDRI, and RFSPACE. And there are some servers that have been built to hide the abortion of USB, but so far they are very much platform-specific, for the very reason I described above.
USB. Ugh.
I've fallen off your lawn, and I can't get up.