discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] UHD USRP2 full duplex mystery solved


From: Marc Epard
Subject: Re: [Discuss-gnuradio] UHD USRP2 full duplex mystery solved
Date: Mon, 14 Mar 2011 17:14:18 -0500

Hi Scott,

You'll find uhd_streamer.cpp at <https://public.me.com/mepard>. 

Some things you should know:

* It doesn't use gnu-radio, but uses UHD directly. (We should move to the 
usrp-users list if you want to continue the discussion.)
* It can do two UHD transmits and one receive at the same time.
* It transmits and receives from RAM. It loads the transmit files into RAM 
first, then does simultaneous tx and rx, storing the received data in RAM, and 
finally stores the received data in a file. This makes it immune to disk 
performance issues, but limits the amount of data you can send and receive.
* It can be invoked multiple times simultaneously and uses a lock file to 
arbitrate access to the radios. You'll need to pre-create the lock file as 
described in a comment in the code.
* It can run in standalone, client, or server modes. The client-server scheme 
saves time when doing a bunch of operations in a row by not having to 
reconfigure everything about the radios every time. One instance of the server 
and multiple clients can run at the same time. Access to the server's fifos is 
controlled by the lock file.

All of this is because we do our signal processing offline in normal, 
single-threaaded MATLAB. To keep our hefty Ubuntu box and the USRPs busy, we 
create multiple instance of MATAB each with a list of tx/rx tasks to perform. 
They each use MATLAB's unix() function to invoke uhd_streamer, which serializes 
access to the radios. We tune the number of instances to keep the radios busy, 
but not overflow main memory.

HTH.

-Marc




reply via email to

[Prev in Thread] Current Thread [Next in Thread]