Application of voice processing chip AC48105 in low-speed speech coding equipment

This article refers to the address: http://

Abstract: AC48105 is a dedicated voice processing chip produced by Israel's AudioCodes, which can be used to perform low-bit-rate voice compression coding and decompression and fax functions. The chip contains five independent multiplex channels for voice, fax and data transmission, and a 16-bit DSP core for multiple voice encoding formats. In this paper, the application mode and configuration method of the chip in low-speed speech coding equipment are introduced in detail.

Key words: AC48105; DSP core; working mode; speech compression coding

AC48105 is a dedicated voice processing chip produced by AudioCodes. It has low bit rate voice compression coding, decompression and fax functions. It contains 5 independent channels for transmitting voice, fax and data. . The chip core is a 16-bit DSP, which is solidified with various encoding operation formats provided by the chip itself. This paper will mainly introduce the specific method of AC48105 in the low-speed speech coding device to realize the voice compression and decompression functions by configuring the DSP core.

1 main performance

Speech compression coding is relative to 64 kbps PCM (Pulse Code Modulation) conventional speech coding. In recent years, the research on low bit rate speech coding has made a big leap. At present, there are even speech coding algorithms with a rate of about 1 kbps. The dedicated voice processing chip AC48105 can provide a variety of low bit rate speech encoding formats and services, the specific content is as follows:

● Based on G. 8kbps CS-ACELP speech coding of the 729 (A) protocol;

● Based on G. 6.3/5.3 kbps MP-MLQ speech coding of the 723.1 protocol;

● Based on G. 726/G. 16 to 40 kbps ADPCM and E-ADPCM speech coding of the 727 protocol;

● Based on G. 64 kbps μ-law/A-law PCM speech coding of the 711 protocol;

● NetCoder speech coding of 6.4, 7.2, 8.0, 8.8, 9.6 kbps;

● Based on G. Silence suppression of the 729 (attached B) protocol, including voice activation detection (VAD) and comfort noise generator (CNG);

figure 1

    ● Based on G. VAD and CNG silence suppression for the 723.1 (A) protocol.

The main features of the AC48105 are:

● Automatic voice/fax/data switching is possible;

● Damaged packets are automatically repaired;

●G. 168/G. Adaptive echo suppression of 165;

● Interface with E&M, AB, ABCD;

● has a signal transmission (CAS) function in the channel;

● It can detect and regenerate TIA 464B DTMF signal;

● In-band signal transmission (IBS), including MF R1, R2, SS-4, SS-5, AC15 and call process;

● With programmable audio signal transmission function;

● Control input and output gain;

● On-chip high-speed interface with PCM, can support T1, E1 and Multiple E1 formats;

● has a parallel host processor interface;

● Real-time full-duplex work.

2 chip working mode and command

The core of the AC48105 is a 16-bit DSP that cures multiple encoding operations. Data exchange between the DSP core and the external host can be achieved through eight multiplexed address/data buses. The AC48105 has the following four modes of operation:

(1) Reset and Kernel Down-load Mode;

(2) Program download mode? Program Download Mode?;

(3) Initialization mode? Initiation Mode?;

(4) Run Mode (Idle State and Active State).

The above four modes together constitute the complete operation flow of the chip. Figure 1 is a sequence diagram of its operational mode.

    ● Reset and kernel download mode

On power-up, this mode is enabled and when the reset signal is activated (RESET pin is clamped low), its core code is downloaded to the AC48105.

●Programming download mode

The start of the program download mode needs to meet two conditions at the same time. One is that the host sets the HPIC register in the AC48105 to make the HINT signal high; the second is that the kernel download is successful.

At the end of the programming download, the chip automatically enters the initialization mode.

●Initialization mode and command

When in this mode, the commands issued by the host are valid for the initialization mode of each channel of the chip. The main initialization commands and command formats are listed in Table 1 and Table 2, respectively.

Table 1 main initialization commands

Command name Opcode Value (Opcode Value) Signaling
PCM command 00h irrelevant
Run command 01h irrelevant
Debug command 03h irrelevant
MSIG command 04h irrelevant
Extended Signal command 06h Only when ES=1
Call Progress command 07h Only when ES=1
User-defined audio commands 08h Only when ES=1

Table 2 Initialization Command Format

Frame Title Bit Number
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Syns Header 0 ID (identification number) AAh
Command Header Length OPCode (opcode)
Parameter 1 (parameter 1)
......
Parameter n (parameter n)
Checksum Footer (checksum footer) 0 Sequence Number Checksum

Each command has a sync header AA h. In the command header, the opcode is used to indicate the type of command, and the length field is used to indicate the number of bytes in the command (hexadecimal).

When the host issues the Run command, the chip enters the run mode.

● Operating mode (including idle state and active state)

Once the chip enters this mode, all channels are placed in an idle state, at which point the host begins to set operating parameters for each channel. When a channel is in an idle state, the time slot it occupies is generally not lost.

Unlike the initialization mode, the commands in the run mode are only valid for a single channel.

If there are multiple AC48105 chips in the system, the host must configure each chip in turn. Table 3 lists the command formats for the idle state.

Table 3 Idle State Command Format

Frame Title Bit Number
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Sync Header 00h AAh
Command Header Length OPCode (opcode)
Parameter 1 (parameter 1)
......
Parameter[(Length-4)/2](parameter (Length-4)/2])

After entering the active state from the idle state, the data packet will be transmitted between the AC48105 and the host through the active channel in each frame gap. For voice transmission, the frame gap length is determined by the current speech coding mode and the number of blocks of the packet payload.

3 chip and host interface (HPI)

The HPI (Host Port Interface) is an 8-bit parallel interface that allows the host to access the internal memory of the voice chip through the HPI. Since the core of the voice chip is a 16-bit processor, in order to coordinate the data transfer between the host and the AC48105, HPI automatically converts the data from the on-chip memory from words to two bytes. The two bytes of data are compressed into a word form before the data is written to the on-chip memory. The on-chip memory that HPI can access is 2kB, and the address is 1000H~17FFH. At the same time, the host can also access these addresses through HPI. The allocation of related addresses is listed in Table 4.

Table 4 HPI address allocation

Address range Register/buffer Register contents
1000 Kernel download buffer -
104B Import status register Full packet = 0, empty packet = 1, checksum error = 2
104C Program download block buffer -
166D Storage packet number buffer The range is 0-15
166E Host read packet status buffer Full packet = 0, empty packet = 1
166F Host write packet status buffer Full packet = 0, empty packet = 1
1670-1737 Host write buffer
1738-17FF Host write buffer

In fact, the HPI only needs to access the four registers of the on-chip memory, which are: control register, address register and data register, wherein the data register is divided into two types: address automatic accumulation and address not affected.

4 Application in digital program-controlled switches

4.1 System Introduction

The functions that low-speed speech coding and data exchange equipment can accomplish are mainly to realize 30-way local user calls based on digital exchange; 5 to 14 inter-office voice exchange, voice compression and multiplexing, and speed adjustable at 64k, 128k, 256k, and telephone Conference, full attendant functions, and implementation of computer monitoring. The equipment is modular in design and can be divided into the following modules according to functions: switching and control module, user circuit module, voice compression and multiplexing module, and regulated power supply and interface. The relationship between the various modules is shown in Figure 2.

4.2 How the voice compression module works and workflow

The module uses three AC48105 chips, each chip can be configured into five independent channels, corresponding to five time slots, so that the three chips can process a total of 15 time slot signals, corresponding to 15 relay user information. At the same time, each piece of AC48105 also carries a piece of SRAM, which is used to provide the required space for its internal DSP operation, but the host does not have additional control over the SRAM.

In this system, the host adopts Atmel's AT89C52 single-chip microcomputer, in which P0 port is used as the data/address low 8-bit multiplexing; P2 port is used as the upper 8 bits of the address, the design only uses A8, A9, A13, A14, A15; P1.0, P1.1, and P1.2 of the P1 port are respectively used as reset signals of the three-piece voice compression chip, and P1.3 is used as a read/write multiplexed signal of the compression chip. At the same time, the separate read and write signals of the compression chip are respectively connected to the read and write control ports of the single chip (ie, P3.6 and P3.7 of the P3 port). The MCU can access three voice chips through high-order address decoding. The specific operation is as follows: connect A15, A14 and A13 to 3~8 decoder in FPGA, strobe voice chip B when 000 is strobed voice chip A, 001, At 010, the voice chip C is strobed.

    The coding protocol used is G. 729. In this protocol, 10ms is a speech frame, and each frame contains 80 samples. These 80 samples are not ordinary speech signals, but some CELP mode parameters, including line spectrum pairs, adaptive codebook delay, and pitch delay parity. Sex, fixed codebook indicator, fixed codebook symbol, codebook gain (level 1), codebook gain (level 2), etc. After encoding and transmitting these parameters, they can be used at the decoder end. Restore the parameters of the excitation and synthesis filters. In this way, after power-on, the voice chip starts to load the two software program codes it needs: kernel code and program code. These two files occupy a total of 122k Bytes of space, and an optional Atmel is available. The AT2C010-128k×8 E2PROM memory is used for storage. The access to the E2PROM can be obtained by decoding the A15, A14, and A13 and reading signals from the MCU. It is worth noting that the addressing of the E2PROM by the MCU must be performed sequentially. The two softwares are placed in order from the first address of the E2PROM. When the two softwares are sequentially downloaded to a piece of voice chip, a hardware clear will be generated inside the FPGA. So that the address pointer of the E2PROM points again to the first address for the download of the next piece of voice chip. After the three AC48105s are properly loaded, the microcontroller begins to configure its operating state and then performs a compression/decompression operation. Since only 15 packets of data can be stored in each voice chip, that is, each channel has 3 packets of data, and each packet represents 10 ms of voice frames. Therefore, the MCU needs to poll three voice chips in turn in a sufficiently effective time period. Otherwise, There will be leaks and large data loss. Therefore, the data exchange between the MCU and the three voice chips requires a buffer. In this system, this buffer is completed by the dual-port RAM inside the FPGA. The clock for writing and reading data in the dual-port RAM can be different, which ensures that the data is not affected when writing and reading data.

When the activation command is run in the idle state, the voice chip enters an active state, at which time the voice chip begins to exchange data with the microcontroller. At G. Under the 729 protocol, each packet of data represents 10ms of voice data (called a voice frame), a total of 80Bytes. When the MCU writes the data to be compressed to the voice chip, it needs to add a 16Bytes command header to the frame header of each voice frame. In the middle is the voice data, and the suffix of 0~4Bytes is added at the end. Conversely, when the MCU extracts the decompressed data from the voice chip, the frame header of each speech frame also has a 16 Bytes status header generated by the DSP core of the voice chip, followed by the voice data of the state header, and the end is 0 to 4 Bytes. suffix.

Vehicle GPS Tracker

GPS Personal Tracker Co., Ltd. , http://www.szgpstracker.com

Posted on