人机交互装置中的输入设备通常由按键、触摸屏等设备组成,传统的输出设备也有显示屏、灯光、声音等等。其中音频设备作为重要的人机交互装置,嵌入式设备是如何获得音频数据的呢?
本期我们介绍专为音频设备服务的通讯协议:I2S协议。
声音的本质
在了解如何获取声音之前,我们首先需要知道声音的本质到底是什么?声音是物体振动产生的机械波,通过空气等介质传播,引起耳膜振动被大脑感知。 电子音频设备(如麦克风、扬声器)将声音振动转换为连续变化的电信号,称为模拟音频信号。模拟音频信号存在明显局限:传输处理中易引入噪声失真;磁带、黑胶唱片等模拟存储介质会随播放和复制磨损导致音质下降;复杂处理(如滤波、混音)依赖精密模拟电路,成本高且控制难度大。

为了解决模拟音频的缺点,现代音频系统广泛采用数字音频技术。其核心过程是采样、量化还有编码。采样和量化将模拟数字信号转化为01数字信号,之后通过编码将数字信号统一化通常是脉冲编码调制-PCM,就是一系列按时间顺序排列的数字,每个数字代表对应采样时刻的音频信号幅度。而I2S就是专门用于在集成电路之间传输高质量、单声道或立体声PCM音频数据的通讯协议。
I2S的组成
I²S全称Inter-IC Sound 或 Integrated Interchip Sound,它是一种同步串行通信协议,由飞利浦半导体(现 NXP)在1986 年制定。I²S总线由三根线组成:时钟线SCK,数据线SD以及声道选择线WS。它的结构很像是I²C通讯,但是多了一根WS用于声道选择。

可以看到WS低电平时则是选择了左声道,WS高电平时则是选择了右声道。
可以看到SCK和采样率Fs有着严格的对应关系。
对于一个44.1KHZ,24位,双通道的I²S设备来说,它的时钟频率SCK计算公式应该是:44.1K*24*2。这个时钟频率对MCU来说是比较高的,因此一般是需要MCU有专门的I²S外设。下面我们介绍一款I²S的芯片:INMP441

INMP441是TDK的一款全向MEMS麦克风,直接输出 I²S 格式的数字音频信号,省去了外部模数转换器 (ADC) 的需求。
具有24位I²S数据,前段时间在ESP32小智上非常热门。
但是需要注意的是INMP441单独的有一个L/R来控制左右声道,低电平为左声道,高电平为右声道。 官方原理图则是直接拉低了L/R引脚仅使用左声道。需要注意的是,INMP441的音孔在PCB背面,因此设计PCB的时候要注意预留音控位置。


INMP441通过ADC采集到声孔信号后,经过一个带通滤波器后再通过I²S总线进行通讯。


登录 或 注册 后才可以进行评论哦!
还没有评论,抢个沙发!