文献识别码: A
文章编号: 0258-7998(2013)06-0031-03
在语音信号处理系统中,DSP要完成信号的采集和运算处理任务,必须有前端语音信号A/D、D/A转换接口电路的配合[1]。由于两者之间存在数据格式与速度不匹配的问题,所以接口设计成为通信实现的关键。针对这一问题,本文提出了一种基于SPI总线的DSP与音频编解码芯片接口设计方法,介绍了接口的关键组成部分,即控制模块和数据通信模块。控制模块由SPI总线实现DSP对音频编解码芯片的配置与控制;数据通信模块采用串/并、并/串转换和共享FIFO的结构解决数据格式与速度不匹配的问题。此方法在FPGA上得以实现,并已成功应用在基于SuperV DSP处理器的音频处理系统中。
1 总体结构
TLV320AIC23(简称AIC23)是TI公司专为音频处理应用定做的单片接口电路。该器件中A/D和D/A变换器采用具有集成过取样数字内插滤波器的多位Σ-△技术,数字传输字长可为16 bit、20 bit、24 bit和32 bit,采样率为8 kHz~96 kHz[2],出色的性能使该芯片广泛应用于音频处理系统中。本文以此芯片为例作阐述。接口电路的功能框图如图1所示。
音频输入、输出为模拟信号,通过AIC23芯片转换为数字信号。FPGA中的SPI控制模块接收DSP写入的对AIC23的配置信息并通过配置接口编程AIC23芯片,以使之正常工作。AIC23芯片与DSP之间的数据通信则通过读写FIFO以及串/并、并/串数据格式转换接口实现。
2 SPI控制器
2.1 SPI工作原理
SPI串行通信接口是一种常用的标准接口,由于其使用简单方便且节省系统资源,很多芯片都支持该接口,应用相当广泛[3]。标准SPI是高速、全双工、异步通信总线[4],具有传输速率高、易于应用和管脚少的优点。
SPI接口有4根信号线:设备选择(CS)、时钟(SCLK)、串行主出从入数据线(MOSI)、串行主入从出数据线(MISO)。设备选择线CS用于选择并激活从设备,由工作在主模式下的SPI控制器驱动输出。当CS为低电平时,对应从设备的SPI接口才处于工作状态。串行同步时钟SCLK用来同步主从设备的数据传输,由Master输出,Slave设备按SCLK的步调接收或发送数据。另外2条串行数据线分别承担Master到Slave、Slave到Master的数据传输。
此外,根据输出串行同步时钟(SCLK)极性(CPOL)和相位(CPHA)的不同,SPI总线有4种工作方式。为了与外设进行数据交换,需根据外设工作要求对输出串行同步时钟极性和相位进行配置。配置信息及不同模式下的时序如图2所示。
时钟控制模块与SPI控制模块一起产生SCLK,作为数据传输的时钟;SPI控制模块是最重要的部分,其产生的控制信号用来控制数据的发送、接收等;SPI控制寄存器实现DSP对一些寄存器的配置,进而启动或者控制一些传输模式(主从模式、传输模式选择等),实现主从SPI之间的数据传输;从设备选择寄存器在主SPI连接多个从SPI时启用,主SPI根据需求分别产生各从设备的CS信号;SPI状态寄存器用于存储模块在工作过程中的一些状态,DSP可以通过查看这些状态进行下一步的操作;移位控制逻辑模块根据SPI控制模块产生移位控制信号,数据的发送和接收都是通过移位寄存器一位一位地进行传输的,移位过程在数据移位寄存器中进行。
2.3 控制模块
控制模块的主要功能是控制SCLK时钟、CS选择信号以及产生有关收发的一系列状态信号。在发送或者接收数据之前,须配置SPI控制模块的控制寄存器。在控制寄存器中,需要设定SPI的工作模式、一次传输数据的长度、数据传输的方向以及使能数据传输。在控制寄存器的传输使能位有效之前,SPI控制器一直处于IDLE状态;当传输使能位有效之后,SPI控制器等待SCLK的上升沿或下降沿出现 (具体情况根据工作模式而定),之后才会开始传输指定长度与位宽的数据。
2.4 数据移位模块
图4是主SPI向从SPI发送数据时的内部线路图。图中主从SPI连接,实线为主发送从接收数据通路,虚线为从发送主接收数据通路。主SPI中的8 bit移位寄存器通过MOSI和MISO引脚与从SPI中的8 bit移位寄存器相连接。连接后,主从SPI的移位寄存器共同组成了一个16 bit的移位寄存器。SPI传送过程中,在时钟SCLK的控制下,主SPI中发送数据寄存器中的数据一位一位地移进从SPI中的接收数据寄存器。
AIC23在帧同步信号下降沿到来时开始传输数据;在时钟信号BCLK下降沿时,DIN和DOUT同时变化,双向传输数据,先传输左声道信号,后传输右声道信号。
3.2 数据通信接口设计
通信接口由同步信号检测及控制信号生成模块、数据接收模块、数据发送模块、标志控制模块和数据缓存模块5部分组成,这些模块完成数据的接收和发送。此外,格式转换模块用于DSP和CODEC的数据格式和速度的匹配。其功能框图如图6所示。
读写FIFO是DSP与音频CODEC的共享存储,按照“先进去的数据先被读出”的原则读写。两者可独立对FIFO进行操作,因此读写速度不一致也不会造成影响。
4 功能验证
本接口设计方法应用于SuperV DSP与AIC23的通信中,使设计得到了功能验证。验证过程中,DSP首先对AIC23进行初始化配置,配置信息表如表1所示。DSP通过SPI总线将控制字写入对应的寄存器,确定AIC23的工作方式;之后两者进行数据通信,AIC23采集音频信号并转换为数字信号通过接口传给DSP,DSP对数字语音信号进行识别、增强等处理后,将信号重新回传给AIC23播放。经验证,该设计方法可以实现两者之间的有效通信。
本文提出了一种基于SPI总线的DSP与音频编解码芯片的接口设计方法,介绍了接口的关键组成单元,并将此设计实现并应用于语音信号处理系统里SuperV DSP处理器与AIC23的通信中。经验证,此设计可实现两者之间的通信并且具有一定程度的通用性,可方便音频处理系统中DSP与音频采样芯片的通信。
参考文献
[1] 王嘉,欧建平.利用I2C总线实现DSP与音频采样芯片TLV320AIC23的接口控制[J].微处理机,2003(4):10-12.
[2] Texas Instruments.TLV320AIC23,stereo audio CODEC,8- to 96-kHz,with integrated headphone amplifier[R].Houston:Texas Instruments,2001.
[3] 华卓立,姚若河.一种通用SPI总线接口的FPGA设计与实现[J].微计算机信息,2008,24(6):212-213.
[4] OUDJIDA A K,BERRANDJIA M L,LIACHA A,et al. Design and test of general-purpose SPI Master/Slave IPs on OPB bus[C].International Multi-Conference on Systems Signals and Devices(SSD),Amman,Jordan,2010:27-30.