EECS 373 Winter 2004 -- Homework 1 Reading and understanding specifications: USB Due at the _start_ of class, March 16th, 2% of course grade. GOAL This homework assignment is designed to teach you to read specifications. You will also learn about the USB (Universal Serial Bus) specification. REFERENCES * http://www.beyondlogic.org/usbnutshell/usb1.htm -- Explanation of the specifications * http://www.usb.org/developers/docs/ -- Specifications themselves * USB explained, S. McDowell, M. Seyer, 1999. -- Dead tree explanation of specifications (a bit simplified) * http://www.nti1.com/usb-prots.html -- Short details on transactions. You should find the first reference the most useful though the last is worth briefly looking at too. Of course you might also find other web pages or books that are also useful. NOTE ON HOMEWORK On the whole your answers should be in your own words. You should not be using words you don't know the definition of. However, you may quote from the above works or any other. But be sure you are making it clear exactly what you are quoting and where you are quoting it from. Not doing so will result in a reduced (or zeroed) grade on this homework and, in extreme cases may result in a referral to the Honor Council. QUESTIONS Unless otherwise noted these questions can each be answered in a sentence or two. 1. Wires (25%) a) How many wires are used in a USB cable? Briefly describe for what each wire is used. b) In low-speed communication how is the "J" state represented? c) USB usually uses "bit stuffing". Explain why and exactly when a stuffed bit is inserted. d) Using the rules of low-speed communication (including bit stuffing) DRAW the data wires for the following "raw data" "111111110110" 2. Speeds (15%) a) In 1.x of the specification only two bus speeds were allowed. What are those speeds called and what is their maximum bandwidth? b) In version 2.x of the spec. a third speed was added. What is it called and what is its bandwidth? c) What is the advantage of supporting multiple speeds in the USB specification? 3. Protocol (20%) a) In USB terminology, what is an "endpoint?" b) For the lowest speed, how is a "start of packet" (also called "sync") indicated? c) How is an "End of packet" indicated? Be specific (i.e. don't use terms you don't understand...) 4. Misc. (20%) a) Why does USB support two different types of connectors? b) When a USB device wishes to perform an interrupt how is this communicated to the host? c) What is an Isochronous transfer? Why are they used and how are they different than bulk-data transfers? 5. Putting it all together (20%) a) Assume you had a host that wanted to move 10GB of data to a USB device.. Take your best guess about the expected amount of time this would take for the highest speed communication allowed under version 1.x of the specification. How about 2.x? Be sure to include protocol overhead and explain exactly how you arrived at your number. (This will probably take 2-3 paragraphs for a good answer.) Relate this back to an actual measurement using a real USB device.