音频外设术语定义

MCLK主时钟

该时钟输出频率 256 × FS或者384 x FS,其中 FS 为音频信号 采样频率

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ehZgXoLF-1611515023963)(readme.image/image-20210124172152630.png)]

串行时钟频率SCLK

又叫位时钟频率BCLK,采集bit的速率,以PCM数字幅值编码的音频流数据,16bit代表一个状态幅值,2个字节
SCLK的频率=2×采样频率×采样位数

stereo 立体声

立体声就是拥有左右声道的音频流数据,Mono单声道

PCM

脉冲幅值编码
16bit长度,有符号位,就是有±

PDM

脉冲密度编码
1bit长度,只有0,1

帧时钟LRCLK也称WS采样率

用于切换左右声道的数据。
LRCLK为“1”表示正在传输的是右声道的数据
LRCLK为“0”表示正在传输的是左声道的数据
LRCLK的频率等于采样频率。

使用场景
需要采样率为16khz的音频流数据,即帧时钟为16khz,1ms一帧音频数据
无论编码方式是PCM还是PDM都是串行通讯数据都是bit采样(即在SCLK的时钟的上升沿或者下降沿采样,确定当前的数据为1或者0),不过最后组成的数据意义不同,PCM直接就是幅值,而PDM则需要转PCM

因为编码方式的不同对一帧的定义就不同了
PCM为16bit为一帧
PDM因为需要转PCM涉及到数据抽取(即例如在PDM转PCM的软件调用接口中规定需要16khz的PCM数据时,需要8个字节的PDM数据输入,输出一个PCM数据,所以这时PDM就需要8*8=64bit的数据为一帧)
这时的采样率,注意采样率16khz,1ms,16帧

ws是单片机的输出引脚—>连接传感器的L/R切换脚,通常传感器的厂家会有一份传感器数据手册DataSheet

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sFIbGenk-1611515023965)(readme.image/image-20210124155152677.png)]

可以看到2号传感器SEL接地,单片机在串行时钟的的上升沿采样取得的是2号传感器1bit数据,1号传感器SEL脚接高电平,单片机在串行时钟的下降沿采样取得的是1号传感器1bit数据。

有些外设如SAI接口的外设选择PDM接口,则没有WS脚,WS脚存在于I2S协议中,就是用于连接传感器的SEL脚或者其他名称的脚,这些脚的功能就是设置传感器在什么边沿,输出哪种声道的数据。

ws采样率的设定就是设定读取某一声道的时间,控制在采样率范围内,读取下一声道就切换输出高电平或输出低电平

如果原始数据,PDM编码,需转为16khz PCM编码数据,接口要求8字节PDM数据输出一帧PCM

其比值PCM 16bit : PDM 64bit

数据接口连接两个mic,即双声道,ws连接SEL脚,我们的串行时钟频率应为:SCLK = 64bit一帧 * 2声道 * 16khz采样率 = 2.048mhz

这个时钟频率可以1ms得到2048个bit,包含两个声道的数据,得到一个声道的数据,再除以2 = 1024个bit,换算成帧1024/64 = 16帧即每通道1ms采集16帧数据,采样率为16khz。

猜你喜欢

转载自blog.csdn.net/weixin_42892101/article/details/113101583