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):就是用二進制補碼表示的音頻數據。最高位擁有固定的位置,而最低位的位置則是依賴于數據的有效位數。
我們基本都是按照Philips為藍本,看下I2S時序:
下圖是我之前做過的一個項目
框圖如上圖所示:
具體芯片就不說了,做的是個麥克風,然后固定位數頻率輸出,大家應該能看到電腦,這個參數跟聲卡有關,由于本人3T硬盤損壞了,導致電路沒找到,這里就貼不了電路圖,等后面在講解SOC的時候在補上吧。
我們對音頻的處理一般是通過DSP進行算法處理,得到我們人耳最舒服的狀態,所以目前市面上的耳放區別都不大,但是能做的很好的,很少很少不同年齡段的人要求不一樣,但多數人聽到的也就習慣了(人的年齡越大聽到聲音的范圍越小,常理剛出生的小孩確實能聽到我們聽不到的聲音),個人覺得音頻比視頻要做好更難,其他具體的就不贅述了。
個人觀點:
-
音頻前端電源一定要保證紋波足夠小,噪聲也要足夠小,紋波和噪聲有很大區別,要分別處理好,特別是高頻電路中,做好濾波;
-
好的麥克風和功放效果不僅僅是硬件的工作,軟件要做的也很多,前后端的濾波,聲音采集處理算法;
-
PCB設計的時候,做好包地的處理,不要讓地的底噪過大(名義上的GND不是大地,會存在底噪,各種干擾都會影響音頻信號)。