欢迎光临!1kic网专注于为电子元器件行业提供免费及更实惠的芯片ic交易网站。
使用 miniDSP Codec 提升智能手机的音频效能
来源:TI官网 | 作者:TI德州仪器 | 发表于:2015-12-01
Texas Instruments 推出的超低功耗 miniDSP 音频 Codec 集成了双 miniDSP内核,可在耗电极低的工作状态下为电池供电的便携式产品提供高性能的语音及音乐处理能力。本文以智能手机应用为例介绍了 miniDSP Codec 的典型应用及设计注意事项。
Texas Instruments 推出的超低功耗 miniDSP 音频 Codec 集成了双 miniDSP内核,可在耗电极低的工作状态下为电池供电的便携式产品提供高性能的语音及音乐处理能力。本文以智能手机应用为例介绍了 miniDSP Codec 的典型应用及设计注意事项。
内容
1 miniDSP Codec 简介 ....................................................................................................... 1
2 智能手机音频系统概述 ..................................................................................................... 5
3 miniDSP Codec 应用注意事项 ............................................................................................ 8
4 总结 .......................................................................................................................... 12
5 参考文献 .................................................................................................................... 12
图表列表
1 miniDSP Codec 和常规 Codec 的对比................................................................................... 3
2 AIC3254 miniDSP D 的预置处理模式(节选) ......................................................................... 3
3 AIC3254 miniDSP A Adaptive Filtering 控制寄存器( P8_R1 ) ................................................... 12


1 miniDSP Codec 简介

德州仪器半导体公司( Texas Instruments )推出的内嵌 miniDSP 的音频编解码器(简称 miniDSP Codec)具有两个可编程的 miniDSP 内核。如图 1 所示, miniDSP A 位于 ADC 信号路径上,主要负责 ADC采样后的数字音频流处理,miniDSP D位于 DAC 路径上主要负责 I2S 总线输入的数字音频流处理。
miniDSP A 和 miniDSP D 之间也有互联的内部数据总线可用于数据交换及共享代码空间。miniDSP 内核是完全可编程的,支持录音和回放的专用算法。例如:多段均衡( Multi-Band Equalization)、动态噪声消除( Dynamic Noise Filter )、回声消除( Echo Cancellation )等算法。 miniDSP Codec具有非常优秀的电源管理功能,在提供强大的音效处理能力的同时兼顾了低功耗特性,非常适合电池供电的便携式产品应用,例如智能手机,多媒体播放器,导航仪,电子相框等。

图 1. miniDSP Codec 内部简化框图
TI miniDSP Codec 系列产品目前包括以下器件:
TLV320AIC3253
TLV320AIC3254
TLV320AIC36
TLV320AIC3111
TLV320AIC3120
本文以 TLV320AIC3254 为例介绍 miniDSP Codec
的典型应用及设计注意事项,部分内容也适用于下列包含 miniDSP 内核的 ADC 或 DAC 器件:
• TLV320ADC3101
• TLV320ADC3001
• TLV320DAC3120
1.1 miniDSP Codec 与常规 Codec 在手机应用中的对比音频 Codec在手机系统中主要提供两种功能:第一种是音频信号路径的选择及混音管理。例如:选择将音乐信号传输到耳机还是喇叭;通话时选择内置麦克风还是耳机麦克风等。第二种是音频信号音质处理和效果增强。例如:播放音乐时的高低音调节;语音通话时的背景噪声消除功能等。对于路径选择及混音管理功能来说, miniDSP Codec的优势在于提供了一个灵活、可编程的数字路径选择及混音管理功能。 miniDSP内部可对任意通道进行混音、拆分,并且可在任何路径上放置滤波器及音效处理控件。对于音质处理功能来说, miniDSP Codec 可利用内嵌的 miniDSP引擎支持灵活及强大的音效处理算法,来改善手机的通话音质或增强音乐回放时的效果。

表 1 总结了miniDSP codec 和常规 Codec 之间的主要区别以供参考。


表 1. miniDSP Codec 和常规 Codec 的对比

1.2 miniDSP Codec 工作模式简介
常规 Codec 在应用中仅需通过 I2C 或 SPI 总线对少量寄存器进行初始化即可正常工作。 miniDSP Codec提供了两种工作模式来满足不同的应用需求:
• 预置处理模式 (Processing Block Mode)
为了兼容常规 Codec 的配置模式, miniDSP Codec内部存储了若干组预置处理模式的代码,不同的预置处理模式提供了不同的音效处理能力及功耗特性。用户无需 对 miniDSP 进行编程,只要按需求选择一个预置处理模式即可完成配置。这种工作模式简化了
miniDSP Code 的应用方式,提供了类似常规 Codec 的使用方法。
表 2 列举了 TLV320AIC3254 miniDSP D 的部分预置处理模式,可见 miniDSP D支持的不同预置处理模式主要的区别为:
1. 支持的插值滤波器类型及声道类型。
2. 支持的 EQ 个数。
3. 是否支持动态范围调整( DRC ),环绕立体声( 3D ),哔哔声发生器( Beep Generator )。
4. 资源占用及功耗等级。
表 2. AIC3254 miniDSP D 的预置处理模式(节选)


同 miniDSP D 类似, miniDSP A 也有不同的预置处理模式供选择。请参考器件的用户手册来获取详情。
• miniDSP 编程模式
miniDSP 编程模式下,用户需要在启动时通过 I2C 或 SPI 对 miniDSP的程序进行加载。所有的滤波器、音效等控件均按照用户需求自行定义及配置。相比预置处理模式,miniDSP 编程模式下 Codec 的功能更强,使用更灵活性。

图 2. PurePath™ Studio (Portable Audio) GDE 开发界面


若选择使用 miniDSP 编程模式,用户必须自行开发 miniDSP 的程序。为了简化含有 miniDSP的低功耗音频编解码器的软件开发工作, TI 推出了独有的图形化编程开发环境 PurePath™ Studio(Portable Audio) Graphic Development Environment (简称,GDE) 。 GDE 的开发界面如图 2所示。用户按以下简单步骤即可完成 miniDSP 的应用开发:
1. 选择目标器件,确定音频采样率等初始配置。
2. 选择控件库中提供的输入输出模块,完成模拟和数字音频信号路径规划。
3. 选择音量、滤波器、音效处理等模块,放置于所需路径并初步设定效果参数。
4. 与 TI 演示板( EVM )连接,下载程序测试功能及效果。实时调整以确定效果参数。
5. 产生 C 语言头文件代码,供给手机系统驱动使用。
可见 GDE是一套完善、易用的开发工具,开发人员无需懂得编程语言。该工具可以简化终端产品应用开发难度,缩短开发周期。有关 GDE的更多详情,请参考:http://focus.ti.com.cn/cn/docs/toolsw/folders/print/aicpurepath_studio.html


1.3 Control Software GUI 介绍

Control Software GUI (简称 CS )是配套 TI miniDSP Codec 演示板使用的用户界面软件。如图 3 所示,CS 提供了完整的 Codec 寄存器配置选项,包括时钟、模拟输入/输出、电源管理等。 CS 和 GDE的关系是相辅相成的。 GDE 主要用于编辑和生成 miniDSP 内核的代码,而 Codec的时钟、电源、模拟输入输出部分的管理功能则由 CS 来完成。若用户选择使用 miniDSP的预置处理模式( PRB 模式),仅使用 CS 即可完成 miniDSP Codec 应用代码的编写和调试。

图 3. Control Software 用户界面


CS 还提供了寄存器命令记录器( COMMAND-LINE-INTERFACE)来协助用户记录对寄存器的操作。该功能可以方便用户记录寄存器调试结果,快速验证寄存器设置。


2 智能手机音频系统概述

目前的手机产品可分为功能型手机( Feature Phone )和智能型手机( Smart Phone)两大类。功能型手机一般无独立的应用处理器( Application Processor ,简称 AP),主要采用单芯片结构。该单芯片内集成了基本的应用处理器及基带芯片( Base Band ,简称 BB),一般运行的是各大厂商自行开发的固件。功能型手机一般多为中低端产品,主平台芯片多数自带简单功能的音频编解码器。
主流的智能型手机硬件平台采用应用处理器 基带芯片的双芯片结构。操作系统和应用程序在应用处理器内执行,射频通讯软件在基带芯片内执行。 AP和 BB 之间使用 AT ( Attention)命令来沟通。智能型手机对通话音质和多媒体播放性能要求较高,一般均外加功能强大的音频编解码器来满足功能及性能的需求。

图 4. 使用 miniDSP Codec 的智能手机典型框图


图 4 是 miniDSP Codec 在智能型手机中的典型应用框图。根据手机应用的工作模式,miniDSP Codec的工作状态可分为音乐回放模式及语音通话模式两种。音乐回放模式下,应用处理器将数字音乐信号通过I2S 总线传输给 miniDSP Codec 。 miniDSP
根据用户设定的程序对音乐信号进行处理,处理后的音乐被输出到耳机或者外放进行播放。语音通话模式下 miniDSP Codec 的 ADC 开启,麦克风的模拟输入信号被 ADC采样后传输给基带芯片。基带芯片将接受到的麦克风语音信号通过天线发射给接收方,该路径也称作语音通话的上行链路( Uplink )。下行链路( Downlink)的信号流程是由基带处理器将天线接收到的对方语音信号通过 I2S 总线传输给 miniDSP Codec 的 DAC部分,该信号经过处理后被输出到受话器、耳机或者外放进行播放。可见在智能手机系统中音频 Codec是手机音频系统的核心,负责所有模拟及数字音频路径及混音管理,同时提供音效处理及音质优化功能。


2.1 miniDSP Codec 在音乐回放模式中的典型应用

音乐回放 (Music Playback) 是手机的必备功能, miniDSP Codec 内置的 miniDSP 引擎可提供常规 Codec所不具备的强大音效处理能力以及可持续升级性。图 5 是 miniDSP在手机音乐回放模式中的典型应用程序示例。
在该示例中,I2S 音频数据经过 “立体声音量”控件后分为耳机路径(上方)和喇叭路径(下方)两个支路。耳机路径中的 “图形化均衡器( Graphic EQ) ” 可以提供 5 段高低音调节功能来实现 Pop 、 Jaz 和 Classic 等不同类型音乐对频响曲线的要求。“低音增强控件( BassBoost )” 可利用谐波原理增强耳机的低频效果。喇叭路径中的 “喇叭均衡器(Speaker EQ)” 和 “动态范围控制( DRC )”控件可用来补偿喇叭的频率响应曲线和限制输出幅度。在输出部分的 “路径切换开关”可用于在拔插外置耳机时,根据需要切换 miniDSP 内的耳机路径或喇叭路径。

图 5. 音乐回放模式 miniDSP 典型应用程序示例


2.2 miniDSP Codec 在语音通话模式中的典型应用
语音通话模式下, miniDSP Codec 通过 I2S 总线与基带芯片( BB )通讯。该模式下 I2S总线的采样率通常为 8kHz ,用于传输语音信号。 

miniDSP Codec的主要功能为改善通话质量,优化语音清晰度。


图 6. 语音通话模式 miniDSP 典型应用程序示例


如图 6 所示,语音通话模式下,下行 (Downlink) 语音数据通过 I2S 总线由基带芯片( BaseBand )传输给miniDSP Codec 。经过 “语音带宽滤波器( Voice_Band_EQ )” 滤除语音带外杂讯,然后送入“动态范围控制( DRC )” 控件对下行信号做限幅处理后输出到耳机、受话器或者喇叭。上行( Uplink)语音数据由麦克风采集后首先经过 “回声消除( AEC )”控件,该控件也同时采集下行语音数据来运行回声消除算法。消除回声后的上行语音数据又经过“噪声消除( NR )” 和 “麦克风滤波器( Mic_EQ )” 控件进行降噪和滤波处理,再通过 I2S总线送往基带芯片并发射出去。

3 miniDSP Codec 应用注意事项
由于 miniDSP Codec 具有特殊的内核架构,在使用中和常规 Codec相比具有一定的特殊性。本节总结了部分应用注意事项供参考。
3.1 合理利用和分配内存资源

miniDSP 的内存分为指令内存( Instruction RAM )和系数内存( Coefficient RAM)两部分。由于存储控件是有限的,所以并非控件库中的所有模块都可以同时被编译并执行。


图 7. GDE 的资源窗口
使用 GDE 完成 miniDSP 的流程图后首先要生成代码并检查是否有内存溢出的错误。如图 6所示,用户可在 View 下拉菜单内找到 Resources 窗口,打开后可查看 miniDSP A 和 D的资源使用情况。若有内存溢出发生, GDE 会自动报错并自动以红色显示内存溢出的详情。
部分内存溢出的错误可以通过重新对 miniDSP A 和 D 合理分配代码占用来修正。例如,若 miniDSP D的存储空间已满而 miniDSP A 的存储空间尚有空余。可以将部分控件从 miniDSP D 中转移到 miniDSP A中运行。 GDE 控件库内提供了 DSP_A_DSP_D 和 DSP_D_DSP_A 两个组件,它们可以用于连接 A 和 D两个内核进行数据交换。
另外用户可以使用切换应用场景的方法来解决部分内存不足的问题,例如将 miniDSP的程序分为音乐播放时的程序和语音通话时的程序两部分。这两部分程序的应用场景是独立的,用户可为两种应用场景编写各自的代码,并在应用场景切换时切换相应的 miniDSP 的程序即可。
3.2 miniDSP Codec 寄存器初始化时序
miniDSP Codec的寄存器可以分为两类:一类是常规寄存器,包括电源管理,时钟设置和路径选择等设置,通常称为Analog Block Registers 。该类寄存器同普通 Codec 是相似的; 另一类是 miniDSP 程序寄存器。 miniDSP的程序是通过 I2C 总线下载到内部运行的,所以 miniDSP 的所有内存地址均映射到特定的 I2C地址。地址映射也提供了相应的接口让用户可以在 Codec 运行时调节 miniDSP程序中的控件参数,例如调节 miniDSP 中音量控件的音量,或改变混音器的混音比例。
初始化 miniDSP Codec必须严格遵循正确的时序,不适合的时序可能会引起程序加载异常或者模拟输出产生 POP声等问题。在初始化之前,首先通过 RESET 管脚或者软件复位寄存器( Page 0/Register 1 )对 Codec进行复位,复位后 Codec 内部所有寄存器将恢复默认状态。之后用户需要配置时钟、电源管理、 ADC 和DAC 通道的寄存器及 miniDSP 程序等。推荐的配置顺序如图 8 所示:

图 8. miniDSP Codec 初始化时序


3.3 运行时的 miniDSP 程序切换
一般情况下,当 miniDSP Codec 的程序通过 I2C总线下载后就可持续运行无需进行重新加载。但在下列两种情况下, miniDSP
的内核程序需要在运行时进行切换:
• Codec 的采样频率改变。例如由音乐播放频率由 48kHz 切换到 44.1kHz 。采样频率的变化导致 Codec时钟必须重新配置,并且 miniDSP
程序中所有跟采样频率有关的滤波器参数等均需要更新。所以当采样频率切换时, miniDSP也需要重新加载符合新采样频率的固件。

• 内存限制。如 3.1 节所述,由于 miniDSP的内存是有限的,导致无法将所有处理功能集中于单一程序中一次性下载并执行,尤其是某些占用资源较多的音效(例如SRS、回声消除等)会因为内存资源的限制而无法同时加载执行。解决方法即根据不同应用场景的需要,在场景切换的同时切换相应的 miniDSP 程序。
miniDSP 的程序切换实际上就是使用新固件进行 miniDSP 的重新初始化。 miniDSP内核程序更新前后均需要按照正确的时序来配置电源、时钟及模拟输入输出。错误的时序将导致更新时模拟输出出现 POP 声,甚至 miniDSP 程序写入失败。正确的 Codec 初始化时序请参考 3.2 节。
3.4 miniDSP 驱动头文件
GDE 支持将 miniDSP 程序编译成 C 语言的头文件格式( .h File)来提供给驱动程序调用。手机操作系统只需要在驱动程序中引用头文件内的数组便可完成 miniDSP内核程序的加载。如图 9 所示,驱动代码头文件生成选项可在 GDE 的 Tools→Option→Build
菜单中找到并打开。使能该功能后, GDE 会在目标程序目录下生成 main_RateXX_pps_driver.h 文件( XX代表采样率)。


图 9. 驱动头文件生成选项
头文件结构如图 10所示,主要分为接口段和代码段两部分。接口段主要包括每个音量、开关、音效控件的名称信息及地址信息

,用来提供给驱动程序一个接口来控制它们。代码段包括三个子段落:常规寄存器代码段、 miniDSP A程序代码段和 miniDSP D 程序代码段。驱动程序需要引用代码段内的数组来完成寄存器及 miniDSP的程序写入。


图 10. 驱动头文件结构示例
需要注意的是常规寄存器代码段内的参数通常是 GDE 按照器件 EVM板产生的默认参数,该参数并不一定适用于实际的用户系统。例如用户系统使用了与 EVM 板不同的 MCLK时钟频率,则用户必须手动更改常规寄存器代码段内的 PLL 参数来满足实际需求。同理,GDE并不关心用户使用哪一个模拟输出。选择耳机、受话器或者喇叭输出的工作应由智能手机的系统按照实际需求来决定。所以,一般常规寄存器代码段仅对电源、时钟等固定参数做上电初始化。而模拟路径的选择及输出级的开关、静音等功能均由系统来管理。
3.5 Adaptive Filtering
注: 并不是所有的 miniDSP 器件均支持 Adaptive Filtering功能,请参考相应器件的手册获得详细支持信息。
当 miniDSP Codec运行在普通模式下,滤波器、音效等控件的参数将被锁定无法实时更改。这种模式适用于不需要实时调节参
数的场合。若用户希望实时调节滤波器参数或改变某个混音器的混音比例等,则需要启用 Adaptive Filtering模式。
Adaptive Filtering 模式下系数内存(Coefficient Memory)将分为 Buffer A 和 Buffer B两块,两块内存内容完全一致,相互备份。miniDSP 工作时将锁定 Buffer A 或者 Buffer B其中的一个,从中获取参数信息。

控制接口( I2C 或 SPI)可以读写未锁定的另一块 Buffer。当用户更新了未锁定 Buffer 内的参数后,可通过操作特定寄存器来通知 miniDSP 切换到更新后的 Buffer来使用新的参数。原先被锁定的 Buffer 将被释放,用户需对它更新相同的参数以确保两块 Buffer的参数同步。图 11 给出了标准的 Adaptive Filtering 更新参数操作时序图供参考。


图 11. Adaptive Filtering 更新参数操作时序
以 AIC3254 的 miniDSP A 为例,表 3 列出了 miniDSP A 的 Adaptive Filtering 控制寄存器,用户可通过D2 开启 Adaptive Filtering 功能。 miniDSP 运行时,若 D1 的值为 0,则表明 miniDSP 正在使用 Buffer A,用户可以通过 I2C 更新 Buffer B 内的参数。更新结束后,用户向 D0 写入 1 通知 miniDSP 切换到 BufferB 的新参数。切换完成后 D0 的值会自动清零,用户需要读取 D0 的值来确保 Buffer的切换已经完成。当确认切换完成后,用户需要将同样的参数值写入释放出来的 Buffer A 以确保参数同步。

表 3. AIC3254 miniDSP A Adaptive Filtering 控制寄存器( P8_R1 )

为了简化用户的程序流程,当 miniDSP 正在运行时,Buffer A 和 Buffer B的页面地址被设计成均指向未锁定的 Buffer 。这个设置允许用户在切换 Buffer后无需修改写入地址即可向释放出来的 Buffer 内存更新参数。在 miniDSP 停止运行的时候, Buffer A 和
Buffer B 的页面地址均恢复正常模式,用户需使用它们各自的地址进行参数更新。

4 总结
本文以智能手机为例,介绍了 miniDSP 音频 Codec在便携式设备中的典型应用及注意事项。相对于传统音频 Codec, miniDSP 音频 Codec从根本上改变了一成不变的固定音效处理模式。 miniDSP内核提供给用户一个强大和灵活的开发空间,并具持续的可升级性。最终可提升终端产品的性能及生命周期。

5 参考文献
1. TLV320AIC3254, Ultra Low Power Stereo Audio Codec With Embedded miniDSP data sheet(SLAS549)
2. TLV320AIC36, Low Power Stereo Audio Codec With Embedded miniDSP data sheet (SBAS387)
3. Design and Configuration Guide for the TLV320AIC3204 & TLV320AIC3254 Audio Codec (SLAA404C)
4. Coefficient RAM Access Mechanisms (SLAA425A)


分享到:

1kic网-首个免费IC网-电子元器件ic交易网-芯片集成电路代理商供应商查询