国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

Adaptive Filtering 功能詳解及代碼實現

發布時間:2012-9-12 09:37    發布者:李寬
關鍵詞: miniDSP , 音頻編解碼
作者:王凡 Ryan Wang (Fan) South China OEM Team

摘要

Texas instruments 推出的超低功耗miniDSP 音頻Codec 集成了miniDSP 內核,可在耗電極低的工作狀態下為電池供電的便攜式產品提供高性能的語音及音樂處理能力。AdaptiveFiltering 是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 之間有互聯的內部數據總線可用于數據交換及共享代碼空間。


圖 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 內存架構及寄存器地址


從寄存器映射地址可發現,miniDSP-A 和 miniDSP-D 的系數內存控件均被等分成兩塊:Buffer-A和Buffer-B。當Adaptive Filtering 功能關閉時,Buffer-A 和Buffer-B 是一個整體,連續的存儲空間。當Adaptive Filtering 功能開啟時,兩個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)


注 意:

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

2.3 系數內存(Coefficient Memory)存取規范

在介紹Adaptive Filtering 的具體流程前,首先需要了解系數內存存取的規范。
在non-Adaptive Filtering 模式下,系數內存在miniDSP 停止運行時可通過控制端口(I2C/SPI)直接存取。在miniDSP 工作時,系數內存將被鎖定只有miniDSP 能夠存取。表3 給出了該模式下的存取規范供參考:

表 3. 在non-Adaptive Filtering 模式下系數內存的存取規范


當啟動了Adaptive Filtering 模式,系數內存將分為Buffer-A 和Buffer-B 兩塊,兩塊內存內容完全一致,相互備份。miniDSP 工作時將鎖定Buffer-A 或者Buffer-B 其中的一個,從中獲取參數信息。控制端口(I2C 或SPI)只可以讀寫未鎖定的另一塊Buffer。表4 給出了該模式下的存取規范供參考:

表 4. Adaptive Filtering 模式下系數內存的存取規范


為了簡化Buffer 切換的操作,在miniDSP 運行時,控制端口訪問系數內存的地址均映射到未鎖定的Buffer 內。例如控制端口向鎖定Buffer-A 某地址寫入的參數將直接更新未鎖定Buffer-B 內的鏡像參數。這個設置允許用戶在切換Buffer 后無需修改寫入地址即可向釋放出來的Buffer 內存更新參數。注意在miniDSP 停止運行的時候,Buffer-A 和Buffer-B 的頁面地址均恢復正常模式,用戶需使用它們各自的地址進行參數更新。

2.4 Adaptive Filtering 控制流程

本節詳細介紹了如何使用Adaptive Filtering 功能來進行系數內存內參數的更新操作。附錄A 給出了推薦的Adaptive Filtering 更新參數操作時序圖供參考。

2.4.1 miniDSP 停止時的參數更新流程

如2.3 節所示,在miniDSP 停止運行時,控制端口可以存取所有的系數內存地址(Buffer-A 和 Buffer-B)。則該模式下參數更新的流程為:

    通過控制接口直接向Buffer-A 寫入新參數。
    切換到Buffer-B 所在頁面,向Buffer-B 寫入同樣參數。使Buffer-A 和Buffer-B 保持同步。

以AIC3254 為例,若需要更新的參數在miniDSP-A 的Buffer-A 內,其地址為p8_r44,新參數值為0xAB。則更新流程為:

    向p8_r44 寫入新參數0xAB。
    向p26_r44 寫入新參數0xAB。(p26_r44 是p8_r44 的鏡像寄存器)

2.4.2 miniDSP 運行時的參數更新流程

miniDSP 運行時,系數內存的其中一個Buffer 被miniDSP 鎖定,控制端口無法直接修改該Buffer內的參數。用戶需要先更新未鎖定Buffer 內的參數,然后通知miniDSP 切換Buffer 來使用新的參數。切換后原先被鎖定的Buffer 將被釋放,用戶需要對它更新相同的參數以確保兩塊Buffer 的參數同步。

在miniDSP 運行時,系數內存參數更新的流程如下:

    通過控制端口向目標寄存器更新參數。
    向Adaptive Filtering 寄存器寫入Buffer 切換命令。
    回讀Adaptive Filtering 寄存器狀態位,判斷Buffer 切換是否完成。
    確認切換完成后,再次向目標寄存器更新參數確保Buffer-A 和Buffer-B 參數同步。

以AIC3254 為例,若需要更新的參數在miniDSP-A 的Buffer-A 內,其地址為p8_r44,新參數值為0xAB。則更新流程為:

    向p8_r44 寫入新參數0xAB。
    將p8_r1_d0,Adaptive Filtering 寄存器的D0 位置1,執行Buffer 切換操作。
    回讀p8_r1_d0,Adaptive Filtering 寄存器狀態位,判斷Buffer 切換是否完成。
    確認切換完成后,再次向目標寄存器p8_r44 更新參數0xAB,確保Buffer-A 和Buffer-B參數同步。

3 總結

本文詳細介紹了miniDSP Codec 的Adaptive Filtering 功能的使用方法,并以AIC3254 為例給出了詳細的操作步驟和示例代碼。在實際使用中,用戶需要注意準確的獲取并判斷miniDSP 工作狀態,選擇正確的操作流程來完成參數的切換和更新。

4 參考文獻

1. TLV320AIC3254, Ultra Low Power Stereo Audio Codec With Embedded miniDSP-Data sheet (SLAS549)
2. Design and Configuration Guide for the TLV320AIC3204 & TLV320AIC3254 Audio Codec (SLAA404C)
3. Coefficient RAM Access Mechanisms (SLAA425A)
本文地址:http://m.qingdxww.cn/thread-97363-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 野花日本韩国视频免费高清观看| 五月婷婷丁香在线观看| 欧美一级免费| 四虎4hu永久免费国产精品| 天天综合天天做| 99视频偷窥在线精品国自产拍| 男同志vdieos免费| 天天槽天天槽天天槽| 青青青国产| 最近最新免费中文字幕一| 张柏芝xxxhd| 麻豆婷婷狠狠色18禁久久| 爽的毛片| 全国男人的天堂网| 深夜网站在线| 一区二区三区不卡视频| 久草在线一免费新视频| 中文在线免费看视频| 欧美午夜久久| 在线不欧美| 88蜜桃人妻无码精品系列| 嗯别插太快好深再深点| 青草福利| 日韩毛片免费在线观看| 天堂激情网| 成人1000部免费观看视频| 无码任你躁久久久久久久| 欧美日韩国产综合一区二区三区| 天天射天天干天天插| 亚洲专区一区| 久久99国产亚洲高清观着| 奇米网久久| 日本一在线中文字幕天堂| 天美视频传媒mv播放在线观看| swag合集120部| 忘忧草在线社区WWW日本直播| 欧洲一级鲁丝片免费| 亚洲爱视频| 在线观看日韩www视频免费| 美女扒开腿让男生桶爽免费APP | 五月综合色啪|