一文搞懂I2S通信總線(xiàn)
之前我們講過(guò)I2C通信總線(xiàn),本篇博文將講一講I2C的變種:I2S總線(xiàn)。
I2C和I2S都是由Philips公司(2006年遷移到NXP)發(fā)布的串行總線(xiàn),I2S是在I2C之后發(fā)布,I2S專(zhuān)為傳輸音頻數據而設計。
I2S(Inter-IC Sound)總線(xiàn),又稱(chēng)集成電路內置音頻總線(xiàn),是飛利浦公司為數字音頻設備之間的音頻數據傳輸而制定的一種總線(xiàn)標準。采用了獨立的導線(xiàn)傳輸時(shí)鐘與數據信號的設計,通過(guò)將數據和時(shí)鐘信號分離,避免了因時(shí)差誘發(fā)的失真。
I2S總線(xiàn)特點(diǎn)如下:
支持全雙工和半雙工模式;
支持主、從模式。
1
物理特性
I2S總線(xiàn)一般由1根系統時(shí)鐘線(xiàn)和3根信號線(xiàn)組成:
MCLK:稱(chēng)為主時(shí)鐘,也叫系統時(shí)鐘(Sys Clock),一般為了使系統間能夠更好地同步時(shí)增加MCLK信號,MCLK的頻率 = 128或者256或者512 * 采樣頻率;
SCLK(BCLK):串行時(shí)鐘SCLK,也叫位時(shí)鐘(BCLK),即對應數字音頻的每一位數據,SCLK都有1個(gè)脈沖。
SCK的頻率 = 聲道數 * 采樣頻率 * 采樣位數;
LRCK:幀時(shí)鐘LRCK,(也稱(chēng)WS),用于切換左右聲道的數據。
LRCK為“1”表示正在傳輸的是右聲道的數據,為“0”則表示正在傳輸的是左聲道的數據。
LRCK的頻率等于采樣頻率;
SDATA(SD):就是用二進(jìn)制補碼表示的音頻數據。最高位擁有固定的位置,而最低位的位置則是依賴(lài)于數據的有效位數。
2
常見(jiàn)的I2S數據格式
隨著(zhù)技術(shù)的發(fā)展,在統一的I2S硬件接口下,出現了多種不同的I2S數據格式,可分為:I2S Philips標準、左對齊(MSB)標準和右對齊(LSB,也叫日本格式、普通格式)標準。
發(fā)送端和接收端必須使用相同的數據格式,確保發(fā)送和接收的數據一致。
2.1、I2S Philips標準
I2S Philips標準時(shí)序圖如下圖所示:

使用LRCLK信號表示當前正在發(fā)送數據所屬的聲道,LRCLK為“1”表示正在傳輸的是右聲道的數據,為“0”則表示正在傳輸的是左聲道的數據。LRCLK信號從當前聲道數據的第一個(gè)位(MSB)之前的一個(gè)時(shí)鐘開(kāi)始有效。
LRCLK信號在BCLK的下降沿變化,發(fā)送方在時(shí)鐘信號BCLK的下降沿改變數據,接收方在時(shí)鐘信號BCLK的上升沿讀取數據。正如上文所說(shuō),LRCLK頻率等于采樣頻率Fs,一個(gè)LRCLK周期(1/Fs)包括發(fā)送左聲道和右聲道數據。
對于這種標準I2S格式的信號,無(wú)論有多少位有效數據,數據的最高位總是出現在LRCLK變化(也就是一幀開(kāi)始)后的第2個(gè)BCLK脈沖處。這就使得接收端與發(fā)送端的有效位數可以不同。如果接收端能處理的有效位數少于發(fā)送端,可以放棄數據幀中多余的低位數據;如果接收端能處理的有效位數多于發(fā)送端,可以自行補足剩余的位。
這種同步機制使得數字音頻設備的互連更加方便,而且不會(huì )造成數據錯位。
2.2、左對齊(MSB)標準
左對齊(MSB)標準時(shí)序圖如下圖所示:

該標準較少使用,在LRCLK發(fā)生翻轉的同時(shí)開(kāi)始傳輸數據,注意LRCLK為1時(shí),傳輸的是左聲道數據,LRCLK為0時(shí),傳輸的是右聲道數據,這剛好與I2S Philips標準相反。
2.3、右對齊(LSB)標準
右對齊(LSB)標準時(shí)序圖如下圖所示:

聲音數據LSB傳輸完成的同時(shí),LRCLK完成第二次翻轉(剛好是LSB和LRCLK是右對齊的,所以稱(chēng)為右對齊標準)。注意LRCLK為1時(shí),傳輸的是左聲道數據,LRCLK為0時(shí),傳輸的是右聲道數據,這剛好與I2S Philips標準相反。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。