FPGA畢業設計之數字音頻信號接收與還原系統(2)

上一篇文章給大家介紹了基於FPGA的數字音頻接收與還原系統的整體架構,相信看過的朋友都知道這個畢業設計大概要做的是什麼。今天繼續圍繞這個畢業設計做一個詳細的介紹!

源信號放大電路

大家如果有看過前面的介紹就知道這個設計裡的音頻數據源信號來自小米盒子,而實際上小米盒子輸出來的信號幅值非常小,峰值大概只有500mv左右,如果這個信號直接輸到FPGA是無法識別的。因此,需要在小米盒子和FPGA之間加一個信號放大電路,本設計中使用了74HC04作為信號放大器芯片,電路原理圖如下:

FPGA畢業設計之數字音頻信號接收與還原系統(2)

74HC04內部實際是兩個反向器,信號經過兩個反向器後的時序不變,但是信號峰值卻被放大了。

FPGA的控制邏輯設計

整個數字信號接收系統的控制部分由FPGA完成,由於SPDIF傳輸的是數字信號,FPGA完全能夠勝任完成對信號的控制和轉化。下圖是其中的部分verilog代碼:

FPGA畢業設計之數字音頻信號接收與還原系統(2)

verilog設計過程中使用modelsim軟件做時序功能仿真,modelsim是FPGA設計過程中非常有用的工具:

FPGA畢業設計之數字音頻信號接收與還原系統(2)

verilog代碼寫好後,用quartus軟件綜合生成的數字電路結構如下所示:

FPGA畢業設計之數字音頻信號接收與還原系統(2)

DAC數字音頻信號轉模擬信號

音頻信號的來源以及最終呈現形式都是模擬信號,也就是我們日常聽到的聲音其實是模擬信號。之所以中間的傳輸過程是數字信號的形式,是因為數字信號在傳輸過程中不會因為環境干擾或者其它因素而丟失或者失真,也就是可靠性高!

下面附上一張模擬信號轉成數字信號的過程示意圖:

FPGA畢業設計之數字音頻信號接收與還原系統(2)

而數字信號到模擬信號的轉變就上圖的逆過程。

本設計中由於FPGA智能做數字電路設計,對於AD/DA這些就無能為力了,所以需要外掛一個DA轉換芯片。這裡選擇的DA芯片型號是WM8988音頻處理芯片。這顆芯片是通過I2S通信接口配置以及輸入數據,並把音頻數據轉換成模擬信號輸出的音頻主控芯片。

WM8988的芯片內部結構如下圖所示:

FPGA畢業設計之數字音頻信號接收與還原系統(2)

設計者需要搭建一個可以驅動這顆芯片的硬件電路模塊,這裡提供一個電路原理圖,感興趣的同學可以作為研究參考:

FPGA畢業設計之數字音頻信號接收與還原系統(2)

除此之外,FPGA作為整個系統的控制中心,還需要做一個控制WM8988的數字電路模塊,產生配置這顆芯片的信號時序,以及通過I2S接口傳輸數據的接口。

驗證與調試過程的時序波形

在電路設計過程中難免會有信號仿真與實測波形debug,下面是設計過程中的部分測試波形。

FPGA畢業設計之數字音頻信號接收與還原系統(2)

上圖是spdif輸出模塊的仿真波形,模擬小米盒子輸出的元數據信號波形。

I2S接口協議的時序波形如下圖所示:

FPGA畢業設計之數字音頻信號接收與還原系統(2)

具體的I2S接口協議大家可以自行到網上查詢,很容易查到,在此就不展開闡述了。

SPDIF信號在硬件電路上用示波器量出來的波形如下所示:

FPGA畢業設計之數字音頻信號接收與還原系統(2)

這裡的SPDIF信號是直接測量小米盒子的輸出端看到的,可見其信號幅值只有0.5v左右,非常小。

經過74HC04放大處理後的波形圖如下所示,可見幅值已經變成3V以上,測試FPGA是可以採樣到的。

FPGA畢業設計之數字音頻信號接收與還原系統(2)

SPDIF接口的實物圖如下所示,是一個同軸的音頻接口,只需要一根線,非常簡單節省成本!

FPGA畢業設計之數字音頻信號接收與還原系統(2)

在這個設計過程中涉及到的相關技術知識是非常廣泛的,包括音頻信號的理論基礎知識、硬件電路的基礎知識、FPGA設計知識、相關接口協議(SPDIF接口、I2S接口)、工具使用知識(modelsim、quartus、audition、gvim等)、硬件調試技巧等等。因此,完成這項畢業設計的過程能夠讓你學習到非常多的技術知識,當然這項畢業設計當時也是拿到了一個不錯的成績!

FPGA畢業設計之數字音頻信號接收與還原系統(2)

最後總結一下在這整套設計過程中的3GE 關鍵環節:

1.S/PDIF信號能夠被成功的檢測與接收下來。

2.FPGA控制時序能夠正確的配置PWM8988芯片讓其工作在合適的模式下。

3.能夠按照正確的時序通過I2S接口給DAC模塊發送音頻數據。

關於這個數字音頻信號接收與還原系統已經全部介紹完畢,感興趣或者有疑問的朋友歡迎在評論區留言提問,或者私信我進行交流!

如果看完覺得不錯,請點贊轉發一下文章,謝謝!


分享到:


相關文章: