HP (Hewlett-Packard) 9112 Series ユーザーズマニュアル

ページ / 83
 
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 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 
bytecount.