Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

writing to harddisk using 6533 resulting in loss of data

i want to transfer data at a rate of 5 MB/sec (slower speed is also OK minimum is 250 khz). But the problem is i am are losing data . I have to transfer around 40 GB of data from external world (some recorder) through the 6533 card . Presently i am using double buffer pattern generation mode of operation in which request is connected to clock. The problem is that there is no handshake i.e the acknowledge is kept open and the data will be coming on the data pin of the card till stop is pressed on the recorder. Can the card have access to PCI bus till stop is pressed (i doubt so because there are other PCI device on the PCI bus). I am using VC++ code for operation, where i have two threads where in one thread i am
reading data and in the other i am writing to the harddisk. I am losing data in this case, so i did another experiment i just stored the data in the RAM and when my buffer in the RAM became full (i made 100 buffer of 32KB) i write the buffered data to harddisk i found there is no error. so how can use two threads so that i can write 40 GB of data. Presently I am working on a PC which has 128MB Ram and 80 GB harddisk windows 98 OS. what is OS 's overhead?. what is data rate possible and which mode to use ?I donot have control signal like stoptrig in the recorder.How to go about?????
0 Kudos
Message 1 of 2
(2,538 Views)
pinku,

First of all I would recommend taking a look at the following tutorial:

Maximizing the Performance of the NI 6534 Digital I/O Device

Available from our support page (ni.com -> Support -> Search for: +6534 +performance). The tutorial has concepts that will apply to the whole 653X line of boards. It also has some benchmarks that will allow you to gauge the expected performance of your application.

For continuous pattern input of more than 64 MB (the buffer limit imposed by Windows) you would have to perform a double-buffered acquisition where you write data to disk as you read it from the card.

Some suggestions:

1) Get the fastest computer you can get. Some specs that would help:

- Enough RAM to handle all applications loaded at the time. Memory paging will halt your acquisition. Excessive RAM would not help you go any faster, it would just help you make sure everything is loaded on physical memory.

- Fast Hard Drive. Newer hard drives get better throughput rates. SCSI would be nice but beware that a PCI SCSI controller would increase traffic through the PCI bus.

- Faster CPU. The CPU speed really helps to make sure the transition from application memory to the hard drive is as fast as possible.

2) Make sure you disable any processes or applications running in the background.

3) Disable any other devices on the PCI bus, including integrated devices. Things like network adapters would create traffic on the PCI bus even if you think you are not accessing the network at the time.

4) Write to the hard drive in blocks of power of 2 size. We have found that this makes the logging process much more efficient. Numbers will vary from system to system but the sweet spot we have seen lies around blocks of 16 KB.

5) Use a 6534. The on-board memory helps by alleviating occasional backlogs due to PCI traffic or CPU used by other applications or services.

Most of the questions you present above will be answered by the tutorial. The other recommendations will help you setup this specific application.

I hope this helps,

Alejandro Asenjo
Applications Engineer
National Instruments
Message 2 of 2
(2,538 Views)