新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 語(yǔ)音處理芯片AC48105在低速語(yǔ)音編碼設(shè)備中的應(yīng)用

語(yǔ)音處理芯片AC48105在低速語(yǔ)音編碼設(shè)備中的應(yīng)用

作者: 時(shí)間:2004-12-11 來(lái)源:網(wǎng)絡(luò) 收藏
摘要:是以色列AudioCodes公司生產(chǎn)的一種專用,可用于完成低比特率的壓縮解壓和傳真等功能。該內(nèi)含5路相互獨(dú)立的復(fù)用信道,可以傳輸、傳真和數(shù)據(jù)信息,帶有的16位DSP內(nèi)核可提供多種語(yǔ)音格式。文中結(jié)合該語(yǔ)音中的,詳細(xì)介紹了其工作模式及配置方法。

關(guān)鍵詞:;DSP內(nèi)核;工作模式;語(yǔ)音壓縮編碼

是AudioCodes公司生產(chǎn)的一種專用語(yǔ)音芯片,它具有低比特率的語(yǔ)音壓縮編碼、解壓和傳真等多種功能,內(nèi)含5路相互獨(dú)立的復(fù)用信道,可以傳輸語(yǔ)音、傳真和數(shù)據(jù)信息。芯片內(nèi)核為16位的DSP,其中固化有芯片本身所提供的各種編碼操作格式。文中將主要介紹AC48105在語(yǔ)音編碼中通過(guò)配置DSP內(nèi)核來(lái)實(shí)現(xiàn)語(yǔ)音壓縮和解壓功能的具體方法。

1 主要性能

語(yǔ)音壓縮編碼是相對(duì)于64kbps的PCM(脈沖編碼調(diào)制)常規(guī)語(yǔ)音編碼而言的。近年來(lái),低比特率語(yǔ)音編碼的研究取得了較大的飛躍,目前甚至出現(xiàn)了速率在1kbps左右的語(yǔ)音編碼算法。而專用語(yǔ)音芯片AC48105能提供多種低比特率的語(yǔ)音編碼格式及服務(wù),具體內(nèi)容如下:

●基于G.729(附A)協(xié)議的8kbps CS-ACELP語(yǔ)音編碼;

●基于G.723.1協(xié)議的6.3/5.3kbps MP-MLQ語(yǔ)音編碼;

●基于G.726/G.727協(xié)議的16~40kbps ADPCM和E-ADPCM語(yǔ)音編碼;

●基于G.711協(xié)議的64kbps μ律/A律PCM語(yǔ)音編碼;

●6.4、7.2、8.0、8.8、9.6kbps的NetCoder語(yǔ)音編碼;

●基于G.729(附B)協(xié)議的靜音抑制,包括語(yǔ)音激活檢測(cè)(VAD)和舒適噪音發(fā)生器(CNG);

圖1

●基于G.723.1(附A)協(xié)議的VAD和CNG靜音抑制。

AC48105的主要特性有:

●可進(jìn)行自動(dòng)語(yǔ)音/傳真/數(shù)據(jù)切換;

●損毀封包自動(dòng)修復(fù);

●G.168/G.165的自適應(yīng)回聲抑制;

●帶有E&M,AB,ABCD的接口;

●具有信道內(nèi)信號(hào)的傳輸(CAS)功能;

●可對(duì)TIA 464B DTMF信號(hào)進(jìn)行檢測(cè)及再生;

●帶內(nèi)信號(hào)傳輸(IBS),包括MF R1,R2,SS-4,SS-5,AC15和呼叫過(guò)程;

●具有可編程音頻信號(hào)傳輸功能;

●可控制輸入、輸出增益;

●片內(nèi)帶有PCM的高速接口,可支持T1,E1和Multiple E1格式;

●具有并行主機(jī)處理器接口;

●可實(shí)時(shí)全雙工工作。

2 芯片工作模式和命令

AC48105的內(nèi)核是16位的DSP,其中固化了多種編碼操作。其DSP內(nèi)核與外部主機(jī)的數(shù)據(jù)交換可通過(guò)8根復(fù)用的地址/數(shù)據(jù)總線來(lái)實(shí)現(xiàn)。AC48105有如下四種工作模式:

(1) 重置和內(nèi)核下載模式(Reset/Kernel Down-load Mode);

(2) 編程下載模式?Program Download Mode?;

(3) 初始化模式?Initiation Mode?;

(4) 運(yùn)行模式(包括閑置狀態(tài)和激活狀態(tài))(Run Mode(Idle State and Active State))。

上述四種模式一起組成了芯片完整的操作流程。圖1是其工作模式序列圖。

●重置和內(nèi)核下載模式

上電時(shí),該模式啟動(dòng),當(dāng)重置信號(hào)被激活(RESET管腳箝制在低電平)時(shí),其內(nèi)核代碼被下載到AC48105中。

●編程下載模式

編程下載模式的啟動(dòng)需同時(shí)滿足兩個(gè)條件,一是主機(jī)設(shè)置AC48105中的HPIC寄存器,使HINT信號(hào)變?yōu)楦唠娖?;二是?nèi)核下載成功。

編程下載結(jié)束時(shí),芯片自動(dòng)進(jìn)入初始化模式。

●初始化模式及命令

處于該模式時(shí),主機(jī)發(fā)出的命令對(duì)芯片每個(gè)通道的初始化模式均有效。其主要的初始化命令及命令格式分別如表1、表2所列。

表1 主要初始化命令

命 令 名 稱操作碼值(Opcode Value)信號(hào)(Signaling)
PCM命令00h不相關(guān)
Run命令01h不相關(guān)
Debug命令03h不相關(guān)
MSIG命令04h不相關(guān)
Extended Signal命令06h僅當(dāng)ES=1
Call Progress命令07h僅當(dāng)ES=1
用戶自定義音頻命令08h僅當(dāng)ES=1

表2 初始化命令格式

Frame Title(幀結(jié)構(gòu))Bit Number(位結(jié)構(gòu))
1514131211109876543210
Syns Header(同步頭)0ID(識(shí)別號(hào))AAh
Command Header(命令頭)Length(長(zhǎng)度)OPCode(操作碼)
Parameter 1(參數(shù)1) 
…… 
Parameter n(參數(shù)n) 
Checksum Footer(校驗(yàn)和頁(yè)腳)0Sequence Number(序列號(hào))Checksum(校驗(yàn)和)

每個(gè)命令都有一個(gè)同步頭AA h。命令頭中,操作碼用來(lái)表示命令的類型,長(zhǎng)度域則用于表明命令的字節(jié)數(shù)(16進(jìn)制)。

當(dāng)主機(jī)發(fā)出Run命令后,芯片就進(jìn)入運(yùn)行模式。

● 運(yùn)行模式(包括閑置狀態(tài)和激活狀態(tài))

芯片一旦進(jìn)入該模式,所有的通道都被置為閑置狀態(tài),此時(shí)主機(jī)便開始為每個(gè)通道設(shè)置運(yùn)行參數(shù)。當(dāng)某通道處在閑置狀態(tài)時(shí),它所占有的時(shí)隙一般不會(huì)丟失。

與初始化模式不同的是,運(yùn)行模式中的命令都只是針對(duì)單個(gè)通道有效。

如果系統(tǒng)中有多個(gè)AC48105芯片,主機(jī)必須依次對(duì)各芯片進(jìn)行配置。表3所列為閑置狀態(tài)的命令格式。

表3 閑置狀態(tài)命令格式

Frame Title(幀結(jié)構(gòu))Bit Number(位結(jié)構(gòu))
1514131211109876543210
Sync Header(同步頭)00hAAh
Command Header(命令頭)Length(長(zhǎng)度)OPCode(操作碼)
Parameter 1(參數(shù)1) 
…… 
Parameter[(Length-4)/2](參數(shù)(Length-4)/2]) 

從閑置狀態(tài)進(jìn)入激活狀態(tài)后,數(shù)據(jù)包將在每個(gè)幀間隙內(nèi)通過(guò)激活通道,在AC48105和主機(jī)之間傳輸。對(duì)于語(yǔ)音傳輸來(lái)說(shuō),幀間隙長(zhǎng)度由現(xiàn)行的語(yǔ)音編碼方式和數(shù)據(jù)包有效載荷的塊數(shù)決定。

3 芯片與主機(jī)接口(HPI)

HPI(Host Port Interface)是一個(gè)8位的并行接口,主機(jī)可以通過(guò)HPI訪問(wèn)語(yǔ)音芯片內(nèi)部的存儲(chǔ)器。由于語(yǔ)音芯片的內(nèi)核是16-bit的處理器,因此,為了協(xié)調(diào)主機(jī)與AC48105之間的數(shù)據(jù)傳送,HPI會(huì)自動(dòng)將來(lái)自片內(nèi)存儲(chǔ)器的數(shù)據(jù)由字轉(zhuǎn)換為兩個(gè)字節(jié)的形式,同樣它也會(huì)在向片內(nèi)存儲(chǔ)器寫入數(shù)據(jù)之前,將兩個(gè)字節(jié)的數(shù)據(jù)壓縮成字的形式。HPI可以訪問(wèn)的片內(nèi)存儲(chǔ)器為2kB,地址為1000H~17FFH,同時(shí)主機(jī)也可以通過(guò)HPI訪問(wèn)這些地址,有關(guān)地址的分配如表4所列。

表4 HPI地址分配

地 址 范 圍寄存器/緩沖區(qū)寄存器內(nèi)容
1000內(nèi)核下載緩沖-
104B導(dǎo)入狀態(tài)寄存器滿包=0,空包=1,校驗(yàn)和錯(cuò)誤=2
104C程序下載塊緩沖區(qū)-
166D存儲(chǔ)包數(shù)量緩沖區(qū)范圍為0-15
166E主機(jī)讀包狀態(tài)緩沖區(qū)滿包=0,空包=1
166F主機(jī)寫包狀態(tài)緩沖區(qū)滿包=0,空包=1
1670-1737主機(jī)寫包緩沖區(qū) 
1738-17FF主機(jī)寫包緩沖區(qū) 

實(shí)際上,HPI只需對(duì)片內(nèi)存儲(chǔ)器的4個(gè)寄存器進(jìn)行訪問(wèn)即可,這四個(gè)寄存器分別是:控制寄存器,地址寄存器和數(shù)據(jù)寄存器,其中數(shù)據(jù)寄存器分為地址自動(dòng)累加和地址不影響兩種。

4 在數(shù)字程控交換機(jī)中的

4.1 系統(tǒng)簡(jiǎn)介

語(yǔ)音編碼和數(shù)據(jù)交換能夠完成的功能主要是實(shí)現(xiàn)基于數(shù)字交換的30路本地用戶通話;5~14路局間語(yǔ)音交換、語(yǔ)音壓縮及復(fù)接、速率在64k、128k、256k可調(diào)、電話會(huì)議、全部話務(wù)員功能以及實(shí)現(xiàn)微機(jī)監(jiān)控等。該設(shè)備全部采用模塊化設(shè)計(jì),按功能可以分為以下幾個(gè)模塊:交換及控制模塊、用戶電路模塊、語(yǔ)音壓縮及復(fù)接模塊和穩(wěn)壓電源及接口部分。各個(gè)模塊之間的關(guān)系如圖2所示。

4.2 語(yǔ)音壓縮模塊的工作原理和工作流程

該模塊使用了3片AC48105芯片,每片芯片可配置成5個(gè)獨(dú)立通道,對(duì)應(yīng)著5個(gè)時(shí)隙,這樣,3片芯片一共可以處理15個(gè)時(shí)隙信號(hào),分別對(duì)應(yīng)15個(gè)中繼用戶信息。同時(shí)每片AC48105還外帶一片SRAM,用于為其內(nèi)部的DSP運(yùn)算提供所需的空間,但主機(jī)對(duì)SRAM不做額外地控制。

本系統(tǒng)中,主機(jī)采用Atmel公司的AT89C52單片機(jī),其中P0口作為數(shù)據(jù)/地址低8位復(fù)用;P2口作為地址的高8位使用,該設(shè)計(jì)只用到了A8、A9、A13、A14、A15;P1口的P1.0、P1.1、P1.2分別用作三片語(yǔ)音壓縮芯片的復(fù)位信號(hào),P1.3作為壓縮芯片的讀/寫復(fù)用信號(hào)。同時(shí),壓縮芯片的分離讀信號(hào)和寫信號(hào)分別接單片機(jī)的讀、寫控制口(即P3口的P3.6和P3.7)。單片機(jī)可通過(guò)高位地址譯碼訪問(wèn)三片語(yǔ)音芯片,具體操作為:在FPGA中將A15、A14和A13接3~8 譯碼器,000時(shí)選通語(yǔ)音芯片A,001時(shí)選通語(yǔ)音芯片B,010時(shí)選通語(yǔ)音芯片C。

采用的編碼協(xié)議為G.729。該協(xié)議中以10ms為一個(gè)語(yǔ)音幀,每幀包含80個(gè)樣本,這80個(gè)樣本已經(jīng)不是普通的語(yǔ)音信號(hào),而是一些CELP模式的參數(shù),包括線譜對(duì)、自適應(yīng)碼本延遲、基音延遲奇偶性、固定碼本指標(biāo)、固定碼本符號(hào)、碼本增益(第1級(jí))、碼本增益(第2級(jí))等,對(duì)這些參數(shù)進(jìn)行編碼并傳輸之后,即可在譯碼器端,用于恢復(fù)激勵(lì)與合成濾波器的參數(shù)。這樣,在加電后,語(yǔ)音芯片開始加載其所需的兩個(gè)軟件程序代碼:內(nèi)核代碼(kernel code)和程序代碼(program code),這兩個(gè)文件共占用122k Bytes的空間,可選一片Atmel的AT28C010-128k8的E2PROM存儲(chǔ)器來(lái)存儲(chǔ),對(duì)E2PROM的訪問(wèn)可通過(guò)A15、A14、A13的譯碼和單片機(jī)的讀信號(hào)來(lái)得到。值得注意的是,單片機(jī)對(duì)E2PROM的尋址必須順序執(zhí)行,兩個(gè)軟件按順序從E2PROM的首地址開始放置,當(dāng)兩個(gè)軟件順序下載到一片語(yǔ)音芯片之后,在FPGA的內(nèi)部將產(chǎn)生一個(gè)硬件清零,從而使E2PROM的地址指針再次指向首地址處,以用于下一片語(yǔ)音芯片的下載。在對(duì)3片AC48105進(jìn)行正確加載后,單片機(jī)開始配置其工作狀態(tài),而后執(zhí)行壓縮/解壓操作。由于每片語(yǔ)音芯片的內(nèi)部只能存放15包數(shù)據(jù),即每路通道有3包數(shù)據(jù),每包代表10ms的語(yǔ)音幀,因此單片機(jī)需要在足夠有效的時(shí)間段里依次輪詢?nèi)Z(yǔ)音芯片,否則就會(huì)出現(xiàn)漏包而造成較大的數(shù)據(jù)流失。所以,單片機(jī)與3片語(yǔ)音芯片的數(shù)據(jù)交換需要一個(gè)緩沖區(qū)。本系統(tǒng)中,這個(gè)緩沖區(qū)由FPGA內(nèi)部的雙口RAM來(lái)完成,雙口RAM寫入與讀出數(shù)據(jù)的時(shí)鐘可以不相同,這樣可保證寫入與讀出數(shù)據(jù)時(shí)相互不受影響。

當(dāng)在閑置態(tài)運(yùn)行激活命令時(shí),語(yǔ)音芯片就進(jìn)入激活態(tài),此時(shí)語(yǔ)音芯片開始和單片機(jī)進(jìn)行數(shù)據(jù)交換。在G.729協(xié)議下,每包數(shù)據(jù)代表10ms的語(yǔ)音數(shù)據(jù)(稱為一個(gè)語(yǔ)音幀),一共80Bytes,當(dāng)單片機(jī)向語(yǔ)音芯片寫入待壓縮數(shù)據(jù)時(shí),需要在每個(gè)語(yǔ)音幀的幀頭加16Bytes的命令頭,中間是語(yǔ)音數(shù)據(jù),末尾還要加上0~4Bytes的后綴。反之,當(dāng)單片機(jī)從語(yǔ)音芯片中取出已解壓的數(shù)據(jù)時(shí),每個(gè)語(yǔ)音幀的幀頭也有由語(yǔ)音芯片的DSP內(nèi)核產(chǎn)生的16Bytes狀態(tài)頭,緊接狀態(tài)頭的是語(yǔ)音數(shù)據(jù),末尾是0~4Bytes的后綴。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉