NI cDAQ-9172 User Guide and Specifications 30 ni.com
Buffered Digital Waveform GenerationA buffer is a temporary storage in computer memory for generated
samples. In a buffered generation, data is moved from a host buffer to
the NI cDAQ-9172 onboard FIFO before it is written to the C Series I/O
modules. Buffered generations typically allow for much faster transfer
rates than nonbuffered generations because data is moved in large blocks,
rather than one point at a time. The DO sample clock causes all lines in the
task to update at the same time.
One property of buffered I/O operations is the sample mode. The sample
mode can be either finite or continuous.
Finite sample mode generation refers to the generation of a specific,
predetermined number of data samples. Once the specified number of
samples has been written out, the generation stops.
Continuous generation refers to the generation of an unspecified number of
samples. Instead of generating a set number of data samples and stopping,
a continuous generation continues until you stop the operation. There are
several different methods of continuous generation that control what data
is written. These methods are regeneration, onboard regeneration, and
non-regeneration modes.
In regeneration mode, you define a buffer in host memory. The data from
the buffer is continually downloaded to the FIFO to be written out. New
data can be written to the host buffer at any time without disrupting the
output.
With onboard regeneration, the entire buffer is downloaded to the FIFO and
regenerated from there. After the data is downloaded, new data cannot be
written to the FIFO. To use onboard regeneration, the entire buffer must fit
within the FIFO size. The advantage of using on board regeneration is that
it does not require communication with the main host memory once the
operation is started, thereby preventing any problems that may occur due to
excessive bus traffic or operating system latency.
With non-regeneration, old data is not repeated. New data must be
continually written to the buffer. If the program does not write new data
to the buffer at a fast enough rate to keep up with the generation, the buffer
underflows and causes an error.