工作中需要用到I2S通信协议,对协议中设计的BCLK, MCLK之间的关系不熟悉。 所以查找各种资料系统学习一下。
I2S是音频数据传输格式。
对模拟信号数字化需要经过采样和量化两个阶段:
1) 采样:
就是间隔一定的时间对模拟信号做一个取样。比如间隔0.001秒(s)采一个样,这样采样频率(Fs)就是:
Fs= 1/0.001=1Khz.
要多大采样率才可以还原一个模拟信号,这涉及到数字信号处理原理(奈奎斯特定理)。采样频率 Fs 大于信号中最高频率fmax的2倍时(Fs>2fmax),采样之后的数字信号完整地保留了原始信号中的信息。
人耳听到的音频范围是20Hz-20KHz, 如果对人耳听力范围内音频数字化,fmax=20Khz, Fs> 40KHz 的采样率44.1KHz就是高保真了。它能覆盖人耳听到的所有声音。
I2S中 LRCLK= Fs
2)量化:
就是对采到的信号进行数字编码。这里涉及到一个采样精度(n)的概念。举个例子: 我的ADC采样电压为0-5V,采样位数为16Bit.
采样精度就是(5V-0V)/(2^16)。
每次取样转化为16bit数据,然后同步,取的要够快,不然下一次采样数据到来时就会导致本次数据丢失。所以对于 Fs=44.1KHz
采样精度为16bit的双声道的Mclk应该 > 16*2*441000bps=1411.2kbit/s
Frame帧:构成一个完整的声音单元,所谓的声音单元是指一个采样样本,Frame = 采样精度(n) * 声道数channel;
Period Size周期:每次硬件中断处理PCM音频数据的帧数,对于音频设备的数据读写,以此为单位;
Buffer Size