語(yǔ)音處理芯片AC48105在低速語(yǔ)音編碼設備中的應用
關(guān)鍵詞:AC48105;DSP內核;工作模式;語(yǔ)音壓縮編碼
AC48105是AudioCodes公司生產(chǎn)的一種專(zhuān)用語(yǔ)音處理芯片,它具有低比特率的語(yǔ)音壓縮編碼、解壓和傳真等多種功能,內含5路相互獨立的復用信道,可以傳輸語(yǔ)音、傳真和數據信息。芯片內核為16位的DSP,其中固化有芯片本身所提供的各種編碼操作格式。文中將主要介紹AC48105在低速語(yǔ)音編碼設備中通過(guò)配置DSP內核來(lái)實(shí)現語(yǔ)音壓縮和解壓功能的具體方法。
1 主要性能
語(yǔ)音壓縮編碼是相對于64kbps的PCM(脈沖編碼調制)常規語(yǔ)音編碼而言的。近年來(lái),低比特率語(yǔ)音編碼的研究取得了較大的飛躍,目前甚至出現了速率在1kbps左右的語(yǔ)音編碼算法。而專(zhuān)用語(yǔ)音處理芯片AC48105能提供多種低比特率的語(yǔ)音編碼格式及服務(wù),具體內容如下:
●基于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ǔ)音激活檢測(VAD)和舒適噪音發(fā)生器(CNG);
圖1
●基于G.723.1(附A)協(xié)議的VAD和CNG靜音抑制。
AC48105的主要特性有:
●可進(jìn)行自動(dòng)語(yǔ)音/傳真/數據切換;
●損毀封包自動(dòng)修復;
●G.168/G.165的自適應回聲抑制;
●帶有E&M,AB,ABCD的接口;
●具有信道內信號的傳輸(CAS)功能;
●可對TIA 464B DTMF信號進(jìn)行檢測及再生;
●帶內信號傳輸(IBS),包括MF R1,R2,SS-4,SS-5,AC15和呼叫過(guò)程;
●具有可編程音頻信號傳輸功能;
●可控制輸入、輸出增益;
●片內帶有PCM的高速接口,可支持T1,E1和Multiple E1格式;
●具有并行主機處理器接口;
●可實(shí)時(shí)全雙工工作。
2 芯片工作模式和命令
AC48105的內核是16位的DSP,其中固化了多種編碼操作。其DSP內核與外部主機的數據交換可通過(guò)8根復用的地址/數據總線(xiàn)來(lái)實(shí)現。AC48105有如下四種工作模式:
(1) 重置和內核下載模式(Reset/Kernel Down-load Mode);
(2) 編程下載模式?Program Download Mode?;
(3) 初始化模式?Initiation Mode?;
(4) 運行模式(包括閑置狀態(tài)和激活狀態(tài))(Run Mode(Idle State and Active State))。
上述四種模式一起組成了芯片完整的操作流程。圖1是其工作模式序列圖。
上電時(shí),該模式啟動(dòng),當重置信號被激活(RESET管腳箝制在低電平)時(shí),其內核代碼被下載到AC48105中。
●編程下載模式
編程下載模式的啟動(dòng)需同時(shí)滿(mǎn)足兩個(gè)條件,一是主機設置AC48105中的HPIC寄存器,使HINT信號變?yōu)楦唠娖?;二是內核下載成功。
編程下載結束時(shí),芯片自動(dòng)進(jìn)入初始化模式。
●初始化模式及命令
處于該模式時(shí),主機發(fā)出的命令對芯片每個(gè)通道的初始化模式均有效。其主要的初始化命令及命令格式分別如表1、表2所列。
表1 主要初始化命令
命 令 名 稱(chēng) | 操作碼值(Opcode Value) | 信號(Signaling) |
PCM命令 | 00h | 不相關(guān) |
Run命令 | 01h | 不相關(guān) |
Debug命令 | 03h | 不相關(guān) |
MSIG命令 | 04h | 不相關(guān) |
Extended Signal命令 | 06h | 僅當ES=1 |
Call Progress命令 | 07h | 僅當ES=1 |
用戶(hù)自定義音頻命令 | 08h | 僅當ES=1 |
表2 初始化命令格式
Frame Title(幀結構) | Bit Number(位結構) | |||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
Syns Header(同步頭) | 0 | ID(識別號) | AAh | |||||||||||||
Command Header(命令頭) | Length(長(cháng)度) | OPCode(操作碼) | ||||||||||||||
Parameter 1(參數1) | ||||||||||||||||
…… | ||||||||||||||||
Parameter n(參數n) | ||||||||||||||||
Checksum Footer(校驗和頁(yè)腳) | 0 | Sequence Number(序列號) | Checksum(校驗和) |
每個(gè)命令都有一個(gè)同步頭AA h。命令頭中,操作碼用來(lái)表示命令的類(lèi)型,長(cháng)度域則用于表明命令的字節數(16進(jìn)制)。
當主機發(fā)出Run命令后,芯片就進(jìn)入運行模式。
● 運行模式(包括閑置狀態(tài)和激活狀態(tài))
芯片一旦進(jìn)入該模式,所有的通道都被置為閑置狀態(tài),此時(shí)主機便開(kāi)始為每個(gè)通道設置運行參數。當某通道處在閑置狀態(tài)時(shí),它所占有的時(shí)隙一般不會(huì )丟失。
與初始化模式不同的是,運行模式中的命令都只是針對單個(gè)通道有效。
如果系統中有多個(gè)AC48105芯片,主機必須依次對各芯片進(jìn)行配置。表3所列為閑置狀態(tài)的命令格式。
表3 閑置狀態(tài)命令格式
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(長(cháng)度) | OPCode(操作碼) | ||||||||||||||
Parameter 1(參數1) | ||||||||||||||||
…… | ||||||||||||||||
Parameter[(Length-4)/2](參數(Length-4)/2]) |
從閑置狀態(tài)進(jìn)入激活狀態(tài)后,數據包將在每個(gè)幀間隙內通過(guò)激活通道,在AC48105和主機之間傳輸。對于語(yǔ)音傳輸來(lái)說(shuō),幀間隙長(cháng)度由現行的語(yǔ)音編碼方式和數據包有效載荷的塊數決定。
3 芯片與主機接口(HPI)
HPI(Host Port Interface)是一個(gè)8位的并行接口,主機可以通過(guò)HPI訪(fǎng)問(wèn)語(yǔ)音芯片內部的存儲器。由于語(yǔ)音芯片的內核是16-bit的處理器,因此,為了協(xié)調主機與AC48105之間的數據傳送,HPI會(huì )自動(dòng)將來(lái)自片內存儲器的數據由字轉換為兩個(gè)字節的形式,同樣它也會(huì )在向片內存儲器寫(xiě)入數據之前,將兩個(gè)字節的數據壓縮成字的形式。HPI可以訪(fǎng)問(wèn)的片內存儲器為2kB,地址為1000H~17FFH,同時(shí)主機也可以通過(guò)HPI訪(fǎng)問(wèn)這些地址,有關(guān)地址的分配如表4所列。
表4 HPI地址分配
地 址 范 圍 | 寄存器/緩沖區 | 寄存器內容 |
1000 | 內核下載緩沖 | - |
104B | 導入狀態(tài)寄存器 | 滿(mǎn)包=0,空包=1,校驗和錯誤=2 |
104C | 程序下載塊緩沖區 | - |
166D | 存儲包數量緩沖區 | 范圍為0-15 |
166E | 主機讀包狀態(tài)緩沖區 | 滿(mǎn)包=0,空包=1 |
166F | 主機寫(xiě)包狀態(tài)緩沖區 | 滿(mǎn)包=0,空包=1 |
1670-1737 | 主機寫(xiě)包緩沖區 | |
1738-17FF | 主機寫(xiě)包緩沖區 |
實(shí)際上,HPI只需對片內存儲器的4個(gè)寄存器進(jìn)行訪(fǎng)問(wèn)即可,這四個(gè)寄存器分別是:控制寄存器,地址寄存器和數據寄存器,其中數據寄存器分為地址自動(dòng)累加和地址不影響兩種。
4 在數字程控交換機中的應用
4.1 系統簡(jiǎn)介
低速語(yǔ)音編碼和數據交換設備能夠完成的功能主要是實(shí)現基于數字交換的30路本地用戶(hù)通話(huà);5~14路局間語(yǔ)音交換、語(yǔ)音壓縮及復接、速率在64k、128k、256k可調、電話(huà)會(huì )議、全部話(huà)務(wù)員功能以及實(shí)現微機監控等。該設備全部采用模塊化設計,按功能可以分為以下幾個(gè)模塊:交換及控制模塊、用戶(hù)電路模塊、語(yǔ)音壓縮及復接模塊和穩壓電源及接口部分。各個(gè)模塊之間的關(guān)系如圖2所示。
4.2 語(yǔ)音壓縮模塊的工作原理和工作流程
該模塊使用了3片AC48105芯片,每片芯片可配置成5個(gè)獨立通道,對應著(zhù)5個(gè)時(shí)隙,這樣,3片芯片一共可以處理15個(gè)時(shí)隙信號,分別對應15個(gè)中繼用戶(hù)信息。同時(shí)每片AC48105還外帶一片SRAM,用于為其內部的DSP運算提供所需的空間,但主機對SRAM不做額外地控制。
本系統中,主機采用Atmel公司的AT89C52單片機,其中P0口作為數據/地址低8位復用;P2口作為地址的高8位使用,該設計只用到了A8、A9、A13、A14、A15;P1口的P1.0、P1.1、P1.2分別用作三片語(yǔ)音壓縮芯片的復位信號,P1.3作為壓縮芯片的讀/寫(xiě)復用信號。同時(shí),壓縮芯片的分離讀信號和寫(xiě)信號分別接單片機的讀、寫(xiě)控制口(即P3口的P3.6和P3.7)。單片機可通過(guò)高位地址譯碼訪(fǎng)問(wèn)三片語(yǔ)音芯片,具體操作為:在FPGA中將A15、A14和A13接3~8 譯碼器,000時(shí)選通語(yǔ)音芯片A,001時(shí)選通語(yǔ)音芯片B,010時(shí)選通語(yǔ)音芯片C。
當在閑置態(tài)運行激活命令時(shí),語(yǔ)音芯片就進(jìn)入激活態(tài),此時(shí)語(yǔ)音芯片開(kāi)始和單片機進(jìn)行數據交換。在G.729協(xié)議下,每包數據代表10ms的語(yǔ)音數據(稱(chēng)為一個(gè)語(yǔ)音幀),一共80Bytes,當單片機向語(yǔ)音芯片寫(xiě)入待壓縮數據時(shí),需要在每個(gè)語(yǔ)音幀的幀頭加16Bytes的命令頭,中間是語(yǔ)音數據,末尾還要加上0~4Bytes的后綴。反之,當單片機從語(yǔ)音芯片中取出已解壓的數據時(shí),每個(gè)語(yǔ)音幀的幀頭也有由語(yǔ)音芯片的DSP內核產(chǎn)生的16Bytes狀態(tài)頭,緊接狀態(tài)頭的是語(yǔ)音數據,末尾是0~4Bytes的后綴。
評論