Bell
103 Modem DSP C Code
Description:
implements the data pump function of the Bell 103 modem. This provides
full-duplex data transmission at rates of up to 300b/s over the telephone
network. Duplex channel separation is achieved by band splitting.
The C code is suitable for any
processor with an ANSI-compliant C compiler. It is designed especially
for efficient operation on low-cost fixed-point DSP- and general-purpose
micro-processors. All data memory is specified as 16-bit integer words.
Multiplies are integer 16x16-bit with 32-bit products.
The code is operated by one callable
subroutine for initialisation and one for main-routine processing of input/output
samples and data. The user is responsible for interfacing samples and
data to hardware. The code is re-entrant to facilitate multi-channel operation.
A comprehensive user's guide is provided with the code, together with
example application files. Test results are available.
Interfaces:
at the sample interface, the code can operate at 8.0kHz and 9.6kHz sample
rates, tx and rx sample transfer being simultaneous. At the data interface,
operation can be in either Asynchronous or Synchronous mode. In Asynchronous
mode, data is transferred with start & stop bits auto-inserted/-deleted.
In Synchronous mode, data is transferred transparently, with the receiver
performing clock recovery on bit transitions. In both cases, the data
can be passed in multiple-bit blocks, the nominal bit clock being 300Hz.
At the control interface, the code has one 16-bit control word to sequence
operation and to set operating parameters such as data size, and one diagnostic
word to convey data transfer status such as ready-to-send and line-signal-detected.
Performance:
Processor
Load:
Sample
rate |
MIPS# |
Data
memory (words) |
Prog
memory (bytes)# |
8.0kHz |
4.5 |
43 |
1.5k |
9.6kHz |
5.4 |
-
#example figures from compiling for the TI TMS320C5000(C55x) DSP processor
Availability:
NOW - sale is under licence - integration support offered
|