新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Adaptive Filtering 功能详解及代码实现

Adaptive Filtering 功能详解及代码实现

作者:时间:2012-09-12来源:网络收藏

摘 要

本文引用地址:http://www.eepw.com.cn/article/148405.htm

Texas instruments 推出的超低功耗miniDSP 音频Codec 集成了miniDSP 内核,可在耗电极低的工作状态下为电池供电的便携式产品提供高性能的语音及音乐处理能力。 是miniDSP 的一项重要。本文详细介绍了该的使用方法及注意事项,并给出了示例以供参考。

1 miniDSP Codec 简介

德州仪器半导体公司(Texas Instruments)推出的内嵌miniDSP 的音频编解码器(简称miniDSP Codec)在普通音频编解码器的基础上提供了强大、灵活的低功耗DSP 引擎来满足消费类电子应用中对音质、音效的需求。

miniDSP 的内核是完全可编程的,支持许多录音和回放的专用算法。例如:多段均衡(Multi-Band Equalization)、动态噪声消除(Dynamic Noise Filter)、回声消除(Echo Cancellation)等。miniDSP Codec 具有非常优秀的电源管理,在提供强大的音效处理能力的同时兼顾了低功耗特性,非常适合电池供电的便携式产品应用,例如智能手机,多媒体播放器,导航仪,电子相框等。

TLV320AIC3254(简称AIC3254)是miniDSP Codec 的典型器件,本文将基于该器件展开分析。其他miniDSP Codec 均具有类似的架构、功能及使用方法。请用户参考相应产品的器件手册获得详细信息。

1.1 miniDSP Codec 架构

以AIC3254 为例,该miniDSP Codec 集成了两个miniDSP 内核,如图1 所示,miniDSP-A 位于ADC 信号路径上,主要负责ADC 采样后的数字音频流处理。miniDSP-D 位于DAC 路径上,主要负责I2S 总线输入的数字音频流处理。miniDSP-A 和miniDSP-D 之间有互联的内部数据总线可用于数据交换及共享空间。

miniDSP 音频Codec 内部简化框图

图 1. miniDSP 音频Codec 内部简化框图

除了Audio Codec 以外,某些ADC、DAC 也拥有miniDSP 内核,本文介绍的部分内容也适用于该类器件。请参考相应器件的手册获得详细信息。

1.2 miniDSP 内存架构及寄存器地址

miniDSP-A 和D 分别有自己独立的内存空间。每个DSP 的内存分为指令内存(Instruction RAM)、数据内存(Data RAM)和系数内存(Coefficient RAM)三类。

• 指令内存用于存储miniDSP 的运行指令及程序。

• 数据内存用来暂存miniDSP 运行时的运算结果等临时数据。

• 系数内存用来存储miniDSP 音效、增益等控件的参数数据。

指令内存和系数内存均可通过映射的I2C 或SPI 地址来进行读写。Codec 上电时主控芯片需要通过I2C 或SPI 接口将miniDSP 程序下载到指令内存和系数内存以供运行。以TLV320AIC3254 为例,指令内存、系数内存的寄存器映射地址及功能如表1 所示:

表 1. TLV320AIC3254 内存架构及寄存器地址

TLV320AIC3254 内存架构及寄存器地址

从寄存器映射地址可发现,miniDSP-A 和 miniDSP-D 的系数内存控件均被等分成两块:Buffer-A和Buffer-B。当 功能关闭时,Buffer-A 和Buffer-B 是一个整体,连续的存储空间。当 功能开启时,两个Buffer 的内容是完全同步并相互备份的。这种内存架构是Adaptive Filtering 功能的基础。

注 意:

当用户不需要Adaptive Filtering 功能时,建议关闭该功能。系数内存(Coefficent

RAM)将不会划分Buffer-A 和Buffer-B。能提供多一倍的系数内存给用户使用。

2 Adaptive Filtering

2.1 功能概述

Adaptive Filtering 是一种在miniDSP 运行时的滤波器、音效控件、混音比例等参数的实时切换功能。启动该功能后主控芯片可以通过控制端口对系数内存内的参数数据进行实时更新。

当miniDSP Codec 运行在non-Adaptive Filtering 模式下,系数内存中的滤波器、音效控件、混音比例等参数将被锁定,无法实时更改。这种模式适用于不需要实时调节参数的场合。miniDSP 的将在启动时一次性被下载并执行,运行过程中不会进行任何miniDSP 系数内存参数的修改。

当Adaptive Filtering 功能启动后,系数内存将启用缓存(Buffer-A 和Buffer-B)设置。允许用户在miniDSP 工作时实时修改系数内存中的参数设置,从而满足用户实时调节音效等参数的需求。例如,启用了Adaptive Filtering 模式后,用户可在听歌过程中将EQ 均衡器从流行(POP)转换为古典(Classic)模式,该效果实时产生作用无需中断播放。

2.2 Adaptive Filtering 控制寄存器

Adaptive Filtering 功能是通过特定寄存器来控制和的,以AIC3254 的miniDSP-A 为例,表2列出了miniDSP-A 的Adaptive Filtering 控制寄存器的含义。用户可通过D2 位开启或关闭miniDSP-A 的Adaptive Filtering 功能。D1 位用来指示miniDSP 运行时哪一个Buffer 被锁定,用户可读取该位来确认Buffer 使用的状态。D0 位用来控制Buffer 的切换,向D0 位写入1 后miniDSP-A 会切换到新的Buffer 进行工作,并向控制端口释放原先使用的Buffer。切换完毕后D0的值会自动清零,用户可通过循环读取D0 的值来判断Buffer 的切换是否已经完成。

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

AIC3254 miniDSP-A Adaptive Filtering 控制寄存器(P8_R1)

注 意:

每个支持Adaptive Filtering 功能的miniDSP 都有自己的Adaptive Filtering 控制寄存器,miniDSP-A 和miniDSP-D 的Adaptive Filtering 功能是独立运行的。

2.3 系数内存(Coefficient Memory)存取规范


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭