SAI,全称Serial Audio Interface,是一种串行音频接口,可通过数字音频接口(S/PDIF)或I2S音频总线协议来传输音频数据。在STM32处理器中,SAI可以通用为数字音频采集和输出设备,因此比较适用于音频处理应用。
SAII通过串行数据线实现音频数据的传输,通过时钟线定时数据传输的速度,允许高质量音频的通信。SAI不需要需要大量的码流接口和异步采样率转换器,因此SAI系统成本和功耗比较低,同时它还支持DMA直接访问内存数据,大大提高系统性能。
SAI主要在需要高质量音频的场合下使用,比如:音频播放、音频采集、语音控制等。SAI可以提供多种音频格式支持,包括:I 2 S 及 MSB/LSB 接口、PCM 及 TDM 格式、Pulse Code Modulation。
SAI是用于流式音频的串行接口,对于数据流的控制处理较为灵活,可以根据应用场景自行配置。SAI兼容多种音频总线协议,在电视机、收音机、智能音箱、车载音响等领域应用广泛。此外,SAI还可与USB和SD卡等外部设备进行数据传输,实现音频储存和输出。
SAI主要包括两个主要部分,分别是采样器和调制器。
SAI的采样器(Serial Audio Input)主要实现音频信号的采集、处理和转换,可以支持I 2 S、PCM及TDM格式等各种音频数据格式。
SAI的调制器(Serial Audio Output)主要实现音频信号的发射和控制,可以将音频数据通过串行数据线输出。SAI调制器还可使用DMA进行高速数据传输,以减少CPU运算量,同时支持与其它器件的I2C、SMBUS等外围设备通信。
在STM32F4和STM32H7平台中,SAI需要配置GPIO引脚、时钟和DMA等相关资源。具体步骤如下:
1)使能SAI时钟
在使用SAI之前,需要使能SAI时钟,同时还需要打开GPIO和DMA的时钟。
2)配置GPIO引脚
配置SAI设备的GPIO引脚,需要设置引脚的方向、模式等参数,同时还需要配置GPIO的AF映射。
3)配置SAI参数
对于SAI采样器和调制器,用户需要配置其工作模式、时钟源、时钟极性、数据坐标、数据位宽等参数。在配置SAI参数时,需要注意一些特殊的参数设置,根据数据的具体格式选择相应的合适参数。
4)配置DMA传输
用DMA实现SAI的数据传输有助于减少CPU运算负荷和提高系统性能。在配置DMA时,需要设置DMA的通道、DMA传输方式和传输缓冲区等相关参数。