Jawad,
I though I’d add a few more comments:
gr-mac
Much of the functionality of pre-cog has been ported to gr-mac, which
works
with “core” features of gnuradio like the new message passing API.
We’ve
also added a burst_tagger block that converts length tags to
tx_sob/tx_eob
tags as Martin suggests.
Of course, for real TDMA you will need to add tx_time tags, in addition
to
adding the tx_sob (doesn’t actually do much IIRC) and tx_eob flags
(makes
the Tx switch off quickly after tx). tx_time tells the USRP exactly when
to
start streaming and the value you assigned here would take into
consideration slots, guard intervals, interface latency, processing
jitter,
etc. The block that adds these tags will also have to track time and
schedule when these tags are added and samples go out.
If you plan to make a TDMA block, perhaps you can contribute that back
to
community through gr-mac. Balint and I were also planning to develop
one,
but I can’t make any specific promises on out timeline. We certainly
welcome and encourage more contributions! You can see my GRCon13
presentation for more information on how tx_eob/time tags work, and how
the
FHSS/TDMA designs worked (could be vastly improved):
http://gnuradio.squarespace.com/storage/grcon13_presentations/grcon13_malsbury_phy_mac_primer.pdf
https://github.com/jmalsbury/gr-mac
https://github.com/balint256/gr-mac
An Alternative Way to do Tags
If you know that your radios will always transmit with the same packet
length, even if those packets are “preamble/fillter” packets with no
useful
data, then you could do the following:
- Each USRP gets two antennas and runs in full duplex, and would be
synchronized in time with PPS or a GPSDO with visibility to the GPS
system
- On the transmit side, the transmit stream would run continuously
- Use offset LO tuning
- Interleave 0-samples with the useful transmitted data to reduce the
null output of the quadrature modulator
This approach isn’t the cleanest and might come with some minor
penalties
like inflexibility, and the presence of a low, unmodulated carrier from
LO
leakage/DC offset. But this would require less knowledge of tags and
custom block development.
GR-Extras and Pre-Cog
Use GNU Radio 3.6 and some older commit from gr-extras, like
4bbb1cf01a8ac35a989bc2468fd0ccd384dede45. This is not recommended as
the
community won’t be able to provide the same level of support as we can
with
3.7.
Best Regards,
John M.
Ettus R.