<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于SoC的AC97技術(shù)硬件設(shè)計(jì)

          基于SoC的AC97技術(shù)硬件設(shè)計(jì)

          作者: 時(shí)間:2011-09-21 來(lái)源:網(wǎng)絡(luò) 收藏

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

          音頻控制器的結(jié)構(gòu)和原理

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


          性能指標(biāo)

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

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

          本文引用地址:http://www.ex-cimer.com/article/150187.htm

          圖1 音頻控制器的主結(jié)構(gòu)

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

          工作原理

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

          (1)寫滿PCM左聲道輸出FIFO;

          (2)寫滿PCM右聲道輸出FIFO;

          (3)輪詢音頻編解碼器準(zhǔn)備好(Codec ready)信號(hào)是否有效;

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

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

          (6)寫0到音頻編解碼器的02H寄存器,使主音量衰減最小;

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

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

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

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

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

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

          (13)判斷是否是PCM左聲道FIFO發(fā)出中斷請(qǐng)求,如果是,則寫16層PCM左聲道數(shù)據(jù);

          (14)判斷是否是PCM右聲道FIFO發(fā)出中斷請(qǐng)求,如果是,則寫16層PCM右聲道FIFO數(shù)據(jù);

          (15)如果內(nèi)存中PCM數(shù)據(jù)被讀完,則放音結(jié)束,否則返回第12步繼續(xù)放音。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();