音頻標準主要有兩個AC97和IIS,下面我對這兩個標準做簡要的介紹說明,以便在后面的工作中使用作參考。
一 I2s標準
在飛利浦公司的I2S標準中,既規定了硬件接口規范,也規定了數字音頻數據的格式。I2S有3個主要信號:
1.串行時鐘SCLK,也叫位時鐘(BCLK),即對應數字音頻的每一位數據,SCLK都有1個脈沖。SCLK的頻率=2×采樣頻率×采樣位數
2. 幀時鐘LRCK,(也稱WS),用于切換左右聲道的數據。LRCK為“1”表示正在傳輸的是左聲道的數據,為“0”則表示正在傳輸的是右聲道的數據。LRCK的頻率等于采樣頻率。
3.串行數據SDATA,就是用二進制補碼表示的音頻數據。
有時為了使系統間能夠更好地同步,還需要另外傳輸一個信號MCLK,稱為主時鐘,也叫系統時鐘(Sys Clock),是采樣頻率的256倍或384倍。
串行數據(SD)
I2S格式的信號無論有多少位有效數據,數據的高位總是出現在LRCK變化(也就是一幀開 始)后的第2個SCLK脈沖處。這就使得接收端與發送端的有效位數可以不同。如果接收端能處理的有效位數少于發送端,可以放棄數據幀中多余的低位數據;如 果接收端能處理的有效位數多于發送端,可以自行補足剩余的位。這種同步機制使得數字音頻設備的互連更加方便,而且不會造成數據錯位。
隨著技術的發展,在統一的 I2S接口下,出現了多種不同的數據格式。根據SDATA數據相對于LRCK和SCLK的位置不同,分為左對齊(較少使用)、I2S格式(即飛利浦規定的格式)和右對齊(也叫日本格式、普通格式)。為了保證數字音頻信號的正確傳輸,發送端和接收端應該采用相同的數據格式和長度。當然,對I2S格式來說數據長度可以不同。
字段(聲道)選擇(WS)
命令選擇線表明了正在被傳輸的聲道。
WS=0,表示正在傳輸的是左聲道的數據。
WS=1,表示正在傳輸的是右聲道的數據。
WS可以在串行時鐘的上升沿或者下降沿發生改變,并且WS信號不需要一定是對稱的。在從屬裝置 端,WS在時鐘信號的上升沿發生改變。WS總是在高位傳輸前的一個時鐘周期發生改變,這樣可以使從屬裝置得到與被傳輸的串行數據同步的時間,并且使接收 端存儲當前的命令以及為下次的命令清除空間。
二 AC97標準
AC97 標準把音頻設備中的數字部分和模擬部分分開, 并規定數字信號處理由CPU 來負責,或者采用專門的DSP 芯片; 而模擬部分, 即A/D、D/A 轉換與Mix 混音操作, 則由CODEC 芯片(Coder2Decoder: 編碼/解碼器) 完成。
音頻處理的流程如下:
①CODEC 采樣音頻數據, 把模擬信號轉換成數字信號通過AC2link 和AC 控制單元傳送給CPU 或DSP 處理。
②CPU 對數字信號處理后交由AC 控制單元通過AC2link 傳輸給CODEC 進行混音處理,再轉換成模擬信號輸出。其中AC 控制單元是AC97 CODEC 的控制器。AC2link 是AC97 標準定義的全雙工的串行接口, 負責傳輸音頻數據、寄存器控制命令和狀態信息。
AC2link 由4 根串行總線和一個nRESET 信號線組成。串行總線分別是: 位時鐘信號線(B IT_CL K ) , 幀同步信號線(SYNC ) , 數據輸出(SDA TA _OU T ) 和數據輸入(SDA TA _IN ) 信號線。它按照AC97 rev211 標準規定的AC2link數字串口接口協議[ 1 ]進行數據的傳輸。AC2link在B IT _CL K 的上升沿發送數據, 在下降沿接收數據, 實現全雙工的數據傳輸。