ML7204和PicoBlaze軟核處理器實(shí)現(xiàn)低速話音編解碼系統(tǒng)
ML7204專用語(yǔ)音處理器可提供多種速率的編解碼功能,包括A律和U律2種不同的PCM和G.729A低速壓縮話音編解碼。該器件內(nèi)置FIF0緩存器,具有合成語(yǔ)音質(zhì)量高、抗誤碼性能好等特點(diǎn),并在語(yǔ)音通信,特別是VoIP系統(tǒng)中應(yīng)用廣泛?;?051構(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ù)、地址總線方式訪問(wèn)控制寄存器。
ML7204分組語(yǔ)音處理器件的接口是從硬件連接和功能兩方面考慮,包括語(yǔ)音、PCM、中斷、時(shí)鐘、處理器等接口。其中,語(yǔ)音接口(Voice I/F)模擬話音信號(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ě)使能、片選信號(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ù)位模式等待初始化。本文引用地址:http://www.ex-cimer.com/article/157314.htm
2 微處理器內(nèi)核PicoBlaze簡(jiǎn)介
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)算等指令;開(kāi)源、免費(fèi)的編譯器kcpsm3。
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;地址總線接口(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ù);寫(xiě)信號(hào)接口(write_strobe),寫(xiě)脈沖信號(hào),當(dāng)該信號(hào)為高時(shí),port_id[7:O]輸入有效數(shù)據(jù)。
評(píng)論