I2S協議-一篇文章帶你瞭解

By: Ailson Jack
Date: 2019.11.02
個人博客:http://www.only2fire.com/
本文在我博客的地址是:http://www.only2fire.com/archives/108.html,排版更好,便於學習,也可以去我博客逛逛,興許有你想要的內容呢。

這篇文章總結了I2S協議的一些知識點,作爲自己以後調試音頻的參考,當然了文章中的內容也參考了一些網友的總結。

一、數字音頻技術

1.聲音數字化概念及過程

現實生活中的聲音是通過一定介質傳播的連續的波,它可以由週期和振幅兩個重要指標描述。正常人可以聽到的聲音頻率範圍爲 20Hz~20KHz。現實存在的聲音是模擬量,這對聲音保存和長距離傳輸造成很大的困難,一般的做法是把模擬量轉成對應的數字量保存,在需要還原聲音的地方再把數字量的轉成模擬量輸出如下圖所示:

模擬量轉成數字量一般可以分爲三個過程,分別爲採樣、量化、編碼,如下圖所示。

用一個比源聲音頻率高的採樣信號去量化源聲音,記錄每個採樣點的值,最後如果把所有采樣點數值連接起來與源聲音曲線是互相吻合的,只是它不是連續的。在圖中,兩條藍色虛線距離就是採樣信號的週期,即對應一個採樣頻率(FS),可以想象得到採樣頻率越高最後得到的結果就與源聲音越吻合,但此時採樣數據量越越大,一般使用 44.1KHz 採樣頻率即可得到高保真的聲音。每條藍色虛線長度決定着該時刻源聲音的量化值,該量化值有另外一個概念與之掛鉤,就是量化位數。量化位數表示每個採樣點用多少位表示數據範圍,常用有 16bit24bit 32bit,位數越高最後還原得到的音質越好,數據量也會越大。

2.聲音數字化三要素

採用頻率:每秒鐘抽取聲波幅度樣本的次數。採樣頻率越高,聲音質量越好,數據量也越大。常用的採樣頻率有11.025KHz,22.05KHz,44.1KHz,48KHz,96KHz等。

量化位數:每個採樣點用多少二進制位表示數據範圍。量化位數也叫採樣位數。量化位數越多,音質越好,數據量也越大。常用的採樣位數有8位,16位,24位,32位等。

聲道數:使用聲道的個數。立體聲比單聲道的表現力豐富,但是數據量翻倍。常用的聲道數有單聲道,立體聲(左聲道和右聲道)。

3.聲音數字化的數據量

聲音數字化後的數據量計算公式爲:

音頻數據量 = 採樣頻率(Hz) * 量化位數 * 聲道數 / 8,單位:字節/秒。

這裏舉個例子:對一個聲音信號進行數字化處理,採樣頻率爲44.1KHz,量化位數爲16位,那麼:

單聲道的音頻數據量爲:44100 * 16 * 1 / 8 = 88200 字節/秒;

立體聲的音頻數據量爲:44100 * 16 * 2 / 8 = 176400 字節/秒。

4.聲卡

聲卡是負責錄音、播音和聲音合成的一種多媒體板卡。其功能包括:

(1).錄製、編輯和回放數字音頻文件;

(2).控制和混合各聲源的音量;

(3).記錄和回放時進行壓縮和解壓縮;

(4).語音合成技術(朗讀文本);

(5).具有MIDI接口(樂器數字接口)。

聲卡的芯片類型:

(1).CODEC芯片(依賴CPU,價格便宜);

(2).數字信號處理器DSP(不依賴CPU)。

二、I2S總線協議

1.I2S總線概述

音響數據的採集、處理和傳輸是多媒體技術的重要組成部分。衆多的數字音頻系統已經進入消費市場,例如數字音頻錄音帶、數字聲音處理器。對於設備和生產廠家來說,標準化的信息傳輸結構可以提高系統的適應性。

I2S(Inter-IC Sound)總線, 又稱集成電路內置音頻總線,是飛利浦半導體公司(現爲恩智浦半導體公司)針對數字音頻設備之間的音頻數據傳輸而制定的一種總線標準。該總線專門用於音頻設備之間的數據傳輸,廣泛應用於各種多媒體系統。它採用了沿獨立的導線傳輸時鐘與數據信號的設計,通過將數據和時鐘信號分離,避免了因時差誘發的失真,爲用戶節省了購買抵抗音頻抖動的專業設備的費用。

2.I2S信號線

I2S總線主要有3個信號線:

(1).串行時鐘SCK

串行時鐘SCK,也叫位時鐘BCLK,對應數字音頻的每一位數據,SCK都有1個脈衝。SCK的頻率 = 聲道數 * 採樣頻率 * 採樣位數

(2).字段選擇信號WS

字段選擇信號WS,也叫LRCLK,用於切換左右聲道的數據。WS的頻率 = 採樣頻率

字段選擇信號WS表明了正在被傳輸的聲道。I2S Philips標準WS信號的電平含義如下:

WS爲0,表示正在傳輸的是左聲道的數據;

WS爲1,表示正在傳輸的是右聲道的數據。

(3).串行數據SD

串行數據SD,就是用二進制補碼錶示的音頻數據。I2S串行數據在傳輸的時候,由高位(MSB)到低位(LSB)依次進行傳輸。

(4).主時鐘MCLK

一般還有MCLK,主時鐘。MCLK的頻率 = 128或者256或者512 * 採樣頻率

對於系統而言,能夠產生SCK和WS的信號端就是主設備,用MASTER表示,簡單系統示意圖如下:

3.幾種常見的I2S數據格式

隨着技術的發展,在統一的I2S硬件接口下,出現了多種不同的I2S數據格式,可分爲左對齊(MSB)標準、右對齊(LSB)標準、I2S Philips 標準。

對於所有數據格式和通信標準而言,始終會先發送最高有效位(MSB 優先)。

發送端和接收端必須使用相同的數據格式,確保發送和接收的數據一致。(1).I2S Philips 標準

使用LRCLK信號來指示當前正在發送的數據所屬的聲道,爲0時表示左聲道數據。LRCLK信號從當前聲道數據的第一個位(MSB)之前的一個時鐘開始有效。LRCLK信號在BCLK的下降沿變化。發送方在時鐘信號BCLK的下降沿改變數據,接收方在時鐘信號BCLK的上升沿讀取數據。正如上文所說,LRCLK頻率等於採樣頻率Fs,一個LRCLK週期(1/Fs)包括髮送左聲道和右聲道數據。

對於這種標準I2S格式的信號,無論有多少位有效數據,數據的最高位總是出現在LRCLK變化(也就是一幀開始)後的第2個BCLK脈衝處。這就使得接收端與發送端的有效位數可以不同。如果接收端能處理的有效位數少於發送端,可以放棄數據幀中多餘的低位數據;如果接收端能處理的有效位數多於發送端,可以自行補足剩餘的位。這種同步機制使得數字音頻設備的互連更加方便,而且不會造成數據錯位。

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

(2).左對齊(MSB)標準

在LRCLK發生翻轉的同時開始傳輸數據。該標準較少使用。注意此時LRCLK爲1時,傳輸的是左聲道數據,這剛好與I2S Philips標準相反。左對齊(MSB)標準時序圖如下所示:

(3).右對齊(LSB)標準

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

如果覺得文章寫的不錯,對你有幫助,歡迎點贊,關注博主喲!

排版更好的內容見我博客的地址:http://www.only2fire.com/archives/108.html
注:轉載請註明出處,謝謝!^_^

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章