AC-Link數(shù)字音頻VHDL編解碼的FPGA設計_第1頁
AC-Link數(shù)字音頻VHDL編解碼的FPGA設計_第2頁
AC-Link數(shù)字音頻VHDL編解碼的FPGA設計_第3頁
AC-Link數(shù)字音頻VHDL編解碼的FPGA設計_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、    AC-Link數(shù)字音頻VHDL編/解碼的FPGA設計摘要:提出一種利用FPGA實現(xiàn)AC-Link數(shù)字音頻處理的設計方案.AC-Link音頻編解碼系統(tǒng)以VHDL模塊進行設計,經(jīng)過波形仿真和結果驗證后,將程序下載到FPGA中實現(xiàn)1這種設計方法可以縮短設計周期,提高設計的可靠性和效率。關鍵詞:AC-LinG;音頻編/解碼;FPGA;VHDL0引言數(shù)字音頻處理是指為真實再現(xiàn)聲音的逼真效果而對音頻進行的編解碼處理技術,它是寬帶網(wǎng)絡多媒體、移動多媒體通信的關鍵技術.AudioCodec97(音頻數(shù)字信號編/解碼器)是其中一種用摘要:提出一種利用FPGA實現(xiàn)A

2、C-Link數(shù)字音頻處理的設計方案.AC-Link音頻編解碼系統(tǒng)以VHDL模塊進行設計,經(jīng)過波形仿真和結果驗證后,將程序下載到FPGA中實現(xiàn)1這種設計方法可以縮短設計周期,提高設計的可靠性和效率。關鍵詞:AC-LinG;音頻編/解碼;FPGA;VHDL0引言        數(shù)字音頻處理是指為真實再現(xiàn)聲音的逼真效果而對音頻進行的編解碼處理技術,它是寬帶網(wǎng)絡多媒體、移動多媒體通信的關鍵技術.Audio Codec97(音頻數(shù)字信號編/解碼器)是其中一種用于聲音錄放的技術標準,簡稱AC97. AC97采用雙集成結構,即Digita

3、l Controller(數(shù)字信號控制器)和Audio Codec(音頻編解碼),使模/數(shù)轉換器ADC和數(shù)?模轉換器DAC轉換模塊獨立,盡可能降低EMI(電磁干擾)的影響。        利用FPGA,可以實現(xiàn)復雜的邏輯控制,對大量音頻數(shù)據(jù)做并行處理.FPGA提供可編程時鐘發(fā)生器,滿足音視頻處理要求的時鐘范圍寬、相位抖動(Phase Jitter)小的要求,并為系統(tǒng)提供可控延時。1AC-Link音頻編/解碼原理        AC-Link是連接Digit

4、al Controller和Audio Codec的5線串行時分多路I/O接口,固定時鐘頻率48kHz由串行位時鐘12.288MHz經(jīng)256分頻而來,支持一個控制器和最多4個編碼器. AC-Link只能傳輸48kHz固定取樣率的PCM(脈沖編碼調制)信號,字長從16Bit到20Bit,其它取樣率的PCM信號須經(jīng)過SRC(取樣率轉換)轉換成48kHz。        AC-Link接口時序如圖1所示,輸入輸出音頻數(shù)據(jù)和控制寄存器的讀寫命令組織在一幀里,一個輸入或輸出分割成12個時隙,每個時隙為20位采樣分辨率.控制器把12.2

5、88MHz時鐘256分頻,產(chǎn)生一個SYNC信號,此信號用于標志一個輸入(輸出)幀的開始。圖1雙向AC-Link數(shù)據(jù)幀及時隙分配        由圖1可知,每個輸入(輸出)幀除了有12個20位的數(shù)據(jù)/命令(數(shù)據(jù)/狀態(tài))復用時隙外,還有一個特殊的16位的幀首時隙,此時隙主要用來標志此幀是否可用,如果此幀可用,那么此幀中對應時隙中為有效數(shù)據(jù)。         如圖2所示,PCM通過抽樣、量化、編碼三個步驟將連續(xù)變化的模擬信號轉換為數(shù)字編碼,PCM編碼是

6、最高保真水平編碼,音質好但體積大.AC-Link能夠傳輸48KHz固定取樣率的PCM信號,字長可以從16Bit到20Bit,其它取樣率的PCM信號必須先經(jīng)過SRC(SampleRate Conversion,取樣率轉換)轉換成48KHz。圖2AC-Link音頻編?解碼過程        如果PCM信號的字長低于DAC的,那么Controller會自動將PCM信號進行移位,使其MSB( Most Significant Bit,最高有效位)對齊,低位補0.如果PCM信號的字長高于DAC的,那么必須先通過Dither(抖動)降低

7、字長后或者直接就經(jīng)過AC-Link接口傳輸?shù)紺odec,如果DAC字長不夠AC-Link接口的高,那么它會自動將AC-Link接口超過字字長的LSBs(Least Significant Bit,最低有效位)去掉.DAC輸出的是階梯狀或者是脈沖狀信號,還必須經(jīng)過LPF(Low Pass Filter,低通濾波器)濾波整形恢復為原來的音頻信號。2FPGA音頻編/解碼系統(tǒng)結構         FPGA音頻編/解碼系統(tǒng)以ACEX1K和AD1881芯片為核心,如圖3所示。圖3FPGA音頻編/解碼系統(tǒng)圖  

8、;      ACEX1K-FPAG有147個用戶可用I/O,系統(tǒng)門數(shù)最多257000,邏輯門100000.內部有4992個邏輯單元(LE),有12個嵌入式存儲塊(EAB),即49125位雙口RAM.使用EAB構成的RAM、ROM、雙口RAM和FIFO等結構可大大提高基于查找表(LUT)的算術運算、數(shù)字信號處理性能.在AC-Link音頻編解碼系統(tǒng)中,FPGA控制模塊根據(jù)后向控制流,為音頻編碼模塊提供多路幀同步信號。         AD1881是A/D、D/A接口芯

9、片,支持AC97標準接口,實現(xiàn)全雙工16位立體聲的音頻編?解碼,采樣率7K48KHz.系統(tǒng)復位完成FPGA 程序加載后,由FPGA的I2C總線模塊對AD1881初始化,初始化結束后等待采集命令.初始化成功后,AD1881實時處理模擬音頻信號。         用FPGA實現(xiàn)AC-Link聲卡的D/A變換功能所需要的資源并不多,用一片ACEX1K100芯片做D/A轉換,只消耗了30%左右的資源,在具體應用中,有時并不需要校驗位及出錯信號,則占用系統(tǒng)資源更少。3AC-Link音頻編/解碼的VHDL設計 

10、60;       FPGA中的AC音頻編/解碼設計是通過VHDL編程實現(xiàn)的.VHDL是一種應用非常廣泛的硬件描述語言,它的語言覆蓋面廣,描述能力強;可以描述最抽象的系統(tǒng)級,也可以描述最精確的邏輯級、門級. AC-Link系統(tǒng)采用結構化VHDL進行設計的整個系統(tǒng)是一個VHDL語言文件,包括幾個BLOCK語言.下面分別介紹各模塊實現(xiàn)的功能。(1)sreg1.vhd,調用一個并行輸入、串行輸出的模塊,模塊的核心程序如下:if(clkevent and clk=1)then 時鐘下降沿if(s1=0)then S1并行輸入允許tmpreg&

11、lt;=datain;elsefor i in sreg_width-1 down to 1 loop 串行移位輸出tmpreg(i)<-tmpreg(i-1);and loop;tmpreg(0)<=se;程序中,S1用來為sreg模塊作為并行輸入允許端.該信號在每個時隙的第一個數(shù)據(jù)位時出現(xiàn),在此時,該時隙的數(shù)據(jù)被置入sreg模塊,然后該模塊開始串行移位輸出,以后的各個時隙也按此過程工作。(2)調用并行輸入、串行輸出模塊,設計AC-Link.vhd.AC-Link的D/A轉換控制器向編碼器寫數(shù)據(jù),然后這些數(shù)據(jù)D/A轉換成模擬信號,最后經(jīng)功放輸出程序中對時隙的分配是采用IF_THE

12、N_ELSEIF_THEN_ELSE_ENDIF語句實現(xiàn),當計數(shù)器小于16時是第0時隙,以后每隔20個計數(shù)為一個時隙.使用CASE語句在不同時隙,輸出賦以相應的數(shù)據(jù)。對于AC-Link輸入幀,如果控制器想從編碼器讀取數(shù)據(jù)或狀態(tài),就在bit_clk的上升沿把SYNC置高,編碼器在bit_clk下降沿采樣到 SYNC變化,然后在上升沿開始發(fā)送數(shù)據(jù).控制器在每個bit_clk的下降沿采樣數(shù)據(jù),同時SYNC保持16個bit_clk周期的高電平。對于AC-Link輸出幀,如果控制器要向編碼器輸出數(shù)據(jù)或命令時,則在bit_clk的上升沿先把SYNC置高,然后在每一個bit_clk的上升沿發(fā)送一位數(shù)據(jù),SY

13、NC與bit_clk的上升沿同步.編碼器在bit_clk的下降沿采樣到SYNC的變化,由此編碼器知道控制器要與它通信,在下一個 bit_clk的下降沿編碼器開始采樣數(shù)據(jù),此后每一個bit_clk的下降沿采樣一位數(shù)據(jù).控制器發(fā)送數(shù)據(jù)是在bit_clk的上升沿,而編碼器采樣數(shù)據(jù)是在bit_clk的下降沿.同時SYNC也要保持16個bit_clk周期的高電平。下列程序用于產(chǎn)生16個的bit_clk周期的高電平的SYNC信號,SYNC是bit_clk的256分頻,有16個周期是高電平,其余時間是低電平。if(conv_integer(counter)<16)thensync<=1;counter:=counter+1;elsesync<=0;counter:=counter+1;endif;進行VHDL設計時,最好各模塊單獨進行并及時仿真驗證,以便盡早發(fā)現(xiàn)問題.系統(tǒng)中其它模塊在此不再敘述.圖4AC-Link輸出仿真圖        AC-Link接口的仿真圖如圖4所示,實現(xiàn)了其D/A轉換功能,仿真通過以后,可將程序下載到FPGA中實現(xiàn),同時直接與通令機連接起來進行調試,并利用計算機進行調試獲得成功,計算機的通信軟件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論