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