5.14 _9112_AD_DMA_Start
uDescription
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 mas tering 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 byte count.
C/C++ Library ∙ 51