Update README to reflect project status

This commit is contained in:
Harald Welte 2011-01-22 12:43:17 +01:00
parent 7b423e9989
commit 6c73dad43d

86
README
View file

@ -1,9 +1,9 @@
TETRA MAC/PHY layer experimentation code TETRA MAC/PHY layer experimentation code
(C) 2010 by Harald Welte <laforge@gnumonks.org> (C) 2010-2011 by Harald Welte <laforge@gnumonks.org>
====================================================================== ======================================================================
This code aims to implement the (so far) sending and (in the future) This code aims to implement the sending and receiving part of the
receiving part of the TETRA MAC/PHY layer. TETRA MAC/PHY layer.
If you read the ETSI EN 300 392-2 (TETRA V+D Air Interface), you will If you read the ETSI EN 300 392-2 (TETRA V+D Air Interface), you will
find this code implementing the parts between the MAC-blocks (called find this code implementing the parts between the MAC-blocks (called
@ -12,23 +12,58 @@ type-1 bits) and the bits that go to the DQPSK-modulator (type-5 bits).
It is most useful to look at Figure 8.5, 8.6, 9.3 and 19.12 in conjunction It is most useful to look at Figure 8.5, 8.6, 9.3 and 19.12 in conjunction
with this program. with this program.
You will need libosmocore (http://bb.osmocom.org/trac/wiki/libosmocore) to link.
== Demodulator ==
src/demod/python/cpsk.py
* contains a gnuradio based pi4/DQPSK demodulator, courtesy of KA1RBI
src/demod/python/tetra-demod.py
* call demodulator on a 'cfile' containing complex baseband samples
src/demod/python/usrp1-tetra_demod.py
* use demodulator in realtime with a USRP1 SDR
src/demod/python/usrp2-tetra_demod.py
* use demodulator in realtime with a USRP2 SDR
The output of the demodulator is a file containing one float value for each symbol,
containing the phase shift (in units of pi/4) relative to the previous symbol.
You can use the "float_to_bits" program to convert the float values to unpacked
bits, i.e. 1-bit-per-byte
== PHY/MAC layer ==
=== library code ===
Specifically, it implements: Specifically, it implements:
lib_crc.[ch] lower_mac/crc_simple.[ch]
* CRC16-CCITT (currently defunct/broken as we need it for * CRC16-CCITT (currently defunct/broken as we need it for
non-octet-aligned bitfields) non-octet-aligned bitfields)
tetra_rm3014.[ch] lower_mac/tetra_conv_enc.[ch]
* (30, 14) Reed-Muller code for the ACCH (broadcast block of * 16-state Rate-Compatible Punctured Convolutional (RCPC) coder
each downlink burst) lower_mac/tetra_interleave.[ch]
tetra_conv_enc.[ch] * Block interleaving (over a single block only)
* 16-state Rate-Compatible Punctured Convolutional (RCPC) coder lower_mac/tetra_rm3014.[ch]
tetra_interleave.[ch] * (30, 14) Reed-Muller code for the ACCH (broadcast block of
* Block interleaving (over a single block only) each downlink burst)
tetra_scramb.[ch] lower_mac/tetra_scramb.[ch]
* Scrambling * Scrambling
tetra_burst.[ch] lower_mac/viterbi*.[ch]
* Routines to encode continuous normal and sync bursts * Convolutional decoder for signalling and voice channels
testpdu.[ch] phy/tetra_burst.[ch]
* Routines to build some example SYNC-PDU and SYSINFO-PDU * Routines to encode continuous normal and sync bursts
phy/tetra_burst_sync.[ch]
=== Receiver Program ===
The main receiver program 'tetra-rx' expects an input file containing a
stream of unpacked bits, i.e. 1-bit-per-byte.
=== Transmitter Program ===
The main program conv_enc_test.c generates a single continuous downlinc sync The main program conv_enc_test.c generates a single continuous downlinc sync
burst (SB), contining: burst (SB), contining:
@ -38,13 +73,14 @@ burst (SB), contining:
Scrambling is set to 0 (no scrambling) for all elements of the burst. Scrambling is set to 0 (no scrambling) for all elements of the burst.
You will need libosmocore (http://bb.osmocom.org/trac/wiki/libosmocore) to link. It does not actually modulate and/or transmit yet.
== Quick example ==
USAGE: # assuming you have generated a file samples.cfile at a sample rate of
# 195.312kHz (100MHz/512 == USRP2 at decimation 512)
src/float_to_bits data/dqpsk-float.dat data/out.bits src/demod/python/tetra-demod.py -i /tmp/samples.cfile -o /tmp/out.float -s 195312 -c 0
src/float_to_bits /tmp/out.float /tmp/out.bits
src/burst_test data/out.bits src/tetra-rx /tmp/out.bits