• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 消費電子 > 設計應用 > 語音處理芯片AC48105在低速語音編碼設備中的應用

    語音處理芯片AC48105在低速語音編碼設備中的應用

    作者: 時間:2004-12-11 來源:網絡 收藏
    摘要:是以色列AudioCodes公司生產的一種專用,可用于完成低比特率的壓縮解壓和傳真等功能。該內含5路相互獨立的復用信道,可以傳輸、傳真和數據信息,帶有的16位DSP內核可提供多種語音格式。文中結合該語音中的,詳細介紹了其工作模式及配置方法。

    關鍵詞:;DSP內核;工作模式;語音壓縮編碼

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

    1 主要性能

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

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

    ●基于G.723.1協議的6.3/5.3kbps MP-MLQ語音編碼;

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

    ●基于G.711協議的64kbps μ律/A律PCM語音編碼;

    ●6.4、7.2、8.0、8.8、9.6kbps的NetCoder語音編碼;

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

    圖1

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

    AC48105的主要特性有:

    ●可進行自動語音/傳真/數據切換;

    ●損毀封包自動修復;

    ●G.168/G.165的自適應回聲抑制;

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

    ●具有信道內信號的傳輸(CAS)功能;

    ●可對TIA 464B DTMF信號進行檢測及再生;

    ●帶內信號傳輸(IBS),包括MF R1,R2,SS-4,SS-5,AC15和呼叫過程;

    ●具有可編程音頻信號傳輸功能;

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

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

    ●具有并行主機處理器接口;

    ●可實時全雙工工作。

    2 芯片工作模式和命令

    AC48105的內核是16位的DSP,其中固化了多種編碼操作。其DSP內核與外部主機的數據交換可通過8根復用的地址/數據總線來實現。AC48105有如下四種工作模式:

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

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

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

    (4) 運行模式(包括閑置狀態和激活狀態)(Run Mode(Idle State and Active State))。

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

    ●重置和內核下載模式

    上電時,該模式啟動,當重置信號被激活(RESET管腳箝制在低電平)時,其內核代碼被下載到AC48105中。

    ●編程下載模式

    編程下載模式的啟動需同時滿足兩個條件,一是主機設置AC48105中的HPIC寄存器,使HINT信號變為高電平;二是內核下載成功。

    編程下載結束時,芯片自動進入初始化模式。

    ●初始化模式及命令

    處于該模式時,主機發出的命令對芯片每個通道的初始化模式均有效。其主要的初始化命令及命令格式分別如表1、表2所列。

    表1 主要初始化命令

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

    表2 初始化命令格式

    Frame Title(幀結構)Bit Number(位結構)
    1514131211109876543210
    Syns Header(同步頭)0ID(識別號)AAh
    Command Header(命令頭)Length(長度)OPCode(操作碼)
    Parameter 1(參數1) 
    …… 
    Parameter n(參數n) 
    Checksum Footer(校驗和頁腳)0Sequence Number(序列號)Checksum(校驗和)

    每個命令都有一個同步頭AA h。命令頭中,操作碼用來表示命令的類型,長度域則用于表明命令的字節數(16進制)。

    當主機發出Run命令后,芯片就進入運行模式。

    ● 運行模式(包括閑置狀態和激活狀態)

    芯片一旦進入該模式,所有的通道都被置為閑置狀態,此時主機便開始為每個通道設置運行參數。當某通道處在閑置狀態時,它所占有的時隙一般不會丟失。

    與初始化模式不同的是,運行模式中的命令都只是針對單個通道有效。

    如果系統中有多個AC48105芯片,主機必須依次對各芯片進行配置。表3所列為閑置狀態的命令格式。

    表3 閑置狀態命令格式

    Frame Title(幀結構)Bit Number(位結構)
    1514131211109876543210
    Sync Header(同步頭)00hAAh
    Command Header(命令頭)Length(長度)OPCode(操作碼)
    Parameter 1(參數1) 
    …… 
    Parameter[(Length-4)/2](參數(Length-4)/2]) 

    從閑置狀態進入激活狀態后,數據包將在每個幀間隙內通過激活通道,在AC48105和主機之間傳輸。對于語音傳輸來說,幀間隙長度由現行的語音編碼方式和數據包有效載荷的塊數決定。

    3 芯片與主機接口(HPI)

    HPI(Host Port Interface)是一個8位的并行接口,主機可以通過HPI訪問語音芯片內部的存儲器。由于語音芯片的內核是16-bit的處理器,因此,為了協調主機與AC48105之間的數據傳送,HPI會自動將來自片內存儲器的數據由字轉換為兩個字節的形式,同樣它也會在向片內存儲器寫入數據之前,將兩個字節的數據壓縮成字的形式。HPI可以訪問的片內存儲器為2kB,地址為1000H~17FFH,同時主機也可以通過HPI訪問這些地址,有關地址的分配如表4所列。

    表4 HPI地址分配

    地 址 范 圍寄存器/緩沖區寄存器內容
    1000內核下載緩沖-
    104B導入狀態寄存器滿包=0,空包=1,校驗和錯誤=2
    104C程序下載塊緩沖區-
    166D存儲包數量緩沖區范圍為0-15
    166E主機讀包狀態緩沖區滿包=0,空包=1
    166F主機寫包狀態緩沖區滿包=0,空包=1
    1670-1737主機寫包緩沖區 
    1738-17FF主機寫包緩沖區 

    實際上,HPI只需對片內存儲器的4個寄存器進行訪問即可,這四個寄存器分別是:控制寄存器,地址寄存器和數據寄存器,其中數據寄存器分為地址自動累加和地址不影響兩種。

    4 在數字程控交換機中的

    4.1 系統簡介

    語音編碼和數據交換能夠完成的功能主要是實現基于數字交換的30路本地用戶通話;5~14路局間語音交換、語音壓縮及復接、速率在64k、128k、256k可調、電話會議、全部話務員功能以及實現微機監控等。該設備全部采用模塊化設計,按功能可以分為以下幾個模塊:交換及控制模塊、用戶電路模塊、語音壓縮及復接模塊和穩壓電源及接口部分。各個模塊之間的關系如圖2所示。

    4.2 語音壓縮模塊的工作原理和工作流程

    該模塊使用了3片AC48105芯片,每片芯片可配置成5個獨立通道,對應著5個時隙,這樣,3片芯片一共可以處理15個時隙信號,分別對應15個中繼用戶信息。同時每片AC48105還外帶一片SRAM,用于為其內部的DSP運算提供所需的空間,但主機對SRAM不做額外地控制。

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

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

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



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 炎陵县| 哈巴河县| 盘锦市| 新田县| 奇台县| 红桥区| 常宁市| 田林县| 桐乡市| 靖宇县| 张家口市| 宽甸| 荥经县| 兰溪市| 瓮安县| 凯里市| 和平区| 平武县| 德昌县| 元朗区| 尼木县| 陆良县| 蓬溪县| 博乐市| 义马市| 阿拉善盟| 且末县| 罗源县| 平山县| 丁青县| 遵化市| 拉萨市| 尼木县| 乐清市| 长泰县| 乳山市| 观塘区| 临泉县| 盐山县| 会理县| 甘孜县|