libusb performance on 8.1
doconnor at gsoft.com.au
Thu Feb 3 06:56:41 UTC 2011
On 28/01/2011, at 18:28, Hans Petter Selasky wrote:
> For this kind of applications ISOCHRONOUS transfers should be used. Then you
> can have a double buffer guard in the range 1-56ms, regardless of the buffer
> size the hardware uses.
That sounds nice :)
I am trying to get it working at the moment, however I'm only finding it capable of 4 or 8 Mb/sec (512 or 1024 byte EP), although perhaps I don't understand how to do ISO transfer properly.
BTW do you have a feel for the latency in bulk vs iso? I currently have 5-10 msec of buffering in the hardware which I plan on increasing but I'm not sure what a reasonable amount would be :)
I put a logic analyser on my board and it shows fairly regular requests from the hardware (16kbyte bursts every 2msec or so) however I see glitches occasionally - 5.5ms, 7.5ms.
I am not sure if they are attributable to userland scheduling (in which case writing a kernel driver should help) or some subtlety in USB itself.
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
-- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C
More information about the freebsd-usb