Universal Serial Bus System Architecture (2nd Edition)
||Author: Inc. MindShare, Don Anderson|
List Price: $44.99
Our Price: Click to see the latest and low price
Publisher: Addison-Wesley Pub Co (03 April, 2001)
Sales Rank: 26,917
Average Customer Rating: 3 out of 5
Customer ReviewsRating: 4 out of 5
worked for me.
I was handed the task of testing a USB port on an embedded system. I decided to port linux code (usb-uhci) to the embedded
platform and this book provided a handy reference to fill in the cracks. I did not read it from cover to cover but for what I used it for ( hey, what the hell is that? )it was excellent.
Rating: 1 out of 5
One of the worst computer books I've ever read
I bought this book on the strength of recommendations of other MindShare books. Big mistake. This is a terrible book. I've never written an Amazon review before but this book's has so many problems that I feel obligated to warn others.
DON'T BUY THIS BOOK!
Here's a list of some of my gripes.
o Which version -- The authors can't decide whether it wants to be a USB 1.x book with a USB 2.0 addenda, or a full USB 2.0 book. So in some places you get USB 2.0 deltas, and in other places you get an explanation of how USB 2.0 works with a parenthetical remarks about USB 1.1.
o Basic concepts are assumed before they are explained -- I read this book from start to finish and so I really notice this sort of problem. For example, Table 4-3 (page 86) is an extract from Table 19-9 but a) you have to go back two pages to the text on page 84 to even find out that it's an extract, and b) you have to manually search for the full table because neither the text nor the diagram reference it.
o Bad English -- For example, page 204 says "Resume is signalled to all downstream ports that are enabled and back to the suspended port." A classic example of passive voice resulting in unparseable English. It's the hub doing the signalling! This is just a small example of an endemic problem.
o The diagrams suck -- They look like they were taken from a PowerPoint presentation (which they probably were) but it's worse than that. There's little consistency about how tables and diagrams are organised. For example, I expect that every diagram that illustrates a USB packet interchange would use the same basic format. Not so! Take a look at Figure 7-20 and Figure 8-5. They explain a roughly similar concept but with a totally different type of diagram. Finally, some of the diagrams are just weird. For example, are Figures 12-12 and 12-13 state diagrams (which is what they look like), or pseudo-frowcharts? I still can't decide.
o Lack of smooth layer-to-layer transitions -- My particular problem was with the various requests on the control endpoint (endpoint 0).
- There's no up-front listing of all of the possibly requests on a control endpoint.
- Values are referenced inconsistently -- In the text on page 354 it's "GetDescriptor" but in the Table 19-6 it's "GET_DESCRIPTOR". And, better yet, sometimes we just leave out the numeric values of symbols so that you can't correlate between the inconsistent identifiers (for example, the bulletted list on p 379).
- Table 19-6 describes the packaging of the request but then fails to describe how the response is packaged. Table 19-7 lists the structure of the response, but there's no description of how that structure is embedded in the packets on the control endpoint. Or maybe there is. I'm still not sure whether the "Data" field in Table 19-6 is the response or something left over from the SetDescriptor request, which uses the same format.
o The authors have no network experience -- Coming from a network background it's obvious to me that you can draw a bunch of analogies between USB and standard networking terms. For example, USB's data toggle is simply a one-bit sliding window. Somehow this has escaped the author's attention.
o 'Small' things -- Like every figure reference in the text includes a page number, rather than saying "on this page" or "on the next page". And the fact that the index is woeful. Look up some basic USB concepts in the index and see what you get. For example, "endpoints" has a single reference to page 19, which is the wrong page (should've been page 18) and doesn't recognise the fact that endpoints are discussed in many other places in the book. On the other hand, the reference for "descriptors" points you to page 376, which is within 20 pages of the in-depth discussion of descriptors on page 353, but *completely ignores* the introductory material on page 60. Or try to learn moreabout "Think Time", shown in Table 20-12 but not even listed in the index!
I could go on, but this is taken too much time.
Unfortunately, this is the first USB book I've read so I can't recommend a better book. However, other reviewers have provided some alternatives and I strongly recommend you explore them. My guess is that reading the USB standard would be more productive than reading this book!
Rating: 1 out of 5
The USB specification can be downloaded from USB ORG web page free. This book contains a part of the spec. If you want to start design USB hardware and software then I would suggest "USB Design by Example" written by John Hyde. "USB Design by Example" is an excellent book.
· USB Complete: Everything You Need to Develop Custom USB Peripherals
· USB Design by Example: A Practical Guide to Building I/O Devices (2nd Edition)
· PCI System Architecture (4th Edition)
· FireWire(R) System Architecture: IEEE 1394A (2nd Edition)
· PCI-X System Architecture (With CD-ROM)