Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

NI-Device throughput on USB and/or Gigabit Ethernet

I am using NI-Device Plus software to implement support for GPIB, USB (using NI PCI-8215), and Gigabit ethernet (using NI PCI-8232) for our instrument. The large transfers throughput for USB and ethernet is much lower than I expected - about 19 Mbyte/sec on the USB and 8 Mbyte/sec on the Gigabit ethernet. The other side of the link uses NI-VISA software, with an Intel PRO/1000 MT for the Gigabit ethernet, and Intel 82801DB USB controller (on a Dell computer) for USB. Any idea if and how can the throughput be increased? The NI PCI-8215 web page claims that the USB throughput is up to 35.1 Mbyte/sec, how was it achieved?
 
Thanks.
0 Kudos
Message 1 of 7
(5,504 Views)

Freddy,

I am currently trying to track down the parameters that were used for the test that yeilded 35 MB/s.  While I am looking for these, could you provide me with the version of NI-Device that you are using?  I would need to know the version number and if it was the DDK.

Thanks,

Steven T.

0 Kudos
Message 2 of 7
(5,477 Views)

Steven,

I'm using NI-Device Plus 1.5 for Windows (which is supposed to be the latest to my knowledge).

Thanks

Freddy

0 Kudos
Message 3 of 7
(5,470 Views)

Freddy,

Please contact NI-Support for more information.  Please ask the applications engineer you speak with to reference this discussion forum thread as a starting point.  You should also ask them to contact me for more information.

Thanks,
Steven T.

0 Kudos
Message 4 of 7
(5,444 Views)

Hello,
I'm using Visa 4.4, receiving over USB 2.0 from a Cypress 68013A controller, which I'm feeding at 24 MWords/sec (each word is 16 bits). This should yield a theoretical 48 Mbyte/sec transfer rate. I find the actual rate is around 14.7 Mbyte/sec. I am transferring an array of 1 Mbyte, using DMA via an FPGA. The DMA bandwidth is 70 Mbyte/sec. Looking at the Cypress Fifo buffer full output, I see buffer full sequences of:

 

Start transfer: buffer full 260 us, mixed buffer full period: 160 us, full speed transmit: 160us, then buffer full 260 us, mixed buffer full period 160 us, then full speed transmit 160us. This cycle of 580 us continues for the duration of the transmition, regardless of length (which I have varied from 1 Mbyte to 16 Mbyte).

 

At the Visa end, I have a pre-allocated array to put the data in (flow through the Visa USB read vi), and I have tried reading the data in chunks from 64K to to 1 Mbyte. There seems to be a little gain in using bigger chunks, but not much. It is clear that the Visa USB read system is limiting the transfer rate.

 

Is anyone able to explain this, and suggest a work around (we would really like to acheive 30 Mbyte/sec). Other USB devices on the PC are achieving this rate (in particular a USB hard disk).

 

Thanks.

0 Kudos
Message 5 of 7
(5,073 Views)

Bart,

 

Are you using XP or Vista? From what I know, USB communication using VISA is faster on XP than on Vista. A better processor might help as well, although this might not be a viable solution if you are making a generic application.

 

Also, NI-VISA is not really designed for fast USB communication. You are always going to get better performance by making your own USB driver. We never did any benchmarking on speed. The 14.7 MB/s sounds fairly reasonable. I am not aware of any workaround. If anybody here knows any method, feel free to post it.

Regards,

Song Du
Systems Software
National Instruments R&D
0 Kudos
Message 6 of 7
(4,966 Views)

Hello Song Du,

Thanks for your response.  It's XP, and other devices (eg a USB hard disk) manage higher speeds. Ah well. 

If we do figure out how to make it go faster, we will post back. 

 

regards

 

Bart. 

0 Kudos
Message 7 of 7
(4,961 Views)