06-01-2009 07:20 AM
Hi,
Im trying to find some information on how the real time, FPGA module and host PC communicate between each other. For example do any use DMA? Ive looked through the guides on ni.com but cannot seem to find any information of use, most just give a brief description of the part and instructions for use.
Any help would be much appriciated,
Thanks,
Mark
06-01-2009 08:59 AM
06-01-2009 09:30 AM
Ok, thanks for that.
How does the host PC communicate with the FPGA modules? I thought that they you could use the FPGA modules without the real time, is this correct?
Thanks,
Mark
			
    
	
		
		
		06-01-2009
	
		
		09:42 AM
	
	
	
	
	
	
	
	
	
	
	
	
	
	
 - last edited on 
    
	
		
		
		10-28-2025
	
		
		10:06 AM
	
	
	
	
	
	
	
	
	
	
	
	
	
	
 by 
				
		
		
			Content Cleaner
		
		
		
		
		
		
		
		
	
			
		
Hi Mark,
Be careful of how you word it. There are no FPGA modules; these are called C-Series modules and there is a FPGA target (chip) in the cRIO chassis which communicates with them. Traditionally, these CompactRIO I/O modules have been accessed by programming the FPGA and then, in LabVIEW Real-Time, using the LabVIEW FPGA Interface VIs. But now, there is the CompactRIO Scan Mode which automatically detects your I/O modules and adds them to the LabVIEW Project. You can then drag and drop the I/O variables onto your LabVIEW Real-Time and host VI block diagrams and instantly read and write scaled, calibrated I/O data without any FPGA programming or compiling. You will still need to use LabVIEW Real Time in order to do this.
Unless, you are talking about the R Series FPGA targets which don't need LabVIEW Real Time to program, they only need LabVIEW FPGA.
06-01-2009 09:59 AM
Ok, so when the CompactRIO I/O modules have been accessed by programming the FPGA and using the LabVIEW FPGA Interface VIs, is the real time just used to communicate with the FPGA and hence I/O modules? i.e. no vi's are run on the real time.
Also, how does the FPGA communicate with the modules?
Thanks,
Mark
06-01-2009 07:53 PM
If you are using cRIO, and are doing FPGA programming, then you will be running VIs on the real time platform of the cRIO to communicate with the C-Series Modules.
The FPGA communciates with the ADC of each module to get the raw data values (in binary) and you can send these values to the Real Time VIs using the Read/Write Control or doing a DMA transfer.
			
    
	
		
		
		06-02-2009
	
		
		04:13 AM
	
	
	
	
	
	
	
	
	
	
	
	
	
	
 - last edited on 
    
	
		
		
		10-28-2025
	
		
		10:07 AM
	
	
	
	
	
	
	
	
	
	
	
	
	
	
 by 
				
		
		
			Content Cleaner
		
		
		
		
		
		
		
		
	
			
		
Hi Mark,
Good afternoon and I hope your well today.
I wanted to check if you still had any more questions regarding your question? I can see Adnan (previous AE at UK Support) has been giving you great support thus far.
I would like to add, that if your using LabVIEW 8.6 (or greater) and supported controller/backplane you could consider using Scan Engine which removes the need to program the FPGA. This allows you to directly access the I/O from the C Series modules from the Real Time code. You would then use TCP/IP (or shared variables - based on TCP/IP) to communicate with the windows machine.
Some links which may be of interested to you:
FPGA Design, Development and Programming Tutorial
Using NI CompactRIO Scan Mode with NI LabVIEW Software
Reference Example for Streaming Data from FPGA to cRIO to Windows
http://zone.ni.com/devzone/cda/epd/p/id/5919
*Example code.
**As Adnan said look at the examples in Example Finder (Hardware Input/Output>>cRIO).
Please let us know if you have any more questions,