秦玉龍
(宿遷學院 信息工程學院,宿遷 223800)
Avalon總線的音頻編解碼控制器IP核設計
秦玉龍
(宿遷學院 信息工程學院,宿遷 223800)
介紹了基于Avalon總線的WM8731音頻編解碼控制器IP核的設計,包括音頻數據訪問接口模塊和Avalon-MM接口模塊等,并利用SOPC技術將其封裝成可重用的IP核。自定義IP核的使用,有效降低了該芯片的開發(fā)難度,同時也使系統(tǒng)易于擴展和升級,具有較高的靈活性。在Quartus II和ModelSim下使用VHDL語言完成了控制器的設計、仿真以及Nios II系統(tǒng)的構建,并通過SignalTap II邏輯分析儀進行了硬件測試。仿真和測試結果表明,該控制器滿足WM8731各項時序要求。
音頻編解碼;自定義IP核;Avalon總線;Nios II
隨著數字音頻技術在語音識別、加密、音效處理等方面的廣泛應用,人們對語音信號的采集與處理也提出了更高的要求[1]。傳統(tǒng)的音頻數據采集與處理系統(tǒng)大多基于單片機或者數字信號處理器(DSP),其具有效率低、靈活性差等缺點[2]。在基于SOPC(System On Programmable Chip,片上可編程系統(tǒng))的系統(tǒng)中,由于FPGA的可編程性,可以根據實際需要裁減處理器,選擇需要的標準外設,定制用戶外設,為計算密集型任務開發(fā)專用的硬件加速器[3]。因此,SOPC方案具有靈活、高效等優(yōu)點。
系統(tǒng)采用SOPC技術,定制了基于Avalon總線的WM8731音頻編解碼控制器IP核,并將其和Nios II處理器、存儲器、I/O接口等標準IP核集成在一起,構成用戶定制的Nios II處理器系統(tǒng)。在Quartus II 11.0環(huán)境下構建了基于Altera公司的EP4CE115F29C7芯片的硬件系統(tǒng),在Nios II 11.0 SBT for Eclipse環(huán)境下進行了驅動程序的設計,對定制的IP核進行了完整的測試。經測試表明,音頻數據采集實時性高、輸出音頻質量好,滿足WM8731各項時序要求。
系統(tǒng)主要由Nios II處理器、SDRAM控制器、FLASH控制器、JTAG_UART等標準IP核以及音頻編解碼控制器IP核構成。系統(tǒng)總體框圖如圖1所示。
音頻編解碼控制器IP核由音頻數據訪問接口和Avalon接口模塊組成。音頻數據訪問接口主要負責音頻數據采集(ADC部分)和輸出(DAC部分)。Nios II處理器作為整個系統(tǒng)核心,通過I2C接口配置該控制器。I2C接口時序由PIO端口通過軟件模擬實現(xiàn),該部分內容可參考相關文獻,本文不再贅述。
圖1 系統(tǒng)總體框圖
在進行音頻數據采集時,首先ADC部分負責將串行音頻輸入數據轉換成并行數據并存入adcfifo,然后Nios II處理器可將adcfifo中的音頻數據讀取出來并存儲到sdram中。在輸出音頻數據時,首先Nios II處理器將存儲在sdram中的音頻數據寫入dacfifo,然后DAC部分負責從dacfifo中讀取音頻數據并進行并串轉換。
2.1 WM8731音頻接口介紹
系統(tǒng)采用WM8731音頻編解碼芯片。WM8731共有4種音頻接口模式[4],這些模式指定了時鐘信號和串行數據之間的時序關系。在本系統(tǒng)中,數據訪問使用I2S模式和16位分辨率。在該模式下,ADC輸出的數據流格式如圖2所示。有效數據在adclrc發(fā)生電平變化后的第2個bclk開始。adclrc作為一個校準時鐘,用于指示adcdat是左
圖2 I2S模式下ADC/ADC數據時序波形
聲道還是右聲道數據。當adclrc為低電平時,輸出左聲道數據;為高電平時,輸出右聲道數據。bclk作為一個位時鐘,在每個時鐘的下降沿輸出一個新的數據。首先輸出的是最高有效位。
DAC輸出數據流格式與ADC的類似,但是數據是通過dacdat線從數據訪問接口模塊輸出到WM8731芯片,daclrc作為校準時鐘。
2.2 音頻數據采集設計
音頻數據采集部分的功能框圖如圖3所示。首先通過移位寄存器adc_shift_reg實現(xiàn)串并轉換;然后通過數據緩沖器adc_buf將并行數據寫入adcfifo。
圖3 音頻數據采集功能框圖
仿真波形圖如圖4所示。由圖4可見,音頻數據的采集是從adclrc信號變化后的第二個bclk時鐘上升沿開始的,滿足I2S模式下數據流的時序要求。音頻數據的串并轉換發(fā)生在adclrc信號變?yōu)?之后的第一個bclk時鐘上升沿,將并行數據寫入adc_buf寄存器;在該時刻如果adcfifo沒有滿,則產生一個adcfifo寫請求信號,從而在下一個bclk時鐘上升沿將數據寫入adcfifo。
圖4 音頻數據采集仿真波形圖
2.3 音頻數據輸出設計
音頻數據輸出部分的功能框圖如圖5所示。在dacfifo非空時,通過輸出數據緩沖器dac_buf將dacfifo中的數據加載到到移位寄存器,進行并串轉換。在進行并串轉換時,根據I2S模式下數據流的時序要求,在發(fā)送左右聲道數據之前需要插入一個時鐘周期的空閑周期,然后按照從高位到低位順序依次輸出每一位數據。
圖5 音頻數據輸出功能框圖
該部分仿真波形如圖6所示。當檢測到daclrc下降沿且dacfifo非空時,發(fā)出dacfifo_rd信號將dacfifo數據讀取到q讀數據總線上;同時將dac_buf緩沖器中的數據加載到dac_shift_reg移位寄存器中。當檢測到daclrc上升沿時,將q讀數據總線上的數據讀到dac_buf緩沖器中。
圖6 音頻數據輸出仿真波形圖
2.4 Avalon接口設計
Avalon總線是Altera公司開發(fā)的用于連接Nios II處理器和各種IP核模塊的總線技術[3]。為了將控制器集成到Nios II系統(tǒng)中,必須為其封裝一個Avalon接口,使其滿足Avalon接口規(guī)范中定義的信號和時序要求。
該控制器的Avalon接口主要包括一個Avalon存儲器映射(Avalon-MM)從接口、一個導管(Conduit)接口、一個時鐘輸入接口和一個復位輸入接口。從接口包含片選、地址、讀寫和讀寫數據等Avalon信號,用于與Nios II處理器交互,導管接口包含連接外部芯片所需的各信號??刂破魍ㄟ^從接口和Nios II處理器之間的交互如下:讀取來自于adcfifo的32位音頻數據或者adcfifo_empty、dacfifo_full狀態(tài)信號;將32位音頻數據寫入dacfifo中;發(fā)送清零命令。
數據讀/寫操作遵循Avalon從接口的基本讀/寫時序,如圖7所示。根據Avalon總線規(guī)范要求,讀寫命令由Avalon總線在時鐘的上升沿發(fā)出[5]。對于讀操作,從接口可在當前時鐘的下降沿提供有效數據,從而保證Avalon總線能夠在下一個時鐘的上升沿讀取到有效數據。對于寫操作,從接口必須在下一個時鐘的上升沿捕獲寫數據。
圖7 Avalon從接口基本讀寫時序圖
圖8 音頻編解碼控制 器IP核框圖
在完成音頻編解碼控制器設計之后,可以通過Qsys系統(tǒng)集成工具來創(chuàng)建一個新的IP核,如圖8所示,可以將其集成到Nios II系統(tǒng)中。在設置Avalon-MM從接口s1時,根據上述Avalon接口部分的設計,需要將等待時間設置為0,即從接口s1的讀寫操作都是在一個時鐘周期內完成的。
對該IP核的測試工作可分兩個方面:搭建硬件系統(tǒng)平臺、編寫驅動程序。
硬件系統(tǒng)平臺可以在Quartus II環(huán)境下搭建,主要由Nios II處理器、SDRAM控制器、FLASH控制器等標準IP核和用戶自定義的音頻編解碼控制器IP核組成。
驅動程序的編寫在Nios II SBT for Eclipse環(huán)境下完成,驅動程序由I2C驅動和音頻數據的訪問程序兩部分構成,I2C驅動通過PIO端口模擬實現(xiàn)。音頻數據訪問程序可用于查看FIFO緩存器的狀態(tài),輸入和輸出音頻數據,通過以下宏實現(xiàn)[6]:
IORD(audio_base,ADC_DATA_REG);
IORD(audio_base,STATUS_REG);
IOWR(audio_base,DAC_DATA_REG,data);
IOWR(audio_base,CMD_REG,data);
宏定義中各寄存器的含義如表1所列。
測試時通過SignalTap II邏輯分析儀采樣到的波形如圖9所示。可見,控制器的輸入、輸出信號均滿足WM8731各項時序要求。
Audio Codec Controller IP Core Design Based on Avalon Bus
Qin Yulong
(School of Information Technology,Suqian College,Suqian 223800,China)
In the paper,the design of WM8731 audio codec controller IP core based on the Avalon bus is designed,including the codec data access interface module and the Avalon-MM interface module,which is encapsulated into reusable IP cores using SoPC technology.The use of custom IP core can effectively reduce the difficulty of the development of the chip,and makes the system easy to expand and upgrade,and it has the advantages of high flexibility.The design and simulation of the controller and the construction of Nios II system are completed in Quartus II and ModelSim using VHDL,and the hardware verification is performed using SignalTap II logic analyzer. The simulation and test results show that the controller can meet the timing requirements of WM8731.
audio codec;custom IP Core;Avalon bus;Nios II
TP334.4
A