Is DMA something I should use in my PC-board based data acquisition application?
DMA, or Direct Memory Access, is a technique used to increase system throughput on an ISA or EISA computer. DMA gives you the ability to store samples directly into memory without any intervention from the CPU by stealing cycles from the processor. While DMA is in process, the data acquisition board communicates directly with the bus using a special set of hardware handshake signals. DMA is perfect when you are capturing a stream of data, either to memory or to disk. DMA is an excellent technique when you need a gap-free data transfer. DMA is also necessary for providing accurate hardware timing when performing periodic sampling. DMA is not needed if your application involves low-speed sampling and/or control. This is usually the case when making temperature or strain measurements as these physical parameters typically don't change very quickly. Using DMA in your application can be tricky if you have never programmed this mode before and you are writing your own software. However, if you are using a data acquisition software package that supports DMA, then the use of DMA is suggested and generally easy to implement in your application software.
常见问题 ID 70626