隨著技術的發展和對性能考慮,模擬電路慢慢被推到一個鏈路的兩端,在信號鏈中將出現更多的數字接口。這樣既能避免模擬電路的走線對性能的影響又能節省電路。下圖2給出了一個完整數字音頻接口的例子。

圖1. 傳統的音頻信號鏈路

圖2. 數字音頻信號鏈路
數字音頻信號的常見傳輸標準,如I2S、PCM (Pulse Code Modulation) 和PDM (Pulse DensityModulation),主要用于同一塊電路板上芯片之間音頻信號的傳輸;Intel HDA (Intel High DefinitionAudio) 用于PC的Audio子系統(聲卡)應用; S/PDIF和Ethernet AVB主要應用于板間長距離及需要電纜連接的場合。
這次主要先介紹I2S數字音頻接口。
I2S全稱Inter-IC Sound, Integrated Interchip Sound,或簡寫I2S,是飛利浦在1986年定義的數字音頻傳輸標準,用于數字音頻數據傳輸。除了都是由飛利浦定義外,I2S和I2C沒有任何關系。
I2S是比較簡單的數字接口協議,沒有地址或設備選擇機制。在I2S總線上,只能同時存在一個主設備和發送設備。主設備可以是發送設備,也可以是接收設備,或是協調發送設備和接收設備的其它控制設備。在I2S系統中,提供時鐘(SCK和WS)的設備為主設備。圖3是常見的I2S系統框圖。

圖3 I2S系統通信配置框圖
I2S包括兩個聲道(Left/Right)的數據,在主設備發出聲道選擇/字選擇(WS)控制下進行左右聲道數據切換。通過增加I2S接口的數目或其它I2S設備可以實現多聲道(Multi-Channels)應用。
在I2S傳輸協議中,數據信號、時鐘信號以及控制信號是分開傳輸的。I2S協議只定義三根信號線:時鐘信號SCK、數據信號SD和左右聲道選擇信號WS。
SCK是模塊內的同步信號,從模式時由外部提供,主模式時由模塊內部自己產生。不同廠家的芯片型號,時鐘信號叫法可能不同,也可能稱BCLK/Bit Clock或SCL/Serial Clock
SD是串行數據,在I2S中以二進制補碼的形式在數據線上傳輸。在WS變化后的第一個SCK脈沖,先傳輸最高位(MSB, Most Significant Bit)。先傳送MSB是因為發送設備和接收設備的字長可能不同,當系統字長比數據發送端字長長的時候,數據傳輸就會出現截斷的現象/Truncated,即如果數據接收端接收的數據位比它規定的字長長的話,那么規定字長最低位(LSB: Least Significant Bit)以后的所有位將會被忽略。如果接收的字長比它規定的字長短,那么空余出來的位將會以0填補。通過這種方式可以使音頻信號的最高有效位得到傳輸,從而保證最好的聽覺效果。
√ 根據輸入或輸出特性,不同芯片上的SD也可能稱SDATA、SDIN、SDOUT、DACDAT、ADCDAT等;
√ 數據發送既可以同步于SCK的上升沿,也可以是下降沿,但接收設備在SCK的上升沿采樣,發送數據時序需考慮
WS是聲道選擇信號,表明數據發送端所選擇的聲道。當:
√ WS=0,表示選擇左聲道
√ WS=1,表示選擇右聲道
WS也稱幀時鐘,即LRCLK/Left RightClock。WS頻率等于聲音的采樣率。WS既可以在SCK的上升沿,也可以在SCK的下降沿變化。從設備在SCK的上升沿采樣WS信號。數據信號MSB在WS改變后的第二個時鐘(SCK)上升沿有效(即延遲一個SCK),這樣可以讓從設備有足夠的時間以存儲當前接收的數據,并準備好接收下一組數據。

|