aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M
AgeCommit message (Collapse)AuthorFilesLines
2016-10-25transceiver: Fix command build warningTom Tsou1-2/+3
Place conditional brackets on handover table reset. Reset table only on successful start or restart. Change-Id: I74032b49785bd68835a0a68cb0f14cdaab4fcd26
2016-10-18uhd: Add missing B200 sample timing for 4 SPS receiveTom Tsou1-1/+2
Only B210 timing was previously set in the timing table. Change-Id: Idc8d1be8201ad086c57dd9b3d6d72d277306cd2b
2016-08-11sigproc: Match differential GMSK start/end bits to tail bitsTom Tsou1-4/+4
Invert the initial and trailing diffential bits in the 4 sps GMSK modulator to fix power-time mask irregularity at start and end of burst. GSM tail bits are always zero, so we can safely use fixed bit values. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-20uhd: Update USRP2/N200/N210 for 4 SPS RxTom Tsou5-48/+47
Requires changing the radioInterface API to pass in Rx side SPS value. Update the (deprecated) diversity configuration to match as well. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-19sigproc: Fix missing 8-PSK tail symbolsTom Tsou1-1/+1
Agilent E4406A measurement of TSC synchronized RF envelope measurement. showed failing power levels at the tail end of EDGE bursts. Regression traced back to following commit. Commit d2b070369dd5341ac42ec091370d8bcd5a8ac5ee "uhd: Correct timing alignment in 8-PSK and GMSK downlink bursts" In the patch, the EDGE burst was delayed one symbol, but erroneously truncated at the tail end causing the failing RF envelope measurement. The missing tail symbol did not appear to affect end-to-end EGPRS tests. This patch corrects the truncation. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-19transceiver: Fix 4 SPS receive TOA valueTom Tsou1-1/+1
The time-of-arrival (TOA) value out of sigProc is specified in symbols or, equivalently, 1 sample per symbol and does not need to be normalized. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-19transceiver: Fix mixed GSMK / 8-PSK transmissionTom Tsou1-1/+1
Input burst construction was declared static causing the first downlink burst from upstream to determine subsequent burst size and modulation. Consequently, fixed sequence EGPRS tests would pass, however, switching between 8-PSK and GMSK bursts would fail with only one modulation type being transmitted. Internally generated test sequences '-r' option were not affected because the bursts are not received through the socket interface. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-17uhd: Add command line option for GPS referenceTom Tsou5-13/+60
Unlike earlier versions of UHD, the current release (3.9.2) does not automatically select on-board GPSDO as the reference source. Modify the command line settings to allow explicit selection of GPS in addition to the external setting. Simultaneous GPS and external reference settingis disallowed. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-12UHD: Initial LimeSDR support.Alexander Chemeris1-1/+24
Only EDGE mode is currently supported. Traditional 1 SPS Rx / 4 SPS Tx mode requires different sampling rates which is not currently working. RF performance is also sub-optimal and requires more tuning.
2016-07-12radioInterface: Fix multi-channel buffer index bugTom Tsou1-1/+1
Discrete RF multi-channel was using hard coded buffer index on the channel iteration for transmit sample conversion. End result was segmentation fault on dual RF channel devices with both channels active (Ettus B210 and UmTRX). Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-08mcbts: Allow out of order channel setupTom Tsou2-6/+9
Previous checks on multi-channel TSC and ARFCN settings would fail if channels were initialized out of order. Namely, if channel 0 was not configured first, osmo-trx would error on the control interface leading osmo-bts to fail. Allow global TSC setting on all channels with added logging notice. Notify if channel frequency is unexpected - which may happen if channels are setup out of order - but do no report as error. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-07transceiver: Remove HANDOVER warningsTom Tsou1-2/+0
These warnings simply echo the socket command arguments with no indication of any unexpected or improper operation. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-01egprs: Enable 8-PSK burst detection when EDGE is enabledTom Tsou3-5/+12
The command line EDGE option will enable 8-PSK burst detection on any slot where a normal burst is expected. The burst search order is 8-PSK first followed by GMSK. EDGE will force 4 SPS sampling on Tx and Rx. Along with twice the search correlation from 8-PSK and GMSK, EDGE will increase CPU utilization. Whether the increase is notable or not is dependent on the particular machine. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-01egprs: Enable 8-PSK length vectors on the Tx interfaceTom Tsou1-3/+11
Allow EGPRS 8-PSK length bit vectors of length 444 (148 * 3) to pass in through the Tx socket interface. Length is the sole factor in determining whether to modulate a bit vector using GMSK or 8-PSK. Tested with 8-PSK training sequences with random payload originating from osmo-bts. Output verified with Agilent E4406A. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-01sigproc: Adjust burst detection threshold criteriaTom Tsou2-7/+26
Reduce the burst detection threshold to pass more bursts to upper layers, but force stricter requirements on the computation itself. For the latter, we now require at least 5 samples (rather than 2) to compute a peak-to-average value. End result is increased burst detection at low SNR conditions with a small increase in false positive bursts when no signal is present. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-01mcbts: Add multi-ARFCN radio supportTom Tsou7-25/+512
Add new radio interface "radioInterfaceMulti" for multi-carrier support. Only USRP B200/B210 devices are supported because of sample rate requirements (3.2 Msps). Only 4 SPS operation Tx/RX is supported. 8-PSK is supported. Other options may be added at a later time Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-01mcbts: Add multi-ARFCN channelizing filtersTom Tsou9-3/+722
Introduce polyphase channelizer (Rx) and synthesis (Tx) filterbanks, which serve as the signal processing backend for multi-carrier GSM. Fast Fourier Transform (FFT) is used internally. FFTW is added as a new build dependency. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-01iface: Add inner ring-buffer implementationTom Tsou12-257/+426
Two buffers, inner and outer, are used in the transceiver implementation. The outer buffer interfaces with the device receive interface to guarantee timestamp aligned and contiguously allocated sample buffers. The inner buffer absorbs vector size differences between GSM bursts (156 or 157 samples) and the resampler interface (typically fixed multiples of 65). Reimplement the inner buffer with a ring buffer that allows fixed size segments on the outer (resampler) portion and variable lengths (GSM side) on the inner side. Compared to the previous stack-like version, this implementation removes unnecessary copying of buffer contents. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-01radioInterface: Convert diversity argument to general typeTom Tsou3-45/+43
Rather than a simple bool type, convert the diversity switch to the device interface specifer: enum InterfaceType { NORMAL, RESAMP_64M, RESAMP_100M, DIVERSITY, }; The more general specifier allows passing in special cases other then selection diversity such as multi-ARFCN support. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-01transceiver: Add Rx samples-per-symbol optionTom Tsou2-21/+21
Previous approach was to enable 4 SPS on the receive path only for EDGE use, which is not a requirement for 4 SPS operation. Make the 4 SPS configuration setting directly settable. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-06-28transceiver: Do not report error on SETTSC when radio is onTom Tsou1-1/+1
OsmoTRX does not support the use of multiple TSC settings per internal TRX instance. There should not be an error to modifiy the TSC value after POWERON. Setting TSC value on TRX channels other then 0 is a NOP operation that should only error if the requested TSC differs from that of TRX channel 0. Reported-by: Max <msuraev@sysmocom.de> Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-06-22transceiver: Add an option to emulate a RACH delay in random filler mode.Alexander Chemeris5-17/+32
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-06-22transceiver: Log channel number in DEBUG output of demoded bursts.Alexander Chemeris2-3/+4
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-06-22radioInterface: Initialize power scale with a meaningful default.Alexander Chemeris1-0/+2
Right now if you forget to send "POWER" control command, osmo-trx will transmitt zeros. This is counter-intuitive and I've spent several hours debugging this "issue". The issue may happen easily, because osmo-bts doesn't send "POWER" command if there is no "power" setting in the configuration file. Given that "POWER" command actually sets attenuation, it's percieved as optional and in absence of it should default to "POWER 0" (no attenuation), which translates to power scale being 1.0. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-06-22uhd: Fix comment.Alexander Chemeris1-1/+1
It's osmo-trx, not OpenBTS anymore. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-06-22radioDevice: GSMRATE macro must have parentheses around its definition.Alexander Chemeris1-1/+1
So we had the following define: #define GSMRATE 1625e3/6 Now, I wanted to use it in the following expression: 3.0/GSMRATE which turns into: 3.0/1625e3/6 while what I really wanted is: 3.0/(1625e3/6) = 3.0/1625e3*6 To avoid this, all macros with calculations must be enclosed in parentheses. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-06-22makefile: Fix build from an external path.Alexander Chemeris2-2/+2
When you build from an external path, compiler can't find convert.h include, because it was specified relative to the current directory. Change this to specify the include dit relative to the Makefile location. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-06-21sigproc: Expand RACH, TSC, and EDGE correlation windowsTom Tsou1-10/+10
Slightly widen the search range to accommodate timing jitter on certain classes of devices. The expanded range minimizes the possibility of missing bursts that arrive too early or too late due to timing error. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-05-03uhd: Set minimum UHD version requirement for E3XXTom Tsou1-3/+31
Create runtime version check for minimum supported UHD driver when using USRP E3XX devices. The minimum version, 3.9.0, matches supported version on current E3XX release images. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-05-03uhd: Make device offset check a private methodTom Tsou1-61/+62
Removes extra arguments and a static call. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-05-03uhd: Set default Tx sampling to 4 spsTom Tsou1-6/+1
The majority of GSM host platforms are capable of operating with the 4x oversampled modulator, which justifies the new default setting. The small number exceptions (e.g. Raspberry Pi) can still use the lower complexity 1 sps modulator with the '-s 1' command line option if required. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-05-03uhd: Update default E3XX settingsTom Tsou1-4/+5
Tune timing values after testing on UHD 003.009.002 for E3XX. Table value for 1 sps was off by 10 samples causing improper operation. Table value for 4 sps was shifted by 1 sample for more accurate timing. Also update E3XX description string detection. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-05-02common: Add mandatory length field to UDP receive callsTom Tsou1-2/+2
Current UDP receive reads up to MAX_UDP_LENGTH bytes into the passed in buffer, which may lead to buffer overflow if the write buffer is of insufficient size. Add mandatory length argument to UDP socket receive calls. Reported-by: Simone Margaritelli <simone@zimperium.com> Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-04-26EDGE: Fix demodulation slicer inputTom Tsou1-1/+1
EDGE 8-PSK soft slicer was receiving input from the output of the downsampler. Equalization and derotation were missing causing the soft symbol output to be invalid. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-04-26uhd: Correct timing alignment in 8-PSK and GMSK downlink burstsTom Tsou2-7/+16
Delay the EDGE downlink bursts by one symbol in order to match GMSK pulse shaping group delay. The difference in group delay arises from the dual pulse filter combination of the GMSK Laurent represenation whereas 8-PSK uses a single pulse linear filter. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-04-26transceiver: Do not pass transceiver state struct to function where it's not ↵Alexander Chemeris2-8/+7
used.
2016-04-26osmo-trx: Output Rx SPS as a part of configuration output.Alexander Chemeris1-0/+1
2016-04-20transceiver: Add an option to generate random Access Bursts.Alexander Chemeris5-1/+48
2016-04-20transceiver: Properly handle MAXDLY.Alexander Chemeris4-11/+24
Previously MAXDLY value was applied to Normal Bursts, which was nice when working with sloppy test equipment like CMD57, but useless for real world usage. At the same time documentation and de facto usage of MAXDLY in OsmoBTS and OpenBTS assumed that it actually applies to Access Bursts (RACH). So this patch changes osmo-rx behavior to apply MAXDLY to RACH bursts and introduces a new command MAXDLYNB for the old behavior.
2016-03-23EDGE: Fix USRP B210 device supportTom Tsou1-0/+1
Commit 871b8782 "EDGE: Add support for UmTRX" disabled B210 support using EDGE. Add B210 explicitly to the timing offset table to avoid this issue. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-22EDGE: Add support for UmTRX.Alexander Chemeris1-24/+14
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-08EDGE: Combine shared GMSK and 8-PSK demodulator sectionsTom Tsou1-22/+35
Timing recovery and single tap channel compensation are identical in both GMSK and EDGE receivers. This is the section ahead of and including the optional 4-1 downsampler. GMSK and EDGE specific sections operate at 1 SPS. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-08EDGE: Add random burst generator filler optionTom Tsou3-6/+18
When EDGE is enabled with the '-e' option, the random burst generator switches from GMSK normal bursts to 8-PSK EDGE bursts. $ ./osmo-trx -e -r 7 Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-08sigproc: Add various GSM burst generatorsTom Tsou3-41/+74
Setup generators for empty, random, and dummy bursts. This moves error prone burst length handling out of the Transceiver and into the signal processing core. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-08sigproc: Always use 625 sample length bursts with 4 SPSTom Tsou1-12/+12
At 4 samples per symbol, we don't need to maintain the 156/157 sample slot structure to account for the GSM 156.25 sample burst length. Set the 4 SPS Laurent modulator to ignore the guard interval setting and always output 625 sample sized bursts. The EDGE 8-PSK modulator already has this behavior. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-08EDGE: Add interfaces to enable EDGE transceiverTom Tsou4-39/+99
Create EDGE slot type in the Transceiver. When EDGE mode is enabled for a particular slot, blind detection will be performed by correlating against EDGE followed by normal bursts if no EDGE burst is found. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-06EDGE: Add 8-PSK modulator and demodulatorTom Tsou4-32/+537
Setup correlator and detection process similar to the GMSK receiver chain. Require 4 SPS sampling on both Rx and Tx paths as 1 SPS sampling adds too much distoration for 8-PSK recovery. Core receiver operations still run at 1 SPS with the exception of fractional delay filtering, which runs at the higher rate. Perform linear equalization to handle the Gaussian pulse induced ISI. The fixed impulse response used for equalizer tap calculation consists of combined EDGE pulse shape filter and effects of the downsampling filter. Note that the non-adaptive equalizer corrects for modulation induced band limiting and does not account for or compensate for fading channel effects. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-06EDGE: Setup variable sampling on receive pathTom Tsou9-74/+144
Allow setting the device to non single SPS sample rates - mainly running at 4 SPS as the signal processing library does not support other rates. Wider bandwith support is required on the receive path to avoid 8-PSK bandlimiting distortion for EDGE. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-06sigproc: Remove normal burst DFE equalizerTom Tsou4-301/+29
DFE equalizer is unused and has been experiencing code rot for multiple years. The effect is a significant amount of baggage being carried in the Transceiver and interfaces. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-06sigproc: Remove dynamic SPS configurationTom Tsou3-67/+52
Samples per symbol used by the transceiver is not configurable through the socket interface once running, so stop pretending like it could be. Initialize all tables and midambles at start. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>