General > General Technical Chat
It took 25 years for this USB demo/explanation
Howardlong:
This is the best on-the-wire USB protocol demo & explanation I've ever seen, but then there aren't many entrants.
Why did it take 25 years for this level of demonstration and explanation to see the light of day?
ataradov:
The reason for lack of explanations is that to fully explain (and include FS and HS modes) you would need a very long video. This is a good introduction, but not even a remotely complete explanation. And in practice, specific bit encoding on the bus rarely matters. In practice you deal with controllers and higher level transfers that consists of multiple packets on the bus.
And once you understand how to read it, USB spec is not that bad. It is better than a lot of documentation I have seen.
Howardlong:
I never claimed it was either a complete explanation, or a replacement for the USB spec. I am saying it's a worthy addition to bring to light how USB works on the wire and at a basic packet level, something that has always been sadly lacking.
It brings home how it really works in practice.
A 600 page spec is very dry and does not relate well to understanding actual implementation as a system. Instead it depends upon layer upon layer of abstraction.
This demo is, on the hand, very relatable.
Riddle me this, if USB was so simple to pick up, why did it take five years to have serial adapters & drivers that didn't crash the computer?
While I don't do it that often, I do on occasion use USB triggering & decode on scopes to sniff out pinch points to optimise firmware USB stacks: it's one of the very few reasons I still keep an MDO4104C available at the bench! That's something that's less than convenient to do with hardware or software protocol analysers that demand time consuming retrospective rather than interactive analysis for discovering systemic timing latencies.
ataradov:
--- Quote from: Howardlong on June 09, 2021, 05:13:50 pm ---Riddle me this, if USB was so simple to pick up, why did it take five years to have serial adapters & drivers that didn't crash the computer?
--- End quote ---
I never had an issue with serial adapters crashing the system. But even if it happens, I don't understand how poor coding and testing is relevant here.
It is still possible to crash both Windows and Linux with misbehaving devices though. I personally did it many times while doing firmware development. But again, it is just programmers only coding for the well behaving scenario and not taking into account misbehaving devices. Not USB's fault.
You can make an argument that USB spec is so complex that it is hard to correctly implement it. This may be true, but understanding how the bits work does nothing for understanding how to write correct handling code. You still need to read 600 page spec.
And I'm not against trying to explain things in a simple ways. I'm just answering the question of why this did not exist before or why there is no other articles of the same nature. There is no real demand, since it is irrelevant for most practical cases. Article "how to make USB work on STM32" has more value to majority of people.
coppice:
--- Quote from: Howardlong on June 09, 2021, 05:13:50 pm ---Riddle me this, if USB was so simple to pick up, why did it take five years to have serial adapters & drivers that didn't crash the computer?
--- End quote ---
The development of USB was VERY messed up, mostly on the software side. It took MS so long to get working drivers in their OSes that the first generation of USB peripherals was scrapped and replaced by one or two more generations before any of them actually started to sell. The protocol and hardware is actually pretty straightforward, and didn't cause much trouble. Sure, there were, as always, some buggy chips. Probably the inability to sell early on made the vendors reluctant to invest in cleaning up the bugs, but what else would you expect.
Navigation
[0] Message Index
[#] Next page
Go to full version