1. 程式人生 > >I2S音頻總線學習

I2S音頻總線學習

但是 adp 多少 聲卡 左右 tar 混合 優先級 分頻器

IIS音頻總線學習(一)數字音頻技術

一、聲音的基本概念

聲音是通過一定介質傳播的連續的波。

技術分享圖片 圖1 聲波

重要指標:

  1. 振幅:音量的大小
  2. 周期:重復出現的時間間隔
  3. 頻率:指信號每秒鐘變化的次數


聲音按頻率分類:

技術分享圖片 圖2 聲音的頻率(語音信號頻率範圍:300Hz-3kHz)

聲音的傳播攜帶了信息,它是人類傳播信息的一種主要媒體。 聲音的三種類型:

  1. 波形聲音:包含了所有聲音形式
  2. 語音:不僅是波形聲音,而且還有豐富的語言內涵(抽象→提取特征→意義理解)
  3. 音樂:與語音相比,形式更規範。音樂是符號化的聲音。

二、聲音的數字化

1.聲音信號的類型

  • 模擬信號(自然界、物理)
  • 數字信號(計算機)

2.聲音數字化過程

技術分享圖片 圖3 聲音數字化過程

3.聲音數字化過程示意圖

技術分享圖片 圖4 聲音數字化過程示意圖

4.聲音數字化三要素

采樣頻率

量化位數

聲道數

每秒鐘抽取聲波幅度樣本的次數

每個采樣點用多少二進制位表示數據範圍

使用聲音通道的個數

采樣頻率越高

聲音質量越好

數據量也越大

量化位數越多

音質越好

數據量也越大

立體聲比單聲道的表現力豐富,但數據量翻倍

11.025kHz

22.05 kHz

44.1 kHz

8位=256

16位=65536

單聲道

立體聲

5.聲音數字化的數據量

音頻數據量=采樣頻率×量化位數×聲道數/8(字節/秒)

采樣頻率

(kHz)

量化位數

(bit)

數據量(KB/s)

單聲道

立體聲

11.025

8

10.77

21.35

16

21.53

43.07

22.05

8

21.53

43.07

16

43.07

86.13

44.1

8

43.07

86.13

16

86.13

172.27

三、音頻的文件格式

1.WAV文件

WAV是Microsoft/IBM共同開發的PC波形文件。因未經壓縮,文件數據量很大。
特點:聲音層次豐富,還原音質好

2.MP3文件

MP3(MPEG Audio layer3)是一種按MPEG標準的音頻壓縮技術制作的音頻文件。
特點:高壓縮比(11:1),優美音質

3.WMA文件

WMA(Windows Media Audio)是Windows Media格式中的一個子集(音頻格式)。
特點:壓縮到MP3一半

4.MIDI文件

MIDI(樂器數字接口)是由一組聲音或樂器符號的集合。
特點:數據量很小,缺乏重現自然音

四、數字音頻壓縮標準

1.音頻壓縮方法概述

技術分享圖片 圖5

壓縮編碼技術是指用某種方法使數字化信息的編碼率降低的技術

音頻信號能壓縮的基本依據:

①聲音信號中存在大量的冗余度;
②人的聽覺具有強音能抑制同時存在的弱音現象。

音頻信號壓縮編碼的分類:

①無損壓縮(熵編碼)
霍夫曼編碼、算術編碼、行程編碼
②有損壓縮
波形編碼--PCM、DPCM、ADPCM 、子帶編碼、矢量量化
參數編碼--LPC
混合編碼--MPLPC、CELP

2.音頻壓縮技術標準

分類

標準

說明

電話語

音質量

G.711

采樣8kHz,量化8bit,碼率64kbps

G.721

采用ADPCM編碼,碼率32kbps

G.723

采用ADPCM有損壓縮,碼率24kbps

G.728

采用LD-CELP壓縮技術,碼率16kbps

調幅廣

播質量

G.722

采樣16kHz,量化14bit,碼率224(64)kbps

高保真

立體聲

MPEG

音頻

采樣44.1kHz,量化16bit,碼率705kbps (MPEG三個壓縮層次,384-64kbps)

五、聲卡

1.聲卡的主要功能

聲卡是負責錄音、播音和聲音合成的一種多媒體板卡。其功能包括:
①錄制、編輯和回放數字音頻文件
②控制和混合各聲源的音量
③記錄和回放時進行壓縮和解壓縮
④語音合成技術(朗讀文本)
⑤具有MIDI接口(樂器數字接口)

2.芯片類型

  • CODEC芯片(依賴CPU,價格便宜)
  • 數字信號處理器DSP(不依賴CPU)

I2S音頻總線學習(二)I2S總線協議

一、I2S總線概述

音響數據的采集、處理和傳輸是多媒體技術的重要組成部分。眾多的數字音頻系統已經進入消費市場,例如數字音頻錄音帶、數字聲音處理器。對於設備和生產廠家來說,標準化的信息傳輸結構可以提高系統的適應性。I2S(Inter—IC Sound)總線是飛利浦公司為數字音頻設備之間的音頻數據傳輸而制定的一種總線標準,該總線專責於音頻設備之間的數據傳輸,廣泛應用於各種多媒體系統。

二、I2S總線規範

I2S總線擁有三條數據信號線:

1、SCK: (continuous serial clock) 串行時鐘

對應數字音頻的每一位數據,SCK都有1個脈沖。SCK的頻率=2×采樣頻率×采樣位數。

2、WS: (word select) 字段(聲道)選擇

用於切換左右聲道的數據。WS的頻率=采樣頻率。 命令選擇線表明了正在被傳輸的聲道。
WS為“1”表示正在傳輸的是左聲道的數據。
WS為“0”表示正在傳輸的是右聲道的數據。
WS可以在串行時鐘的上升沿或者下降沿發生改變,並且WS信號不需要一定是對稱的。在從屬裝置端,WS在時鐘信號的上升沿發生改變。WS總是在最高位傳輸前的一個時鐘周期發生改變,這樣可以使從屬裝置得到與被傳輸的串行數據同步的時間,並且使接收端存儲當前的命令以及為下次的命令清除空間。

3、SD: (serial data) 串行數據

用二進制補碼表示的音頻數據。 I2S格式的信號無論有多少位有效數據,數據的最高位總是被最先傳輸(在WS變化(也就是一幀開始)後的第2個SCK脈沖處),因此最高位擁有固定的位置,而最低位的位置則是依賴於數據的有效位數。也就使得接收端與發送端的有效位數可以不同。如果接收端能處理的有效位數少於發送端,可以放棄數據幀中多余的低位數據;如果接收端能處理的有效位數多於發送端,可以自行補足剩余的位(常補足為零)。這種同步機制使得數字音頻設備的互連更加方便,而且不會造成數據錯位。為了保證數字音頻信號的正確傳輸,發送端和接收端應該采用相同的數據格式和長度。當然,對I2S格式來說數據長度可以不同。 對於系統而言,產生SCK和WS的信號端就是主設備,用MASTER表示,簡單系統示意圖如圖1所示: 技術分享圖片 圖1 簡單系統配置和基本接口時序
另一個基本的接口時序圖可以參看圖2所示: 技術分享圖片 圖2 I2S典型的接口時序

4、時序要求

在IIS總線中,任何設備都可以通過提供必需的時鐘信號成為系統的主設備置,而從屬設備通過外部時鐘信號來得到它的內部時鐘信號,這就意味著必須重視主設備和數據以及命令選擇信號之間的傳播延遲,總的延遲主要由兩部分組成:
1.外部時鐘和從設備的內部時鐘之間的延遲
2.內部時鐘和數據信號以及命令選擇信號之間的延遲
對於數據和命令信號的輸入,外部時鐘和內部時的延遲不占據主導的地位,它只是延長了有效的建立時間(set-up time)。延遲的主要部分是發送端的傳輸延遲和設置接收端所需的時間。見圖3和圖4: 技術分享圖片 圖3 Timing for IIS Transmitter 技術分享圖片 圖4 Timing for IIS Receiver 其中: 技術分享圖片 技術分享圖片

5、電氣特性

輸出電壓:

VL <0.4V
VH>2.4V

輸入電壓

VIL=0.8V
VIH=2.0V

註:目前使用的TTL電平標準,隨著其他IC(LSI)的流行,其他電平也會支持。

I2S音頻總線學習(三)S3C2440的I2S控制器

一、I2S控制器結構框圖

S3C2440A的Inter-IC Sound (IIS)總線接口作為一個編解碼接口連接外部8/16位立體聲音頻解碼IC用於迷你碟機和可攜式應用。IIS總線接口支持IIS總線數據格式和MSB-justified數據格式。該接口對FIFO的訪問采用了DMA模式取代了中斷。它可以在同一時間接收和發送數據。 技術分享圖片 圖1 結構框圖
  1. 總線接口,寄存器組和狀態機(BRFC):總線接口邏輯和FIFO 訪問由狀態機控制。
  2. 5 位雙預定標器(IPSR):一個預定標器用於IIS 總線接口的主時鐘發生器,另外一個用作外部編解碼時鐘發生器。
  3. 64 位FIFO(TxFIFO 和RxFIFO):在發送數據傳輸時,數據寫到TxFIFO;在接收數據傳輸時,從RxFIFO 讀取數據。
  4. 主IISCLK 發生器(SCLKG):在主設備模式,串行位時鐘是從主時鐘生成。
  5. 通道發生器和狀態機(CHNC):IISCLK 和iislrck 是由通道狀態機生成並控制。
  6. 15 位移位寄存器(SFTR):在發送模式下並行數據移位成串行數據輸出,在接收模式下串行數據輸入移位成並行數據。

二、發送接收模式

1.通常傳輸

IIS 控制寄存器對於發送接收FIFO 有一個FIFO 準備標誌位。當FIFO 準備發送數據時,如果FIFO 非空,FIFO 準備標誌位置1。如果FIFO 為空,FIFO 準備標誌位置0。當接收FIFO非滿,對於接收FIFO 的FIFO 準備標誌位置1。其指出FIFO 準備好接收數據。如果接收FIFO 為滿,FIFO 準備標誌置0。這些標誌用於決定CPU 讀寫FIFO 的時間。用這種方法當CUP 在訪問發送接收FIFO 時,串行數據能被發送和接收。

2.DMA 傳輸

在此模式下,發送或接收FIFO 對DMA 控制器是可訪問的。在發送或接收模式下的DMA服務請求是由FIFO 準備標誌自動執行。

3.發送和接收模式

在此模式下IIS 總線接口可以同時接收和發送數據。在OSS驅動中使用該模式。

三、音頻串行接口格式

1.IIS 總線格式

IIS 總線有四線包括串行數據輸入(IISDI),串行數據輸出(IISDO),左右通道選擇(IISLRCK)和串行位時鐘(IISCLK)。生成IISLRCK 和IISCLK 的設備是主設備。串行數據以2 的補碼發送,MSB(Most Significant Bit 最高位)先發。因為發送器和接收器可能有不同的字長,MSB(最高位)先發。發送器不必知道接收器可以處理多少位,接收器也不必知道會收到多少位。當系統字長大於發生器的字長,字為了數據發送而被截斷(最低位被置0)。如果接收器接收大於其字長的位,在LSB(最低位)後的位被忽略。另外,如果接收器收到的位數小於其字長,缺少的位被置0。因此MSB 有一個固定的位置,而LSB 的位置取決於字長。只要IISLRCK 發送改變,發送器在一個時鐘周期內發送下一個字的MSB。由發送器發送的串行數據可以和時鐘信號的下降沿和上升沿同步。但是,串行數據必須在串行時鐘信號的上升沿鎖存到接收器。因此當同步上升沿的數據發送時有一些限制。左右通道選擇線指出了正在發送的通道。IISLRCK 可以在串行時鐘的下降沿或上升沿被改變,當時其不需要對稱。在從設備,信號在串行時鐘的下降沿或上升沿被鎖存。在MSB 被發送,IISLRCK 線改變一個時鐘周期。此允許發送器導出用於建立發送的串行數據同步時序。此外,其使能接收存儲前一個字且為下一個字的接收清除輸入。

2.MSB JUSTIFIED 格式

MSB JUSTIFIED 總線格式在結構上和IIS 總線格式。唯一和IIS 總線格式的區別,MSB JUSTIFIED 格式實現了只要IISLRCK 改變,發送器總是發送下一個字的MSB。 技術分享圖片 圖2 IIS格式和MSB JUSTIFIED數據格式

四、IIS采集頻率和主設備時鐘

I2S主設備時鐘頻率可以通過采樣頻率來選擇,這是因為I2S主設備時鐘頻率是由I2S分頻器產生的(主設備時鐘頻率=PCLK/預分頻器值),因此必須選擇合適的預分頻值和CODECLK的采樣頻率類型(256fs或384fs),才能獲得合適的I2SLRCK頻率(I2SLRCK頻率=主設備時鐘頻率/CODECLK)。
串行位采用頻率類型(16/32/48fs)可以通過配置信道的串行位數和CODECLK采樣頻率類型來完成(串行位時鐘頻率類型=CODECLK的采用類型/串行數據位數)。

五、IIS 總線接口特殊寄存器

I2S相關的寄存器包括I2S控制寄存器I2SCON、I2S模式寄存器I2SMOD、I2S分頻寄存器I2SPSR、I2SFCON寄存器和FIFO寄存器。


1)I2SCON控制寄存器


I2SCON控制寄存器物理地址為0x55000000,可讀/寫,復位後值為0x100。寄存器各個比特位意義如下:

[8] 左右聲道標記,0=左聲道,1=右聲道;
[7] 發送FIFO就緒標記,取0時表示沒有就緒,取1時表示FIFO就緒;
[6] 接收FIFO就緒標記,取0時表示沒有就緒,取1時表示FIFO就緒;
[5] 發送DMA請求使能,取0時請求禁止,取1時請求使能;
[4] 接收DMA請求使能,取0時請求禁止,取1時請求使能;
[3] 發送通道空閑命令,在空閑狀態(暫停傳輸)時,I2SLRCK是不激活的,0表示I2SLRCK產生,1表示不產生;
[2] 接收通道空閑命令,在空閑狀態(暫停傳輸)時,I2SLRCK是不激活的,0表示I2SLRCK產生,1表示不產生;
[1] I2S預分頻器使能,取0時預分頻器禁止,取1時預分頻器使能;
[0] I2S接口使能,取0時I2S禁止,取1時I2S使能。

2)I2SMOD模式寄存器

I2SMOD模式寄存器物理地址為0x55000004,可讀/寫,復位後值為0x000。寄存器各個比特位意義如下:

[8] 主從模式選擇,取0時為主模式,取1時為從模式;
[7:6] 發送/接收模式選擇,00=無,01=接收模式,10=發送模式,11=發送/接收模式;
[5] 左右通道優先級,取0時右通道高左通道低,取1時右通道低左通道高;
[4] 串行接口格式,取0時I2S兼容格式,取1時MSB可調格式;
[3] 每通道串行數據位,取0時8位,取1時16位;
[2] 主時鐘頻率選擇,取0時主時鐘是256fs(采樣頻率),取1時為384fs;
[1:0] 串行位時鐘頻率選擇,00=位時鐘是16fs,01=位時鐘是32fs,10=位時鐘是48fs,11=未定義。

3)I2S分頻寄存器I2SPSR

I2S分頻寄存器物理地址為0x55000008,可讀/寫,復位後值為0x000。寄存器各個比特位意義如下:

[9:5] A預分頻值,預分頻器A的除因子,I2S總線接口主時鐘=MCLK/A預分頻因子;
[4:0] B預分頻值,預分頻器B的除因子,外部CODEC時鐘=MCKL/B預分頻因子。

4)I2SFCON寄存器

I2SFCON寄存器物理地址為0x5500000C,可讀/寫,復位後值為0x000。寄存器各個比特位意義如下:

[15] 發送FIFO訪問模式選擇,取0時工作於普通模式,取1時工作在DMA模式;
[14] 接收FIFO訪問模式選擇,取0時工作於普通模式,取1時工作在DMA模式;
[13] 控制發送FIFO使能,取1時使能,取0時禁止;
[12] 控制接收FIFO使能,取1時使能,取0時禁止;
[11:6] 發送端FIFO數據計數,計數值0~32;
[5:0] 接收端FIFO數據計數,計數值0~32。

5)FIFO寄存器I2SFIF

FIFO寄存器物理地址為0x55000010,可讀/寫,復位後值為0x000。寄存器各個比特位意義如下:I2S總線接口在發送/接收模式有兩個64字節的FIFO,每個FIFO由寬16、深32的表組成,並且每個FIFO單元可以分別操作高字節或低字節。通過FIFO入口訪問發送和接收FIFO,入口地址為0x55000010。

I2S音頻總線學習(四)I2S接口設計

一、數據發送端的設計

技術分享圖片 圖1 發送端 隨著WS信號的改變,導出一個WSP脈沖信號,進入並行移位寄存器裝入DATA LEFT或DATA RIGHT,從而輸出數據被激活。串行數據在時鐘下降沿移出。串行數據的默認輸入是0,因此所有位於最低位(LSB)後的數據將被設置為0。

二、數據接收端的設計

技術分享圖片 圖2 接收端 隨著第一個WS信號的改變,WSP在SCK信號的下降沿重設計數器。在“1 out of n”譯碼器對計數器數值進行譯碼後,第一個串行的數據(MSB)在SCK時鐘信號的上升沿被存放進入B1,隨著計數器的增長,接下來的數據被依次存放進入B2到Bn中。在下一個WS信號改變的時候,數據根據WSP脈沖的變化被存放進入左(聲道)鎖存器或者右(聲道)鎖存器,並且將B2一Bn的數據清除以及計數器重設,如果有冗余的數據則最低位之後的數據將被忽略。註意:譯碼器和計數器(虛線內的部分)可以被一個n比特移位寄存器所代替,如圖3所示。 當計數計滿時,即ENn為高時,計算器EN信號變成低電平,使計數器停止計數,同時也使串並轉換模塊停止接收數據。 技術分享圖片 圖3 接收端

I2S音頻總線學習