天天看點

I2S (一)雜談

參考資料,強力推薦,i2s協定接口及相關

  • 其他音頻硬體接口 TDM,PDM,PCM
  • PCM / I2S / AC97簡介
  • 音頻接口設計詳解!智能硬體設計,I2S、PDM、TDM選什麼接口?
pcm
	4根線,與i2s類似
i2s
	4根線
ac97
	5根線
tdm ? // 這個不是一個硬體接口,而是i2s中的一個模式.i2s标準格式,左對齊,右對齊,dsp/pcm,TDM(時分複用)是齊平的.
pdm ? // 頻分多路複用 
           
  • nxp的一款i2s晶片UM10204中使用的i2s協定
  • 作用
用來傳輸 音頻資料的
           
  • 哪裡有
手機,電腦,錄音裝置,放音裝置
           
  • 與 常見外設的關系
收音裝置:
	mic
	耳機中的錄音孔
放音裝置
	speaker
	耳機
           
  • 協定
在連接配接中可下載下傳
           
  • 關鍵順序
// 标準中是三根
1/ MCLK
2/ LRCLK(LRCK)
3/ SCLK
// master 提供 SCK 和 LRCK(也叫WS) .從外部時鐘輸入MCLK可以導出其内部時鐘信号
4/ SDIN
5/ SDOUT

           

音頻相關概念

采樣頻率(采樣率) 機關 : sample/second // sps
    1秒同時對多個聲道完成adc采樣的次數
量化點數 機關 : bit/每個聲道 (有符号數)
聲道數目 機關 : 個 // 一般要不是單聲道 要不是就是雙聲道

是以 聲音資料的傳輸頻率 應該為 采樣頻率 * 量化點數 * 聲道數目 ,最終機關為 bps(bit/second)(bit per second)

注意機關的轉換:

kbps = 1000 bps
Kb = 1024b 

采樣頻率一般為多少
正常人聽覺的頻率範圍大約在20Hz~20kHz之間,根據奈奎斯特采樣理論,為了保證聲音不失真,采樣頻率應該在40kHz左右。常用的音頻采樣頻率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,如果采用更高的采樣頻率,還可以達到DVD的音質。


           

音頻概念在i2s中的應用

1 channel 在i2s 中是怎麼表現的?
	如果設定的是兩聲道,采樣點數為16bit,一幀為兩聲道,且一個聲道為16bit.
	那麼從開啟i2s後
		第1次讀取(必須開啟後馬上讀)I2S_READ_DATA的資料為左聲道資料, // 或用dma
		第2次讀取(必須連續讀)I2S_READ_DATA的資料為右聲道資料,
		...
		第2n+1次讀取(必須連續讀)I2S_READ_DATA的資料為左聲道資料,
		第2n+2次讀取(必須連續讀)I2S_READ_DATA的資料為右聲道資料,
		
	如果采樣是16bit,那麼可以說在一個采樣點一個聲道采樣了16bit.
	如果是2(雙)聲道,可以說2個聲道分别采樣了16bit,這兩個16bit 是不一樣的.
2、錄音到底是錄立體聲還是單聲道 ? 
答:電腦錄音可以是立體聲(雙聲道),但是如果咪頭隻有一個,是以也隻是對單聲道的double而已.???
 
3、如何錄出立體聲? 
答:使用立體聲話筒,或者使用兩隻話筒通過不同擺位拾音。
4 FS 是什麼
	Frame size
	https://blog.csdn.net/lugandong/article/details/72468831
	256FS 代表 在 一個LRCK 周期内,i2s_data 上 傳輸了 256 bit 的 資料.

5 i2s接口如何傳輸4(2n,n>=2)聲道
	方案1
		可以利用I2S的接口,用TDM模式傳多個聲道的資料。
		參考es7210 的 TDM格式,建圖1
	方案2
		增加data線???
		I?S controller has only to handle audio data. I?S controller only supports I2S-bus format with 16-bit length. In 2 channel
		mode, 4-line serial bus is used consisting of a line for two time-multiplexed data channels (DA_DATA0 and
		AD_DATA), a word select line (SYNC) and a clock line (BIT_CLK). In 5.1 channel mode, two more wires (DA_DATA1
		and DA_DATA2) are needed to transmit four channels data. In 5.1 channel mode, DA_DATA0 carries 1st and 2nd
		channel audio data, DA_DATA1 carries 3rd and 4th audio data, and DA_DATA2 carries 5th and 6th audio data. I?S
		controller can work as master or slave mode.
           
I2S (一)雜談

i2s 資料格式

有什麼
		LJ,RJ,I2S,DSP,PCM,TDM
		
	https://blog.csdn.net/yuhengyue/article/details/80938596
	https://www.cnblogs.com/lihaiping/p/4795418.html

		
ASoC currently supports the three main Digital Audio Interfaces (DAI) found on
SoC controllers and portable audio CODECs today, namely AC97, I2S and PCM.


AC97
====

  AC97 is a five wire interface commonly found on many PC sound cards. It is
now also popular in many portable devices. This DAI has a reset line and time
multiplexes its data on its SDATA_OUT (playback) and SDATA_IN (capture) lines.
The bit clock (BCLK) is always driven by the CODEC (usually 12.288MHz) and the
frame (FRAME) (usually 48kHz) is always driven by the controller. Each AC97
frame is 21uS long and is divided into 13 time slots.

The AC97 specification can be found at :-
http://www.intel.com/design/chipsets/audio/ac97_r23.pdf

I2S
===

 I2S is a common 4 wire DAI used in HiFi, STB and portable devices. The Tx and
Rx lines are used for audio transmission, whilst the bit clock (BCLK) and
left/right clock (LRC) synchronise the link. I2S is flexible in that either the
controller or CODEC can drive (master) the BCLK and LRC clock lines. Bit clock
usually varies depending on the sample rate and the master system clock
(SYSCLK). LRCLK is the same as the sample rate. A few devices support separate
ADC and DAC LRCLKs, this allows for simultaneous capture and playback at
different sample rates.

I2S has several different operating modes:-

 o I2S - MSB is transmitted on the falling edge of the first BCLK after LRC
         transition.

 o Left Justified - MSB is transmitted on transition of LRC.

 o Right Justified - MSB is transmitted sample size BCLKs before LRC
                     transition.

PCM
===

PCM is another 4 wire interface, very similar to I2S, which can support a more
flexible protocol. It has bit clock (BCLK) and sync (SYNC) lines that are used
to synchronise the link whilst the Tx and Rx lines are used to transmit and
receive the audio data. Bit clock usually varies depending on sample rate
whilst sync runs at the sample rate. PCM also supports Time Division
Multiplexing (TDM) in that several devices can use the bus simultaneously (this
is sometimes referred to as network mode).

Common PCM operating modes:-

 o Mode A - MSB is transmitted on falling edge of first BCLK after FRAME/SYNC.

 o Mode B - MSB is transmitted on rising edge of FRAME/SYNC.
————————————————
版權聲明:本文為CSDN部落客「sepnic」的原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/azloong/article/details/6536855
           
  • i2s 飛利浦标準
    I2S (一)雜談
  • 左對齊
    I2S (一)雜談
  • 右對齊 (日本i2s格式)
    I2S (一)雜談
  • dsp/pcm modeA
    I2S (一)雜談
  • dsp/pcm modeB
    I2S (一)雜談

實際時序

下面的為 16bit 48K采樣 2channel i2s模式 放音 實際采樣資料

實際左聲道(WS為0)的資料才有意義,右聲道(WS為0)的資料為0.

I2S (一)雜談

晶片

  • 收音
蘇州順芯 
	ES7210 4路ADC(MIC)音頻模數轉換IC 	4mic
	ES7243 2路ADC(MIC)音頻模數轉換IC 	2mic
           
  • 放音
蘇州順芯
	es7149 // a low cost 12-pin stereo digital to analog converter
	ht6819 // 3.3V帶數字音量控制/防筱頂低EMI立體聲D類音頻功率放大器 
           

音頻

應用:
	語音(voice)和音樂(music)。
	語音主要用于溝通通信,如打電話,現在由于語音識别的發展,人機語音互動也是語音的一個應用,目前正在風口上,好多大廠都推出了智能音箱。音樂主要用于欣賞,如音樂播放。


在音頻處理時要先把音頻的模拟信号變成數字信号,這叫A/D轉換。當要把音頻播放出來時則需要把數字信号轉換成模拟信号,這叫D/A轉換。

要把音頻的模拟信号變成數字信号,就需要采樣,或者叫抽樣。

一秒鐘内采樣的次數稱為采樣頻率。根據Nyquist采樣定理,要想重建原始信号,采樣頻率必須大于信号中最高頻率的兩倍。

采樣頻率越高,越接近原始信号,但是也加大了運算處理的複雜度。


人能感受到的頻率範圍為20HZ--20kHZ, 一般音樂的采樣頻率為44.1kHZ(根據Nyquist采樣定理,采樣頻率大于信号中最高頻率的兩倍), 更高的可以是48kHZ和96kHZ,不過一般人用耳聽感覺不出差别了。

語音主要是以溝通為主,不需要像音樂那樣清晰,分窄帶和寬帶。窄帶頻率範圍為300Hz--3400Hz,相應的采樣頻率為8000Hz; 寬帶頻率範圍為50Hz--7000Hz,相應的采樣頻率為16000Hz,用16k采樣的語音就稱為高清語音了。現在主流的語音采樣頻率為16kHz。

信号的頻率 是怎麼算出來的?

           

咪頭

咪頭輸出電壓信号,這個沒錯,但是信号很小,隻有幾mv到十幾mv,必須經過一級放大電路放大。

電容式的咪頭還需要給一個偏置電壓,這個網上有很多資料,你可以再找找。

普通單片機是數字電路,無法直接讀取這個電壓的,必須先ad(模拟數字)轉換,轉成數字量信号,才能讀取輸出電壓。

是以咪頭輸出不能直接連接配接單片機,除非單片機自帶a/d功能。
           

WM8978放音錄音晶片管腳

錄音部分:
	WM8978結構圖的左邊部分是輸入部分,可用于模拟聲音輸入,即用于錄音輸入。有三個輸入接口,一個是由LIN和LIP、RIN和RIP組合而成的僞差分立體聲麥克風輸入,一個是由L2和R2組合的立體聲麥克風輸入,還有一個是由AUXL和AUXR組合的線輸入或用來傳輸告警聲的輸入。

放音部分:
	WM8978結構圖的右邊部分是聲音放大輸出部分,LOUT1和ROUT1用于耳機驅動,LOUT2和ROUT2用于揚聲器驅動,OUT3和OUT4也可以配置成立體聲線輸出,OUT4也可以用于提供一個左右聲道的單聲道混合。

資料輸入輸出:
	ADCDAT
	DACDAT
	WM8978結構圖的中邊部分是晶片核心内容,處理聲音的AD和DA轉換。ADC部分對聲音輸入進行處理,包括ADC濾波處理、音量控制、輸入限幅器/電平自動控制等等。DAC部分控制聲音輸出效果,包括DAC5路均衡器、DAC 3D放大、DAC輸出限幅以及音量控制等等處理。

時鐘部分
	MCLK
	LRC
	BCLK
	SCLK
控制部分 // 一般都是用i2c 做晶片控制,i2s 做晶片資料,及時鐘同步

	MODE
資料部分
	SDIN