Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

HS USB data transfer rates issues on RIO platforms (sbRIO 9606 example)

Hello, I'm facing a real problem when trying to perform continuous data transfer from RT target memory (MPC5125) to external thumb drive (supports usb 2.0 and formatted to FAT32), connected to HS USB port (sbRIO 9606): the maximum repeatable result is 1.7 MBytes/s (tests were performed on packet data transfer with packet sizes from 32B to 65536B, with or without Write buffering and with different delays between each packet transfer). This is too low for such a platform (USB3300 PHY + MPC5125), for eample with USB3300 PHY and CortexM3 MCU (with RTOS on it) I can achieve 6MBytes/s. 

 

1) Can you explain to me where is a narrow neck (I suppose it's VxWorks issues with EHCI support and Mass Storage Class realisation)? 

2) Labview RT File IO Vi's is a simple wrapper on basic VxWorks File IO's or not?

2) Is there any way to increase continuous usb data transfer performance (at least to 4-6 MBytes/s)?

3) Do NI have any plans on this issue solving?

 

Best Regards.

0 Kudos
Message 1 of 6
(5,603 Views)

Crowbar,

 

Sorry to hear you're having trouble with data rates. I'm going to look for some documentation and find some answers to your questions. I will post back as soon as I have more information.

 

-Nick-

Nick C | Software Project Manager - LabVIEW Real-Time | National Instruments
0 Kudos
Message 2 of 6
(5,571 Views)

It will be interesting to investigate this issue in details, cause even packet-polling nature of USB isn't an explanation of such behaviour.

0 Kudos
Message 3 of 6
(5,550 Views)

Hi Crowbar,

 

Would you be able to do a quick test with another USB drive to make sure that that low speeds still occur using the sbRIO? Anything to isolate these speeds being related to software or hardware will be helpful. In addition, could you be more specific on how you are performing these benchmarks?

 

Thanks!

 

Aldo A
Applications Engineer
National Instruments
0 Kudos
Message 4 of 6
(5,541 Views)

I've attached some of my test projects.

Also I have some good news: I bought new 4gb flash drive from Transcend and done some tests again. Previous thumb drives and the new one was formatted to Fat32 with a same sector sizes (1024B and 4096B during 2'nd stage experiments): only new Transcend drive gave a good result and only on experiments when it was formatted with 4096B sector size (It was possible to continously stream 128MB (divided into packets of 1024 or 4096 each) of data with ~5MB/s speed).


The result is interesting. I thought that sbRIO's USB HOST polls a device (thumb drive) at lower rates but Transcend drive test destroys this assumption:

MPC5125PB's USB has 4 bidirectional endpoints, taking into consideration maximum packet size of 512B and max polling rate of 8000Hz for HS USB bulk transfers and 2 out 2 in endpoints we have ~7.8 5MB/s which is near to 5MB/s result.


However other drives failed but they are 100% usb 2.0 compliant

Another questions: why did Transcend drive give good result only on 4096B and up sector formatting (on 1024 ~ 2MB/s on 4096 and up ~ 5+ MB/s)

Download All
0 Kudos
Message 5 of 6
(5,535 Views)

Hi Crowbar,

 

We currently do not have a list of USB 2.0 drives with their tested speeds. Much of the transfer rate of these devices is going to depend on the USB manufacturer's design, implementation of interrupts, and hardware. We've had good performance from ScanDisk and Kingston drives in the past so they might be a good start. In addition, you might want to contact WindRiver (developer of VxWorks) to get more information on tested sector sizes for USB.

 

 

Aldo A
Applications Engineer
National Instruments
0 Kudos
Message 6 of 6
(5,500 Views)