Modem TMS320C5000 DSP Code
implements the ITU Data Modem function V.34, so offering full- and half-duplex
data transmission at rates of Nx2.4kb/s from 33.6kb/s to 2.4kb/s over
the analog telephone network.
To achieve such rates, the software
adapts the signal bandwidth for each connection by selecting the best
symbol rate / carrier frequency combination in individual directions via
channel sounding. The data rate can be matched to line conditions in each
direction. As conditions change during transmission, the data rates can
be renegotiated. Optimal error performance is assured by the use of 4D
trellis coding, equalisation by flexible pre-coding and pre-emphasis,
shell mapping and signal "warping".
Full-duplex channel separation
is achieved by echo-cancelling. In half-duplex transmission, eg for V.34
fax, an additional function is a separate full-duplex control channel
with rates of 1.2 or 2.4kb/s for signalling purposes. The software includes
rate conversion at the sample interface for the different V.34 symbol
The assembler software is in the
form of callable subroutines, eg for initialisation and for processing
of input/output sample blocks and data. The user is responsible for interfacing
samples and data to hardware. In the assembler interface, the code is
re-entrant to facilitate multi-channel operation. A C-callable wrapper
can also be provided, allowing individual channels to be called from C
to process multiple sample blocks. A comprehensive user's guide together
with example application files are provided with the code. Test results
at the sample interface, the code can operate at 8.0kHz and 9.6kHz sample
rates. Transmit and receive samples are transferred on a common clock,
to which the transmit clock is synchronised. The receive clock is interpolated
in the DSP code for synchronisation to the far-end modem. At the data
interface, data is transferred in buffers under pointer control.
At the control interface,
the assembler code has three 16-bit control word to sequence operation
and to set operating parameters, and two diagnostic words to convey data
transfer status and signal quality. With the C wrapper, control and diagnostics
are provided by routine call arguments and returned values.
the software algorithms have been carefully designed for excellent performance
under noisy or poor line conditions. Over flat channels, near matched-filter
performance is obtained. Over the very severe "ConUS Poor Voice"
channel in the TAS Telephone Network Emulator 30dB attenuation
across the 3kHz band the modem code still operates at up to 16.8kb/s.
SNR for 10-6 Error Rate (flat channel, 4kHz BW noise):
17dB - 14.4kb/s; 25.5dB - 24kb/s; 34dB - 33.6kb/s
13.9k (includes V.8)
are for optimum performance on a TMS320C54x DSP with the assembler interface.
They apply to both 8.0kHz and 9.6kHz sample rates. Complexity is selectable
and, at a small cost in SNR performance, usage can be reduced by: 3.6MIPS,
0.8kwords data memory, and 0.4kwords program memory. The data memory allocation
span for far-end echo cancellation of 1.2secs round-trip delay (RTD) is
NOW - sale is under licence - integration support offered