On 02/25/2018 08:15 PM, Karan Suri via USRP-users wrote:
Hi usrp-users,
I recently started working on a */multilateration/* based localization
scheme to detect a tag USRP (reader). The 100MHz OFDM packets (STF
+LTF + information bits) are*transmitted at 100 MSps to the reader*
via the anchor hub USRP X310.
I am new to handling the time_spec and other features available to
control transmission. I have to transmit a really huge packet
(*>130000 samples ~ 1.3 to 3 ms*) so that the streaming and reception
appears to be continuous for a good duration of time frame for
accurate reader detection.
Few Questions:
Q1 ; What is the maximum buffer size I can set for transmission. Is it
33445667 samples? I found it on the user manual?
Q2 : Is the read buffer on the receive streamer any different form the
transmit buffer in terms of maximum size it can receive before it goes
into overflow , API control etc?
Q3 : I assume ,*I cannot stream a 100 MSps data directly using a 1G
ethernet car*d without potential underflow. So I used tim_spec feature
to transmit after a fixed duration. Within this time the API should be
able to fill the buffer at a slower rate (33MSps if that is the max
capability), and allow smooth transmission without underflow. I am
receive some packets at the reader , but they seem to be truncated, or
abruptly starting or ending.
pseudo code to control transmission at 100MSps using 1G:
metadata.start_of_burst = true;
metadata.end_of_burst = false;
while(not stop_signal_called){
metadata.has_time_spec = false;
metadata.end_of_burst = false;
*g_usrp->set_time_now(uhd::time_spec_t(0.0));
g_time_spec = g_usrp->get_time_now() +
uhd::time_spec_t(0.04);*
metadata.time_spec =g_time_spec;
tx_streamer->send(&buff[0], buff.size(), metadata);
metadata.has_time_spec = false;
metadata.start_of_burst = false;
metadata.end_of_burst = true;
tx_streamer->send("", 0, metadata);
*boost::this_thread::sleep(boost::posix_time::milliseconds(50));*
}
Please do help. It is really a critical part of my research project.
I am limited to using a 1G Ethernet card, and I need to find a work
around to the 100MSps transmission issues.
Thanks
Karan Suri
MS. Electrical and Computers
University Of Michigan- Ann Arbor
Very quick look at your code, and you're never setting "has_time_spec =
true", so everything will "go out" as soon as you send it.
The RX buffers are relatively small, although I don't have numbers of
the top of my head.
But I'll comment that trying to use "tricks" to get around the fact that
you don't have a sample interface that can sustain your peak rate is
likely a bad
path to follow, since things like hardware buffer sizes can change
with different releases of software and firmware, etc.
_______________________________________________
USRP-users mailing list
[email protected]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com