符敏
摘要近幾年,嵌入式數(shù)字音頻產(chǎn)品受到越來越多消費者的青味。數(shù)字語音Ic與嵌入式單片機相結合,設計更靈活。體積小、擴展能力強,利用Verilog HDL硬件描述語言開發(fā)的基于FPGA的音頻編解碼芯片控制器,通過有限序列沖激響應FIR數(shù)字濾波器進行濾波處理,以獲得高質(zhì)量的音頻信號。
關鍵詞音頻信號;WM8731S;先入先出存儲器
中圖分類號TP3
文獻標識碼A
文章編號2095-6363(2017)04-0095-02
1.概述
1.1論文研究的目的及意義
目前用VHDL進行電路設計,可以經(jīng)過綜合與布局,燒錄至FPGA上進行測試,是硬件集成電路設計驗證的技術主流。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件,是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。數(shù)字語音集成電路與嵌入式微處理器相結合,首先降低了產(chǎn)品研發(fā)成本,其次系統(tǒng)更小、耗電低,況且使設計更簡單,電路擴展方便且體積小,應用前景更廣,如無人駕駛、5G技術、消費電子產(chǎn)品、排隊機、報警以及報站器等。
1.2系統(tǒng)總體設計方案
FPGA的開發(fā)相對于傳統(tǒng)Pc、單片機的開發(fā)有很大不同,F(xiàn)PGA的邏輯是通過向內(nèi)部靜態(tài)存儲單元加載編程數(shù)據(jù)來實現(xiàn)的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/0間的聯(lián)接方式,并最終決定了FPGA所能實現(xiàn)的功能,F(xiàn)PGA允許無限次的編程。FGPA芯片對WM8731進行控制,使得WM8731對音頻信號進行濾波處理。隨著百萬門級FPGA的推出單片系統(tǒng)成為可能。為了支持SOPE的實現(xiàn)方便用戶的開發(fā)與應用altera還提供了眾多性能優(yōu)良的宏模塊、IP核以及系統(tǒng)集成等完整的解決方案。這些宏功能模塊、IP核都經(jīng)過了嚴格的測試使用這些模塊將大大減少設計的風險縮短開發(fā)周期并且可使用戶將更多的精力和時間放在改善和提高設計系統(tǒng)的性能上而不是重復開發(fā)已有的模塊。
2.系統(tǒng)的處理
2.1本音頻信號處理系統(tǒng)
本音頻信號處理系統(tǒng)以WM8731芯片為處理平臺,以FPGA芯為控制中心,控制音頻解編碼芯片WM8731對輸入的音頻信號進行濾波處理,以獲得高品質(zhì)的音頻數(shù)字信號,再將高品質(zhì)的音頻數(shù)字信號輸出到信號接收端。由音頻編解碼模塊電路、控制器模塊、時鐘分頻模塊、I2c時序接口模塊、I2c控制字配置模塊、I2s時序接口及音頻數(shù)據(jù)處理模塊、FIFO先進先出存儲器設計、帶通數(shù)字濾波設計8部分構成。
2.2各部分電路原理
1)時鐘分頻模塊由于要使WM8731工作,此主時鐘頻率依照該芯片工作的不同模式有12.288MHz、18.432MHz、11.2896MHz以及16.9344MHz這4中頻率可選。
2)I2c時序接口模塊。實現(xiàn)對I2c時序的模擬,控制SCLK(數(shù)據(jù)時鐘)和SDAT(數(shù)據(jù)線)將存放在I2c_data中的24位控制字串行發(fā)送給W~8731,該模塊例化于I2c控制字配置模塊之中,以實現(xiàn)對該芯片的控制字寫入。
3)I2c控制字配置模塊。分別為:MODE、CSB、SDIN和SCLK。對應功能為控制接口選擇線、片選或地址選擇線、數(shù)據(jù)輸入線和時鐘輸入線。它具有2線和3線兩種模式。本文采用2線模式對WM8731進行控制。為MPU接口。選擇MODE為0時為2線模式。
4)I2s時序接口及音頻數(shù)據(jù)處理模塊。將18.432MHz的主時鐘分頻,產(chǎn)生均為48kHz的數(shù)模轉換和模數(shù)轉換采樣率時鐘以及對應的數(shù)字音頻時鐘(BELK)。除此之外,在此模塊中還調(diào)用了I2s串行數(shù)據(jù)轉并行數(shù)據(jù)模塊,并定義變量state作為串并變換的起始標志。
5)FIFO先進先出存儲器,是一種非?;?,使用非常廣泛的模塊。
3.系統(tǒng)的軟件設計及調(diào)試
軟件分為控制器模塊程序、時鐘分頻模塊、I2c總線時序模塊、12S時序接口及音頻數(shù)據(jù)處理模塊。本系統(tǒng)是基于FPGA的音頻編解碼芯片控制器,用以實現(xiàn)對語音芯片WM8731的控制。在整個系統(tǒng)中,用到了標準MIC、Line-in、Line-out接口、2個開關按鍵以及3個按鈕式按鍵。FPGA器件主要通過12C總線給語音芯片WM8731經(jīng)行控制字配置。初始化完成后,音頻數(shù)據(jù)從MIC或LineIn輸入,經(jīng)過A/D轉換后,數(shù)字信號再進入FIFO,再經(jīng)過FIR數(shù)字濾波處理,之后成為串行的數(shù)字信號并由12S總線傳入FPGA器件。經(jīng)過串并變換等處理之后,再經(jīng)過D/A轉換由LineOut通過耳機輸出。在調(diào)試過程中,始終選擇主模式,DACSEL始終置為數(shù)字信號輸出。在測試中,WM8731能夠輸出高品質(zhì)的音頻信號。
寫入相對簡單,只需要在時鐘上升沿來臨之時使能wrreq和寫入data,當然還需要判斷FIFOfull信號。時序圖如下,在第一個時鐘之前使能wrreq信號,在第一個時鐘及以后的幾個時鐘上升沿FIFO判斷wrreq有效并且讀入數(shù)據(jù)。
隨著FPGA器件及相關技術的不斷發(fā)展和完善,邏輯設計師、硬件工程師或系統(tǒng)工程師更多的選用EDA技術進行數(shù)字系統(tǒng)的設計和開發(fā)。本設計方案基于FPGA技術,將12C總線控制器、音頻數(shù)據(jù)處理12S總線模塊和各個數(shù)字控制模塊都設計在FPGA內(nèi)部。極大地提高了系統(tǒng)的集成度和穩(wěn)定性、電路設計的效率和可操作性,減輕了設計者的勞動強度。