0

I have the following problem:

Microcontroller with usb1.1, 32byte buffer for bulk transfers and a lot of real time data to move to Linux (kernel2.6) PC.

As far as I understand the maximum theoretical bandwidth available for bulk transfers in this case is 19 transfers * 32 bytes / frame (1ms) = 608 Kbytes/second

The problem for me is that this is still not enough to move the data in real time and changing to an USB 2.0 uC is not possible ...

Is there anything I can do in SW ( create a patch for linux2.6 ) in order to get 1 or 2 extra bulk transfers per frame ?

Thanks, George

Echilon
  • 10,064
  • 33
  • 131
  • 217
c george
  • 1
  • 1

1 Answers1

1

Since the limit is imposed by the physical USB hardware, there is no way to speed up transfer short of implementing compression on both sides of the transfer.

Even then, it is unlikely you will be able to speed up the transfer considerably.

0x90
  • 6,079
  • 2
  • 36
  • 55
  • 19 transfers / frame is the maximum available on the USB bus and this is allocated to bulk ?, or at the same time there is something reserved for interrupt/iso ?, because if this is the case I could use those interrupt/iso slots for the needed extra. Thanks – c george Nov 13 '12 at 09:09
  • compression is highly unlikely as the uC cpu is not so powerfull and also under load with the rest + the real time requirement, the data will keep coming and will not wait ... any other suggestion regarding usb, use of extra EP with interrupt/iso. Thanks – c george Nov 13 '12 at 12:08