USRP1 Simulatenous Receive and Transmit

Hi everyone,

is it feasible to transmit and receive simultaneously having one USRP1
with
2 daughtercards (2 RFX) (for example in Side A receiving and in Side B
transmitting)? Is there any example in GnuRadio?

Thank you in advance

View this message in context:
http://old.nabble.com/USRP1-Simulatenous-Receive-and-Transmit-tp28678838p28678838.html
Sent from the GnuRadio mailing list archive at Nabble.com.

On 05/26/2010 03:23 AM, Jim V wrote:

Hi everyone,

is it feasible to transmit and receive simultaneously having one USRP1 with
2 daughtercards (2 RFX) (for example in Side A receiving and in Side B
transmitting)? Is there any example in GnuRadio?

Thank you in advance

Yes, this is known as full duplex. You can even do it with a single RFX
card both transmitting and receiving, but it will have somewhat higher
crosstalk than with 2 daughterboards.

Matt

Hi Matt,
Is there any example in current Gnuradio release that implementing full
deplex with one USRP motherboard and two daughterboards?
As i understand, i must call source_c twice to use the two
daughterboards, but this seems impossible. Then how can i use the two
daughterboards in one flowgraph?
Thanks very much!
----- Original Message -----
From: “Matt E.” [email protected]
To: “Jim V” [email protected]
Cc: [email protected]
Sent: Wednesday, May 26, 2010 11:29 PM
Subject: Re: [Discuss-gnuradio] USRP1 Simultaneous Receive and Transmit

Hello,

I am using a USRP2 to transmit signals and I am interested in knowing
if anyone has any idea as to how the buffering is handled as it relates
to the call to u2->tx_16sc…when I call this function it usually
returns within
a couple of microseconds. This is much quicker then the time required
to
actually transmit the data. For example, using an interpolation rate of
16 yields
a transmit time for a buffer of size 371 samples of about 59.3 usec.
Can
someone explain where the data is stored during the xmit. Also, would
someone be able to estimate how long after this call is made does the
first
sample actually get transmitted? I am trying to understand the
variability (in
the USRP2 or if the buffering is done on the PC then on the PC) as it
relates
to transmitting and buffering in general. If the data is stored on the
usrp2, how
much storage is available or how many calls to tx_16sc can I make before
the
buffer is full?

Also, related, if instead I specify the metadata-md to transmit at a
known time
(meta data or md is the last argument to tx_16sc), where is the data
stored
after I make this call and it returns. If on the usrp2, how much
storage is
available?

Any comments greatly appreciated.

Thanks,
Sharif

See how the dual usrp wrapper in grc does it:
grc/grc_gnuradio/usrp/dual_usrp.py

-Josh

On Wed, May 26, 2010 at 05:33:47PM -0400, Sharif S. wrote:

someone explain where the data is stored during the xmit. Also, would
someone be able to estimate how long after this call is made does the first
sample actually get transmitted? I am trying to understand the
variability (in
the USRP2 or if the buffering is done on the PC then on the PC) as
it relates
to transmitting and buffering in general. If the data is stored on
the usrp2, how
much storage is available or how many calls to tx_16sc can I make
before the
buffer is full?

On transmit, there is no buffering in user space. The data is given
immediately to the kernel. The kernel “does what it likes with it” :slight_smile:
In general, it’s safe to assume that the kernel transmits it as
soon as it can, subject to any back pressure being applied from the
USRP2 to the host by ethernet PAUSE frames. There is a very small
amount of buffering on the USRP2, on the order of a couple of frames.

Also, related, if instead I specify the metadata-md to transmit at a
known time (meta data or md is the last argument to tx_16sc), where
is the data stored after I make this call and it returns. If on the
usrp2, how much storage is available?

Nothing changes. The USRP2 FPGA will hold the frame in its queue
until it’s time to transmit. If needed, the USRP2 will generate PAUSE
frames to flow control the host.

Any comments greatly appreciated.

Thanks,
Sharif

Eric