博客專欄

        EEPW首頁 > 博客 > 一文搞懂I2S通信總線

        一文搞懂I2S通信總線

        發布人:美男子玩編程 時間:2022-12-19 來源:工程師 發布文章

        之前我們講過I2C通信總線,本篇博文將講一講I2C的變種:I2S總線。


        I2C和I2S都是由Philips公司(2006年遷移到NXP)發布的串行總線,I2S是在I2C之后發布,I2S專為傳輸音頻數據而設計。


        I2S(Inter-IC Sound)總線,又稱集成電路內置音頻總線,是飛利浦公司為數字音頻設備之間的音頻數據傳輸而制定的一種總線標準。采用了獨立的導線傳輸時鐘與數據信號的設計,通過將數據和時鐘信號分離,避免了因時差誘發的失真。


        I2S總線特點如下:

        • 支持全雙工和半雙工模式;

        • 支持主、從模式。


        1


        物理特性

        I2S總線一般由1根系統時鐘線和3根信號線組成:

        • MCLK:稱為主時鐘,也叫系統時鐘(Sys Clock),一般為了使系統間能夠更好地同步時增加MCLK信號,MCLK的頻率 = 128或者256或者512 * 采樣頻率;

        • SCLK(BCLK):串行時鐘SCLK,也叫位時鐘(BCLK),即對應數字音頻的每一位數據,SCLK都有1個脈沖。

          SCK的頻率 = 聲道數 * 采樣頻率 * 采樣位數;

        • LRCK:幀時鐘LRCK,(也稱WS),用于切換左右聲道的數據。

          LRCK為“1”表示正在傳輸的是右聲道的數據,為“0”則表示正在傳輸的是左聲道的數據。

          LRCK的頻率等于采樣頻率;

        • SDATA(SD):就是用二進制補碼表示的音頻數據。最高位擁有固定的位置,而最低位的位置則是依賴于數據的有效位數。


        圖片


        2


        常見的I2S數據格式

        隨著技術的發展,在統一的I2S硬件接口下,出現了多種不同的I2S數據格式,可分為:I2S Philips標準、左對齊(MSB)標準和右對齊(LSB,也叫日本格式、普通格式)標準。


        發送端和接收端必須使用相同的數據格式,確保發送和接收的數據一致。


        2.1、I2S Philips標準

        I2S Philips標準時序圖如下圖所示:

        圖片

        使用LRCLK信號表示當前正在發送數據所屬的聲道,LRCLK為“1”表示正在傳輸的是右聲道的數據,為“0”則表示正在傳輸的是左聲道的數據。LRCLK信號從當前聲道數據的第一個位(MSB)之前的一個時鐘開始有效。


        LRCLK信號在BCLK的下降沿變化,發送方在時鐘信號BCLK的下降沿改變數據,接收方在時鐘信號BCLK的上升沿讀取數據。正如上文所說,LRCLK頻率等于采樣頻率Fs,一個LRCLK周期(1/Fs)包括發送左聲道和右聲道數據。


        對于這種標準I2S格式的信號,無論有多少位有效數據,數據的最高位總是出現在LRCLK變化(也就是一幀開始)后的第2個BCLK脈沖處。這就使得接收端與發送端的有效位數可以不同。如果接收端能處理的有效位數少于發送端,可以放棄數據幀中多余的低位數據;如果接收端能處理的有效位數多于發送端,可以自行補足剩余的位。


        這種同步機制使得數字音頻設備的互連更加方便,而且不會造成數據錯位。


        2.2、左對齊(MSB)標準

        左對齊(MSB)標準時序圖如下圖所示:


        圖片

        該標準較少使用,在LRCLK發生翻轉的同時開始傳輸數據,注意LRCLK為1時,傳輸的是左聲道數據,LRCLK為0時,傳輸的是右聲道數據,這剛好與I2S Philips標準相反。


        2.3、右對齊(LSB)標準

        右對齊(LSB)標準時序圖如下圖所示:


        圖片

        聲音數據LSB傳輸完成的同時,LRCLK完成第二次翻轉(剛好是LSB和LRCLK是右對齊的,所以稱為右對齊標準)。注意LRCLK為1時,傳輸的是左聲道數據,LRCLK為0時,傳輸的是右聲道數據,這剛好與I2S Philips標準相反。


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: 通信總線

        技術專區

        關閉
        主站蜘蛛池模板: 蒲城县| 绥宁县| 鄯善县| 广宁县| 克拉玛依市| 台东市| 上饶市| 澄江县| 沁阳市| 吉首市| 松潘县| 出国| 常熟市| 宝应县| 龙州县| 广宁县| 绿春县| 隆昌县| 项城市| 东明县| 东阿县| 昌图县| 铜川市| 隆回县| 清水河县| 阿尔山市| 平陆县| 芦山县| 崇礼县| 綦江县| 响水县| 仁怀市| 灯塔市| 察雅县| 应用必备| 潜江市| 巴南区| 高阳县| 珠海市| 西畴县| 隆子县|