浅谈OMAP5912在语音采集系统的应用
扫描二维码
随时随地手机看文章
0 引 言
语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门新兴学科。语音信号处理的应用极为广泛,其中的主要技术包括语音编码、语音合成、语音识别和语音增强等。语音识别就是让计算机听懂人的话,并做出正确的反应。目前主流的语音识别技术是基于统计模式识别的基本理论。同时,随着高性能数字信号处理器(Digital Signal Processor,DSP)的日益普及,数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理与模拟信号处理是信号处理的子集。数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。利用DSP对语音信号处理进行算法研究和实时实现正成为新的热点。在此设计并实现了一种语音采集系统。该系统为语音信号处理的算法研究和实时实现提供一个通用平台。
1 芯片简介
OMAP5912采用独特的双核结构,内含1个实现控制功能的带有TI增强型ARM926EJ—S(简称ARM9)内核的处理器和1个实现数据处理功能的高性能、低功耗TMS320C55x DSP(简称DSP)内核。ARM9处理器可用来实现各种通信协议、通信协议(communications protocol)是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。这个规则就是通信协议。控制和人机接口;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和100dB。
2 系统的硬件设计
2.1 系统的硬件结构
语音采集系统主要包括两个模块:以AIC23为核心的语音采集模块;以OMAP5912的DSP为核心的语音数据接收处理模块。
为使AIC23正常工作在需要的状态下,必须通过I2C总线对其进行配置。AIC23采集的语音信号经过A/D转换后,通过McBSPl传送到接收寄存器DRR,然后经DMA通道传送至接收缓冲区。存放在发送缓冲区的数据,通过DMA通道传送到McBSPl的发送寄存器DXR,DMA---Direct Memory Access,直接内存访问,是一种数据传输模式。DMA方式下不直接访问CPU,而在RAM与设备之间传输,从而大大提高了数据传输速度。然后传送至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 主程序
因为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总线,I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。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的硬件资源,提高系统的执行效率。