14 _7300_di_dma_start, Description – ADLINK PCI-7300A User Manual

Page 85

Advertising
background image

C/C++ Libraries

73

5.14 _7300_DI_DMA_Start

@ Description

The function will perform digital input by DMA data transfer.

It will take place in the background which will not stop until the N-th
input data is transferred or your program execute the
_7300_DI_DMA_Abort function to stop the process.

After executing this function, it is necessary to check the status of
the operation by using the function _7300_DI_DMA_Status. The
PCI-7300A Bus mastering DMA is different from traditional PC
style DMA. Its description is as follows:

Bus Mastering DMA mode of PCI-7300A:

PCI bus mastering offers the highest possible speed available
on the PCI-7300A. When the function _7300_DI_DMA_Start is
executed, it will enable PCI bus master operation. This is con-
ceptually similar to DMA (Direct Memory Access) transfers in a
PC but is really PCI bus mastering. It does not use an 8237-
style DMA controller in the host computer and therefore it is not
blocked in 64K maximal groups. PCI-7300A bus mastering
works as follows:

1. To set up bus mastering, first do all normal PCI-7300A

initialization necessary to control the board in status
mode. This includes testing for the presence of the PCI
BIOS, determining the base addresses, slot number,
vendor and device ID's, I/O or memory, space allocation,
etc. Please make sure your PCI-7300A is plug in a bus
master slot, otherwise this function will not be workable.

2. Load the PCI controller with the count and 32-bit physi-

cal address of the start of previously allocated destina-
tion memory which will accept data. This count is the
number of bytes (not longwords!) transferred during the
bus master operation and can be a large number up to 8
million (2^23) bytes. Since the PCI-7300A transfers are
always longwords, this is 2 million longwords (2^21).

3. After the input sampling is started, the input data is

stored in the FIFO of PCI controller. Each bus mastering

Advertising