HP (Hewlett-Packard) 9112 Series Network Card User Manual


 
C/C++ Library
51
5.14 _9112_AD_DMA_Start
u Description
The function will perform A/D conversion N times with DMA data transfer.
It takes place in the background which will not stop until the N-th
conversion has completed or your program execute
_9112_AD_DMA_Stop() function to stop the process.
After executing this function, it is necessary to check the status of the
operation by using the function _9112_AD_DMA_Status(). The function
is performed on single A/D channel when the A/D channel auto-scan is
set as FALSE. If the A/D channel auto-scan is TRUE, the conversion will
be multiple channels by sequence.
The PCI-9112 Bus mastering DMA is different from tradition PC style
DMA. Its description is as following:
Bus Mastering DMA mode of PCI-9112:
PCI bus mastering offers the highest possible speed available on the PCI-
9112. When the function _9112_AD_Set_Mode is set as AD_MODE_2
( Timer Trigger & DMA transfer ) or AD_MODE_5 ( External Trigger &
DMA transfer), it will enable PCI bus master operation. This is
conceptually 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 isn't blocked in 64K max. groups. PCI-
9112 bus mastering works as follows:
1. To set up bus mastering, first do all normal PCI-9112 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-9112 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 physical address of
the start of previously allocated destination memory which will accept A/D
data. This count is the number of bytes (not longwords!) transferred
during the bus master operation and can be a large number up to 64
million (2^26) bytes. Since the PCI-9112 transfers are always longwords,
this is 16 million longwords (2^24) or 32 million A/D samples but use the
bytecount.