B
Brane2
I am plowing my way through available USB1/2 literature, but I still have a few holes on actual implementation.
1. if everything on USB has to be carefully timed, how does USB hub cope with the consequences of bit-stuffing as part of NRZI coding ?
I mean, when doing IN transaction, USB HUB can not know in advance how much bits will some packet actually have on wire as that will depend on how many bits did endpoint have to stuff-in.
And this means that USB hub can not know how much will data transfer take. Does this mean that USB hub has to assume worst case when planning transfers for frame/microframe or is some other mechanism employed ?
2. Is there any way to make transfer of unknown length ( up to maximal size) or does each transfer length have to be preset in enpoints config before transfer ?
1. if everything on USB has to be carefully timed, how does USB hub cope with the consequences of bit-stuffing as part of NRZI coding ?
I mean, when doing IN transaction, USB HUB can not know in advance how much bits will some packet actually have on wire as that will depend on how many bits did endpoint have to stuff-in.
And this means that USB hub can not know how much will data transfer take. Does this mean that USB hub has to assume worst case when planning transfers for frame/microframe or is some other mechanism employed ?
2. Is there any way to make transfer of unknown length ( up to maximal size) or does each transfer length have to be preset in enpoints config before transfer ?