Electronics > Projects, Designs, and Technical Stuff
Evolution of usb connector?
<< < (11/18) > >>
coppercone2:
I like rs232 for lab work because i don't want to deal with USB but I think using it for consumer products is kind of a step backwards

my main interest in it is as a charge port however, since its literary everywhere and its excellent for gadgets. You have like a 20% chance of finding someone on the street with a portable battery if you need it.
IDEngineer:

--- Quote from: westfw on December 21, 2018, 04:58:12 am ---USB has become a bit cluttered with feature-itis, and maybe some cronyism. But in its original form at only 11Mbps and with the "huge" connectors, it was a pretty brilliant solution to real problems that were plaguing the industry.
--- End quote ---
That's exactly what I meant when I said:

--- Quote ---USB has definitely suffered from feature creep
--- End quote ---
...and when I said that RS-232C was "simple", remember it was at its heart a three-wire connection, one of which was ground so really just two wires. Hey, sometimes you had to cross them so TX was connected to RX. But the drivers tolerated misconnection like that, so no harm done. And once it was connected you could be exchanging data in minutes. Meanwhile, have you read the USB 3.0 spec? It's hundreds of pages long, and the "basic" steps just to establish a connection between two logical endpoints is anything but trivial.

I like USB. It was a good solution to a real problem of multiple dissimilar connectors, etc. But when I'm slogging through another "standard" USB implementation, I often pine for the simplicity of good ol' serial. Have you tried to work with the USB stack in Android, for example? There's a nasty bug in its logical disconnect routines that cannot be worked around except with a physical disconnect. The bug has been acknowledged by the dev team... it's in the buglist... but in the three years since it was first reported and confirmed, there's been absolutely ZERO work done on it. Sure one could fork your own version of the Android source and fix it (the fix is trivial, literally already documented in the buglist!) but then you're condemned to repeat the fix with every release, for every platform.... Ugh.
tooki:
USB vs RS-232 (or any similar serial standard like RS-422 or RS-485) are so different as to be barely comparable.

Yes, for an engineer, serial is far easier to work with. But for an end user, it's much, much more complex. And conversely, for a user, serial is a nightmare, but USB is simple. Why? Because in getting things to work, the effort has to come into play somewhere in the process. And when it comes to user-friendliness, the effort comes on the engineering side. (I'm a usability guy, bear in mind.)

Suppose we'd created "RS-232 version 10" by now, with better, standardized connectors (so no gender changers, null modem cables, etc.) and modern data rates, but had left the protocol as simple as before (i.e. essentially nonexistent). A user setting up an RS-232v10 audio interface, for example, would have to 1. choose one of the 10 potential ports on the computer (and remember the port number), 2. install a driver (assuming one exists for their OS — and hope it works), and potentially 3. configure the data format on the port. In USB, this all happens automatically.

Why? Because the USB standards perform far more layers of abstraction, including foundation specs for all kinds of devices, so that we don't need separate drivers for each model of a type of device. (If we ever manage to crack generic printer drivers, we'll be pretty much done!) It's complex for the engineer so that it's simple for the user. And this is, for anything distantly approaching a mass-market device, unequivocally a good thing.

And for stuff like lab gear… well, doesn't it all use USB as a serial port anyway? All the gear I have presents a simple COM port.
tooki:

--- Quote from: IDEngineer on December 20, 2018, 09:08:22 pm ---I will say, though, that as a hardware/firmware/software Engineer USB has definitely suffered from feature creep.

--- End quote ---

--- Quote from: westfw on December 21, 2018, 04:58:12 am ---USB has become a bit cluttered with feature-itis, and maybe some cronyism. But in its original form at only 11Mbps and with the "huge" connectors, it was a pretty brilliant solution to real problems that were plaguing the industry.
--- End quote ---

The "feature creep" of USB is the filling in the gaps of features needed to make many use cases work correctly.

Remember, the original USB 1.0/1.1 spec was intended only for low-speed devices like input devices (keyboards, mice, joysticks, etc), basic printers, and random gadgets. It was not intended as a high-speed bus for high-bandwidth or latency-sensitive applications. FireWire was meant to cover those use cases.

As it became clear that most computer and device vendors didn't want to support two different buses, Intel created USB 2.0, which adopted many of FireWire's advantages (high data rate, isochronous transfer modes, etc) to allow USB to cover use cases like mass storage and realtime video.

All the while, for both USB 1.x and 2.0, the USB consortium worked on creating more and more generic drivers for different devices. People forget that the only things that actually had generic drivers in the beginning were keyboards and mice, and even that was only very basic support (like any kind of media keys, extra mouse buttons, etc). Early USB audio, serial, scanners, disk drives, GPS receivers, webcams, UPSs… all of it needed vendor-specific drivers because there were no standards. USB Mass Storage, audio, and UPS came first. And progressively we have gotten capable generic drivers for nearly any kind of USB device except printers (and given Apple's example with AirPrint, as well as how PPDs enabled any PostScript-printing-capable OS to properly use any PostScript printer, it seems to me that there's no reason why the USB printing class can't be finally made to actually work without device-specific drivers).

So it's not "bloat", it's all things added specifically to eliminate the need for device-specific drivers. (A great example of this at the low level is isochronous transfers, added to make sure that streaming video is guaranteed its required bandwidth with deterministic latency.)
james_s:

--- Quote from: tooki on December 21, 2018, 12:48:57 pm ---Yes, for an engineer, serial is far easier to work with. But for an end user, it's much, much more complex. And conversely, for a user, serial is a nightmare, but USB is simple. Why? Because in getting things to work, the effort has to come into play somewhere in the process. And when it comes to user-friendliness, the effort comes on the engineering side. (I'm a usability guy, bear in mind.)

--- End quote ---

We are engineers, and thus discussing these things from an engineer's standpoint. Serial is at least an order of magnitude simpler compared to USB. For the end user yes, obviously USB is easier, but that's because it can be viewed as a black box, you just plug it in and it works, that's not the issue here.

Now try using a basic microcontroller and bit-banging your communication interface. Anybody who has ever tried to bit bang USB quickly finds out just how complex it really is. Bit banging RS232 is super easy, nothing to it.
Navigation
Message Index
Next page
Previous page
There was an error while thanking
Thanking...

Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod