Kinetis微控制器eDMA和I2S的音频接口设计※
2013-09-21李晶皎荣超群刁丽芳
李晶皎,荣超群,刁丽芳
(东北大学 信息科学与工程学院,沈阳 110819)
引 言
MK60N512是飞思卡尔公司Kinetis系列微控制器集成度最高的芯片[1-2],它基于 ARM Cortex-M4内核,具有功耗低、性能高、成本低的特点,旨在为嵌入式音频、汽车电子和电源管理等提供灵活的解决方案[3]。MAX5556是美信公司一款低功耗、立体声音频数/模转换器(DAC)[4],支持标准I2S总线协议,采样精度最高可达24位,采样率为2~50kHz。采用Σ-Δ调制技术,能够对量化噪声进行有效整形,减小量化噪声[5]。
音频处理系统中,采用DMA实现音频数据在微控制器内的传输,能减少内核的参与,降低内核负担[6]。系统的数据传输通道如图1所示,音频信号暂存在缓存区中,由DMA传输到I2S总线模块的发送电路。为了保持音频信号的连续性,采用“乒乓RAM”设计缓存。图中A/B表示乒乓RAM的编号。

图1 数据传输通道
1 MK60N512I2S总线和eDMA介绍
1.1 I 2S总线模块
MK60N512的I2S总线模块有3种基本操作模式:普通模式、网络模式和门控时钟模式,针对音频上的应用,I2S总线模块还支持两种衍生模式:I2S总线模式和AC97模式。I2S总线模块的结构如图2所示,由发送电路、接收电路、串行时钟和帧同步时钟产生电路组成。STCK、SRCK分别为串行发送、接收时钟端口,STFS、SRFS为串行发送、接收帧同步端口,STXD、SRXD为串行发送和接收数据端口。在同步模式下,STCK端口被发送和接收单元共同使用。
发送电路和接收电路均有两个FIFO,宽度为32位,深度为15。对发送数据寄存器TX0/TX1和接收数据寄存器RX0/RX1的写入与读取可以访问这些FIFO。发送逻辑将TX FIFO中的数据转移出来,装入发送串行移位器TXSR,然后从STXD端口串行发送;……
