轉自http://www.wangdali.net/i2s/svg
PCM (Pulse Code Modulation) 是經過等時間隔(即採樣率時鐘週期)採樣將模擬信號數字化的方法。圖11爲4 bit 採樣深度的PCM數據量化示意圖。.net
圖11. 4-bit PCM的採樣量化orm
PCM數字音頻接口,即說明接口上傳輸的音頻數據經過PCM方式採樣獲得的,以區別於PDM方式。在音頻領域,PCM接口經常使用於板級音頻數字信號的傳輸,與I2S類似。PCM和I2S的區別於數據相對於幀時鐘(FSYNC/WS)的位置、時鐘的極性和幀的長度。其實,I2S上傳輸的也是PCM類型的數據,所以能夠說I2S不過是PCM接口的特例。blog
相比於I2S接口,PCM接口應用更加靈活。經過時分複用(TDM, Time Division Multiplexing)方式,PCM接口支持同時傳輸多達N個(N>8)聲道的數據,減小了管腳數目(其實是減小I2S的「組」數,由於每組I2S只能傳輸兩聲道數據嘛)。TDM不像I2S有統一的標準,不一樣的IC廠商在應用TDM時可能略有差別,這些差別表如今時鐘的極性、聲道配置的觸發條件和對閒置聲道的處理等。接口
TDM/PCM數字音頻接口的硬件拓撲結構也與I2S相近。圖12表示應用DSP做爲主設備控制ADC和DAC間數字音頻流的例子。ip
綜合很多廠商的數據手冊,筆者發現,在應用PCM音頻接口傳輸單聲道數據(如麥克風)時,其接口名稱爲PCM;雙聲道常常使用I2S;而TDM則表示傳輸兩個及以上聲道的數據,同時區別於I2S特定的格式。get
圖12. TDM系統框圖同步
PCM接口與I2S類似,電路信號包括:it
TDM/PCM與I2S接口對應關係見表2:io
表2. PCM vs I2S接口
根據 SD相對幀同步時鐘FSYNC的位置,TDM分兩種基本模式:
圖13. TDM Mode A
圖14. TDM Mode B
注:
因爲沒有統一標準,不一樣廠商對Mode A和Mode B定義可能有所差異。
在實際應用中,老是以幀同步時鐘FSYNC的上升沿表示一次傳輸的開始。幀同步時鐘的頻率老是等於音頻的採樣率,好比44.1 kHz,48 kHz等。多數應用只用到FSYNC的上升沿,而忽略其降低沿。根據不一樣應用FSYNC脈衝寬度的差異,PCM幀同步時鐘模式大體分爲兩種:
長幀同步,短幀同步時序模式以下圖16和圖17所示。
注:
a. 長幀同步,如圖15所示,FSYNC脈衝寬度等於1個Slot的長度。Slot在TDM中表示的是傳輸單個聲道所佔用的位數。如圖15所示TI McASP接口的TDM包括6個Slots,即它最多可包括6聲道數據。注意,Slot的位數並不必定等於音頻的量化深度。好比Slot可能爲32 bit,其中包括24 bit有效數據位(Audio Word) + 8 bit零填充(Zero Padding)。不一樣廠商對Slot的叫法可能有所區別,好比Circus Logic稱之爲Channel Block;
圖15. 長幀同步模式
b. 短幀同步,FSYNC脈衝寬度等於1個BCLK週期長度;
c. 因爲沒有統一標準,不一樣廠商對FSYNC脈衝寬度及觸發邊沿的設置可能不一樣,以器件手冊爲準。
圖16. 8-bit長幀同步模式
圖17. 16-bit短幀同步模式
4. 時鐘(BCLK)頻率的計算
FSYNC的頻率等於音頻的採樣率(例如44.1 kHz,48 kHz等)。Frame每次傳輸包括全部聲道的數據。PCM採樣音頻數據量化深度通常在16-32bit(最多見爲16/24bit)。那麼對於8聲道,每一個聲道32bit音頻數據,採樣率48kHz的系統,TDM的BCLK時鐘速率爲:8 × 32 × 48kHz = 12.288 MHz
在器件Datasheet中能夠見到TDM128/TDM256/TDM384/TDM512等說法,數字的含義爲單個TDM數據幀包含數據的比特數(即幀長)。如上例8聲道(Channels)32bit的音頻數據,亦稱爲TDM256(=8*32)。TDM系統時鐘速率就能夠簡單地用採樣率乘以TDM幀長計算得出。相同的例子,TDM系統時鐘速率:48kHz × 256 = 12.288 MHz
下表4列出系統時鐘SCK/BCLK和採樣率fs及TDM幀長的關係:
表4. 常見音頻採樣率對應的系統時鐘
在PCM/TDM傳輸的數據幀(Slots)中,可能還包括音頻數據以外的信息。好比在CSR BC06器件Datasheet說明,其設置爲16 bit Slot字長時,3或8 bit未使用bit能夠用做標籤位(Sign Extension)、零填充(Zeros Padding)或是兼容Motorola編解碼器的3 bit音頻衰減值,如圖18所示。
圖18. 16-bit位採樣字格式