ML7204和PicoBlaze軟核處理器實(shí)現(xiàn)低速話(huà)音編解碼系統(tǒng)
出處:電子設(shè)計(jì)工程 發(fā)布于:2011-07-05 17:32:31
對(duì)于移動(dòng)通信來(lái)說(shuō) 多的信息是語(yǔ)音信號(hào),語(yǔ)音編碼的技術(shù)在數(shù)字移動(dòng)通信中具有相當(dāng)關(guān)鍵的作用 ,高質(zhì)量低速率的語(yǔ)音編碼技術(shù)是數(shù)字移動(dòng)網(wǎng)的永遠(yuǎn)的追求。所謂語(yǔ)音編碼是信源編碼,它是將模擬語(yǔ)音信號(hào)變成數(shù)字信號(hào)以便在信道中傳輸除了通信帶寬的要求外 ,計(jì)算機(jī)存儲(chǔ)容量的限制也要求對(duì)語(yǔ)音信號(hào)進(jìn)行壓縮 ,以滿(mǎn)足海量數(shù)據(jù)情況下進(jìn)行實(shí)時(shí)或準(zhǔn)時(shí)計(jì)算機(jī)處理的 目的。
ML7204專(zhuān)用語(yǔ)音處理器可提供多種速率的編解碼功能,包括A律和U律2種不同的PCM和G.729A低速壓縮話(huà)音編解碼。該器件內(nèi)置FIF0緩存器,具有合成語(yǔ)音質(zhì)量高、抗誤碼性能好等特點(diǎn),并在語(yǔ)音通信,特別是VoIP系統(tǒng)中應(yīng)用廣泛。基于8051構(gòu)架的開(kāi)源微處理器內(nèi)核PicoBlaze配合FPGA解決常量編碼可編程狀態(tài)機(jī)(KCPSM)問(wèn)題,可以使系統(tǒng)同時(shí)具備處理復(fù)雜控制和時(shí)序邏輯的能力。這里介紹了ML7204的基本性能和工作原理,微處理器內(nèi)核PicoBlaze的開(kāi)發(fā)流程及其使用方法,并且給出通過(guò)PicoBlaze配置、控制ML7204實(shí)現(xiàn)單路G.729A語(yǔ)音編解碼的系統(tǒng)設(shè)計(jì)方案。
1 ML7204功能簡(jiǎn)介
ML7204具有如下特點(diǎn):內(nèi)置640字節(jié)FIF0,為數(shù)據(jù)收發(fā)提供緩存;支持ITU的G.711、G.729A等分組語(yǔ)音處理標(biāo)準(zhǔn);回音抵消和抑制、靜音檢測(cè)和舒適噪音等提高分組語(yǔ)音處理性能;收、發(fā)增益控制;以數(shù)據(jù)、地址總線(xiàn)方式訪(fǎng)問(wèn)控制寄存器。
ML7204分組語(yǔ)音處理器件的接口是從硬件連接和功能兩方面考慮,包括語(yǔ)音、PCM、中斷、時(shí)鐘、處理器等接口。其中,語(yǔ)音接口(Voice I/F)模擬話(huà)音信號(hào)的輸入輸出,內(nèi)置可調(diào)增益放大器和A/D和D/A轉(zhuǎn)換器;PCM接口(PCM I/F)用于非壓縮語(yǔ)音信號(hào)的輸入輸出,為64 kb/s率或a率壓擴(kuò)的PCM信號(hào);中斷接口(INT I/F)提供異常狀況的信號(hào)指示;時(shí)鐘接口(CLK I/F)既可外置晶體,也可直接輸入時(shí)鐘信號(hào),時(shí)鐘頻率12.288 MHz;處理器接口(MCU I/F)包括8位數(shù)據(jù)、地址總線(xiàn)以及讀、寫(xiě)使能、片選信號(hào),實(shí)現(xiàn)微處理器與ML7204的通信,并實(shí)現(xiàn)微處理器對(duì)ML7204的控制、以及ML7204的狀態(tài)檢測(cè)。ML7204有復(fù)位、初始化配置、運(yùn)行3種工作模式,如圖1所示。ML7204上電后,復(fù)位信號(hào)有效(PDNB=0)時(shí),內(nèi)核重啟,則ML7204進(jìn)入復(fù)位模式(Power Down State);初始化配置模式(Initial State)是當(dāng)復(fù)位信號(hào)釋放(PDNB=1)時(shí),所有狀態(tài)重置等待處理器配置。處理器通過(guò)修改控制寄存器完成器件的初始化配置;初始化完成后器件進(jìn)入運(yùn)行模式(OperationState),開(kāi)始正常運(yùn)行,此時(shí)通過(guò)設(shè)置PDNB或控制寄存器的軟復(fù)位信號(hào)使ML7204重新進(jìn)入復(fù)位模式等待初始化。

2 微處理器內(nèi)核PicoBlaze簡(jiǎn)介
PicoBlaze是8位微處理器,在Xilinx公司的Virtex、Spartan-II系列以上FPGA與CoolRunner-II系列以上的CPLD器件設(shè)計(jì)中以IP核的方式提供,使用是的。PicoBlaze起初命名為KCPSM,是Constant(K) Coded Programmable State Machine的簡(jiǎn)稱(chēng),意為常量編碼可編程狀態(tài)機(jī)。KCPSM還有個(gè)別稱(chēng)叫Ken Chapman's PSM ,Ken Chapman是Xilinx的微控制器設(shè)計(jì)者之一。PicoBlaze是由VHDL語(yǔ)言在早期開(kāi)發(fā)的小型8位軟處理器內(nèi)核包,其匯編器是簡(jiǎn)單的DOS可執(zhí)行文件KCPSM2.exe或KCPSM3.exe,用匯編語(yǔ)言編寫(xiě)的程序經(jīng)過(guò)編譯后放入FPGA的塊RAM存儲(chǔ)器區(qū)。在XC3S500E的FPGA中,只用到了96個(gè)Silice,也就是只占用到5%的邏輯資源。PicoBlaze執(zhí)行一條命令需要2個(gè)時(shí)鐘周期,在Spartan3E Starter Kit板上以50MHz時(shí)鐘為例,PicoBlaze也能達(dá)到25MIPS的性能。
PicoBlaze微處理器接口從數(shù)據(jù)和控制兩方面考慮,包括復(fù)位、時(shí)鐘、讀信號(hào)、寫(xiě)信號(hào)、數(shù)據(jù)輸入、數(shù)據(jù)輸出等接口。如圖2所示。

復(fù)位接口(reset)是異步復(fù)位、高有效、清除PicoBlaze內(nèi)核所有狀態(tài),但不清除程序代碼;時(shí)鐘接口(clk)是輸入主時(shí)鐘,速率35 MHz;地址總線(xiàn)接口(port_id[7:0])為PicoBlaze內(nèi)核的地址總線(xiàn),持續(xù)2個(gè)時(shí)鐘節(jié)拍有效;數(shù)據(jù)總線(xiàn)接口(out_port[7:0])是PicoBlaze內(nèi)核的數(shù)據(jù)總線(xiàn),持續(xù)2個(gè)時(shí)鐘節(jié)拍有效;讀信號(hào)接口(read_strobe)是讀脈沖信號(hào),當(dāng)該信號(hào)為高時(shí),port_id[7:0]輸出有效數(shù)據(jù);寫(xiě)信號(hào)接口(write_strobe),寫(xiě)脈沖信號(hào),當(dāng)該信號(hào)為高時(shí),port_id[7:O]輸入有效數(shù)據(jù)。
3 系統(tǒng)硬件設(shè)計(jì)
圖3為基于PicoBlaze軟核處理器和ML7204編解碼器的單路低速話(huà)音編解碼系統(tǒng)的框圖。

該系統(tǒng)主要由話(huà)音信號(hào)處理、系統(tǒng)邏輯控制、傳輸復(fù)分接、時(shí)鐘處理4個(gè)單元組成。其中,話(huà)音信號(hào)處理單元主要由ML7204和簡(jiǎn)單外圍器件組成,完成模擬話(huà)音信號(hào)與G.729A壓縮編碼信號(hào)之間的相互轉(zhuǎn)換;系統(tǒng)邏輯控制單元由PicoBlaze內(nèi)核組成,完成與ML7204的數(shù)據(jù)傳輸;傳輸復(fù)分接單元由FPGA片內(nèi)邏輯單元組成,完成拆、組幀及并、串轉(zhuǎn)換。時(shí)鐘處理單元為ML7204提供高穩(wěn)定時(shí)鐘信號(hào)。
由話(huà)機(jī)模擬電路輸出的模擬話(huà)音信號(hào)經(jīng)話(huà)音信號(hào)處理單元,實(shí)現(xiàn)PCM編碼、G.729A壓縮編碼,再通過(guò)并行MCU I/F接口輸出速率為8 kHz的G.729A壓縮編碼數(shù)據(jù),系統(tǒng)邏輯控制單元讀取壓縮編碼數(shù)據(jù),并送往傳輸復(fù)分接單元,進(jìn)行組幀、并串轉(zhuǎn)換,終輸出成幀的串行碼流。相應(yīng)地成幀的串行碼流先進(jìn)入傳輸復(fù)分接單元進(jìn)行幀同步檢測(cè),讀取真正的話(huà)音數(shù)據(jù),串并轉(zhuǎn)換后,再傳輸至系統(tǒng)邏輯控制單元,由PicoBl-aze內(nèi)核將并行話(huà)音數(shù)據(jù)發(fā)送至話(huà)音信號(hào)處理單元,話(huà)音數(shù)據(jù)經(jīng)解壓縮、PCM解碼,恢復(fù)模擬話(huà)音信號(hào)。
ML7204的數(shù)據(jù)傳輸采用總線(xiàn)方式,即A[7:0]、D[7:0]分別是8位數(shù)據(jù)、地址總線(xiàn);FROB、FRlB、INTB、CSB、RDB、WRB分別為讀使能、寫(xiě)使能、中斷、片選、讀信號(hào)、寫(xiě)信號(hào)。ML7204有10 ms幀和20 ms幀兩種數(shù)據(jù)幀格式,這里采用10 ms幀格式。ML7204以10 ms為周期全雙工并行工作。每隔10 ms,ML7204拉低讀使能信號(hào)FROB,表示已經(jīng)準(zhǔn)備好完整的一幀數(shù)據(jù),外部PicoBlaze微處理器通過(guò)連續(xù)10次拉低片選信號(hào)CSB、讀信號(hào)RDB讀出一幀數(shù)據(jù)。相應(yīng),每隔10 ms,ML7204拉低寫(xiě)使能信號(hào)FRlB,表示解碼處理新的一幀數(shù)據(jù),外部PicoBlaze微處理器可以通過(guò)連續(xù)10次拉低片選信號(hào)CSB、寫(xiě)信號(hào)WRB寫(xiě)入一幀數(shù)據(jù)。圖4是ML7204電路原理圖。

4 系統(tǒng)軟件設(shè)計(jì)
該系統(tǒng)軟件主要是對(duì)ML7204初始化配置、工作狀態(tài)控制。ML7204的配置方式是修改控制寄存器。工作時(shí),F(xiàn)PGA內(nèi)嵌PicoBlaze內(nèi)核首先對(duì)ML7204復(fù)位,復(fù)位成功后,PicoBlaze內(nèi)核通過(guò)MCU I/F接口修改控制寄存器,設(shè)置其工作方式,包括語(yǔ)音編碼方式、語(yǔ)音信號(hào)幅度、數(shù)據(jù)幀長(zhǎng)度等,F(xiàn)PGA內(nèi)部邏輯處理單元配合PicoBlaze內(nèi)核完成分組語(yǔ)音數(shù)據(jù)的讀寫(xiě)及傳輸。ML7204共有48個(gè)控制寄存器CR0~CR47,分別對(duì)應(yīng)于地址00H~2FH,每個(gè)控制寄存器有8 bit數(shù)據(jù),分別標(biāo)識(shí)不同的配置選項(xiàng)。保留地址80H、81H分別對(duì)應(yīng)分組話(huà)音編解碼數(shù)據(jù)的讀、寫(xiě)地址。圖5為軟件工作流程。

以下給出軟件程序的代碼:

5 結(jié)束語(yǔ)
ML7204是一個(gè)功能強(qiáng)大的語(yǔ)音信號(hào)處理器,可提供多種速率語(yǔ)音編解碼功能,操作方便。PicoBlaze是一個(gè)典型的8位軟核處理器,便于在各種FPGA上實(shí)現(xiàn),設(shè)計(jì)靈活。本文采用PicoBlaze與ML7204協(xié)同工作。構(gòu)建低速率語(yǔ)音通信的編解碼系統(tǒng)。相比傳統(tǒng)的語(yǔ)音編解碼系統(tǒng)設(shè)計(jì)方案,此方案無(wú)需單獨(dú)微處理器、Flash、SDRAM、PCM編解碼等器件,只需單片ML7204和單片小容量FPGA即可完成全部功能,設(shè)計(jì)簡(jiǎn)單、成本低廉、合成語(yǔ)音質(zhì)量高,能有效提高帶寬利用率,在頻帶有限的無(wú)線(xiàn)通信系統(tǒng)中具有較大優(yōu)勢(shì)。
電路設(shè)計(jì)時(shí)需特別注意:考慮模擬信號(hào)與數(shù)字信號(hào)的隔離,應(yīng)減少數(shù)字噪聲對(duì)模擬話(huà)音的干擾,減少背景噪聲。PicoBlaze微處理器初始化配置ML7204的控制寄存器時(shí)會(huì)出現(xiàn)錯(cuò)誤。為避免錯(cuò)誤配置,應(yīng)在每次修改控制寄存器后讀回此控制寄存器的值,并判別是否與預(yù)期一致。若一致則配置下一個(gè)控制寄存器,否則繼續(xù)配置,直到一致為止。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開(kāi)發(fā)實(shí)踐指南2026/1/6 10:40:19
- 嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計(jì)實(shí)踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開(kāi)啟異核通信新時(shí)代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識(shí)2025/7/14 16:59:04
- 編碼器的工作原理及作用1
- 超強(qiáng)整理!PCB設(shè)計(jì)之電流與線(xiàn)寬的關(guān)系2
- 三星(SAMSUNG)貼片電容規(guī)格對(duì)照表3
- 電腦藍(lán)屏代碼大全4
- 國(guó)標(biāo)委發(fā)布《電動(dòng)汽車(chē)安全要求第3部分:人員觸電防護(hù)》第1號(hào)修改單5
- 通俗易懂談上拉電阻與下拉電阻6
- 繼電器的工作原理以及驅(qū)動(dòng)電路7
- 電容單位8
- 跟我學(xué)51單片機(jī)(三):?jiǎn)纹瑱C(jī)串口通信實(shí)例9
- 一種三極管開(kāi)關(guān)電路設(shè)計(jì)10
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開(kāi)關(guān)中的EMI問(wèn)題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見(jiàn)問(wèn)題分析









