當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]Adaptive Filtering 功能詳解及代碼實(shí)現(xiàn)

 摘 要

Texas instruments 推出的超低功耗miniDSP 音頻Codec 集成了miniDSP 內(nèi)核,可在耗電極低的工作狀態(tài)下為電池供電的便攜式產(chǎn)品提供高性能的語(yǔ)音及音樂(lè)處理能力。AdaptiveFiltering 是miniDSP 的一項(xiàng)重要功能。本文詳細(xì)介紹了該功能的使用方法及注意事項(xiàng),并給出了示例代碼以供參考。

1 miniDSP Codec 簡(jiǎn)介

德州儀器半導(dǎo)體公司(Texas Instruments)推出的內(nèi)嵌miniDSP 的音頻編解碼器(簡(jiǎn)稱miniDSP Codec)在普通音頻編解碼器的基礎(chǔ)上提供了強(qiáng)大、靈活的低功耗DSP 引擎來(lái)滿足消費(fèi)類(lèi)電子應(yīng)用中對(duì)音質(zhì)、音效的需求。

miniDSP 的內(nèi)核是完全可編程的,支持許多錄音和回放的專用算法。例如:多段均衡(Multi-Band Equalization)、動(dòng)態(tài)噪聲消除(Dynamic Noise Filter)、回聲消除(Echo Cancellation)等。miniDSP Codec 具有非常優(yōu)秀的電源管理功能,在提供強(qiáng)大的音效處理能力的同時(shí)兼顧了低功耗特性,非常適合電池供電的便攜式產(chǎn)品應(yīng)用,例如智能手機(jī),多媒體播放器,導(dǎo)航儀,電子相框等。

TLV320AIC3254(簡(jiǎn)稱AIC3254)是miniDSP Codec 的典型器件,本文將基于該器件展開(kāi)分析。其他miniDSP Codec 均具有類(lèi)似的架構(gòu)、功能及使用方法。請(qǐng)用戶參考相應(yīng)產(chǎn)品的器件手冊(cè)獲得詳細(xì)信息。

1.1 miniDSP Codec 架構(gòu)

以AIC3254 為例,該miniDSP Codec 集成了兩個(gè)miniDSP 內(nèi)核,如圖1 所示,miniDSP-A 位于ADC 信號(hào)路徑上,主要負(fù)責(zé)ADC 采樣后的數(shù)字音頻流處理。miniDSP-D 位于DAC 路徑上,主要負(fù)責(zé)I2S 總線輸入的數(shù)字音頻流處理。miniDSP-A 和miniDSP-D 之間有互聯(lián)的內(nèi)部數(shù)據(jù)總線可用于數(shù)據(jù)交換及共享代碼空間。

圖 1. miniDSP 音頻Codec 內(nèi)部簡(jiǎn)化框圖

除了Audio Codec 以外,某些ADC、DAC 也擁有miniDSP 內(nèi)核,本文介紹的部分內(nèi)容也適用于該類(lèi)器件。請(qǐng)參考相應(yīng)器件的手冊(cè)獲得詳細(xì)信息。

1.2 miniDSP 內(nèi)存架構(gòu)及寄存器地址

miniDSP-A 和D 分別有自己獨(dú)立的內(nèi)存空間。每個(gè)DSP 的內(nèi)存分為指令內(nèi)存(Instruction RAM)、數(shù)據(jù)內(nèi)存(Data RAM)和系數(shù)內(nèi)存(Coefficient RAM)三類(lèi)。

• 指令內(nèi)存用于存儲(chǔ)miniDSP 的運(yùn)行指令及程序。

• 數(shù)據(jù)內(nèi)存用來(lái)暫存miniDSP 運(yùn)行時(shí)的運(yùn)算結(jié)果等臨時(shí)數(shù)據(jù)。

• 系數(shù)內(nèi)存用來(lái)存儲(chǔ)miniDSP 音效、增益等控件的參數(shù)數(shù)據(jù)。

指令內(nèi)存和系數(shù)內(nèi)存均可通過(guò)映射的I2C 或SPI 地址來(lái)進(jìn)行讀寫(xiě)。Codec 上電時(shí)主控芯片需要通過(guò)I2C 或SPI 接口將miniDSP 程序下載到指令內(nèi)存和系數(shù)內(nèi)存以供運(yùn)行。以TLV320AIC3254 為例,指令內(nèi)存、系數(shù)內(nèi)存的寄存器映射地址及功能如表1 所示:

表 1. TLV320AIC3254 內(nèi)存架構(gòu)及寄存器地址

從寄存器映射地址可發(fā)現(xiàn),miniDSP-A 和 miniDSP-D 的系數(shù)內(nèi)存控件均被等分成兩塊:Buffer-A和Buffer-B。當(dāng)Adaptive Filtering 功能關(guān)閉時(shí),Buffer-A 和Buffer-B 是一個(gè)整體,連續(xù)的存儲(chǔ)空間。當(dāng)Adaptive Filtering 功能開(kāi)啟時(shí),兩個(gè)Buffer 的內(nèi)容是完全同步并相互備份的。這種內(nèi)存架構(gòu)是Adaptive Filtering 功能的基礎(chǔ)。

注 意:

當(dāng)用戶不需要Adaptive Filtering 功能時(shí),建議關(guān)閉該功能。系數(shù)內(nèi)存(Coefficent

RAM)將不會(huì)劃分Buffer-A 和Buffer-B。能提供多一倍的系數(shù)內(nèi)存給用戶使用。

2 Adaptive Filtering

2.1 功能概述

Adaptive Filtering 是一種在miniDSP 運(yùn)行時(shí)的濾波器、音效控件、混音比例等參數(shù)的實(shí)時(shí)切換功能。啟動(dòng)該功能后主控芯片可以通過(guò)控制端口對(duì)系數(shù)內(nèi)存內(nèi)的參數(shù)數(shù)據(jù)進(jìn)行實(shí)時(shí)更新。

當(dāng)miniDSP Codec 運(yùn)行在non-Adaptive Filtering 模式下,系數(shù)內(nèi)存中的濾波器、音效控件、混音比例等參數(shù)將被鎖定,無(wú)法實(shí)時(shí)更改。這種模式適用于不需要實(shí)時(shí)調(diào)節(jié)參數(shù)的場(chǎng)合。miniDSP 的代碼將在啟動(dòng)時(shí)一次性被下載并執(zhí)行,運(yùn)行過(guò)程中不會(huì)進(jìn)行任何miniDSP 系數(shù)內(nèi)存參數(shù)的修改。

當(dāng)Adaptive Filtering 功能啟動(dòng)后,系數(shù)內(nèi)存將啟用緩存(Buffer-A 和Buffer-B)設(shè)置。允許用戶在miniDSP 工作時(shí)實(shí)時(shí)修改系數(shù)內(nèi)存中的參數(shù)設(shè)置,從而滿足用戶實(shí)時(shí)調(diào)節(jié)音效等參數(shù)的需求。例如,啟用了Adaptive Filtering 模式后,用戶可在聽(tīng)歌過(guò)程中將EQ 均衡器從流行(POP)轉(zhuǎn)換為古典(Classic)模式,該效果實(shí)時(shí)產(chǎn)生作用無(wú)需中斷播放。

2.2 Adaptive Filtering 控制寄存器

Adaptive Filtering 功能是通過(guò)特定寄存器來(lái)控制和實(shí)現(xiàn)的,以AIC3254 的miniDSP-A 為例,表2列出了miniDSP-A 的Adaptive Filtering 控制寄存器的含義。用戶可通過(guò)D2 位開(kāi)啟或關(guān)閉miniDSP-A 的Adaptive Filtering 功能。D1 位用來(lái)指示miniDSP 運(yùn)行時(shí)哪一個(gè)Buffer 被鎖定,用戶可讀取該位來(lái)確認(rèn)Buffer 使用的狀態(tài)。D0 位用來(lái)控制Buffer 的切換,向D0 位寫(xiě)入1 后miniDSP-A 會(huì)切換到新的Buffer 進(jìn)行工作,并向控制端口釋放原先使用的Buffer。切換完畢后D0的值會(huì)自動(dòng)清零,用戶可通過(guò)循環(huán)讀取D0 的值來(lái)判斷Buffer 的切換是否已經(jīng)完成。

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

注 意:

每個(gè)支持Adaptive Filtering 功能的miniDSP 都有自己的Adaptive Filtering 控制寄存器,miniDSP-A 和miniDSP-D 的Adaptive Filtering 功能是獨(dú)立運(yùn)行的。

2.3 系數(shù)內(nèi)存(Coefficient Memory)存取規(guī)范[!--empirenews.page--]

在介紹Adaptive Filtering 的具體流程前,首先需要了解系數(shù)內(nèi)存存取的規(guī)范。

在non-Adaptive Filtering 模式下,系數(shù)內(nèi)存在miniDSP 停止運(yùn)行時(shí)可通過(guò)控制端口(I2C/SPI)直接存取。在miniDSP 工作時(shí),系數(shù)內(nèi)存將被鎖定只有miniDSP 能夠存取。表3 給出了該模式下的存取規(guī)范供參考:

表 3. 在non-Adaptive Filtering 模式下系數(shù)內(nèi)存的存取規(guī)范

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

表 4. Adaptive Filtering 模式下系數(shù)內(nèi)存的存取規(guī)范

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

2.4 Adaptive Filtering 控制流程

本節(jié)詳細(xì)介紹了如何使用Adaptive Filtering 功能來(lái)進(jìn)行系數(shù)內(nèi)存內(nèi)參數(shù)的更新操作。附錄A 給出了推薦的Adaptive Filtering 更新參數(shù)操作時(shí)序圖供參考。

2.4.1 miniDSP 停止時(shí)的參數(shù)更新流程

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

1. 通過(guò)控制接口直接向Buffer-A 寫(xiě)入新參數(shù)。

2. 切換到Buffer-B 所在頁(yè)面,向Buffer-B 寫(xiě)入同樣參數(shù)。使Buffer-A 和Buffer-B 保持同步。

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

1. 向p8_r44 寫(xiě)入新參數(shù)0xAB。

2. 向p26_r44 寫(xiě)入新參數(shù)0xAB。(p26_r44 是p8_r44 的鏡像寄存器)

2.4.2 miniDSP 運(yùn)行時(shí)的參數(shù)更新流程

miniDSP 運(yùn)行時(shí),系數(shù)內(nèi)存的其中一個(gè)Buffer 被miniDSP 鎖定,控制端口無(wú)法直接修改該Buffer內(nèi)的參數(shù)。用戶需要先更新未鎖定Buffer 內(nèi)的參數(shù),然后通知miniDSP 切換Buffer 來(lái)使用新的參數(shù)。切換后原先被鎖定的Buffer 將被釋放,用戶需要對(duì)它更新相同的參數(shù)以確保兩塊Buffer 的參數(shù)同步。

在miniDSP 運(yùn)行時(shí),系數(shù)內(nèi)存參數(shù)更新的流程如下:

1. 通過(guò)控制端口向目標(biāo)寄存器更新參數(shù)。

2. 向Adaptive Filtering 寄存器寫(xiě)入Buffer 切換命令。

3. 回讀Adaptive Filtering 寄存器狀態(tài)位,判斷Buffer 切換是否完成。

4. 確認(rèn)切換完成后,再次向目標(biāo)寄存器更新參數(shù)確保Buffer-A 和Buffer-B 參數(shù)同步。

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

1. 向p8_r44 寫(xiě)入新參數(shù)0xAB。

2. 將p8_r1_d0,Adaptive Filtering 寄存器的D0 位置1,執(zhí)行Buffer 切換操作。

3. 回讀p8_r1_d0,Adaptive Filtering 寄存器狀態(tài)位,判斷Buffer 切換是否完成。

4. 確認(rèn)切換完成后,再次向目標(biāo)寄存器p8_r44 更新參數(shù)0xAB,確保Buffer-A 和Buffer-B參數(shù)同步。

3 總結(jié)

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

4 參考文獻(xiàn)

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)

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉