<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 基于SoC的AC'97技術(shù)硬件設計

基于SoC的AC'97技術(shù)硬件設計

作者: 時(shí)間:2008-03-28 來(lái)源: 收藏

  引言

本文引用地址:http://dyxdggzs.com/article/80822.htm

  符合Audio Codec'97協(xié)議(簡(jiǎn)稱(chēng)AC'97,是由Intel公司提出的數字音頻處理協(xié)議)的音頻控制器不但廣泛應用于個(gè)人電腦聲卡,并且為個(gè)人信息終端設備的SOC(如Intel的PXA250)提供音頻解決方案。本文設計的音頻控制器可為DSP內核提供數字音頻接口。全文在介紹音頻控制器結構的同時(shí),著(zhù)重強調其與內核之間數據的協(xié)調傳輸,并給出基于FPGA實(shí)現SoC內核仿真環(huán)境對音頻控制器進(jìn)行功能測試的方法。

  音頻控制器的結構和原理

  AC'97系統由音頻編解碼器(Codec)和音頻控制器(Controller)兩個(gè)部分組成。其中音頻編解碼器實(shí)現A/D、D/A轉換、音效處理等功能,而音頻控制器則是SoC內核與音頻編解碼器之間的數字接口,負責控制數據和音頻數據的串/并、并/串轉換以及傳輸。

  性能指標

  本設計的音頻控制器符合AC'97規范V2.3,其主要指標如下:支持雙聲道錄放音;支持定采樣率(48kHz)和變采樣率錄放音;20位寬16層深PCM音頻數據FIFO;支持省電模式;支持中斷、DMA和輪詢(xún)3種方式實(shí)現與內核或內存的數據交換。

  組成結構音頻控制器的主結構如圖1所示。內核/內存和音頻控制器接口(CORE/MEMORY,CTRL INTERFACE)連接音頻控制器與內核或內存。CS是片選信號,WR和RD分別是讀寫(xiě)使能,ADDR(16位寬)是音頻控制器的端口地址,DIN和DOUT(都是32位寬)分別是總線(xiàn)上的輸入輸出數據,IRQ和DMA REQ分別是中斷和DMA請求。主模塊(AC'97 CTRL MASTER)負責音頻控制器(AC'97 CONTROLLER)與內核或內存(DMA模式下)之間PCM音頻數據、控制和狀態(tài)寄存器組(CONTROL&STATUS REGS)數據以及音頻編解碼器(AC'97 CODEC)內部寄存器數據各并行數據的傳輸,由主時(shí)鐘CLK同步。電源控制模塊(POWER CTRL)可以啟動(dòng)省電模式,也由主時(shí)鐘CLK同步。

  

 

  圖1 音頻控制器的主結構

  4組FIFO用于存放PCM音頻數據,都是20位寬16層深,因此可以支持最高20位寬分辨率。當FIFO滿(mǎn)或者空時(shí),可以發(fā)出中斷或DMA請求。音頻編解碼器內部寄存器讀寫(xiě)緩存器(CODEC REG WRITE/READ BUF,簡(jiǎn)稱(chēng)CRBUF)是2個(gè)32位寄存器。寫(xiě)緩沖器可以緩存準備寫(xiě)入音頻編解碼器內部寄存器的控制字,其空時(shí)可以發(fā)出中斷請求;讀緩沖器可以緩存已經(jīng)從音頻編解碼器內部寄存器中讀出的狀態(tài)字,其滿(mǎn)時(shí)可以發(fā)出中斷請求??刂坪蜖顟B(tài)寄存器組包含8個(gè)32位寄存器,其中,通用控制寄存器的主要功能是系統冷啟動(dòng)、熱啟動(dòng);通用狀態(tài)寄存器反映音頻編解碼器狀態(tài);其他寄存器的功能包括配置PCM輸入輸出聲道、配置和產(chǎn)生中斷或DMA請求。輔模塊(AC'97 CTRL SLAVE)實(shí)現音頻控制器與音頻編解碼器之間(AC-LINK)數據幀的串行發(fā)送和接收。輸出數據(SDATA_OUT)由輔時(shí)鐘BIT_CLK上跳沿同步,輸入數據(SDATA_IN)由BIT_CLK下跳沿同步。

  工作原理

  DSP內核通過(guò)讀寫(xiě)音頻控制器CSRS分別來(lái)獲得音頻編解碼器狀態(tài)和設置音頻編解碼器工作模式;通過(guò)讀寫(xiě)FIFO來(lái)緩沖音頻錄制和播放過(guò)程中的PCM音頻數據;通過(guò)讀寫(xiě)CRBUF來(lái)獲得音頻編解碼器內部寄存器狀態(tài)和設置音頻編解碼器內部寄存器參數。下面以音頻播放中的主要步驟為例,介紹音頻控制器的工作原理。

  (1)寫(xiě)滿(mǎn)PCM左聲道輸出FIFO;

  (2)寫(xiě)滿(mǎn)PCM右聲道輸出FIFO;

  (3)輪詢(xún)音頻編解碼器準備好(Codec ready)信號是否有效;

  (4)讀音頻編解碼器的26H寄存器,判斷D/A轉換器是否準備好;

  (5)允許CRBUF產(chǎn)生中斷請求;

  (6)寫(xiě)0到音頻編解碼器的02H寄存器,使主音

  量衰減最小;

  (7)等待CRBUF產(chǎn)生中斷,響應中斷并寫(xiě)0到音頻編解碼器的18H寄存器,使PCM輸出音量衰減最小;

  (8)等待CRBUF產(chǎn)生中斷,響應中斷并寫(xiě)1到音頻編解碼器的2AH寄存器,即以變采樣率播放音頻;

  (9)等待CRBUF產(chǎn)生中斷,響應中斷并寫(xiě)5622(十六進(jìn)制)到音頻編解碼器的2CH寄存器,即以22.05kHz采樣率播放音頻;

  (10)允許PCM左右聲道FIFO產(chǎn)生滿(mǎn)中斷;

  (11)設置PCM左右聲道定速率或者變速率傳輸,并開(kāi)始播放音頻;

  (12)等待FIFO中的PCM碼傳送掉16層并發(fā)出中斷請求;

  (13)判斷是否是PCM左聲道FIFO發(fā)出中斷請求,如果是,則寫(xiě)16層PCM左聲道數據;

  (14)判斷是否是PCM右聲道FIFO發(fā)出中斷請求,如果是,則寫(xiě)16層PCM右聲道FIFO數據;

  (15)如果內存中PCM數據被讀完,則放音結束,否則返回第12步繼續放音。

  SOC仿真環(huán)境的構成和原理

  由音頻控制器的工作原理可見(jiàn),其每一個(gè)步驟都是在DSP內核控制下進(jìn)行的。因此在對音頻控制器進(jìn)行功能驗證時(shí),不但要保證其本身的邏輯正確,更要保證其與內核的數據傳輸正確,這樣才有利于音頻控制器和內核的整合。由此提出通過(guò)構件SoC內核仿真環(huán)境來(lái)逼近真實(shí)內核,并在這個(gè)仿真環(huán)境中測試所設計的音頻控制器。

  仿真環(huán)境的構成

  SoC內核仿真環(huán)境的硬件以Xilinx公司的MICroBlaze多媒體開(kāi)發(fā)電路板為基礎,其核心是Vertex II FPGA。電路板上還集成了National Semiconductor公司的AC'97 CODEC LM4549 芯片,并且提供了LINE IN/OUT、耳機以及麥克風(fēng)插口??梢酝ㄟ^(guò)這些插口來(lái)測試音頻錄放效果,也可通過(guò)電路板上的測試點(diǎn)調試部分關(guān)鍵信號。SoC內核仿真環(huán)境的構成如圖2所示。

  

 

  圖2 SoC內核仿真環(huán)境的構成

  內核模擬模塊(CORE SIM)是SOC內核仿真環(huán)境的核心,以RTL代碼形式下載到Vertex II FPGA中模擬DSP內核的單周期指令,可以實(shí)現讀寫(xiě)內存、訪(fǎng)問(wèn)音頻控制器(包括讀寫(xiě)FIFO、CRBUF以及CSRS)、響應并處理中斷請求或DMA請求。其中,DIN_RAM是32位內存數據輸入總線(xiàn);DIN_CTRL是32位音頻控制器數據輸入總線(xiàn);DOUT是32位數據輸出總線(xiàn);IRQ是音頻控制器中斷請求;DMA REQ是音頻控制器DMA請求;RST是音頻控制器異步復位。

  塊內存模塊是由Vertex II FPGA中的塊內存實(shí)現的單端口內存,這種內存的時(shí)序與常規SRAM相同,可以模擬最大126KB的片上SRAM。在Xilinx集成開(kāi)發(fā)環(huán)境(ISE)中調用CORE Generator,就可以生成

  這種靜態(tài)內存。如果運用Memory Eidtor工具生成cgf和coe文件(塊內存的配置文件),就可以在為FPGA下載BIT文件的同時(shí)給塊內存賦初始值?;贔PGA這項強大的功能,就可以將從個(gè)人電腦上提取出來(lái)的PCM音頻碼下載到塊內存中,然后在內核模擬模塊的控制下,通過(guò)音頻控制器傳送到音頻編解碼器中,由此實(shí)現音頻播放。

  時(shí)鐘發(fā)生模塊(CLOCK GENERATOR)可發(fā)出27MHz、54MHz以及108MHz三種時(shí)鐘,并且產(chǎn)生音頻控制器異步復位信號RST。MICroBlaze開(kāi)發(fā)電路板上的晶振發(fā)出27MHz和50MHz的占空比1:1的方波信號作為時(shí)鐘發(fā)生模塊的輸入,調用數字鎖相環(huán)硬核模塊(CLOCKGEN.v和CLOCKGEN.ucf)可輸出各倍頻時(shí)鐘(本設計用108MHz)以及異步復位信號RST。AC'97 CTRL是以RTL形式下載到Vertex II FPGA中的音頻控制器邏輯。AC'97 CODEC是National Semiconductor公司的LM4549 AC'97 CODEC芯片。

  內核模擬模塊的實(shí)現原理

  RTL代碼模擬的都是流水線(xiàn)中的指令執行級,是音頻控制器和內核直接交互數據的級別。根據DSP內核在指令執行級的行為和接口特性,可以靈活地改變內核模擬模塊的接口和內部信號(通過(guò)改變RTL代碼),形成不同的仿真環(huán)境。測試在新的仿真環(huán)境中音頻控制器與內核的工作是否協(xié)調穩定,如果結果不理想,就應更改音頻控制器的設計。這樣就能使音頻控制器的特性也能和內核達到最好的協(xié)調。

  基于SoC內核仿真環(huán)境的放音實(shí)例

  下面給出基于SoC內核仿真環(huán)境播放音頻的實(shí)例。音頻來(lái)源于Windows2000操作系統初始安裝后winnt/media目錄下的Utopia Windows Start.wav(153KB,16位單聲道的wave文件),提取出文件中的PCM音頻碼后下載到Vertex II的塊內存中。音頻控制器在SoC內核仿真環(huán)境中控制音頻編解碼器工作,連接耳機到MicroBlaze開(kāi)發(fā)電路板的耳機插口,可以聽(tīng)到維持將近3秒鐘的音頻信號,和原音頻文件的聲音基本一致。使用音頻分析軟件Audicity來(lái)分析音頻播放效果,原始音源與開(kāi)發(fā)板播放的音頻略有不同,其原因有以下3點(diǎn)。(1)電腦聲卡錄音起點(diǎn)和原音頻的放音起點(diǎn)不同; (2)由于塊內存的最大容量為126KB,所以所錄波形文件只截取了原文件(153KB)的前2/3部分。(3)經(jīng)過(guò)SoC內核仿真環(huán)境放音,并由電腦聲卡錄音得到的音頻與原音頻的幅度必然不同。第1、2兩個(gè)因素引起兩個(gè)波形在時(shí)間軸方向上的偏差,因素3引起幅度軸方向上的偏差。盡管存在這些差異,但完全可以說(shuō)明在SoC內核仿真環(huán)境中,所設計的音頻控制器邏輯功能正確,與內核能夠協(xié)調工作。

  總結

  本文根據所設計的音頻控制器的結構詳細介紹了構建SOC內核仿真環(huán)境來(lái)測試音頻控制器的思想和實(shí)現方法?;谶@個(gè)仿真環(huán)境,不但可以測試音頻控制器實(shí)際錄放音的效果和性能,更重要的是可以及時(shí)反映其與內核的協(xié)調程度。這樣就可避免孤立設計音頻控制器而不考慮其與SoC系統協(xié)調的弊端,明顯提高后期整合SoC系統的效率。

  參考文獻

  1 Audio Codec ’97, Revision 2.3 Revision 1.0, Intel,April 2002

  2 MICroBlaze and Multimedia Development Board User Guide UG020 (v1.0),Xilinx, August 2002

  3 Core Gennerator Guide - ISE 5, Xilinx

  4 LM4549A AC ’97 Rev 2.1 Codec with Sample Rate Conversion and National 3D Sound, National Semiconductor, November 2002



關(guān)鍵詞: 數字音頻 接口 DSP FPGA SoC 內存

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>