Ports and Interfaces > USB

bulk transfers

<< < (2/2)

ADB:
Hi Jan,

I've been able to enumerate my microcontroller as a WCID device with Microsoft 1.0 descriptors and have been able to do bulk transfers with a PC application running a libusb driver.

Since the device descriptor side of things has now been stripped down, I'm not doing HID or CDC. What is the name of what I'm doing?

With my test program, I have sent 16MB of data in 512 byte packets (High Speed). According to my protocol analyser I'm doing about 60 Mb/s (7.5 MB/s). This seems quite far off the 480 Mb/s of the standard. Why is this the case?

Thanks again,

Alan

Jan Axelson:
The name of what you are doing is "vendor-defined class."

From USB Complete, 5th Ed:

"In theory, at high speed on an otherwise idle bus, up to thirteen 512-byte bulk transfers can transfer
up to 6,656 data bytes per microframe, for a data rate of 53.248 MB/s. Real-world performance varies with the host-controller hardware and driver and the host architecture, including latencies when accessing system memory. Some high-speed hosts can transfer bulk data at around 50 MB/s."

A single, large transfer with multiple transactions (data packets) will transmit a block of data faster than multiple transfers, each transmitting a single data packet. Other traffic on the bus will also slow the transfer rate.

ADB:
Hi Jan,

Thanks for your comments on this.

Regards,

Alan

Navigation

[0] Message Index

[*] Previous page

Go to full version