V.42
Modem Error Correction TMS320C5000 DSP Code
Description:
this software implements the ITU Error Correction function V.42 for data
transmission by full-duplex telephone modems. V.42 is an HDLC error-protection
protocol termed LAPM, formulated specifically for telephone modems. Data
rates can be asymmetric in each direction.
The LAPM protocol first sends an
initial handshake immediately after the modem data pump handshake is concluded
to determine whether the far-end is V.42-compatible. If not then transmission
falls back to start-stop bit octet formatting. On V.42 establishment,
data is sent in frames of octets with a CRC (cyclic redundancy check)
remainder attached. If on reception the computed CRC does not agree with
that attached then frame re-transmission is requested.
The software can assembled in 2
modes. In REJ mode, the mandatory option under V.42, rejected frames are
resent from the last one accepted which involves some resending of correct
data. In s-SREJ mode, which is optional under V.42 and requires a compatible
far-end, any frames rejected are resent singly. This is more efficient
and leads to a factor or 2 or more gain in throughput under high frame
error rate conditions. However the program size and receive buffer memory
are somewhat increased. In either mode, flow control in the transmit and
in the receive directions can be automatically and separately accomplished
by the rate at which the transmit and receive buffers are accessed.
The software is in the form of
callable subroutines to handle initialisation and to exchange data between
the user interface and the modem data pump interface of the V.42 function.
The user is responsible for interfacing data processed. In the assembler
interface, the code is re-entrant to facilitate multi-channel operation.
Samples can be processed in blocks by making multiple main-routine calls.
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 are available.
Interfaces:
Subroutine calls are provided so the user can both load the transmit octet
buffer and empty the receive octet buffer. At the data pump interface,
further subroutine calls are available to transfer data in transmit and
receive directions in 16-bit blocks. To provide timer information, an
additional subroutine call must be made on a regular-timed basis. At the
control interface, one 16-bit control word is used to sequence operation
and to report on V.42 status.
Processor
Load:
| Mode |
MIPS# |
Data
memory (words) |
Prog
memory (words)# |
| s-SREJ
option |
2.71 |
1.7k |
1.9k |
| REJ
option |
2.71 |
1.3k$ |
1.7k |
-
#figures are for TMS320C54x operation with the assembler interface
- the MIPS figure is for 33.6kb/s full-duplex (the value scales roughly
proportionate to the aggregate data rate of both directions)
- $with reduced receive buffer size
Availability:
NOW - sale is under licence - integration support offered
|