On Fri, 17 Feb 2006, Mukund JB. wrote: > Dear Alan, > > >> After that see the Table 5-1. Low-speed Control Transfer Limits. > >> Even though there are a total of 43 bytes to be transferred, I > observe > >> that data payload is less that 8 bytes some times which is against > the > >> above rule in 5.5.3. > > > >Where do you get that 43 from? > I got it through (Max transfers + Bytes remaining). > I guess Max > > The table has 4 rows. The first row > >illustrates what happens when 1 byte is to be transferred. The second > row > >illustrates what happens when 2 bytes are to be transferred. The third > >row illustrates what happens when 4 bytes are to be transferred. And > the > >fourth row illustrates what happens when 8 bytes are to be transferred. > > Thanks for the explanation. > But, I did not get how MAX Transfers vary? > And what does "bytes remaining" mean?
In Table 5-1, here's what the various columns mean. Max Bandwidth is the number of data bytes that can be transferred in one second using the specified payload size. For instance, if the payload size is 1 byte (first row) then you can transfer a maximum of 3000 data bytes per second. The Frame Bandwidth per Transfer is the percentage of the available bandwidth used by transfers with the specified payload size. For instance, if the payload size is 2 bytes (second row) then a single transfer will use 27% of the bandwidth of a frame. The Max Transfers is the maximum number of transfers per frame with the specified payload size. For instance, if the payload size is 4 bytes (third row) then there can be up to 3 transfers per frame. The Bytes Remaining is the number of bytes that could be sent in the remainder of the frame after the maximum number of transfers with the specified payload have been sent. For instance, if the payload size is 8 bytes (fourth row) then after sending 3 transfers in a frame there would still be time to transmit another 19 bytes. The Bytes/Frame Useful Data is the maximum number of payload bytes that can be sent in a frame using transfers of the specified size. For instance, if the payload size is 1 byte (first row) then at most 3 bytes of useful data can be sent in a frame (1 byte per transfer times 3 transfers). By the way, note that the Protocol Overhead values listed at the top of the table are wrong. The actual overhead used in the table is 48 bytes, not 63. I don't know why the table says there are 15 SYNC and 15 PID bytes; there should be 9 of each as in table 5-2. And apparently the interpacket delay is taken to be 10 bytes, not 13 (although it probably should be 7 or 8). Anyway, you can easily confirm the values for yourself. All you need to know is that the total number of bytes in a frame is 187 (bottom right corner) and the overhead is 48 bytes per transfer. So for example, if your data payload is 4 bytes then you get a total of 52 bytes per transfer (48 + 4). 52/187 = 27.8%, and only three 52-byte transfers can fit in a 187-byte frame. There will be 187 - 52*3 = 31 bytes remaining, and the number of data bytes transferred will be 3*4 = 12. Since there are 1000 frames per second, the maximum number of data bytes per second is 12000. > And I find two ways of addressing like transfers and transactions. I > understand them as follows. Please correct me in case I am wrong. > I guess 1 transfer will involve multiple transactions. Generally it will > be 3 i.e. setup, data and handshake. If the data to be transferred is > more the transaction count will increase. > > I guess, > 1 transfer = (1 setup transaction + 1 or more data transaction + > 1 handshake transaction) The three stages are called Setup, Data, and Status. The Setup stage consists of a single SETUP transaction, the Data stage consists of zero or more IN or OUT transactions (there will be no transactions if the data length is 0), and the Status stage consists of a single OUT or IN transaction. This is all discussed in Section 8.5.3 of the USB 2.0 spec. Alan Stern ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel