discuss-gnuradio
[Top][All Lists]
Advanced

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

[Discuss-gnuradio] USRP tx_time tags and late packets


From: Stephen Larew
Subject: [Discuss-gnuradio] USRP tx_time tags and late packets
Date: Tue, 2 May 2017 16:33:08 -0400

I am having trouble with late packets at the USRP.  I am working on a TDD 
system with GNU Radio and x310 radios.  I understand that I should use SOB and 
EOB tags to delimit a packet and add the tx_time tag to control transmission 
time.

Current approach: In the source block, I set the tx_time tag to a point that is 
in the future relative to the host computer’s clock, which was synchronized 
with the USRP at program startup.  The samples flow through the graph and get 
to the usrp_sink block for transmission.  The latency in the flowgraph seems to 
vary enough such that some packets are late (UHD prints ‘L’) while other 
packets are not late.  I have set max_noutput_items when calling 
top_block.run() to try to bound the latency, but with limited improvements.

1. In GNU Radio using stock usrp_sink, is there a method of getting the late 
flag without having to monitor stdout and parse Ls? I recently read on 
USRP-users that the proper way to detect late packets is to look at the 
metadata returned from uhd’s send function. Does the usrp_sink block publish 
this in some way?

2. Any tips for doing *tightly timed* TDD in GNU Radio in general?  For 
example, we are experimenting with a) setting tx_time at the source block 
(requires predicting the flowgraph’s processing delays in order to not be late 
at the USRP) and b) setting tx_time at a custom block just before the usrp_sink 
so that most of the flowgraph processing delays are not a factor when computing 
a tx_time.  What approaches have been taken by others?

3. When or why would supplying a max_noutput_items to top_block.run() not be 
passed on to or respected by blocks in a flow graph?  My colleague observed 
that noutput_items given to work() was greater than what was given to 
top_block.run().  Do tagged stream blocks change the scheduler behavior w.r.t 
max_noutput_items?

-Stephen


reply via email to

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