當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]一種運(yùn)行測試G.723.1、G.729等常用低碼率語音壓縮標(biāo)準(zhǔn)算法的硬件平臺的設(shè)計(jì)方法。使用浮點(diǎn)型DSP TMS320C6713做編解碼處理器,EZ-USB FX2系列芯片CY7C68013作為主機(jī)通信和引導(dǎo)接口。具有高速、實(shí)時(shí)、穩(wěn)定及支持軟件升級等特點(diǎn)。

本系統(tǒng)使用TI公司浮點(diǎn)型DSP TMS320C6713實(shí)現(xiàn)G.723.1等語音編解碼,為G.723.1、G.729等常用的低碼率語音壓縮標(biāo)準(zhǔn)提供運(yùn)行及測試硬件平臺。有別于大多數(shù)編解碼系統(tǒng),本設(shè)計(jì)采用了性能更好的浮點(diǎn)型處理器和20位以上的數(shù)模模數(shù)轉(zhuǎn)換器,總線帶寬提高為16位,并采用主控性更強(qiáng)的HPI 接口。系統(tǒng)設(shè)計(jì)具有以下優(yōu)勢:(1)數(shù)據(jù)的傳輸通過USB口完成,完全支持速度在5.3 Kb/s或6.3 Kb/s的多路編碼輸出,方便用戶使用,并可使用USB獨(dú)立供電。(2)利用USB控制芯片的GPIF模式與DSP連接,程序簡單、修改靈活。(3)采用主頻300 MHz、處理速度2 400 MIPS/1 800 MFLOPS的TMS320C6713,可以使每幀數(shù)據(jù)的處理時(shí)間小于37 ms的幀延遲,滿足系統(tǒng)運(yùn)行的實(shí)時(shí)性。(4)數(shù)據(jù)的傳送工作交由USB控制芯片68013完成,可使DSP從繁瑣的數(shù)據(jù)搬運(yùn)及USB協(xié)議處理工作中獨(dú)立出來,使更多的資源用于數(shù)據(jù)處理。(5)采用由主機(jī)加載固件的方法,節(jié)省數(shù)據(jù)處理端的硬件與軟件資源,而且便于固件的更新升級。(6)采用DSP中的外設(shè)接口HPI與主機(jī)相連,由主機(jī)掌握主控權(quán),既能夠使數(shù)據(jù)訪問得到簡化還可以通過HPI實(shí)現(xiàn)DSP自舉。
1 基本概念介紹
1.1 CY7C68013性能特點(diǎn)
  CY7C68013(EZ-USB FX2)是Cypress半導(dǎo)體公司的新一代高速USB系列,可以用USB2.0最大數(shù)據(jù)傳輸率傳輸數(shù)據(jù)。該芯片基于EZ-USB FX芯片開發(fā),集成有發(fā)送器、SIE、8051微控制器、存儲器和可編程IO接口,是一種完全集成的USB2.0方案[2]。
1.2 G.723.1簡介
  G.723.1是一種低碼率語音壓縮標(biāo)準(zhǔn),是H.324標(biāo)準(zhǔn)系列的一部分,也是VoIP的常用解決方案之一,可在低比特率通信終端(PSTN和無線網(wǎng)絡(luò))上進(jìn)行多媒體通信。使用G.723.1標(biāo)準(zhǔn)能夠?qū)? kHz采樣l6 bit的線性PCM語音信號壓縮成6.3 Kb/s或5.3 Kb/s的比特流,其壓縮比例較高,占用帶寬較低,而且具有很好的音質(zhì)。
2 硬件設(shè)計(jì)
2.1 TMS320C6713外設(shè)接口HPI
  TMS320C6713是一款高性能的32位浮點(diǎn)DSP,適用于專業(yè)音頻信號處理。HPI即主機(jī)接口,是TMS320C6713片上集成的外設(shè)接口之一。通過HPI 可以方便地實(shí)現(xiàn)多處理器系統(tǒng),外部處理器作為主處理器,DSP作為從處理器。通過HPI 接口,外部主機(jī)可以訪問DSP除L2控制寄存器、中斷選擇寄存器、仿真邏輯之外的全部存儲器映射空間。
2.2 讀寫時(shí)序
  本實(shí)驗(yàn)采用CY7C68013和TMS320C6713芯片。在GPIF接口部分,IFCLK設(shè)置為48 MHz內(nèi)部時(shí)鐘,使用16位寬的數(shù)據(jù)總線(設(shè)置WORDWIDE=1),分配CTL[2:0]控制HPI的時(shí)序。使用GPIF Tool生成波形描述符,分別用于HPIC/HPIA/HPID的讀寫控制。值得注意的是:由于HDS1*/HDS2*/HCS*相關(guān),可以使HCS*有效,HDS2*置“1”,并通過HDS1*控制選通;HHWIL控制傳輸?shù)氖堑谝话胱诌€是第二半字;HCNTL[1:0]決定哪個(gè)寄存器正被訪問[3]。由于采用DIN連接器,其傳輸速率最高可達(dá)幾十兆赫茲,這也是其傳輸瓶頸。如果采用手工單獨(dú)裝配的SMA硬件連接器,其硬件連接的速度完全可以滿足GPIF和HPI的要求。當(dāng)然,前者每個(gè)引腳的成本不到后者的百分之一[1]。圖1為GPIF和HPI讀寫HPID寄存器的時(shí)序關(guān)系圖。


  通過FX2固件、利用非GPIF I/O信號引腳可實(shí)現(xiàn)更多的信號輸出。使用DM74LS573N鎖存器,采用數(shù)據(jù)鎖存的辦法可以減小由布局布線等原因帶來的互感、串聯(lián)電感、寄生電容等減緩信號傳播的影響,在硬件測試階段能夠有效解決傳輸誤碼的問題。由于74LS573的傳輸延遲,系統(tǒng)的可靠性建立在犧牲系統(tǒng)帶寬的基礎(chǔ)上。改用74LVC16245雙向緩沖器,可以實(shí)現(xiàn)GPIF主控的數(shù)據(jù)讀、寫功能。圖2為帶鎖存器的GPIF和HPI讀寫HPID寄存器的時(shí)序關(guān)系圖。

2.3 硬件連線
  系統(tǒng)整體硬件連線示意圖如圖3。

  圖4為帶鎖存器的GPIF和HPI硬件連線示意圖。

3 軟件設(shè)計(jì)
  此方案包括4個(gè)方面的程序設(shè)計(jì):固件程序、驅(qū)動(dòng)程序、主機(jī)應(yīng)用程序和DSP數(shù)據(jù)處理程序。
3.1 固件程序
  固件程序是指運(yùn)行在CY7C68013 51內(nèi)核中的程序,主要包括設(shè)備描述符信息、設(shè)備功能代碼和USB同DSP處理器間的通信控制功能代碼。對于使用GPIF的FX2系統(tǒng),固件還應(yīng)能夠分配FIFO讀和寫波形到4個(gè)FIFO中的任何一個(gè)。
3.1.1 固件程序設(shè)計(jì)
  固件程序開發(fā)基于KEIL C51,使用Cypress公司提供的固件函數(shù)庫Ezusb.lib和固件框架以提高開發(fā)效率。固件函數(shù)庫提供了一系列與USB協(xié)議有關(guān)的函數(shù),固件框架已經(jīng)實(shí)現(xiàn)了初始化、重枚舉、電源管理等功能。[!--empirenews.page--]
  固件程序由以下文件組成[5]:
  FX2.h  共同的FX2常數(shù)、宏、數(shù)據(jù)類型以及函 數(shù)庫內(nèi)庫函數(shù)的原型框架。
  FX2regs.h   FX2寄存器的聲明及位屏蔽常數(shù)
  Fw.c    框架源代碼
  Ti6713HPI2cy13.c  用戶函數(shù)掛鉤的相關(guān)定義
  Gpif.c    由GPIF_Designer生成,用以匹配HPIC、HPIA、HPID時(shí)序
  Dscr.a51 USB 描述符表的范例
  Ezusb.lib   EZ-USB 函數(shù)庫目標(biāo)代碼
  USBJmpTb.OBJ USB中斷向量表和GPIF中斷源
  其中Fw.c、Ti6713HPI2cy13.c和Gpif.c是固件程序的核心內(nèi)容。
  在Fw.c中主要包括任務(wù)分配器(TD)函數(shù)和設(shè)備請求(DR)函數(shù)。Ti6713HPI2cy13.c中定義這些關(guān)鍵函數(shù)。Gpif.c由GPIF_Designer生成,本設(shè)計(jì)將GPIF_Designer的4組波形分別定義為:第一半字寫、第二半字寫、FIFO寫和FIFO讀。其中前兩組波形配合任務(wù)分配器函數(shù)TD_Poll()完成DSP中寄存器HPIC和HPIA的寫,后兩組波形配合TD_Poll()完成自增模式下HPID的讀寫。波形的設(shè)計(jì)要嚴(yán)格遵守HPI總線訪問時(shí)序。
 在TD_Init()中設(shè)置整體狀態(tài)變量的初始值并規(guī)定各種端點(diǎn)資源的使用(包含中斷)以及配置外圍接口的輸入輸出。為匹配HPI通信所需數(shù)據(jù)總線寬度,寄存器EPxFIFOCFG中 WORDWIDE位置1。PORTB配置為FD[7:0],PORTD配置為FD[15:8]。為了達(dá)到最大的USB2.0帶寬,設(shè)計(jì)中將AUTOOUT/AUTOIN位置1。主機(jī)與主控制器被直接連接,CPU被旁路,OUT FIFO自動(dòng)從主機(jī)提交到FIFO。
  TD_Init()定義中的程序片段:
   ……
  EP2CFG=0xA0;  //端點(diǎn)2可用、輸出、數(shù)據(jù)流、512 B、
            //4倍緩沖模式
  SYNCDELAY;
  EP4CFG=0x00;  //端點(diǎn)4不可用
  SYNCDELAY;
  EP6CFG=0xE0;  //端點(diǎn)2可用、輸入、數(shù)據(jù)流、512 B、4倍緩沖模式
  SYNCDELAY;
  EP8CFG=0x00;  //端點(diǎn)8不可用
  SYNCDELAY;
  FIFORESET=0x80; //暫不接受主機(jī)請求
  SYNCDELAY;
  FIFORESET=0x02; //將EP2 FIFO恢復(fù)為缺省狀態(tài)
  SYNCDELAY;
  FIFORESET=0x06; //將EP6 FIFO恢復(fù)為缺省狀態(tài)
  SYNCDELAY;
  FIFORESET=0x00;  //重新開放主機(jī)請求
  SYNCDELAY;
  EP2FIFOCFG=0x01; //
  SYNCDELAY;
  EP2FIFOCFG=0x11;  //數(shù)據(jù)寬度16 bit、AUTOOUT模式
  SYNCDELAY;
  EP6FIFOCFG=0x09;  //數(shù)據(jù)寬度16 bit、AUTOIN模式
  SYNCDELAY;
   ……
  TD_Poll()中最核心部分在于完成寫HPIC寄存器、寫HPIA寄存器、以自增模式讀寫HPID。
  (1)寫HPIC寄存器。
  EP0BCL=0;     //激活EP0緩沖器以接收主機(jī)的下一個(gè)請求
  while(EP01STAT & bmEP0BSY);//等待EP0空閑可用
  while(!HPI_RDY);  //等待HPI準(zhǔn)備好接收數(shù)據(jù)
  IOA=bmHPIC;    //PA2、PA3選通HPIC
  GPIFWFSELECT=0xB9;  //選擇寫入第一個(gè)半字的GPIF波形
  GPIF_SingleByteWrite(EP0BUF[0],EP0BUF[1]);
                //寫入一個(gè)16 bit半字
  其中GPIF_SingleByteWrite()定義為:
  void GPIF_SingleByteWrite(BYTE gdatah,BYTE gdatal)
  {
   while( !(GPIFTRIG & 0x80) ) {;} //輪詢GPIFTRIG.7
                   //Done位查看上一次事務(wù)是否完成
  XGPIFSGLDATLX=gdatal; //高8位寫入XGPIFSGLDATLX
  XGPIFSGLDATH=gdatah; //低8位寫入XGPIFSGLDATH
  }
  對于16位模式,把高8位寫入XGPIFSGLDATLX,低8位寫入XGPIFSGLDATH就可以自動(dòng)啟動(dòng)一個(gè)單向?qū)懯聞?wù)。當(dāng)這個(gè)事務(wù)完成時(shí),GPIFTRIG.7 Done置1,觸發(fā)GPIFdone中斷,68013使XGPIFSGLDATLX和XGPIFSGLDATH中的數(shù)據(jù)出現(xiàn)在16位數(shù)據(jù)總線FD[15:0]上。
  (2)寫HPIA寄存器。
  與寫HPIC基本相同,只是將IOA=bmHPIA,使PA2、PA3選通HPIA。
  (3)自增模式下寫HPID。
  if(GPIFTRIG & 0x80)      //檢查當(dāng)前GIPF是否空閑
  {
  if (!(EP24FIFOFLGS & 0x02 ) )  //檢查外圍是否有
                  //數(shù)據(jù)等待傳入EP2,EP2非空
   {
  IOA=bmHPID_AUTO;     //PA2、PA3選通自增模式HPID
  while(!HPI_RDY);       //等待HPI準(zhǔn)備好傳輸數(shù)據(jù)
  SYNCDELAY;
  GPIFTCB1=EP2FIFOBCH;
  SYNCDELAY;
  GPIFTCB0=EP2FIFOBCL;   //將EP2FIFO中字節(jié)數(shù)設(shè)置為TC的值
  SYNCDELAY;
  GPIFTRIG=GPIF_EP2;     //寫寄存器GPIFTRIG觸發(fā) EP2 OUT事務(wù)
  SYNCDELAY;
  while( !( GPIFTRIG & 0x80 ) );  //等待本次事務(wù)處理完畢
  SYNCDELAY;
      }
   }
  (4)自增模式下讀HPID。
  與自增模式下寫HPID寫過程基本相同。不同點(diǎn)在于:事務(wù)計(jì)數(shù)器的值不是端點(diǎn)6中字節(jié)的個(gè)數(shù),而是應(yīng)當(dāng)由主機(jī)方通過控制端點(diǎn)EP0告知FX2;讀EP6前要檢查EP6 FIFO非滿,觸發(fā)時(shí)將GPIFTRIG設(shè)置成EP6IN。
3.1.2 固件代碼的存儲位置
  本設(shè)計(jì)將固件代碼存在主機(jī)中,設(shè)備上電以后由下面要介紹的驅(qū)動(dòng)程序?qū)⒐碳螺d到FX2片內(nèi)RAM后執(zhí)行,這一過程也就是重枚舉。這種方法便于系統(tǒng)的調(diào)試和升級,用戶可以根據(jù)自己的需要將相應(yīng)驅(qū)動(dòng)下載到PC上,從而使設(shè)備呈現(xiàn)出不同的屬性功能,并可以進(jìn)行適當(dāng)?shù)能浬?。這種方法對片外EEPROM或ROM的存儲空間要求很低,便于實(shí)現(xiàn),使用靈活。
  另外還可以把固件代碼固化到一片EEPROM中,上電后FX2通過I2C總線下載到片內(nèi)RAM后執(zhí)行;或者把程序固化到一片ROM中充當(dāng)外部程序存儲器,連接到FX2總線上。
3.2 設(shè)備驅(qū)動(dòng)程序
  設(shè)備驅(qū)動(dòng)程序提供用戶訪問設(shè)備的接口。EZ-USB系列芯片都具有通過下載固件和重枚舉的方式來動(dòng)態(tài)改變設(shè)備特性的能力,這就需要一個(gè)特殊的具有下載固件并完成設(shè)備重枚舉功能的設(shè)備驅(qū)動(dòng)程序,也可以叫做固件下載驅(qū)動(dòng)程序。Cypress公司發(fā)布的EZ-USB軟件開發(fā)包中提供了一個(gè)固件下載驅(qū)動(dòng)程序的模版,即EZ-LoaderDriver。通過它可以方便地將自己的固件程序嵌入固件下載驅(qū)動(dòng)程序。主要步驟包括:(1)設(shè)定固件下載前后兩次枚舉的不同VID和PID;(2)修改ezloader中source文件的目標(biāo)名稱;(3)修改Dscr.a51中的VID、PID;(4)利用ezloader提供的工具將用Keil編寫固件所生成的.hex文件轉(zhuǎn)換成.sys文件;(5)編寫與.sys文件相對應(yīng)的安裝信息文件(.inf);(6)修改EEPROM,將VID、PID寫入,并設(shè)置成C0引導(dǎo)加載模式。
3.3 主機(jī)應(yīng)用程序
  為提高開發(fā)速度,本設(shè)計(jì)的主機(jī)應(yīng)用程序在Cypress公司提供的USB Control Pane的基礎(chǔ)上加以修改,增添了讀取存儲和分析音頻文件(主要是.wav文件)的功能。
3.4 DSP數(shù)據(jù)處理程序
   將G.723.1公布的低碼率語音壓縮算法以C與匯編混合編程的方法[4]移植到TMS320C6713,并加以調(diào)整優(yōu)化。
  本系統(tǒng)開發(fā)旨在為G.723.1以及G.729等常用的低碼率語音壓縮標(biāo)準(zhǔn)提供運(yùn)行及測試的硬件平臺。DSP系統(tǒng)中的程序采用C與匯編混合編程的方法。實(shí)驗(yàn)表明,USB的數(shù)據(jù)帶寬完全可以滿足多路音頻數(shù)據(jù)實(shí)時(shí)處理的要求,并具有良好的穩(wěn)定性和適應(yīng)性,能夠達(dá)到所要求的通信質(zhì)量,實(shí)現(xiàn)較為完善的語音編解碼系統(tǒng)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉