吳昊,黃華燦
(華僑大學(xué)信息科學(xué)與工程學(xué)院,福建泉州362021)
利用FPGA的數(shù)字語音系統(tǒng)的設(shè)計與實現(xiàn)
吳昊,黃華燦
(華僑大學(xué)信息科學(xué)與工程學(xué)院,福建泉州362021)
采用基于AMBE算法的專用語音壓縮編/解碼芯片,設(shè)計并實現(xiàn)一種基于FPGA的語音壓縮編/解碼系統(tǒng).整個控制程序包括復(fù)位及時鐘分頻程序、發(fā)送端控制程序和接收端控制程序3個功能模塊,控制程序的接收端和發(fā)送端都使用先進(jìn)先出(FIFO)電路存儲器.仿真結(jié)果表明,控制程序能夠完成相應(yīng)的功能,符合設(shè)計的目的和要求.
語音壓縮;芯片;控制程序;現(xiàn)場可編程門陣列;先進(jìn)先出存儲電路
通過FPGA對語音專用壓縮芯片進(jìn)行控制,可使得設(shè)計的語音壓縮系統(tǒng)[1]具有碼率較低、編碼速率可選擇的特點.此外,可以通過修改FPGA中控制程序,進(jìn)一步調(diào)整系統(tǒng)的碼率等.在實際的語音通信中,為了語音質(zhì)量滿足實際的通話要求,本文設(shè)計與實現(xiàn)一種基于FPGA的數(shù)字語音系統(tǒng).
系統(tǒng)選用美國Xilinx公司的FPGA產(chǎn)品[2]中Spartan-Ⅱ系列的XC2S100.其門數(shù)為10萬門,有兩組工作電壓:內(nèi)核工作電壓為2.5 V,外部工作電壓為3.3 V.整個系統(tǒng)包括M icro Phone,編譯碼器(CODEC,A/D和D/A轉(zhuǎn)換器)、編/解碼專用芯片、控制芯片F(xiàn)PGA[2]、集成運放、Earphone,以及晶振、電源等元器件.系統(tǒng)為全雙工工作方式[3],其編解碼過程是并行完成的.整個系統(tǒng)的原理如圖1所示.
圖1 系統(tǒng)組成框圖Fig.1 Block diagram system
話音經(jīng)M icro Phone后得到模擬信號,通過CODEC將模擬信號進(jìn)行A/D變換得到脈沖編碼調(diào)制(PCM)信號,并送入語音芯片進(jìn)行編碼.輸出的語音編碼信號是具有一定幀格式的連續(xù)幀的數(shù)字信號.然后,控制芯片F(xiàn)PGA接收語音編碼信號進(jìn)行控制處理,即去掉該幀純語音數(shù)據(jù)前的系統(tǒng)幀頭并加上信道幀頭.最后,將處理后的語音編碼信號送到信道加以傳輸.
控制芯片F(xiàn)PGA接收信道傳來的編碼信號,將其去掉信道幀頭并在純語音數(shù)據(jù)前加上系統(tǒng)幀頭,然后,發(fā)送到語音芯片進(jìn)行解碼.解碼后的PCM再由CODEC進(jìn)行D/A變換得到語音模擬信號,并經(jīng)過音頻功放送到耳機.通過在FPGA中作相應(yīng)的控制及修改PFGA中的控制程序,可以調(diào)整系統(tǒng)的碼率,以降低傳輸碼率.這種效果是直接傳輸難以達(dá)到的.
圖2 時鐘信號Fig.2 Clock signal
整個控制程序包括復(fù)位及時鐘分頻程序、發(fā)送端控制程序和接收端控制程序3個功能模塊.控制程序的接收端和發(fā)送端都使用了先進(jìn)先出(First In First Out,FIFO)電路存儲器.來自主芯片的已編碼幀是高速率(512 kbit·s-1)的,但它不是連續(xù)的數(shù)據(jù)流,而是周期性(每次20 m s)間斷出現(xiàn)的,沒有數(shù)據(jù)幀時全為零.為此,需要將到來的每幀數(shù)據(jù)(去幀頭后)暫存于FIFO中,并且用4 k Hz的低速率時鐘,將FIFO中的存儲數(shù)據(jù)連續(xù)地發(fā)送出去.
由于512 kbit·s-1的高速已編碼幀在去除幀頭后,其1 s內(nèi)速率平均值正好是4 kbit·s-1,因此用4 k Hz時鐘發(fā)送數(shù)據(jù),可實現(xiàn)FIFO輸入、輸出的動態(tài)平衡.即FIFO既不會溢出也不會讀空.通過以上過程,可以將高速但不連續(xù)的幀數(shù)據(jù)變?yōu)榈退俚B續(xù)的數(shù)據(jù)流發(fā)送到信道,實現(xiàn)低碼率的傳輸.
2.1 復(fù)位及時鐘分頻程序
系統(tǒng)上電后,按照順序?qū)ODEC和主芯片進(jìn)行復(fù)位.先由FPGA產(chǎn)生一個負(fù)脈沖,送至CODEC,此后,CODEC的復(fù)位腳一直保持高電平.以同樣方式對主芯片進(jìn)行復(fù)位操作,主芯片復(fù)位完成后即向CODEC的SD I口發(fā)送控制字.設(shè)定采樣頻率及幀同步信號頻率,使其按照主芯片的要求工作.
主芯片和CODEC的主時鐘都是16.384 M Hz.系統(tǒng)工作時,還需要一些其他的時鐘信號,而這些時鐘信號都是在FPGA中采用計數(shù)器對主時鐘分頻后得到.各時鐘信號如圖2所示.
復(fù)位及時鐘分頻程序仿真波形,如圖3所示.其中,MCL K1684是16.384 M Hz的主時鐘,TX_ CL K和RX_CL K分別是512 k Hz的發(fā)送時鐘和接收時鐘,4 k Hz是在傳輸信道上傳輸信號的時鐘.
圖3 復(fù)位及時鐘分頻程序仿真波形Fig.3 Simulation wavefo rm of the reposition and clock division
2.2 發(fā)送端控制程序[5]
在發(fā)送端,每20 m s都有一幀來自主芯片的已編碼的數(shù)據(jù)送到FPGA.在FPGA中,使用移位寄存器檢測幀頭中的Header(同步碼,長度為16 bit,十六進(jìn)制為13EC).若檢測到該同步碼,則輸出一個有效高電平,使計數(shù)器A開始對TX_CL K計數(shù).
由于每來一個TX_CL K,時鐘升沿對應(yīng)1 bit數(shù)據(jù),故計數(shù)器的長度應(yīng)為12個字,192位.計數(shù)完畢則表示幀頭已經(jīng)完畢,進(jìn)入語音數(shù)據(jù)區(qū).此時,將FIFO的寫使能變?yōu)橛行?開始把語音數(shù)據(jù)寫入FIFO中.將計數(shù)器A清零,同時啟動計數(shù)器B,對TX_CL K進(jìn)行新的計數(shù).以上是跳過幀頭而只寫入語音數(shù)據(jù),即去除幀頭.
由于編碼速率選擇的是4 kbit·s-1,此時每幀中的語音數(shù)據(jù)的長度為5個字,80位.因此,計數(shù)器B計數(shù)值到80時,表示語音數(shù)據(jù)已經(jīng)全部寫入FIFO中.此時,將計數(shù)器B清零,完成一幀的處理;隔20 m s后下一幀到來,再重復(fù)上述過程.
當(dāng)FIFO半滿時,WR_COUN T變?yōu)橛行Ц唠娖?它將FIFO的讀使能變?yōu)橛行Ц唠娖?此時,開始將FIFO存儲的數(shù)據(jù)用4 k Hz的時鐘讀出并發(fā)送.
發(fā)送端控制程序流程圖及仿真波形,如圖4,5所示.圖5中:CO_FRAM E是已編碼幀的波形,作為仿真時要輸入的激勵信號;HEADERWREN為存儲已編碼幀,作為本地幀頭到FIFO的寫使能信號; DA TARWR_EN為存儲語音數(shù)據(jù)FIFO的寫使能信號;RD_EN1是從該FIFO讀出數(shù)據(jù)的讀使能信號; LOWDA TAOU T則是最后發(fā)送的4 kbit·s-1的低碼率數(shù)據(jù).
仿真時,設(shè)置激勵信號幀數(shù)據(jù)CO_FRAM ED的第13字至第17字(即5個字,80 bit的語音數(shù)據(jù))十六進(jìn)制表示為:EE00,FF00,FF00,FF00,F0DD,如圖3所示.從圖5可以看出,發(fā)送的數(shù)據(jù)輸出LOWDA TAOU T與這5個字的語音數(shù)據(jù)完全相同,只是速率降低為4 kbit·s-1,程序無誤.
圖4 發(fā)送端控制程序流程圖Fig.4 Flow chart of the control p rogramme in sender
圖5 發(fā)送端控制程序仿真波形Fig.5 Simulation wavefo rm of the control p rogramme in sender
2.3 接收端控制程序[5]
FPGA接受來自信道的4 kbit·s-1的連續(xù)數(shù)據(jù)流,并將該語音數(shù)據(jù)流存儲到FIFO中.為了重新組幀,在接收程序中,還要產(chǎn)生一個本地幀頭,它可以另行產(chǎn)生.因為主芯片是全雙工的,可以同時編碼和解碼,也可以把已編碼幀中的幀頭暫存后作為本地幀,程序中實際使用的就是此方法.
作相應(yīng)控制,每20 m s(通過分頻得到一個50 Hz的信號實現(xiàn))一次,先用512 k Hz的時鐘RX_CL K讀出暫存的本地幀頭,讀完后,立刻(仍用RX_CL K)從FIFO中讀出80 bit語音數(shù)據(jù)(同發(fā)送程序中一樣,也是通過計數(shù)實現(xiàn)).這樣就重新組合成一個格式與已編碼幀相同,完整的待解碼數(shù)據(jù)幀,將其送至主芯片進(jìn)行解碼.
需要注意的是,RX_STRB要與輸入主芯片的待解碼幀同步,即滿足圖5中所示的時序關(guān)系才能夠正確解碼.這是由于主芯片采用的是主動模式,RX_STRB是直接連接到tx_strb的,二者為同一個信號.為此,需要作相應(yīng)處理,使得在RX_STRB的升沿時才開始組合一幀數(shù)據(jù),以完成同步.以上過程每20 m s重復(fù)一次,即恢復(fù)各待解碼幀,完成解碼.
接收端控制程序流程圖及仿真波形,如圖6,7所示.圖7中:LOWDA TA IN是接收到的4 kbit· s-1低碼率語音數(shù)據(jù)流;RD_EN2是存儲語音數(shù)據(jù)的FIFO的寫使能信號,該信號為有效高電平時,從FIFO中讀出語音數(shù)據(jù)(80 bit);DE_FRAM E為重組后得到的待解碼幀.由于主芯片采用的是主動模式, RX_STRB直接連接到TX_STRB,二者是同一信號,該信號與重組得到的待解碼幀DE_FRAM E同步時,才能正確解碼(為了方便觀察,一些顯示狀態(tài)的中間信號未在圖中列出.).
比較發(fā)現(xiàn),圖7中的待解碼幀DE_FRAM E與
圖6 接收程序流程圖Fig.6 Flow chart of the receiving p rogramme
圖5 中的已編碼幀CO_FRAM E波形完全相同.這表明,發(fā)送端產(chǎn)生的編碼幀經(jīng)過控制程序的去幀頭、暫存、傳輸,以及在收端加幀頭和重組后,能夠無誤地恢復(fù)出來;收端的主芯片解碼,完成了語音壓縮(低碼率傳輸語音信息).
圖7 接收端控制程序仿真波形Fig.7 Simulation waveform of the control p rogramme in receiver
整個系統(tǒng)為全雙工,由獨立硬件電路實現(xiàn),在實際的語音通信中,語音質(zhì)量可滿足實際的通話要求.通過復(fù)位及時鐘分頻程序、發(fā)送程序和接收程序3個功能模塊的仿真結(jié)果可以看出,整個控制程序能夠完成相應(yīng)的功能,符合設(shè)計的目的和要求.系統(tǒng)兼?zhèn)涮幚硭俣瓤炫c設(shè)計實現(xiàn)靈活的優(yōu)點,而且成本低,使用靈活,具有較廣的應(yīng)用范圍.
[1] RICHARD V C,CANDANCE A K.Speech and language p rocessing for next-millennium communication services [J].Proc of IEEE,2000,88(8):1414-1337.
[2] 褚振勇,翁木云.FPGA設(shè)計與應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2002.
[3] 王秉鈞,孫學(xué)軍.現(xiàn)代通信系統(tǒng)原理[M].北京:國防工業(yè)出版社,2001.
[4] 林順達(dá),蘇武潯.M?bius變換在模擬通信中的應(yīng)用與仿真[J].華僑大學(xué)學(xué)報:自然科學(xué)版,2006,27(1):108-111.
[5] 侯伯亨,顧新.V HDL硬件描述語言與數(shù)字邏輯電路設(shè)計[M].西安:西安電子技術(shù)大學(xué)出版社,1999.
Design and Im plemen tation of a Speech Com pression System Based on PFGA
WU Hao,HUANG Hua-can
(College of Info rmation Science and Engineering,Huaqiao University,Quanzhou 362021,China)
Adop ting a special speech comp ression encoder/decoder chip based on AMBE algo rithm,this paper designs and imp lements a FPGA-based speech comp ression encoding/decoding system.The w hole control p rogram include three function modules,those are reset and clock frequency,the transmitter and receiver control p rogram.The receiver and transmitter of control p rocedures use the FIFO memo ry circuit.The simulation results show that,the control p rogram can comp lete the co rresponding function,and meet the purposes and requirements of design.
speech comp ression;chip;control p rogram;field-p rogrammable gate array;first in first outmemory circuit
TN 912.3
A
(責(zé)任編輯:陳志賢 英文審校:吳逢鐵)
1000-5013(2010)06-0641-04
2009-04-17
黃華燦(1948-),男,教授,主要從事視頻處理與傳輸及專用集成電路設(shè)計的研究.E-mail:hchuangqz@yahoo.com.cn.
福建省科技計劃項目(2006T0006);福建省泉州市科技計劃項目(2006G3)