
.png)
Tao Zheng Nov 5, 2015 8:35 PM (in response to Carlos Jose Maria Casillas Mora)
Q1
About "If yes, in our case there were 7 devices and corresponding 7 endpoints which scheduled sending within one microframe by setting S-mask field in the Queue Head, then it maybe caused bandwidth shortage although it depends on the data size." What do you mean?
As per specification, If the queue head is for an interrupt endpoint (for example, non-zero S-mask field), then the FRINDEX[2:0] field must identify a bit in the S-mask field that has one in it. For example, an S-mask value of 00100000b would evaluate to true only when FRINDEX[2:0] is equal to 101b. If this condition is met then the host controller considers this queue head for a transaction. So, you can change QH S-mask to distribute 7 Interrupt IN transactions into different uframes instead of only one uframe.
Q2
It is not overflow but Micro-Frame Integrity mechanism.
As per specification, the HC must ensure that it does not start transactions that will not be completed before the end of the micro-frame. More precisely, no transactions should be started by the host controller, which cannot be completed in their entirety before the EOF1 point. In order to enforce this rule, the host controller must check each transaction before it starts to ensure that it will complete before the end of the micro-frame.
So, When bandwidth limit is reached, remaining QH in the same uFrame will be dropped and start next uFrame. If you don't change S-mask, the issue will appear again in +16 uFrame, +32 uframe, +48 uframe...