LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Image transfer from FPGA to RT

Hi,

 

I would like to ask for some help regarding Vision on FPGA. I am using Labview 2015. I would like to transfer a processed image from FPGA to RT on a myRIO 1900. There is a VI available 'FPGA Pixel Bus to FIFO'. I receive an error 'FPGA Write node is missing' when compiling. This sounds reasonable, however implementing a write node would ask for data to write, which would be the task of the above Pixel bus to FIFO block. Do I need to add any other blocks, or configure something differently?

 

Thanks a lot in advance

 

 

0 Kudos
Message 1 of 5
(2,267 Views)

Hello

 

DMA FIFO is the way to transfer images between FPGA and RT. This thread might help.

I am surprised to see the usage of image transfer between RT and FPGA in myRIO-1900. Can you elaborate if possible why it is necessary?

Hope this helps.

 

-Rahul

Hit KUDOS for Thanks

 

0 Kudos
Message 2 of 5
(2,196 Views)

Hi,

 

Yes, sure: I am building a small system which is able to detect colors, based on camera image connected to the myRIO. Beyond the detection itself, I would like to also save data, execute basic diagnosis functionality and maybe some informative communication wireless between myRIO and a host PC (via TCP/IP protocol or so).

However, built in IMAQ Vision functionalities running on purely the RT processor result in too low frequency (2Hz instead of desired 20Hz, but at least higher). Simplification, resolution decrease and such refactoring may result better runtime, but utilising FPGA resources would be the best (and most elegant... 🙂 ). Hopefully I answered your question.

On the other hand unfortunately I could find no specific examples how to use image transfer FIFO-s (part of IMAQdx - FPGA pallette). Are there any available?

 

Thanks in advance!

0 Kudos
Message 3 of 5
(2,187 Views)

Hello

 

Yea, image processing in RT (myRIO) is slow as well. How about converting the image to a 2D array, reshape it to a 1D array and send/receive using FIFO. I haven't tried this, so I don't know if it works. Refer here . 

Since you are using a host, how about using the host for image processing ? You can use Shared variables and Network Stream to share the data. Just a thought.

 

-Rahul

Hit KUDOS for Thanks

0 Kudos
Message 4 of 5
(2,179 Views)

Hi Rahul, 

 

Thanks for your answer. Yes, that would be my next idea as well to use arrays. However, as far as I know, image transfer vis also use FIFOs, which I assume would be the most straightforward way.

Unfortunately due to regulations and the fact that the communication between the host and the target is not fast enough, that would not work.

 

Cheers 

Gergo

0 Kudos
Message 5 of 5
(2,176 Views)