Hello,
USB and say, RS-232/485 are all serial mediums to deliver data. What makes USB so much faster? Why can't the same data transfers rate be achieved with say, RS-232? Sorry for asking a non-Keil specific question.
Thanks
The techniques are "better" in giving higher speed, but "worse" in covering long distances and far worse in terms of the amount and complexity of the hardware & software required.
As ever, it's all a tradeoff.
Nowadays, the required levels of HW & SW complexity are (relatively) easily achievable - but that has only quite recently been the case...
Back at the F1 car analogy, much of the technology that is now an everyday part of run-of-the-mill cars was originally only viable in "top-end" high-performance specials...
The complexity of USB comes from the fact that the USB spec covers multiple layers of protocol stack, though RS-232/485 define just the bottom, Physical and a part of Data Link Layer. Then, the direct comparison of complexity of these serial protocols doesn't have so much mean, unless you are aware of the covered range.
For example, USB defines intrinsic error detection and recovery. This mechanism is implemented on the USB hardwares. If you would implement it over RS-232/485, your firmware and host app should become much complex. USB defines four transfer types, control, interrupt, bulk and isochronous. The feature of these transfer types fit well to the requirement variety of real-world communications. Upon these transfer types, USB defines class. USB class defines the way to carry upper protocol over USB transfer types; Mass storage class carries SCSI protocol, CDC-ACM for MODEM, etc. Of course, you could make up a protocol stack upon RS-232/485 to this extent. If you would code it, how complex the firmware would be?
USB is a standardized compile of technology at present. I believe the major concepts on USB are succeeded by future protocols.
Tsuneo