新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 語(yǔ)音壓縮芯片CT8022的使用方法

語(yǔ)音壓縮芯片CT8022的使用方法

作者: 時(shí)間:2006-10-27 來(lái)源:網(wǎng)絡(luò) 收藏
是DSPG公司開(kāi)發(fā)的可實(shí)現(xiàn)多種算法的專用DSP。它可接受外部串行A/D提供的64/128kbits/s的8bit A/μ數(shù)據(jù)或16bit線性數(shù)據(jù),并實(shí)現(xiàn)全/半雙工和解壓,以將其為由主機(jī)通過(guò)命令字決定的格式??蓧嚎s為8.5/6.3/5.3/4.8/4.1kbits/s的數(shù)據(jù)。當(dāng)壓縮為6.3/5.3kbits/s時(shí),符合ITU-G.723.1標(biāo)準(zhǔn)。內(nèi)建有實(shí)時(shí)回音抵消和自動(dòng)增益控制電路。當(dāng)發(fā)送端與接收端抽樣時(shí)鐘不同步時(shí),系統(tǒng)可自動(dòng)添加或刪除幀。另外,還提供了DTMF信號(hào)和呼叫繼續(xù)音的產(chǎn)生和檢測(cè)功能。可應(yīng)用于H.323和H.324多媒體可視電話/視頻會(huì)議等系統(tǒng),也可用于實(shí)現(xiàn)數(shù)字?jǐn)?shù)據(jù)/同傳(DSVD)技術(shù)。

1 引腳說(shuō)明

CT8022有128條管腳,分為6類。
  
 ?。?)主機(jī)接口引腳

  HSTDB0~7:主機(jī)數(shù)據(jù)總線。

  HSTAB0~3:主機(jī)地址線。其中HSTAB0用來(lái)選擇16位控制字的高8位或低8位,當(dāng)為0時(shí)選擇低8位,為1時(shí)選擇高8位。

  HSTRDN:主機(jī)讀允許信號(hào)。允許主機(jī)從由HSTAB1~3譯碼后所選擇的主機(jī)接口寄存器中讀出數(shù)據(jù)。

  HSTWRN:主機(jī)寫(xiě)允許信號(hào)。允許主機(jī)向由HSTAB1~3譯碼后所選擇的主機(jī)接口寄存器中寫(xiě)入數(shù)據(jù)。

  HSTCSN:主機(jī)接口選中信號(hào)。在對(duì)CT8022讀寫(xiě)時(shí),該引腳與HSTRDN,HSTWRN和HSTAB0~3共同作用。當(dāng)HSTCSN有效時(shí),HSTAB0~3應(yīng)保持不變。在DMA方式時(shí),此信號(hào)應(yīng)置為無(wú)效。
 
 ?。?)數(shù)據(jù)/程序存儲(chǔ)器引腳

  MDB0~15:外部數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)總線。
  ADDR0~15:外部數(shù)據(jù)存儲(chǔ)器地址總線。
  BSEL:外部數(shù)據(jù)總線字節(jié)選擇。當(dāng)外接非16位寬度的內(nèi)存時(shí)該引腳有用。
  DRDN:外部數(shù)據(jù)存儲(chǔ)器讀允許。
  DWRN:外部數(shù)據(jù)存儲(chǔ)器寫(xiě)允許。
  PRDN:外部程序內(nèi)存讀允許。
  PRWN:外部程序內(nèi)存寫(xiě)允許。
  CREADN:同時(shí)讀取外部程序和數(shù)據(jù)存儲(chǔ)器引腳。
  DCSN:外部數(shù)據(jù)存儲(chǔ)器片選信號(hào)。不用時(shí)接地。

 ?。?)時(shí)鐘引腳

  SLK:CODEC接口移位時(shí)鐘。
  FSYNC:CODEC接口幀同步時(shí)鐘。
  XIN:晶體/外部時(shí)鐘輸入。
  XOUT:晶體輸出端。
  CLKOUT:CT8022壓縮的核心頻率。由內(nèi)部頻率45.056MHz分頻得到。分頻因子可通過(guò)命令設(shè)置。
  PLLR,PLLC,PLLT,AVCC,AGND:PLL支持管腳。連接方法如圖1所示。
  PLLBYPASS:禁用內(nèi)部PLL。用于XIN端直接外接90.112MHz時(shí)鐘時(shí)用。

  (4)CODEC引腳

  DX0:用于串行輸出已解壓信號(hào)至CODEC0。
  DR0:用于從CODEC0串行輸入8/16bit格式信號(hào)。
  DX1:用于串行輸出已解壓信號(hào)至CODEC1。
  DR1:用于從CODEC1串行輸入8/16bit格式信號(hào)。

 ?。?)DMA引腳
  
  TXDREQ:DMA發(fā)送請(qǐng)求信號(hào)。數(shù)據(jù)的傳輸可采用DMA方式或主機(jī)訪問(wèn)方式。具體方式可在初始化時(shí)通過(guò)向硬件控制寄存器(HCR)寫(xiě)控制命令來(lái)控制。

  TXDACKN:DMA發(fā)送允許。

 RXDREQ:DMA接收請(qǐng)求信號(hào)。 RXDACKN:DMA接收允許信號(hào)。

  

 ?。?)其它引腳

  GND1~18:接地引腳。
  VCC1~18:接5V電源。
  IRQN:中斷請(qǐng)求信號(hào)。
  RSTN:復(fù)位端口。
  GPIO0~7:通用I/O腳。與該器件以前的系列CT8015兼容。
  BRQN,ABORTN,EINTN:保留引腳。可通過(guò)10kΩ上拉電阻與VCC相連。 BGRNTN,BRDN:保留,不連接。
  EXTP,BMODE,DBG,BOOT,URST,TEST:保留,接地。
  
  應(yīng)當(dāng)說(shuō)明的是:在以上各管腳名稱中,如果最后一個(gè)字母為N,則表示該管腳為低有效。

2 工作原理

  2 .1與CODEC的接口
  
  CT8022可以直接與一個(gè)或兩個(gè)8 bit A/μ率編譯碼器(A/D和D/A)相連,也可以與16位線性編譯碼器相連。在作為輸入/輸出信號(hào)時(shí),可通過(guò)主機(jī)接口命令來(lái)確定接口的具體參數(shù)。當(dāng)使用兩個(gè)編譯碼器時(shí),應(yīng)保證其型號(hào)相同。CT8022可以向CODEC提供時(shí)鐘信號(hào),也可與編譯碼器使用共同的外部時(shí)鐘信號(hào)。當(dāng)CT8022向CODEC提供時(shí)鐘信號(hào)時(shí),時(shí)鐘SCLK和FSYNC由其內(nèi)部的時(shí)鐘通過(guò)編程而分頻得到。CODEC的抽樣頻率為FSYNC。SCLK、FSYNC和CT8022內(nèi)部的時(shí)鐘關(guān)系為:
  
  SCLK=CT8022的內(nèi)部時(shí)鐘/(N+1),其中3≤N≤31;

  FSYNC=SCLK/(M+1),其中18≤M≤1023。
  
  式中M、N均為分頻因子,具體值可根據(jù)采樣頻率在初始化時(shí)用命令寫(xiě)入。

  2.2外部SRAM
  
  CT8022至少需要8k8的SRAM,以用來(lái)存儲(chǔ)運(yùn)算時(shí)所需的數(shù)據(jù)?;静僮骱统绦虼a存儲(chǔ)在片內(nèi)的ROM中。CT8022與外部SRAM連接如圖2所示。
  
  其中BSEL用來(lái)選擇高/低位字節(jié),當(dāng)SRAM地址線為16位時(shí),此管腳不用?!?BR>  

  2.3主機(jī)控制接口
  
  對(duì)CT8022壓縮的控制是通過(guò)片內(nèi)的8/16位控制/狀態(tài)/數(shù)據(jù)接口來(lái)進(jìn)行的。該接口可映像到內(nèi)部的主機(jī)控制地址空間,使得CT8022可與廉價(jià)的8位或16位微控制器一起使用??刂破魍ㄟ^(guò)向控制寄存器寫(xiě)控制字來(lái)對(duì)CT8022進(jìn)行操作,并通過(guò)讀狀態(tài)寄存器得到狀態(tài)信息。語(yǔ)音數(shù)據(jù)可通過(guò)深度可變的、最長(zhǎng)為16個(gè)字的接收或發(fā)送緩沖器由主機(jī)存取或DMA方式來(lái)進(jìn)行記錄或播放。這些控制寄存器包括硬件控制寄存器(HCS)、硬件狀態(tài)寄存器(HSR)、軟件控制寄存器(SCR)、軟件狀態(tài)寄存器(SSR)、輔助軟件控制寄存器(ASCR)和輔助軟件狀態(tài)寄存器(ASSR)等,而器件中的緩沖器則通過(guò)主機(jī)讀/寫(xiě)數(shù)據(jù)緩沖訪問(wèn)端口來(lái)進(jìn)行語(yǔ)言數(shù)據(jù)的操作。
  
  CT8022包含兩個(gè)16字(32字節(jié))的數(shù)據(jù)緩沖區(qū),通過(guò)它主機(jī)可以向CT8022發(fā)送數(shù)據(jù),同時(shí)主機(jī)也可接收CT8022的數(shù)據(jù)。這兩個(gè)緩沖區(qū)的訪問(wèn)權(quán)由CT8022控制,主機(jī)可通過(guò)兩個(gè)16位的主機(jī)數(shù)據(jù)緩沖端口間接訪問(wèn)。由于主機(jī)數(shù)據(jù)總線為8位,因此應(yīng)根據(jù)HSTAB0選擇來(lái)訪問(wèn)高/低字節(jié),并由CT8022 內(nèi)部的地址計(jì)數(shù)器產(chǎn)生訪問(wèn)所需的地址。各個(gè)寄存器的地址如表1所列。

  
  
  表中的HSTAB0用來(lái)選擇16位控制字的高8位或低8位。當(dāng)HSTAB0為0時(shí)選擇低8位,為1時(shí)選擇高8位;訪問(wèn)時(shí)先低8位,后高8位。

  3 工作模式

  CT8022主要的工作模式有:空模式、重放(解壓縮)模式和記錄(壓縮)模式。
  
  在加電或復(fù)位后,主機(jī)必須使芯片進(jìn)入空模式,才能進(jìn)行其它命令操作。此時(shí),發(fā)送/接收緩沖器為空,而來(lái)自CODEC的數(shù)據(jù)將被忽略。
  
  在重放模式中,CT8022中的發(fā)送寄存器被激活,主機(jī)應(yīng)向CT8022發(fā)送已被壓縮的數(shù)據(jù),以對(duì)其進(jìn)行解壓。當(dāng)數(shù)據(jù)中斷時(shí),CT8022將重復(fù)解壓發(fā)送寄存器內(nèi)的數(shù)據(jù),并將其發(fā)送到CODEC,直到主機(jī)重新發(fā)送有效數(shù)據(jù)。
  
  在記錄模式中,CT8022中的接收寄存器被激活,CT8022將CODEC送來(lái)的數(shù)據(jù)壓縮后送入接收寄存器,然后由主機(jī)將寄存器內(nèi)的數(shù)據(jù)取走。若主機(jī)未能及時(shí)取走寄存器內(nèi)的數(shù)據(jù),那么,寄存器中的數(shù)據(jù)將被后一幀的數(shù)據(jù)所代替。
  
  當(dāng)系統(tǒng)處于全雙工模式時(shí),可同時(shí)進(jìn)行語(yǔ)音的壓縮與解壓。
  
  CT8022的編譯碼器循環(huán)模式為測(cè)試模式,可用于將CODEC送來(lái)的碼流不經(jīng)壓縮而直接送回CODEC。

  4 工作流程

  主機(jī)可通過(guò)命令-應(yīng)答協(xié)議來(lái)控制CT8022。對(duì)主機(jī)發(fā)出的每條命令CT8022都將產(chǎn)生狀態(tài)應(yīng)答信號(hào),因此,主機(jī)在發(fā)出下一條命令前應(yīng)先讀取應(yīng)答信號(hào)。主機(jī)對(duì)CT8022的控制命令通過(guò)寫(xiě)SCR來(lái)實(shí)現(xiàn)。當(dāng)CT8022準(zhǔn)備好接收命令后,應(yīng)設(shè)置好HSR中的CONTROLREADY位。此時(shí)主機(jī)只能向SCR寫(xiě)命令。CT8022將通過(guò)寫(xiě)SSR來(lái)產(chǎn)生命令的應(yīng)答信號(hào)。主機(jī)只有在HSR中的STATUSREADY位有效后才可從SSR中讀取狀態(tài)信息,并清除STATUSREADY位。由于CT8022的控制寄存器為16位,而主機(jī)接口為8位,因此主機(jī)在寫(xiě)控制字時(shí),應(yīng)先寫(xiě)低字節(jié),后寫(xiě)高字節(jié)。   

  4.1初始化
  
  在使用CT8022時(shí),必須先對(duì)其進(jìn)行初始化操作,具體過(guò)程如下:

  (1)在系統(tǒng)加電或復(fù)位后,主機(jī)訪問(wèn)HSR,直到CONTROLREADY位有效。
 ?。?)主機(jī)首先向SCR寫(xiě)入設(shè)置CT8022為空模式的命令0000H。
 ?。?)CT8022產(chǎn)生應(yīng)答,并置HSR的STATUSREADY位。
 ?。?)主機(jī)檢測(cè)到STATUSREADY位有效時(shí),從SSR讀取狀態(tài)信息。
  (5)主機(jī)向SCR寫(xiě)入CODEC的配置命令。
 ?。?)CT8022根據(jù)配置命令配置與CODEC的接口,并產(chǎn)生應(yīng)答信息,同時(shí)置STATUSREADY位。
 ?。?)主機(jī)檢測(cè)到STATUSREADY位有效時(shí),從SSR讀取狀態(tài)信息。

  4.2寫(xiě)控制字
  
  在初始化完成后,主機(jī)便可寫(xiě)入控制字,以規(guī)定CT8022的具體工作狀態(tài)。
  
  下面以與ITU-G.723.1兼容的6.3kbits/s壓縮算法為例來(lái)說(shuō)明設(shè)置CT8022為壓縮狀態(tài)(記錄模式)的具體過(guò)程。假設(shè)CT8022已經(jīng)初始化完成并處于空模式,且CODEC接口符合G.723.1要求。其過(guò)程如下:

 ?。?)主機(jī)檢測(cè)HSR的CONTROLREADY位。
 ?。?)通過(guò)向SCR寫(xiě)入命令字5131H來(lái)設(shè)置速率為6.3kbit/s。
 ?。?)CT8022通過(guò)SSR發(fā)出應(yīng)答信號(hào)。
 ?。?)主機(jī)檢測(cè)HSR的STATUSREADY位,檢測(cè)到該位后讀取SSR,并將STATUSREADY自動(dòng)清零。
  (5)向SCR寫(xiě)入控制字5102H,以使數(shù)據(jù)可以在主機(jī)讀/寫(xiě)數(shù)據(jù)緩沖端口與CT8022內(nèi)部寄存器自動(dòng)交換。
 ?。?)CT8022通過(guò)SSR響應(yīng)命令。
 ?。?)主機(jī)檢測(cè)HSR的STATUSREADY位,檢測(cè)到后讀取SSR,并將STATUSREADY自動(dòng)清零。
  (8)主機(jī)向SCR寫(xiě)入控制字1C03H,表明主機(jī)將通過(guò)主機(jī)接收數(shù)據(jù)緩沖訪問(wèn)端口讀取數(shù)據(jù)。 (9)CT8022完成內(nèi)部同步,并產(chǎn)生應(yīng)答。
  (10)主機(jī)檢測(cè)HSR的STATUSREADY位,檢測(cè)到后,讀取SSR,并將STATUSREADY自動(dòng)清零。
 ?。?1)至此,CT8022已處于記錄模式??梢詫?duì)由 CODEC發(fā)送來(lái)的數(shù)據(jù)以30ms的長(zhǎng)度為一幀進(jìn)行壓縮。每個(gè)壓縮的數(shù)據(jù)幀通過(guò)以下兩種方式由CT8022送至主機(jī):第一種是由主機(jī)檢測(cè)HSR中的RXReady,然后等待該位被置位。第二種是主機(jī)從主機(jī)接收數(shù)據(jù)緩沖訪問(wèn)端口讀取12個(gè)字的數(shù)據(jù)。

  4.3停止操作

  若要停止記錄,可進(jìn)行如下操作:
  
 ?。?)向SCR寫(xiě)入空模式命令字0000H,或執(zhí)行停止記錄命令5120H。
 ?。?)CT8022停止對(duì)數(shù)據(jù)的壓縮,并清除RXReady位。
 ?。?)CT8022向SSR寫(xiě)入命令應(yīng)答信息。
  (4)主機(jī)檢測(cè)HSR的STATUSREADY位,檢測(cè)到后讀取SSR,并將STATUSREADY自動(dòng)清零。

  5 應(yīng)用電路

  由CT8022和主機(jī)組成的語(yǔ)音壓縮應(yīng)用電路框圖如圖3所示。

  



評(píng)論


相關(guān)推薦

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

關(guān)閉