I2S介面概述
I²S或I2S(Inter-IC Sound或Integrated Interchip Sound)是由飛利浦公司(現NXP)在1986年制定的一種用於音訊IC或者裝置之間傳輸數字PCM資訊的一種介面標準。I2S常被使用在各種音源到音訊DAC中。由於I2S將訊號以及時鐘分開傳送,它的jitter失真十分地小。I2S和I2C名字非常的像,但是切記,他們完全不是一個東西,甚至連時序都不太像,要說同I2S最像的還是SPI。I2S規範最終的修訂是在1996年。
I2S介面硬體定義
NXP公司的I2S是一套硬體+時序規範。I2S硬體上有3個主要訊號:
- continuous serial clock,連續序列時鐘SCK,在一些資料中也就SCLK或者BCLK,即對應數字音訊的每一位資料,SCLK有1個脈衝。SCLK的頻率=2×取樣頻率×取樣位數。
- word select,字選擇WS,又叫幀時鐘LRCK,用於切換左右聲道的資料。WS為“0”表示代表傳輸的是左聲道的資料,為“1”則表示正在傳輸的是右聲道的資料。WS的頻率等於取樣頻率。
- serial data,序列資料SD,又叫SDATA,是用二進位制補碼錶示的音訊資料。
- 有時為了使系統間能夠更好地同步,還需要另外傳輸一個訊號MCLK,稱為主時鐘,也叫系統時鐘(Sys Clock),是取樣頻率的256倍或384倍,這個訊號在後面會單獨講到。
I2S介面時序與對齊
I2S介面有著統一的硬體定義,但是資料的傳輸格式又各有不同,我們把他們分成三類:
- I2S格式
- 左對齊格式,left justified
- 右對齊格式,right justified,也叫EIAJ或者SONY格式
這三種傳輸格式,基本都是相同的,不同之處在於SD資料同WS訊號的對齊位置。I2S格式的訊號無論有多少位有效資料,資料的最高位總是出現在WS變化(也就是一幀開始)後的第2個SCK脈衝處,見下面I2S格式圖:
i2s timing
故名思議,左對齊(left justified)、右對齊(right justified)指的是資料訊號對齊的方式,左對齊的時候最高位資料在第一個時鐘就出現,而右對齊的時候資料最低位在最後一個時鐘出現。這就是他們的本質區別。左右對齊模式隨具體的晶片不同而不同,在使用的時候需要仔細閱讀晶片手冊。I2S允許接收端與傳送端的有效位數可以不同。如果接收端能處理的有效位數少於傳送端,可以放棄資料幀中多餘的低位資料;如果接收端能處理的有效位數多於傳送端,可以自行補足剩餘的位。這種同步機制使得數字音訊裝置的互連更加方便,而且不會造成資料錯位。
I2S介面的MCLK作用
MCLK是Master clock的縮寫,在DAC內部的delta-sigma調製器以及數字濾波器都需要用到這個時鐘,大部分的DAC可以使用內部的振盪器產生這個時鐘,在某些要求較高的場合,例如HIFI音響系統等,需要使用一個額外的高質量的時鐘用以獲得最好的效能。這時候就需要用到MCLK訊號了。切記,MCLK並不是必須的。可有可無,看設計要求。MCLK一般是Fs*256或者Fs*384。