Move Transceiver52/README to UserManual
Change-Id: Ib5a56cfe0c27d027bc0c60abda89e646a80849de
This commit is contained in:
parent
8a784c7145
commit
06d3ba0445
|
@ -33,8 +33,6 @@ rev4dir = $(datadir)/usrp/rev4
|
||||||
dist_rev2_DATA = std_inband.rbf
|
dist_rev2_DATA = std_inband.rbf
|
||||||
dist_rev4_DATA = std_inband.rbf
|
dist_rev4_DATA = std_inband.rbf
|
||||||
|
|
||||||
EXTRA_DIST = README
|
|
||||||
|
|
||||||
noinst_LTLIBRARIES = libtransceiver_common.la
|
noinst_LTLIBRARIES = libtransceiver_common.la
|
||||||
|
|
||||||
COMMON_SOURCES = \
|
COMMON_SOURCES = \
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
The Transceiver
|
|
||||||
|
|
||||||
The transceiver consists of three modules:
|
|
||||||
--- transceiver
|
|
||||||
--- radioInterface
|
|
||||||
--- USRPDevice
|
|
||||||
|
|
||||||
The USRPDevice module is basically a driver that reads/writes
|
|
||||||
packets to a USRP with two RFX900 daughterboards, board
|
|
||||||
A is the Tx chain and board B is the Rx chain.
|
|
||||||
|
|
||||||
The radioInterface module is basically an interface b/w the
|
|
||||||
transceiver and the USRP. It operates the basestation clock
|
|
||||||
based upon the sample count of received USRP samples. Packets
|
|
||||||
from the USRP are queued and segmented into GSM bursts that are
|
|
||||||
passed up to the transceiver; bursts from the transceiver are
|
|
||||||
passed down to the USRP.
|
|
||||||
|
|
||||||
The transceiver basically operates "layer 0" of the GSM stack,
|
|
||||||
performing the modulation, detection, and demodulation of GSM
|
|
||||||
bursts. It communicates with the GSM stack via three UDP sockets,
|
|
||||||
one socket for data, one for control messages, and one socket to
|
|
||||||
pass clocking information. The transceiver contains a priority
|
|
||||||
queue to sort to-be-transmitted bursts, and a filler table to fill
|
|
||||||
in timeslots that do not have bursts in the priority queue. The
|
|
||||||
transceiver tries to stay ahead of the basestation clock, adapting
|
|
||||||
its latency when underruns are reported by the radioInterface/USRP.
|
|
||||||
Received bursts (from the radioInterface) pass through a simple
|
|
||||||
energy detector, a RACH or midamble correlator, and a DFE-based demodulator.
|
|
||||||
|
|
||||||
NOTE: There's a SWLOOPBACK #define statement, where the USRP is replaced
|
|
||||||
with a memory buffer. In this mode, data written to the USRP is actually stored
|
|
||||||
in a buffer, and read commands to the USRP simply pull data from this buffer.
|
|
||||||
This was very useful in early testing, and still may be useful in testing basic
|
|
||||||
Transceiver and radioInterface functionality.
|
|
|
@ -44,3 +44,30 @@ repositories, in https://git.osmocom.org/libusrp/
|
||||||
|
|
||||||
Related code can be found in the _Transceiver52M/device/usrp1/_ directory in
|
Related code can be found in the _Transceiver52M/device/usrp1/_ directory in
|
||||||
_osmo-trx.git_.
|
_osmo-trx.git_.
|
||||||
|
|
||||||
|
The USRPDevice module is basically a driver that reads/writes packets to a USRP
|
||||||
|
with two RFX900 daughterboards, board A is the Tx chain and board B is the Rx
|
||||||
|
chain.
|
||||||
|
|
||||||
|
The `radioInterface` module is basically an interface between the transceiver
|
||||||
|
and the USRP. It operates the basestation clock based upon the sample count of
|
||||||
|
received USRP samples. Packets from the USRP are queued and segmented into GSM
|
||||||
|
bursts that are passed up to the transceiver; bursts from the transceiver are
|
||||||
|
passed down to the USRP.
|
||||||
|
|
||||||
|
The transceiver basically operates "layer 0" of the GSM stack, performing the
|
||||||
|
modulation, detection, and demodulation of GSM bursts. It communicates with the
|
||||||
|
GSM stack via three UDP sockets, one socket for data, one for control messages,
|
||||||
|
and one socket to pass clocking information. The transceiver contains a priority
|
||||||
|
queue to sort to-be-transmitted bursts, and a filler table to fill in timeslots
|
||||||
|
that do not have bursts in the priority queue. The transceiver tries to stay
|
||||||
|
ahead of the basestation clock, adapting its latency when underruns are reported
|
||||||
|
by the radioInterface/USRP. Received bursts (from the radioInterface) pass
|
||||||
|
through a simple energy detector, a RACH or midamble correlator, and a DFE-based
|
||||||
|
demodulator.
|
||||||
|
|
||||||
|
NOTE: There's a `SWLOOPBACK` #define statement, where the USRP is replaced
|
||||||
|
with a memory buffer. In this mode, data written to the USRP is actually stored
|
||||||
|
in a buffer, and read commands to the USRP simply pull data from this buffer.
|
||||||
|
This was very useful in early testing, and still may be useful in testing basic
|
||||||
|
Transceiver and radioInterface functionality.
|
||||||
|
|
Loading…
Reference in New Issue