High-Speed Digitizers

cancel
Showing results for 
Search instead for 
Did you mean: 

Fastest way to stream data from multiple PXI-5152 digitizers

I am using two PXI-5152 cards and capturing 251 records at 250 MSamples/s with 3500 pts over 150 ms for a total of 4.4 MB/channel. I want to transfer the data from all 4 channels as quickly as possible and begin the process as soon as records start coming in. Right now I do it in a sequence of card 1 then card 2 using multfetch binary I8 with fetch # of records parameter set to -1 fore the first card. I transfer channels 0,1 as one block of data from each card. I see data transfer bursts of about 70 MB/s and it does appear that Card 1 is moving some data as it comes in because when I benchmark the times, data bandwidths are too high (> 100 MB)  if the 150 ms is assumed to lapse before data is transfered. [I gather 100 MB/s is max that chasis bridge can sustain]

 

I am using a PXI-1042 crate, PXI-8360 and PCIe-8361 bridge and I gather 100 MB/s is maximum possible throughput.

 

Questions are:

 

1. Are NI scope drivers optimized to stream records during acquistion when using the -1 fetch # records setting?

 

2. Can multiple cards stream in this fashion or should one card finish transfer before transferring from the second? In other words, can the cards share the bus efficiently.

 

3. What bandwidth for throughput is expected based on normal overhead?

 

4. What is the best strategy to squeeze out the maximum data throughput.

 

the reason this is an issue is that I want to repeat the overall transfer process for a real time imaging app and want to move as much data as possibel during the 150 ms that it is acquired. I have not tried defining specific record block transfers because my initial tests did not seem very promising.

0 Kudos
Message 1 of 2
(5,757 Views)

Hey 27bender,

 

It does appear that the bottleneck in this situation is the bus which PCI is about 100-110MB/s. 

 

After you finish your 150ms of acquisition is there a wait period or do you start immediately acquiring again?

 

The -1 for Fetch # Records means that it will take in everything that is available off the buffer.  And as it can only take in whole records, it will start transferring after the first record becomes available (pending the scheduler).  The best example for this is in the NI-Scope driver documentation under examples, namely niScope EX Stream to Disk.vi. 

 

Another option, if you have the opportunity is to switch to a PXIe system that utilizes the PCI-Express bus.

 

You may also want to take a look at the Developer Zone example: NI-SCOPE Stream to Disk Using Win32 File IO

Regards,
Jake G.
National Instruments
Applications Engineer
0 Kudos
Message 2 of 2
(5,743 Views)