現(xiàn)代無線通信系統(tǒng)中,,越來越大的業(yè)務(wù)量與越來越少的頻率資源之間的矛盾顯著,,而且以視頻、數(shù)據(jù)為主的通信內(nèi)容使得在分配信道資源時(shí)留給話音業(yè)務(wù)的資源非常有限,,采用G.729A低速率的話音編碼技術(shù)可降低編碼速率,提高頻率利用率,。
ML7204專用語音處理器可提供多種速率的編解碼功能,,包括A律和U律2種不同的PCM和G.729A低速壓縮話音編解碼。該器件內(nèi)置FIF0緩存器,,具有合成語音質(zhì)量高,、抗誤碼性能好等特點(diǎn),并在語音通信,,特別是VoIP系統(tǒng)中應(yīng)用廣泛,?;?051構(gòu)架的開源微處理器內(nèi)核PicoBlaze配合FPGA解決常量編碼可編程狀態(tài)機(jī)(KCPSM)問題,可以使系統(tǒng)同時(shí)具備處理復(fù)雜控制和時(shí)序邏輯的能力,。這里介紹了ML7204的基本性能和工作原理,,微處理器內(nèi)核PicoBlaze的開發(fā)流程及其使用方法,并且給出通過PicoBlaze配置,、控制ML7204實(shí)現(xiàn)單路G.729A語音編解碼的系統(tǒng)設(shè)計(jì)方案,。
1 ML7204功能簡介
ML7204具有如下特點(diǎn):內(nèi)置640字節(jié)FIF0,為數(shù)據(jù)收發(fā)提供緩存,;支持ITU的G.711,、G.729A等分組語音處理標(biāo)準(zhǔn);回音抵消和抑制,、靜音檢測(cè)和舒適噪音等提高分組語音處理性能,;收、發(fā)增益控制,;以數(shù)據(jù),、地址總線方式訪問控制寄存器。
ML7204分組語音處理器件的接口是從硬件連接和功能兩方面考慮,,包括語音、PCM,、中斷,、時(shí)鐘、處理器等接口,。其中,,語音接口(Voice I/F)模擬話音信號(hào)的輸入輸出,內(nèi)置可調(diào)增益放大器和A/D和D/A轉(zhuǎn)換器,;PCM接口(PCM I/F)用于非壓縮語音信號(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ù),、地址總線以及讀、寫使能,、片選信號(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)重置等待處理器配置。處理器通過修改控制寄存器完成器件的初始化配置,;初始化完成后器件進(jìn)入運(yùn)行模式(OperationState),,開始正常運(yùn)行,此時(shí)通過設(shè)置PDNB或控制寄存器的軟復(fù)位信號(hào)使ML7204重新進(jìn)入復(fù)位模式等待初始化,。
2 微處理器內(nèi)核PicoBlaze簡介
PicoBlaze的特點(diǎn)如下:Xilinx公司專為Virtex,、Spartan系列FPGA和CoolRunner系列CPLD設(shè)計(jì)的嵌入式專用8位微處理器IP Core;占用邏輯資源少,,只占96 slices(Sparta-3X(22S200E資源的5%):運(yùn)行速度快,,最高可達(dá)40 MI/s;指令集豐富,,包括邏輯操作,、輸入,輸出,、算術(shù)運(yùn)算等指令,;開源、免費(fèi)的編譯器kcpsm3,。
PicoBlaze微處理器接口從數(shù)據(jù)和控制兩方面考慮,,包括復(fù)位、時(shí)鐘,、讀信號(hào),、寫信號(hào)、數(shù)據(jù)輸入,、數(shù)據(jù)輸出等接口,。如圖2所示。
復(fù)位接口(reset)是異步復(fù)位,、高有效,、清除PicoBlaze內(nèi)核所有狀態(tài),但不清除程序代碼,;時(shí)鐘接口(clk)是輸入主時(shí)鐘,,最高速率35 MHz,;地址總線接口(port_id[7:0])為PicoBlaze內(nèi)核的地址總線,持續(xù)2個(gè)時(shí)鐘節(jié)拍有效,;數(shù)據(jù)總線接口(out_port[7:0])是PicoBlaze內(nèi)核的數(shù)據(jù)總線,,持續(xù)2個(gè)時(shí)鐘節(jié)拍有效;讀信號(hào)接口(read_strobe)是讀脈沖信號(hào),,當(dāng)該信號(hào)為高時(shí),,port_id[7:0]輸出有效數(shù)據(jù);寫信號(hào)接口(write_strobe),,寫脈沖信號(hào),,當(dāng)該信號(hào)為高時(shí),port_id[7:O]輸入有效數(shù)據(jù),。
3 系統(tǒng)硬件設(shè)計(jì)
圖3為基于PicoBlaze軟核處理器和ML7204編解碼器的單路低速話音編解碼系統(tǒng)的框圖,。
該系統(tǒng)主要由話音信號(hào)處理、系統(tǒng)邏輯控制,、傳輸復(fù)分接,、時(shí)鐘處理4個(gè)單元組成。其中,,話音信號(hào)處理單元主要由ML7204和簡單外圍器件組成,,完成模擬話音信號(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),。
由話機(jī)模擬電路輸出的模擬話音信號(hào)經(jīng)話音信號(hào)處理單元,,實(shí)現(xiàn)PCM編碼、G.729A壓縮編碼,,再通過并行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è),,讀取真正的話音數(shù)據(jù),串并轉(zhuǎn)換后,再傳輸至系統(tǒng)邏輯控制單元,,由PicoBl-aze內(nèi)核將并行話音數(shù)據(jù)發(fā)送至話音信號(hào)處理單元,,話音數(shù)據(jù)經(jīng)解壓縮、PCM解碼,,恢復(fù)模擬話音信號(hào),。
ML7204的數(shù)據(jù)傳輸采用總線方式,即A[7:0],、D[7:0]分別是8位數(shù)據(jù)、地址總線,;FROB,、FRlB、INTB,、CSB,、RDB、WRB分別為讀使能,、寫使能,、中斷、片選,、讀信號(hào),、寫信號(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微處理器通過連續(xù)10次拉低片選信號(hào)CSB,、讀信號(hào)RDB讀出一幀數(shù)據(jù),。相應(yīng),每隔10 ms,,ML7204拉低寫使能信號(hào)FRlB,,表示解碼處理新的一幀數(shù)據(jù),外部PicoBlaze微處理器可以通過連續(xù)10次拉低片選信號(hào)CSB,、寫信號(hào)WRB寫入一幀數(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)核通過MCU I/F接口修改控制寄存器,,設(shè)置其工作方式,包括語音編碼方式,、語音信號(hào)幅度,、數(shù)據(jù)幀長度等,最后FPGA內(nèi)部邏輯處理單元配合PicoBlaze內(nèi)核完成分組語音數(shù)據(jù)的讀寫及傳輸,。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)分組話音編解碼數(shù)據(jù)的讀,、寫地址,。圖5為軟件工作流程。
以下給出軟件程序的核心代碼:
5 結(jié)束語
ML7204是一個(gè)功能強(qiáng)大的語音信號(hào)處理器,,可提供多種速率語音編解碼功能,,操作方便。PicoBlaze是一個(gè)典型的8位軟核處理器,,便于在各種FPGA上實(shí)現(xiàn),,設(shè)計(jì)靈活。本文采用PicoBlaze與ML7204協(xié)同工作,。構(gòu)建低速率語音通信的編解碼系統(tǒng),。相比傳統(tǒng)的語音編解碼系統(tǒng)設(shè)計(jì)方案,此方案無需單獨(dú)微處理器,、Flash,、SDRAM、PCM編解碼等器件,,只需單片ML7204和單片小容量FPGA即可完成全部功能,,設(shè)計(jì)簡單、成本低廉,、合成語音質(zhì)量高,,能有效提高帶寬利用率,在頻帶有限的無線通信系統(tǒng)中具有較大優(yōu)勢(shì),。
電路設(shè)計(jì)時(shí)需特別注意:考慮模擬信號(hào)與數(shù)字信號(hào)的隔離,,應(yīng)減少數(shù)字噪聲對(duì)模擬話音的干擾,減少背景噪聲,。PicoBlaze微處理器初始化配置ML7204的控制寄存器時(shí)會(huì)出現(xiàn)錯(cuò)誤,。為避免錯(cuò)誤配置,,應(yīng)在每次修改控制寄存器后讀回此控制寄存器的值,并判別是否與預(yù)期一致,。若一致則配置下一個(gè)控制寄存器,,否則繼續(xù)配置,直到一致為止,。