概述
当提到某些GPIO是PCM时,这通常意味着这些GPIO引脚被用作数字音频接口,特别是用于脉冲编码调制(Pulse Code Modulation,PCM)信号的传输。
PCM是一种模拟信号的数字化方法,通过对模拟音频信号进行采样、量化和编码,将其转换为数字音频数据流。
在某些情况下,GPIO引脚可以被配置为PCM接口,用于数字音频数据的传输。这意味着GPIO引脚不仅仅是用于简单的数字输入输出,而是承担了更复杂的音频数据处理任务。
PCM信号线
PCM接口的电路信号通常包括数据时钟信号(PCM_CLK)、帧同步时钟信号(PCM_SYNC)、接收数据信号(PCM_IN)和发送数据信号(PCM_OUT)。
PCM硬件接口上传输的是PCM编码的数据,I2S上传输的也是PCM编码的数据,I2S不过是PCM接口的特例。I2S接口的工作模式有统一的标准,但是PCM接口工作模式没有统一的标准,支持更加灵活的传输协议。
PCM接口与I2S接口相似,但PCM接口在应用上更加灵活,可以支持配置时分复用(TDM,Time Division Multiplexing)的方式进行数据传输,可以同时支持传输多个声道的数据,允许多个设备同时使用总线,而I2S接口通常用于传输双声道数据。
PCM接口常用于板级音频数字信号的传输,尤其在需要传输多个声道数据时,PCM接口通过TDM方式减少了所需的管脚数目。
DSP mode
PCM接口有两种基本操作模式:DSP A mode和DSP B mode。
- 在DSP B模式中,数据在帧同步时钟(FSYNC)有效后的第一个BCLK上升沿(下降沿)有效(no dealay)
- 在DSP A模式中,数据在帧同步时钟(FSYNC)有效后的第二个BCLK上升沿(下降沿)有效(one bit clock delay)。
时钟频率计算: 对于PCM接口,系统时钟(BCLK)的频率计算与音频的采样率和量化深度有关。例如,对于8声道、每个声道32bit音频数据、采样率48kHz的系统,TDM的系统时钟(BCLK)速率为8 × 32 × 48kHz = 12.288 MHz。FSYNC的高电平等于一个BCLK的周期,其频率就等于采样率,与通道数无关。
DSP A mode
在DSP B模式内,数据延迟一个bit clock周期有效就是DSP A模式。所以A是B的特例。
DSP B mode
在mode B中,根据FSYNC信号脉冲宽度的不同,PCM帧同步时钟工作模式大致分为长帧同步模式和短帧同步模式。
-
长帧同步模式: FSYNC脉冲宽度等于1个Slot的长度。Slot在TDM中表示的是传输单个声道所占用的位数。注意,Slot的位数并不一定等于音频的量化深度。比如Slot可能为32 bit,其中包括24 bit有效数据位(Audio Word) + 8 bit零填充(Zero Padding)。
-
短帧同步模式: FSYNC脉冲宽度等于1个BCLK时钟周期长度。