基于SoC的AC''97技術硬件設計
發布時間:2008/9/10 0:00:00 訪問次數:281
    
    
    引言
    
    符合audio codec'97協議(簡稱ac'97,是由intel公司提出的數字音頻處理協議)的音頻控制器不但廣泛應用于個人電腦聲卡,并且為個人信息終端設備的soc(如intel的pxa250)提供音頻解決方案。本文設計的音頻控制器可為dsp內核提供數字音頻接口。全文在介紹音頻控制器結構的同時,著重強調其與內核之間數據的協調傳輸,并給出基于fpga實現soc內核仿真環境對音頻控制器進行功能測試的方法。
    
    音頻控制器的結構和原理
    
    ac'97系統由音頻編***(codec)和音頻控制器(controller)兩個部分組成。其中音頻編***實現a/d、d/a轉換、音效處理等功能,而音頻控制器則是soc內核與音頻編***之間的數字接口,負責控制數據和音頻數據的串/并、并/串轉換以及傳輸。
    
    性能指標
    
    本設計的音頻控制器符合ac'97規范v2.3,其主要指標如下:支持雙聲道錄放音;支持定采樣率(48khz)和變采樣率錄放音;20位寬16層深pcm音頻數據fifo;支持省電模式;支持中斷、dma和輪詢3種方式實現與內核或內存的數據交換。
    
    組成結構音頻控制器的主結構如圖1所示。內核/內存和音頻控制器接口(core/memory,ctrl interface)連接音頻控制器與內核或內存。cs是片選信號,wr和rd分別是讀寫使能,addr(16位寬)是音頻控制器的端口地址,din和dout(都是32位寬)分別是總線上的輸入輸出數據,irq和dma req分別是中斷和dma請求。主模塊(ac'97 ctrl master)負責音頻控制器(ac'97 controller-p.htm" target="_blank" title="controller貨源和pdf資料">controller)與內核或內存(dma模式下)之間pcm音頻數據、控制和狀態寄存器組(control&status regs)數據以及音頻編***(ac'97 codec)內部寄存器數據各并行數據的傳輸,由主時鐘clk同步。電源控制模塊(power ctrl)可以啟動省電模式,也由主時鐘clk同步。
    
    
    
    圖1 音頻控制器的主結構
    
    4組fifo用于存放pcm音頻數據,都是20位寬16層深,因此可以支持最高20位寬分辨率。當fifo滿或者空時,可以發出中斷或dma請求。音頻編***內部寄存器讀寫緩存器(codec reg write/read buf,簡稱crbuf)是2個32位寄存器。寫緩沖器可以緩存準備寫入音頻編***內部寄存器的控制字,其空時可以發出中斷請求;讀緩沖器可以緩存已經從音頻編***內部寄存器中讀出的狀態字,其滿時可以發出中斷請求。控制和狀態寄存器組包含8個32位寄存器,其中,通用控制寄存器的主要功能是系統冷啟動、熱啟動;通用狀態寄存器反映音頻編***狀態;其他寄存器的功能包括配置pcm輸入輸出聲道、配置和產生中斷或dma請求。輔模塊(ac'97 ctrl slave)實現音頻控制器與音頻編***之間(ac-link)數據幀的串行發送和接收。輸出數據(sdata_out)由輔時鐘bit_clk上跳沿同步,輸入數據(sdata_in)由bit_clk下跳沿同步。
    
    工作原理
    
    dsp內核通過讀寫音頻控制器csrs分別來獲得音頻編***狀態和設置音頻編***工作模式;通過讀寫fifo來緩沖音頻錄制和播放過程中的pcm音頻數據;通過讀寫crbuf來獲得音頻編***內部寄存器狀態和設置音頻編***內部寄存器參數。下面以音頻播放中的主要步驟為例,介紹音頻控制器的工作原理。
    
    (1)寫滿pcm左聲道輸出fifo;
    
    (2)寫滿pcm右聲道輸出fifo;
    
    (3)輪詢音頻編***準備好(codec ready)信號是否有效;
    
    (4)讀音頻編***的26h寄存器,判斷d/a轉換器是否準備好;
    
    (5)允許crbuf產生中斷請求;
    
    (6)寫0到音頻編***的02h寄存器,使主音量衰減最小;
    
    (7)等待crbuf產生中斷,響應中斷并寫0到音頻編***的18h寄存器,使
    
    
    引言
    
    符合audio codec'97協議(簡稱ac'97,是由intel公司提出的數字音頻處理協議)的音頻控制器不但廣泛應用于個人電腦聲卡,并且為個人信息終端設備的soc(如intel的a250)提供音頻解決方案。本文設計的音頻控制器可為dsp內核提供數字音頻接口。全文在介紹音頻控制器結構的同時,著重強調其與內核之間數據的協調傳輸,并給出基于fpga實現soc內核仿真環境對音頻控制器進行功能測試的方法。
    
    音頻控制器的結構和原理
    
    ac'97系統由音頻編***(codec)和音頻控制器(controller)兩個部分組成。其中音頻編***實現a/d、d/a轉換、音效處理等功能,而音頻控制器則是soc內核與音頻編***之間的數字接口,負責控制數據和音頻數據的串/并、并/串轉換以及傳輸。
    
    性能指標
    
    本設計的音頻控制器符合ac'97規范v2.3,其主要指標如下:支持雙聲道錄放音;支持定采樣率(48khz)和變采樣率錄放音;20位寬16層深pcm音頻數據fifo;支持省電模式;支持中斷、dma和輪詢3種方式實現與內核或內存的數據交換。
    
    組成結構音頻控制器的主結構如圖1所示。內核/內存和音頻控制器接口(core/memory,ctrl interface)連接音頻控制器與內核或內存。cs是片選信號,wr和rd分別是讀寫使能,addr(16位寬)是音頻控制器的端口地址,din和dout(都是32位寬)分別是總線上的輸入輸出數據,irq和dma req分別是中斷和dma請求。主模塊(ac'97 ctrl master)負責音頻控制器(ac'97 controller-p.htm" target="_blank" title="controller貨源和pdf資料">controller)與內核或內存(dma模式下)之間pcm音頻數據、控制和狀態寄存器組(control&status regs)數據以及音頻編***(ac'97 codec)內部寄存器數據各并行數據的傳輸,由主時鐘clk同步。電源控制模塊(power ctrl)可以啟動省電模式,也由主時鐘clk同步。
    
    
    
    圖1 音頻控制器的主結構
    
    4組fifo用于存放pcm音頻數據,都是20位寬16層深,因此可以支持最高20位寬分辨率。當fifo滿或者空時,可以發出中斷或dma請求。音頻編***內部寄存器讀寫緩存器(codec reg write/read buf,簡稱crbuf)是2個32位寄存器。寫緩沖器可以緩存準備寫入音頻編***內部寄存器的控制字,其空時可以發出中斷請求;讀緩沖器可以緩存已經從音頻編***內部寄存器中讀出的狀態字,其滿時可以發出中斷請求。控制和狀態寄存器組包含8個32位寄存器,其中,通用控制寄存器的主要功能是系統冷啟動、熱啟動;通用狀態寄存器反映音頻編***狀態;其他寄存器的功能包括配置pcm輸入輸出聲道、配置和產生中斷或dma請求。輔模塊(ac'97 ctrl slave)實現音頻控制器與音頻編***之間(ac-link)數據幀的串行發送和接收。輸出數據(sdata_out)由輔時鐘bit_clk上跳沿同步,輸入數據(sdata_in)由bit_clk下跳沿同步。
    
    工作原理
    
    dsp內核通過讀寫音頻控制器csrs分別來獲得音頻編***狀態和設置音頻編***工作模式;通過讀寫fifo來緩沖音頻錄制和播放過程中的pcm音頻數據;通過讀寫crbuf來獲得音頻編***內部寄存器狀態和設置音頻編***內部寄存器參數。下面以音頻播放中的主要步驟為例,介紹音頻控制器的工作原理。
    
    (1)寫滿pcm左聲道輸出fifo;
    
    (2)寫滿pcm右聲道輸出fifo;
    
    (3)輪詢音頻編***準備好(codec ready)信號是否有效;
    
    (4)讀音頻編***的26h寄存器,判斷d/a轉換器是否準備好;
    
    (5)允許crbuf產生中斷請求;
    
    (6)寫0到音頻編***的02h寄存器,使主音量衰減最小;
    
    (7)等待crbuf產生中斷,響應中斷并寫0到音頻編***的18h寄存器,使
熱門點擊
- 光電微小電流輸入的前置放大器的反饋電阻值
- 摘要:本文簡述了傾角傳感器的原理和發展狀況。
- RIAA補償放大器
- OP放大器電路的輸入保護的應用
- L波段低噪聲放大器的設計
- 高速ADC THS1041的鉗位功能
- 擴大寬帶放大器頻帶的信號校正電容
- 運放式射頻放大器
- OP放大器電路使用于輸入的電阻值的選擇方法
- OP放大器抑制高速、寬帶電路的高頻峰值電容
推薦技術資料
- 泰克新發布的DSA830
- 泰克新發布的DSA8300在一臺儀器中同時實現時域和頻域分析,DS... [詳細]