discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Synchronized packet transmission


From: Sangho Oh
Subject: Re: [Discuss-gnuradio] Synchronized packet transmission
Date: Sun, 2 Jan 2011 15:59:53 -0500

Hello Josh,

I have used this command

dev->send(&buff.front(), samps_to_send, md, uhd::io_type_t::COMPLEX_FLOAT32,        uhd::device::SEND_MODE_FULL_BUFF,  seconds_in_future + 0.1);

The reference time for seconds_in_future is not clear to me. When does the timer starts? 
I guess there are large imprecise delay between gnuradio to USRP2 FPGA (gnuradio -> ethernet -> FPGA).  

If I synchronize two USRPs using sync_to_pps(), just wondering how to control the transmit timing from the reference timing stamp, which is reset every second?








On Sun, Jan 2, 2011 at 2:36 PM, Josh Blum <address@hidden> wrote:


On 01/02/2011 10:53 AM, Sangho Oh wrote:
> Hello,
>
> What I am trying to implement is a synchronized packet transmission from
> more than one USPRs.
> I wonder if there is a way to control the transmission timing under a
> microsecond level.
>
> If there is a way to control the transmission timing using external clock
> signal, then it will be really easy. Like making USRPs transmit packets
> triggered by the external clocks. This may request to change of code in the
> firmware.
>
> I have tired to use UHD code to give backoff delays for each
> USRP transmission, but this method is quite not precise and cannot find a
> way to use it for a synchronized transmission.
>
> Any comments will be valuable to me.
> Thanks.
>

With UHD (any USRP more recent than the USRP1 classic), you should be
able to precisely schedule transmit packets to the precision of a clock
cycle. Basically: send a packet with a timestamp that is less than the
time on the device (so that its not late).

You can use a GPSDO to set an absolute time into the USRP device, or you
can use the time found on received packets to schedule transmit packets.
So it all depends on how deal with the time.

I recommend looking at the timed tx example that comes with UHD. I think
to do this, you will need to code directly to the UHD api. To do this in
gnuradio will require tag-aware blocks that use the new gnuradio tagging
API. And we haven't crossed that bridge yet. :-)

-josh


_______________________________________________
Discuss-gnuradio mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



--
From: Sangho Oh
Voice mail: (609) 759-1552


reply via email to

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