在线时间4806 小时
UID3441752
注册时间2017-11-21
NXP金币76766
TA的每日心情 | 开心 2025-7-11 08:53 |
---|
签到天数: 301 天 连续签到: 2 天 [LV.8]以坛为家I
管理员
  
- 积分
- 40165
- 最后登录
- 2025-9-2
|
MEMS-MIC由于不需要外接codec,在低成本方案中有广泛的应用。但是由于MEMS-MIC采用了PDM编码格式,需要进行PDM到PCM格式的转换。同时为了获取更好的音质,还需要进行FIR滤波。相对于使用codec的MIC,使用MEMS-MIC在解码技术上会略显复杂一些。本文将会讨论在Kinetis/RT MCU上使用SAI接口连接MEMS-MIC的整个接入的方案。
一、什么是PDM编码
PDM的字面意思是脉冲密度调制。PDM和我们平时比较常见的PCM有很大的区别,这是一种完全不同的针对模拟信号的数字编码方式。其每次采样仅有1个bit的输出。对于没有接触过这种1bit编码的小伙伴们看到这可能会觉得特别懵,因为这种编码方式相对于大家比较熟悉的PCM编码有很大的区别。
这里只展示一下PDM输入和原始输入的正弦波的关系图。关于PDM的编码原理的详细介绍会在后期文章中进一步更新。
正弦波输入以及求和对应的PDM输出的关系,如下图所示:
上图中,横坐标是输出的点数,实际物理含义是单位1代表调制时间间隔。
二、I2S的时序
I2S的时序如下图所示,由左右声道控制、时钟和数据线构成。在每个时钟周期的上升沿采样数据。这部分比较简单,不需要更多赘述。
三、MEMS-MIC的时序
MEMS-MIC是两线通信的,对于MIC,数据永远是输出的方向。时钟由MCU提供给MEMS-MIC。
另外我们可以通过外部管脚电平配置MEMS-MIC在上升沿还是下降沿输出数据,而在另外半个周期保持高阻态。
这样,我们可以在一个CLK下面组合两个MEMS-MIC,构成两路输入到系统,如下图所示。
但是由于KINETIS/RT的SAI接口并不支持同时在上升沿和下降沿采样,对于多通道的MEMS-MIC接入是不能这样做的。后面会详细讲解如何用SAI接入多个MEMS-MIC。
四、SAI接口介绍
SAI接口的主要特性如下(以RT1050为例):
支持4位数据线并发通信
具有独立的位时钟和帧同步
每帧可以支持多达32个字
每个字可以包含8到32个位
第一个字的位数可以独立配置
发送和接收具有独立的异步32×32位FIFO
支持FIFO出错后自动重启,无需软件干预
支持将8位和16位数据组合成32位再通过FIFO发送盒接收
支持将多数据线FIFO合并为单数据线FIFO
五、如何使用Kinetis/RT的SAI口连接MEMS-MIC
SAI和MEMS-MIC的连接如下图所示:
由于没有帧同步,直接对接CLK和DATA就可以了,这个比较简单。
谈到MEMS和SAI的连接关系,当然就得谈一下KINETIS/RT SAI接口的高级功能了,那就是多通道并行通信。由于SAI并不支持同时在上升沿和下降沿收数据,这样,如果需要在一个SAI口下面接入多个MEMS-MIC,就需要用到这个多通道通信的特性。其连接图如下所示:
这部分也很容易理解,每一个通道就是一根独立的RX数据线,SAI支持多少个通道就能挂多少个MEMS-MIC。
六、PDM到PCM编码的转换
PDM解码到PCM是通过CIC滤波器和FIR滤波器实现的,其结构图如下:
这里需要注意的是,CIC滤波完成后要做Nbit的减采样,还原出低采样率下的PCM数据。比如,3.072MHz的PDM输入数据,完成64 bit的减采样后,会得到3.072MHz/64 = 48KHz的PCM信号。
另外一个要注意的问题是,我们可以把SAI配置为I2S的timing去接MEMS-MIC,但是,对我我们来说,从MEMS-MIC过来的都是音频的01bit流,是不分左右声道的。一个通道上过来的MEMS-MIC码流就是一路的MIC语音输入。
下图展示了PDM原始数据,I2S帧,PCM数据,wav文件数据的一些关系。这里要注意的一个要点是I2S过来的数据其实只是一串01码流,在这里本身并没有左右声道的概念,我们只是通过I2S的timing去获取这些01码流而已。
七、在SDK中配置SAI
配置SAI需要考虑以下问题:
使用LSB or MSB?这个和后面的计算是相关的,一定不能弄错。
使用上升沿收数据还是使用下降沿收数据?这个是要和硬件设计匹配的,千万别弄错。
字长的配置。SAI的最大字长是32bit,当字长配置为32bit时,能使DMA的实际带宽最大化。
采样频率多少?我们设计好采样频率和过采样率后,就可以算出clock的频率,再根据该频率配置SAI的输出时钟。
按照以上内容设计硬件以及配置SAI接口,在FRDM-K66接入MEMS-MIC的PDM数据码流,解码为PCM格式后存储到SD卡后,经验证,可以播放出清晰的声音。
八、参考文献
1-bit A/D and D/A Converters, http://www.cs.tut.fi/sgn/arg/rosti/1-bit/
Pulse-density modulation, http://en.wikipedia.org/wiki/Pulse-density_modulation
Delta-sigma modulation,http://en.wikipedia.org/wiki/Delta-sigma_modulation
作者:郭嘉 文章出处:恩智浦MCU加油站
|
|