一文搞懂I2S通信總線
之前我們講過I2C通信總線,本篇博文將講一講I2C的變種:I2S總線。
I2C和I2S都是由Philips公司(2006年遷移到NXP)發(fā)布的串行總線,I2S是在I2C之后發(fā)布,I2S專為傳輸音頻數(shù)據(jù)而設(shè)計(jì)。
I2S(Inter-IC Sound)總線,又稱集成電路內(nèi)置音頻總線,是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一種總線標(biāo)準(zhǔn)。采用了獨(dú)立的導(dǎo)線傳輸時鐘與數(shù)據(jù)信號的設(shè)計(jì),通過將數(shù)據(jù)和時鐘信號分離,避免了因時差誘發(fā)的失真。
I2S總線特點(diǎn)如下:
支持全雙工和半雙工模式;
支持主、從模式。
1
物理特性
I2S總線一般由1根系統(tǒng)時鐘線和3根信號線組成:
MCLK:稱為主時鐘,也叫系統(tǒng)時鐘(Sys Clock),一般為了使系統(tǒng)間能夠更好地同步時增加MCLK信號,MCLK的頻率 = 128或者256或者512 * 采樣頻率;
SCLK(BCLK):串行時鐘SCLK,也叫位時鐘(BCLK),即對應(yīng)數(shù)字音頻的每一位數(shù)據(jù),SCLK都有1個脈沖。
SCK的頻率 = 聲道數(shù) * 采樣頻率 * 采樣位數(shù);
LRCK:幀時鐘LRCK,(也稱WS),用于切換左右聲道的數(shù)據(jù)。
LRCK為“1”表示正在傳輸?shù)氖怯衣暤赖臄?shù)據(jù),為“0”則表示正在傳輸?shù)氖亲舐暤赖臄?shù)據(jù)。
LRCK的頻率等于采樣頻率;
SDATA(SD):就是用二進(jìn)制補(bǔ)碼表示的音頻數(shù)據(jù)。最高位擁有固定的位置,而最低位的位置則是依賴于數(shù)據(jù)的有效位數(shù)。
2
常見的I2S數(shù)據(jù)格式
隨著技術(shù)的發(fā)展,在統(tǒng)一的I2S硬件接口下,出現(xiàn)了多種不同的I2S數(shù)據(jù)格式,可分為:I2S Philips標(biāo)準(zhǔn)、左對齊(MSB)標(biāo)準(zhǔn)和右對齊(LSB,也叫日本格式、普通格式)標(biāo)準(zhǔn)。
發(fā)送端和接收端必須使用相同的數(shù)據(jù)格式,確保發(fā)送和接收的數(shù)據(jù)一致。
2.1、I2S Philips標(biāo)準(zhǔn)
I2S Philips標(biāo)準(zhǔn)時序圖如下圖所示:
使用LRCLK信號表示當(dāng)前正在發(fā)送數(shù)據(jù)所屬的聲道,LRCLK為“1”表示正在傳輸?shù)氖怯衣暤赖臄?shù)據(jù),為“0”則表示正在傳輸?shù)氖亲舐暤赖臄?shù)據(jù)。LRCLK信號從當(dāng)前聲道數(shù)據(jù)的第一個位(MSB)之前的一個時鐘開始有效。
LRCLK信號在BCLK的下降沿變化,發(fā)送方在時鐘信號BCLK的下降沿改變數(shù)據(jù),接收方在時鐘信號BCLK的上升沿讀取數(shù)據(jù)。正如上文所說,LRCLK頻率等于采樣頻率Fs,一個LRCLK周期(1/Fs)包括發(fā)送左聲道和右聲道數(shù)據(jù)。
對于這種標(biāo)準(zhǔn)I2S格式的信號,無論有多少位有效數(shù)據(jù),數(shù)據(jù)的最高位總是出現(xiàn)在LRCLK變化(也就是一幀開始)后的第2個BCLK脈沖處。這就使得接收端與發(fā)送端的有效位數(shù)可以不同。如果接收端能處理的有效位數(shù)少于發(fā)送端,可以放棄數(shù)據(jù)幀中多余的低位數(shù)據(jù);如果接收端能處理的有效位數(shù)多于發(fā)送端,可以自行補(bǔ)足剩余的位。
這種同步機(jī)制使得數(shù)字音頻設(shè)備的互連更加方便,而且不會造成數(shù)據(jù)錯位。
2.2、左對齊(MSB)標(biāo)準(zhǔn)
左對齊(MSB)標(biāo)準(zhǔn)時序圖如下圖所示:
該標(biāo)準(zhǔn)較少使用,在LRCLK發(fā)生翻轉(zhuǎn)的同時開始傳輸數(shù)據(jù),注意LRCLK為1時,傳輸?shù)氖亲舐暤罃?shù)據(jù),LRCLK為0時,傳輸?shù)氖怯衣暤罃?shù)據(jù),這剛好與I2S Philips標(biāo)準(zhǔn)相反。
2.3、右對齊(LSB)標(biāo)準(zhǔn)
右對齊(LSB)標(biāo)準(zhǔn)時序圖如下圖所示:
聲音數(shù)據(jù)LSB傳輸完成的同時,LRCLK完成第二次翻轉(zhuǎn)(剛好是LSB和LRCLK是右對齊的,所以稱為右對齊標(biāo)準(zhǔn))。注意LRCLK為1時,傳輸?shù)氖亲舐暤罃?shù)據(jù),LRCLK為0時,傳輸?shù)氖怯衣暤罃?shù)據(jù),這剛好與I2S Philips標(biāo)準(zhǔn)相反。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。