- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
嵌入式系统中I2S总线数据通信的软件模拟
录入:edatop.com 点击:
图4 以太网数字语音广播系统框图
图5 LM3S8962与MS6336的连接图
广播系统终端的MCU LM3S8962将接收到的语音数据通过I2S总线发送给语音解码芯片MS6336进行数/模转换并播放,
LM3S8962和MS6336的连接如图5所示。为了完整还原出语音信号,需要保证软件模拟I2S信号时序严格精确,高低电平的转换采用延时程序实现。MS6336为16位D/A芯片,其I2S时序如图6所示。
图6 MS6336的典型I2S时序图
该系统中的语音数据双声道,16位采样,1个采样点的数据为4字节,1个采样点数据通过MCU发送给MS6336,数据发送流程如图7所示。
图7 1个采样点数据发送流程
软件模拟I2S引脚的定义如下:
#define I2S_WS GPIO_PIN_5//模拟I2S声道选择时钟控制位
#define I2S_BCK GPIO_PIN_6//模拟I2S位时钟控制位
#define I2S_DATA GPIO_PIN_7//模拟I2S数据传送位
根据MS6336的I2S总线格式以及数据发送流程,软件模拟I2S总线的步骤如下:
① 根据语音数据采样率及采样位数计算得到SCK的值和WS的值(WS的值等于采样频率)。
系统采样率为44.1 kHz,则SCK=2×44.1 kHz×103×16=1 411 200 Hz,WS=44 100 Hz。1个SCK时钟周期T=1/SCK=0