新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 語音壓縮芯片CT8022的使用方法

        語音壓縮芯片CT8022的使用方法

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

        1 引腳說明

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

          HSTDB0~7:主機數據總線。

          HSTAB0~3:主機地址線。其中HSTAB0用來選擇16位控制字的高8位或低8位,當為0時選擇低8位,為1時選擇高8位。

          HSTRDN:主機讀允許信號。允許主機從由HSTAB1~3譯碼后所選擇的主機接口寄存器中讀出數據。

          HSTWRN:主機寫允許信號。允許主機向由HSTAB1~3譯碼后所選擇的主機接口寄存器中寫入數據。

          HSTCSN:主機接口選中信號。在對CT8022讀寫時,該引腳與HSTRDN,HSTWRN和HSTAB0~3共同作用。當HSTCSN有效時,HSTAB0~3應保持不變。在DMA方式時,此信號應置為無效。
         
          (2)數據/程序存儲器引腳

          MDB0~15:外部數據存儲器數據總線。
          ADDR0~15:外部數據存儲器地址總線。
          BSEL:外部數據總線字節選擇。當外接非16位寬度的內存時該引腳有用。
          DRDN:外部數據存儲器讀允許。
          DWRN:外部數據存儲器寫允許。
          PRDN:外部程序內存讀允許。
          PRWN:外部程序內存寫允許。
          CREADN:同時讀取外部程序和數據存儲器引腳。
          DCSN:外部數據存儲器片選信號。不用時接地。

          (3)時鐘引腳

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

          (4)CODEC引腳

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

          (5)DMA引腳
          
          TXDREQ:DMA發送請求信號。數據的傳輸可采用DMA方式或主機訪問方式。具體方式可在初始化時通過向硬件控制寄存器(HCR)寫控制命令來控制。

          TXDACKN:DMA發送允許。

         RXDREQ:DMA接收請求信號。 RXDACKN:DMA接收允許信號。

          

          (6)其它引腳

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

        2 工作原理

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

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

          2.2外部SRAM
          
          CT8022至少需要8k8的SRAM,以用來存儲運算時所需的數據。基本操作和程序代碼存儲在片內的ROM中。CT8022與外部SRAM連接如圖2所示。
          
          其中BSEL用來選擇高/低位字節,當SRAM地址線為16位時,此管腳不用。 
          

          2.3主機控制接口
          
          對CT8022壓縮的控制是通過片內的8/16位控制/狀態/數據接口來進行的。該接口可映像到內部的主機控制地址空間,使得CT8022可與廉價的8位或16位微控制器一起使用。控制器通過向控制寄存器寫控制字來對CT8022進行操作,并通過讀狀態寄存器得到狀態信息。語音數據可通過深度可變的、最長為16個字的接收或發送緩沖器由主機存取或DMA方式來進行記錄或播放。這些控制寄存器包括硬件控制寄存器(HCS)、硬件狀態寄存器(HSR)、軟件控制寄存器(SCR)、軟件狀態寄存器(SSR)、輔助軟件控制寄存器(ASCR)和輔助軟件狀態寄存器(ASSR)等,而器件中的緩沖器則通過主機讀/寫數據緩沖訪問端口來進行語言數據的操作。
          
          CT8022包含兩個16字(32字節)的數據緩沖區,通過它主機可以向CT8022發送數據,同時主機也可接收CT8022的數據。這兩個緩沖區的訪問權由CT8022控制,主機可通過兩個16位的主機數據緩沖端口間接訪問。由于主機數據總線為8位,因此應根據HSTAB0選擇來訪問高/低字節,并由CT8022 內部的地址計數器產生訪問所需的地址。各個寄存器的地址如表1所列。

          
          
          表中的HSTAB0用來選擇16位控制字的高8位或低8位。當HSTAB0為0時選擇低8位,為1時選擇高8位;訪問時先低8位,后高8位。

          3 工作模式

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

          4 工作流程

          主機可通過命令-應答協議來控制CT8022。對主機發出的每條命令CT8022都將產生狀態應答信號,因此,主機在發出下一條命令前應先讀取應答信號。主機對CT8022的控制命令通過寫SCR來實現。當CT8022準備好接收命令后,應設置好HSR中的CONTROLREADY位。此時主機只能向SCR寫命令。CT8022將通過寫SSR來產生命令的應答信號。主機只有在HSR中的STATUSREADY位有效后才可從SSR中讀取狀態信息,并清除STATUSREADY位。由于CT8022的控制寄存器為16位,而主機接口為8位,因此主機在寫控制字時,應先寫低字節,后寫高字節。   

          4.1初始化
          
          在使用CT8022時,必須先對其進行初始化操作,具體過程如下:

          (1)在系統加電或復位后,主機訪問HSR,直到CONTROLREADY位有效。
          (2)主機首先向SCR寫入設置CT8022為空模式的命令0000H。
          (3)CT8022產生應答,并置HSR的STATUSREADY位。
          (4)主機檢測到STATUSREADY位有效時,從SSR讀取狀態信息。
          (5)主機向SCR寫入CODEC的配置命令。
          (6)CT8022根據配置命令配置與CODEC的接口,并產生應答信息,同時置STATUSREADY位。
          (7)主機檢測到STATUSREADY位有效時,從SSR讀取狀態信息。

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

          (1)主機檢測HSR的CONTROLREADY位。
          (2)通過向SCR寫入命令字5131H來設置速率為6.3kbit/s。
          (3)CT8022通過SSR發出應答信號。
          (4)主機檢測HSR的STATUSREADY位,檢測到該位后讀取SSR,并將STATUSREADY自動清零。
          (5)向SCR寫入控制字5102H,以使數據可以在主機讀/寫數據緩沖端口與CT8022內部寄存器自動交換。
          (6)CT8022通過SSR響應命令。
          (7)主機檢測HSR的STATUSREADY位,檢測到后讀取SSR,并將STATUSREADY自動清零。
          (8)主機向SCR寫入控制字1C03H,表明主機將通過主機接收數據緩沖訪問端口讀取數據。 (9)CT8022完成內部同步,并產生應答。
          (10)主機檢測HSR的STATUSREADY位,檢測到后,讀取SSR,并將STATUSREADY自動清零。
          (11)至此,CT8022已處于記錄模式。可以對由 CODEC發送來的數據以30ms的長度為一幀進行壓縮。每個壓縮的數據幀通過以下兩種方式由CT8022送至主機:第一種是由主機檢測HSR中的RXReady,然后等待該位被置位。第二種是主機從主機接收數據緩沖訪問端口讀取12個字的數據。

          4.3停止操作

          若要停止記錄,可進行如下操作:
          
          (1)向SCR寫入空模式命令字0000H,或執行停止記錄命令5120H。
          (2)CT8022停止對數據的壓縮,并清除RXReady位。
          (3)CT8022向SSR寫入命令應答信息。
          (4)主機檢測HSR的STATUSREADY位,檢測到后讀取SSR,并將STATUSREADY自動清零。

          5 應用電路

          由CT8022和主機組成的語音壓縮應用電路框圖如圖3所示。

          



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 焉耆| 洪洞县| 平谷区| 双桥区| 新邵县| 二连浩特市| 慈利县| 阿拉善左旗| 灵武市| 平武县| 长泰县| 祁连县| 正阳县| 平凉市| 芮城县| 柘荣县| 益阳市| 织金县| 大竹县| 德钦县| 安西县| 苏尼特右旗| 五大连池市| 九寨沟县| 彩票| 宝清县| 正定县| 措美县| 崇义县| 无极县| 雷州市| 龙海市| 合作市| 宿松县| 琼结县| 南京市| 岳普湖县| 高雄市| 利辛县| 阿克陶县| 桐柏县|