DMA Transferring

DMA Transferring is the fastest data acquisition type of the analog input operation. The data directly flows from the device to the memory without the interference of the CPU. The driver will monitor the progress of the conversion and send a proper event to notify the user of the current conversion status.


DMA Buffer

The calling flow for single channel reading is shown as below:

1. Event Notification (Recommended)

The DRV_EnableEvent function enables the notification event and then start the analog input operation by  DRV_FAIDmaExStart(PCI series). The driver will send a proper event to notify the status of the acquisition progress. DRV_CheckEvent may then be used to check the signaled event and handle the data. The operation may be stopped by the DRV_FAITerminate function at any time.

2. No Event Notification

The DRV_FAIDmaExStart function starts the analog input operation with DMA transferring. The DRV_FAICheck function may be used to check the status of the operation. Meanwhile, the DRV_FAITransfer function may be used to retrieve the data. The operation may be stopped by the DRV_FAITerminate function when the conversion is completed or at any other time. In this type of conversion, event notification of the acquisition status will not be received. The only way to monitor the conversion is to call the DRV_FAICheck to check the status of the acquisition progress.

 

For PCI series card, DRV_FAIDmaExStart can provide both single channel and multiple-channel operation. For such kinds of operation, you should set the acquisition number to a multiple of the number of channels. Under this configuration, the data will be stored in the data serially according to the channel number and the first data in the buffer can always be the first channel's data, which means the data for a specific channel are always stored in a fixed position in the buffer. Then you can trace the data according the channel number easily. Otherwise, for cyclic acquisition, the first data in the circular buffer may not be for the starting channel, so you must trace your data according to the channel number and the acquisition number laboriously.