基于OMAP5912的语音采集系统的设计与实现
扫描二维码
随时随地手机看文章
0 引 言
近年来,高速发展的语音信号处理技术已在音频信息的处理、传输和存储等方面得到广泛应用。同时,随着高性能数字信号处理器(Digital Signal Processor,DSP)的日益普及,利用DSP对语音信号处理进行算法研究和实时实现正成为新的热点。在此设计并实现了一种语音采集系统。该系统为语音信号处理的算法研究和实时实现提供一个通用平台。同时,与已有的声卡等具有语音采集功能的设备相比,该系统具有结构简单,效率高,便于携带等特点,因此也可以作为便携式设备或手持终端的一部分进一步加以开发和应用。
1 芯片简介
OMAP5912采用独特的双核结构,内含1个实现控制功能的带有TI增强型ARM926EJ—S(简称ARM9)内核的处理器和1个实现数据处理功能的高性能、低功耗TMS320C55x DSP(简称DSP)内核。ARM9处理器可用来实现各种通信协议、控制和人机接口;DSP具有多条数据地址总线,非常适合数据密集的多媒体处理,并具有极低的功耗。
TLV320AIC23(简称AIC23)是TI推出的一款高性能的立体声音频Codec芯片,内置耳机输出放大器,支持MIC和LINE IN两种输入方式(二选一),且对输入和输出都具有可编程增益调节。AIC23的模数转换(ADCs)和数模转换(DACs)部件高度集成在芯片内部,采用了先进的Sigma—delta过采样技术,可以在8~96 kHz的频率范围内提供16 b,20 b,24 b和32 b的采样,ADC和DAC的输出信噪比分别可以达到90 dB和100 dB。与此同时,AIC23还具有很低的能耗,回放模式下功率仅为23 mW,省电模式下更是小于15μW。
2 系统的硬件设计
2.1 系统的硬件结构
语音采集系统主要包括两个模块:以AIC23为核心的语音采集模块;以OMAP5912的DSP为核心的语音数据接收处理模块。
为使AIC23正常工作在需要的状态下,必须通过I2C总线对其进行配置。AIC23采集的语音信号经过A/D转换后,通过McBSPl传送到接收寄存器DRR,然后经DMA通道传送至接收缓冲区。存放在发送缓冲区的数据,通过DMA通道传送到McBSPl的发送寄存器DXR,然后传送至AIC23,经过D/A转换后,由HEADPHONE输出,如图1所示。
2.2 系统的硬件接口设计
利用OMAP5912的I2C总线和McBSPl完成对AIC23的控制和通信。I2C总线与AIC23的控制口相连,McBSPl与AIC23的数据口相连。AIC23设置为Master模式,向McBSPl提供时钟和帧同步信号。McBSPl.DX作为AIC23的输入通道,McBSPl.DR作为AIC23的输出通道,如图2所示。
3 系统的软件设计
系统的软件分两个方面来说明:主程序和中断服务程序。
3.1 主程序[!--empirenews.page--]
因为OMAP5912为双核结构,且ARM9为主控制器,所以首先必须在ARM9侧进行OMAP5912的初始化,让DSP退出复位状态,这里仅需调用TI提供的OSK5912 Board Support Library中的OSK5912_init()函数即可。然后在DSP侧进行CPU、I2C总线、McBSPl、DMA的初始化,以及AIC23芯片的配置,如图3所示。
限于篇幅,在此仅说明通过I2C总线配置AIC23的过程。AIC23芯片是一个可编程的芯片,内部有11个16位寄存器决定芯片的工作状态。图2中的MODE引脚决定控制接口的工作模式:MODE=O为I2C模式,MODE=1为SPI模式。系统采用的是I2C模式,即由DSP通过I2C总线完成对AIC23的初始化。I2C总线作为ARM9和DSP的共享设备,其使用权由图1中的寄存器I2C SSW MPU CONF和DSPI2C SSW CONF决定,在默认的情况下由ARM9使用。为了让DSP能使用I2C总线,需对上述两个寄存器做如下修改:MCBSP SSW MPU CONF=Ox00000000,DSP_I2C_SSW_CONF=0x0002。每个连接到I2C总线上的设备,都有1个惟一的地址,AIC23的地址由图2中的CS#引脚决定,即CS=0地址为0011010;CS=1地址为0011011。I2C总线首先发送AIC23的地址,然后再把相应的AIC23内部映射寄存器的地址和配置参数合并为16位的控制字发送给AIC23。
3.2 中断服务程序
在DSP的RAM空间中定义一个接收缓存数组Rxbuffer[]和发送缓存数组Txbuffer[],一个接收标志RxFlag和一个发送标志TxFlag。为了防止出现在执行中断服务程序的时候,接收的新数据将缓存区未取走的数据覆盖,将缓存数组分为上下两部分,CPU在处理其中一个部分的时候,DMA自动操作另一部分,如图4(a)所示。
该语音采集系统以中断的方式工作,在工作的过程中,会产生两个中断:DMA接收中断;DMA发送中断。以DMA接收中断为例来说明中断服务程序。
当产生DMA接收中断时,首先判断RxFlag的值,若为O,则取接收数组Rxbuffer下半部分的数据作进一步的处理,同时置RxFlag为1;若为1,则取接收数组Rxbuffer上半部分的数据作进一步的处理,同时置RxFlag为O,然后退出中断服务程序,进入主程序,等待中断的再次产生,如图4(b)所示。
4 仿真验证
为了验证设计的可行性,对该系统进行了仿真测试。仿真软件为CCS(Code Composer Studio)2.21。系统由硬件仿真器TDS560USB通过JTAG仿真接口与计算机相连,用户可以通过该接口向OMAP5912芯片加载程序并观察芯片内部存储器的数据,完成系统仿真及程序调试的任务。
在ARM和DSP侧分别加载程序编译后生成的.out文件,然后运行。经配置后的AIC23从MIC IN输入语音信号,并对其进行8 kHz,16 b的采样。不考虑图4(a)中的信号处理过程,将采集到的语音直接送回AIC23芯片,经D/A后,由HEADPHONE输出,此时,听到的正是输入的语音信号。由此说明:该设计是确实可行的。
5 结 语
根据TI公司的OMAP5912和CODEC芯片TLV320AIC23的特性,根据TI公司的设计并实现了一种基于OMAP5912的语音采集系统。在该系统中,DMA通道结合McBSP的使用,可以大大减少CPU的工作量,简化软件设计,有效地利用DSP的硬件资源,提高系统的执行效率。实践证明,该系统能够满足实时信号处理的要求,可以作为语音信号处理的算法研究和实时实现的一种通用平台,也可以作为便携式设备或手持终端的一部分进一步加以开发和应用。