AN2113 Freescale Semiconductor / Motorola, AN2113 Datasheet - Page 18

no-image

AN2113

Manufacturer Part Number
AN2113
Description
AN2113 Multichannel Voice Coding System on the RTXC Operating System
Manufacturer
Freescale Semiconductor / Motorola
Datasheet
Software Description
18
7.3.2 Wrappers
7.4 User Interface
Voice coding software purchased from a third-party developer includes the software to implement a given
telecommunications standard on a specific DSP device. This software does not handle data input/output or
other system issues for a given application. Also, each software module is generally developed to handle a
single voice channel. Since most infrastructure applications handle multiple channels of voice processing,
the voice coder software must be invoked multiple times, once for each channel of voice processing. To
address these issues, wrappers are used to integrate the voice coder software into a system. The wrapper
handles several tasks:
1. Sets up any initialization for data storage and pointers required by the voice coder. Generally, voice
2. Handles data input and output to the vocoder modules.
3. Calls the voice coding routine when everything is ready to process.
SASL provides an Interface Control Document (ICD) with the voice coding libraries. This document
describes which parameters must be passed to the voice coder, registers to contain the parameters, and the
form the parameters may need to take before the voice coder gets them. For IS-96-A, the parameter
passing is straightforward. Before the encoder initialization routine is called, the pointer to encode data in
X memory is placed into r3, and the pointer to encode data in Y memory is placed into r4. The encoder
takes a block of 160 input samples and converts it into the IS-96-A packets for transmission. r1 points to
the input buffer of 160 samples; r2 points to the output buffer. The r3 and r4 registers remain pointing to
the static memory required by the encoder. Also, x0 holds the minimum rate allowed by the voice coder,
and y0 holds the maximum rate allowed. Generally, the maximum rate is 8 kbps (y0=4) and the minimum
rate is 0.8 kbps (x0=1). The encoder is called using a jump to subroutine instruction to a routine specified
in the ICD.
For decoding, the parameter passing is similar. The r3 and r4 registers now point to the static memory for
the decoder. r1 points to the input buffer and r2 points to the decoder output buffer. The decoder has a
postfilter option, which is enabled by placing the value 1 in the y1 register.
As noted earlier, each audio channel is processed in one of four user-selected modes: Off, Pass, Delay, and
IS96a. If the channel is Off, the output does not change. In Pass mode, each input is simply sent to the
ESSI output buffer for transmission. In Delay mode, the data is first buffered into a frame of 160 inputs;
when this input frame is filled it is simply copied to the 160-element output frame buffer for later
transmission. Finally, in IS96a mode, the operation is similar to Delay mode except that the data from
input to output frame buffers it is encoded (compressed) rather than copied and immediately decoded
(decompressed) by the IS96a voice coder.
The user interfaces with the target DSP56307EVM using a command-line interface (CLI) from a dumb
terminal (hyperterminal) on a host computer (see Figure 13). The SCI peripheral on the DSP56307
connects to the COM port of the host computer via an RSR232 serial cable. Thus, you configure the
individual channels by typing characters that are decoded by the application’s CLI task.
coder software is accompanied by documentation describing the information it requires to operate
properly (see Section 2.2). The wrapper sets up this information as needed before the voice coder is
invoked.
Freescale Semiconductor, Inc.
For More Information On This Product,
Multichannel Voice Coding System
Go to: www.freescale.com

Related parts for AN2113