Download User Manual - EAGLE Technology
Transcript
EDR Software Development Kit Acquiring analogue data 4.4.3 Single channel DMA (EDR_SINGLEDMA) Single channel DMA is a very efficient way to sample data. It requires very little work on the part of the processor and supports the maximum transfer rate of the board (even on slow machines). The PC's DMA controller is programmed to transfer data from the card to memory without going through the processor. The transfer can proceed in the background. If you need to transfer less than 32000 samples and your board has DMA use this mode as you first choice for DOS and Windows. DOS: The data buffer must have space for at least twice as many samples as are required. This is necessary to deal with limitations imposed by the DMA controller hardware. DMA transfers cannot cross physical page boundaries. These boundaries occur every 64K or 128K depending on the DMA level. If a page boundary lies within the buffer the transfer has to start at the boundary. Once the transfer has completed the data is copied down to the start of the buffer. This copying process is handled transparently by EDR. Note that the buffer can be in XMS memory. Windows: The data buffer need only be big enough for the number of samples required. EDR uses internal buffers for the transfer if it crosses a page boundary or is not physically contiguous. The data is copied out of the internal buffer as needed. This process is described in more detail in appendix B. Windows NT: Single channel DMA and streaming are handled in exactly the same way. There is essentially no difference between them. A maximum of 32000 samples can be captured in one block using this mode for DOS and Windows. There is no limit under Windows NT. 4.4.4 Dual channel DMA (EDR_DUALDMA) Dual channel DMA uses 2 DMA channels to transfer data continuously from the card to memory. As each channel finishes a block of data, the board automatically starts transferring using the other channel. The first channel can now be reprogrammed to transfer the next block. Thus dual 36