使用 miniDSP Codec 提升智能手機(jī)的音頻效能
來源:TI官網(wǎng) | 作者:TI德州儀器 | 發(fā)表于:2015-12-01
Texas Instruments 推出的超低功耗 miniDSP 音頻 Codec 集成了雙 miniDSP內(nèi)核,可在耗電極低的工作狀態(tài)下為電池供電的便攜式產(chǎn)品提供高性能的語音及音樂處理能力。本文以智能手機(jī)應(yīng)用為例介紹了 miniDSP Codec 的典型應(yīng)用及設(shè)計(jì)注意事項(xiàng)。
Texas Instruments 推出的超低功耗 miniDSP 音頻 Codec 集成了雙 miniDSP內(nèi)核,可在耗電極低的工作狀態(tài)下為電池供電的便攜式產(chǎn)品提供高性能的語音及音樂處理能力。本文以智能手機(jī)應(yīng)用為例介紹了 miniDSP Codec 的典型應(yīng)用及設(shè)計(jì)注意事項(xiàng)。
內(nèi)容
1 miniDSP Codec 簡(jiǎn)介 ....................................................................................................... 1
2 智能手機(jī)音頻系統(tǒng)概述 ..................................................................................................... 5
3 miniDSP Codec 應(yīng)用注意事項(xiàng) ............................................................................................ 8
4 總結(jié) .......................................................................................................................... 12
5 參考文獻(xiàn) .................................................................................................................... 12
圖表列表
1 miniDSP Codec 和常規(guī) Codec 的對(duì)比................................................................................... 3
2 AIC3254 miniDSP D 的預(yù)置處理模式(節(jié)選) ......................................................................... 3
3 AIC3254 miniDSP A Adaptive Filtering 控制寄存器( P8_R1 ) ................................................... 12
1 miniDSP Codec 簡(jiǎn)介
德州儀器半導(dǎo)體公司( Texas Instruments )推出的內(nèi)嵌 miniDSP 的音頻編解碼器(簡(jiǎn)稱 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ù)交換及共享代碼空間。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)航儀,電子相框等。
圖 1. miniDSP Codec 內(nèi)部簡(jiǎn)化框圖
TI miniDSP Codec 系列產(chǎn)品目前包括以下器件:
?
TLV320AIC3253
?
TLV320AIC3254
?
TLV320AIC36
?
TLV320AIC3111
?
TLV320AIC3120
本文以
TLV320AIC3254 為例介紹 miniDSP Codec
的典型應(yīng)用及設(shè)計(jì)注意事項(xiàng),部分內(nèi)容也適用于下列包含 miniDSP 內(nèi)核的 ADC 或 DAC 器件:
? TLV320ADC3101
? TLV320ADC3001
? TLV320DAC3120
1.1 miniDSP Codec 與常規(guī) Codec 在手機(jī)應(yīng)用中的對(duì)比音頻 Codec在手機(jī)系統(tǒng)中主要提供兩種功能:第一種是音頻信號(hào)路徑的選擇及混音管理。例如:選擇將音樂信號(hào)傳輸?shù)蕉鷻C(jī)還是喇叭;通話時(shí)選擇內(nèi)置麥克風(fēng)還是耳機(jī)麥克風(fēng)等。第二種是音頻信號(hào)音質(zhì)處理和效果增強(qiáng)。例如:播放音樂時(shí)的高低音調(diào)節(jié);語音通話時(shí)的背景噪聲消除功能等。對(duì)于路徑選擇及混音管理功能來說, miniDSP Codec的優(yōu)勢(shì)在于提供了一個(gè)靈活、可編程的數(shù)字路徑選擇及混音管理功能。 miniDSP內(nèi)部可對(duì)任意通道進(jìn)行混音、拆分,并且可在任何路徑上放置濾波器及音效處理控件。對(duì)于音質(zhì)處理功能來說, miniDSP Codec 可利用內(nèi)嵌的 miniDSP引擎支持靈活及強(qiáng)大的音效處理算法,來改善手機(jī)的通話音質(zhì)或增強(qiáng)音樂回放時(shí)的效果。
表 1 總結(jié)了miniDSP codec 和常規(guī) Codec 之間的主要區(qū)別以供參考。
表 1. miniDSP Codec 和常規(guī) Codec 的對(duì)比
1.2 miniDSP Codec 工作模式簡(jiǎn)介
常規(guī) Codec 在應(yīng)用中僅需通過 I2C 或 SPI 總線對(duì)少量寄存器進(jìn)行初始化即可正常工作。 miniDSP Codec提供了兩種工作模式來滿足不同的應(yīng)用需求:
? 預(yù)置處理模式 (Processing Block Mode)
為了兼容常規(guī) Codec 的配置模式, miniDSP Codec內(nèi)部存儲(chǔ)了若干組預(yù)置處理模式的代碼,不同的預(yù)置處理模式提供了不同的音效處理能力及功耗特性。用戶無需 對(duì) miniDSP 進(jìn)行編程,只要按需求選擇一個(gè)預(yù)置處理模式即可完成配置。這種工作模式簡(jiǎn)化了
miniDSP Code 的應(yīng)用方式,提供了類似常規(guī) Codec 的使用方法。
表 2 列舉了 TLV320AIC3254 miniDSP D 的部分預(yù)置處理模式,可見 miniDSP D支持的不同預(yù)置處理模式主要的區(qū)別為:
1. 支持的插值濾波器類型及聲道類型。
2. 支持的 EQ 個(gè)數(shù)。
3. 是否支持動(dòng)態(tài)范圍調(diào)整( DRC ),環(huán)繞立體聲( 3D ),嗶嗶聲發(fā)生器( Beep Generator )。
4. 資源占用及功耗等級(jí)。
表 2. AIC3254 miniDSP D 的預(yù)置處理模式(節(jié)選)
同 miniDSP D 類似, miniDSP A 也有不同的預(yù)置處理模式供選擇。請(qǐng)參考器件的用戶手冊(cè)來獲取詳情。
? miniDSP 編程模式
miniDSP 編程模式下,用戶需要在啟動(dòng)時(shí)通過 I2C 或 SPI 對(duì) miniDSP的程序進(jìn)行加載。所有的濾波器、音效等控件均按照用戶需求自行定義及配置。相比預(yù)置處理模式,miniDSP 編程模式下 Codec 的功能更強(qiáng),使用更靈活性。
圖 2. PurePath? Studio (Portable Audio) GDE 開發(fā)界面
若選擇使用 miniDSP 編程模式,用戶必須自行開發(fā) miniDSP 的程序。為了簡(jiǎn)化含有 miniDSP的低功耗音頻編解碼器的軟件開發(fā)工作, TI 推出了獨(dú)有的圖形化編程開發(fā)環(huán)境 PurePath? Studio(Portable Audio) Graphic Development Environment (簡(jiǎn)稱,GDE) 。 GDE 的開發(fā)界面如圖 2所示。用戶按以下簡(jiǎn)單步驟即可完成 miniDSP 的應(yīng)用開發(fā):
1. 選擇目標(biāo)器件,確定音頻采樣率等初始配置。
2. 選擇控件庫(kù)中提供的輸入輸出模塊,完成模擬和數(shù)字音頻信號(hào)路徑規(guī)劃。
3. 選擇音量、濾波器、音效處理等模塊,放置于所需路徑并初步設(shè)定效果參數(shù)。
4. 與 TI 演示板( EVM )連接,下載程序測(cè)試功能及效果。實(shí)時(shí)調(diào)整以確定效果參數(shù)。
5. 產(chǎn)生 C 語言頭文件代碼,供給手機(jī)系統(tǒng)驅(qū)動(dòng)使用。
可見 GDE是一套完善、易用的開發(fā)工具,開發(fā)人員無需懂得編程語言。該工具可以簡(jiǎn)化終端產(chǎn)品應(yīng)用開發(fā)難度,縮短開發(fā)周期。有關(guān) GDE的更多詳情,請(qǐng)參考:http://focus.ti.com.cn/cn/docs/toolsw/folders/print/aicpurepath_studio.html
1.3 Control Software GUI 介紹
Control Software GUI (簡(jiǎn)稱 CS )是配套 TI miniDSP Codec 演示板使用的用戶界面軟件。如圖 3 所示,CS 提供了完整的 Codec 寄存器配置選項(xiàng),包括時(shí)鐘、模擬輸入/輸出、電源管理等。 CS 和 GDE的關(guān)系是相輔相成的。 GDE 主要用于編輯和生成 miniDSP 內(nèi)核的代碼,而 Codec的時(shí)鐘、電源、模擬輸入輸出部分的管理功能則由 CS 來完成。若用戶選擇使用 miniDSP的預(yù)置處理模式( PRB 模式),僅使用 CS 即可完成 miniDSP Codec 應(yīng)用代碼的編寫和調(diào)試。
圖 3. Control Software 用戶界面
CS 還提供了寄存器命令記錄器( COMMAND-LINE-INTERFACE)來協(xié)助用戶記錄對(duì)寄存器的操作。該功能可以方便用戶記錄寄存器調(diào)試結(jié)果,快速驗(yàn)證寄存器設(shè)置。
2 智能手機(jī)音頻系統(tǒng)概述
目前的手機(jī)產(chǎn)品可分為功能型手機(jī)( Feature Phone )和智能型手機(jī)( Smart Phone)兩大類。功能型手機(jī)一般無獨(dú)立的應(yīng)用處理器( Application Processor ,簡(jiǎn)稱 AP),主要采用單芯片結(jié)構(gòu)。該單芯片內(nèi)集成了基本的應(yīng)用處理器及基帶芯片( Base Band ,簡(jiǎn)稱 BB),一般運(yùn)行的是各大廠商自行開發(fā)的固件。功能型手機(jī)一般多為中低端產(chǎn)品,主平臺(tái)芯片多數(shù)自帶簡(jiǎn)單功能的音頻編解碼器。
主流的智能型手機(jī)硬件平臺(tái)采用應(yīng)用處理器 基帶芯片的雙芯片結(jié)構(gòu)。操作系統(tǒng)和應(yīng)用程序在應(yīng)用處理器內(nèi)執(zhí)行,射頻通訊軟件在基帶芯片內(nèi)執(zhí)行。 AP和 BB 之間使用 AT ( Attention)命令來溝通。智能型手機(jī)對(duì)通話音質(zhì)和多媒體播放性能要求較高,一般均外加功能強(qiáng)大的音頻編解碼器來滿足功能及性能的需求。
圖 4. 使用 miniDSP Codec 的智能手機(jī)典型框圖
圖 4 是 miniDSP Codec 在智能型手機(jī)中的典型應(yīng)用框圖。根據(jù)手機(jī)應(yīng)用的工作模式,miniDSP Codec的工作狀態(tài)可分為音樂回放模式及語音通話模式兩種。音樂回放模式下,應(yīng)用處理器將數(shù)字音樂信號(hào)通過I2S 總線傳輸給 miniDSP Codec 。 miniDSP
根據(jù)用戶設(shè)定的程序?qū)σ魳沸盘?hào)進(jìn)行處理,處理后的音樂被輸出到耳機(jī)或者外放進(jìn)行播放。語音通話模式下 miniDSP Codec 的 ADC 開啟,麥克風(fēng)的模擬輸入信號(hào)被 ADC采樣后傳輸給基帶芯片。基帶芯片將接受到的麥克風(fēng)語音信號(hào)通過天線發(fā)射給接收方,該路徑也稱作語音通話的上行鏈路( Uplink )。下行鏈路( Downlink)的信號(hào)流程是由基帶處理器將天線接收到的對(duì)方語音信號(hào)通過 I2S 總線傳輸給 miniDSP Codec 的 DAC部分,該信號(hào)經(jīng)過處理后被輸出到受話器、耳機(jī)或者外放進(jìn)行播放??梢娫谥悄苁謾C(jī)系統(tǒng)中音頻 Codec是手機(jī)音頻系統(tǒng)的核心,負(fù)責(zé)所有模擬及數(shù)字音頻路徑及混音管理,同時(shí)提供音效處理及音質(zhì)優(yōu)化功能。
2.1 miniDSP Codec 在音樂回放模式中的典型應(yīng)用
音樂回放 (Music Playback) 是手機(jī)的必備功能, miniDSP Codec 內(nèi)置的 miniDSP 引擎可提供常規(guī) Codec所不具備的強(qiáng)大音效處理能力以及可持續(xù)升級(jí)性。圖 5 是 miniDSP在手機(jī)音樂回放模式中的典型應(yīng)用程序示例。
在該示例中,I2S 音頻數(shù)據(jù)經(jīng)過 “立體聲音量”控件后分為耳機(jī)路徑(上方)和喇叭路徑(下方)兩個(gè)支路。耳機(jī)路徑中的 “圖形化均衡器( Graphic EQ) ” 可以提供 5 段高低音調(diào)節(jié)功能來實(shí)現(xiàn) Pop 、 Jaz 和 Classic 等不同類型音樂對(duì)頻響曲線的要求。“低音增強(qiáng)控件( BassBoost )” 可利用諧波原理增強(qiáng)耳機(jī)的低頻效果。喇叭路徑中的 “喇叭均衡器(Speaker EQ)” 和 “動(dòng)態(tài)范圍控制( DRC )”控件可用來補(bǔ)償喇叭的頻率響應(yīng)曲線和限制輸出幅度。在輸出部分的 “路徑切換開關(guān)”可用于在拔插外置耳機(jī)時(shí),根據(jù)需要切換 miniDSP 內(nèi)的耳機(jī)路徑或喇叭路徑。
圖 5. 音樂回放模式 miniDSP 典型應(yīng)用程序示例
2.2 miniDSP Codec 在語音通話模式中的典型應(yīng)用
語音通話模式下, miniDSP Codec 通過 I2S 總線與基帶芯片( BB )通訊。該模式下 I2S總線的采樣率通常為 8kHz ,用于傳輸語音信號(hào)。
miniDSP Codec的主要功能為改善通話質(zhì)量,優(yōu)化語音清晰度。
圖 6. 語音通話模式 miniDSP 典型應(yīng)用程序示例
如圖 6 所示,語音通話模式下,下行 (Downlink) 語音數(shù)據(jù)通過 I2S 總線由基帶芯片( BaseBand )傳輸給miniDSP Codec 。經(jīng)過 “語音帶寬濾波器( Voice_Band_EQ )” 濾除語音帶外雜訊,然后送入“動(dòng)態(tài)范圍控制( DRC )” 控件對(duì)下行信號(hào)做限幅處理后輸出到耳機(jī)、受話器或者喇叭。上行( Uplink)語音數(shù)據(jù)由麥克風(fēng)采集后首先經(jīng)過 “回聲消除( AEC )”控件,該控件也同時(shí)采集下行語音數(shù)據(jù)來運(yùn)行回聲消除算法。消除回聲后的上行語音數(shù)據(jù)又經(jīng)過“噪聲消除( NR )” 和 “麥克風(fēng)濾波器( Mic_EQ )” 控件進(jìn)行降噪和濾波處理,再通過 I2S總線送往基帶芯片并發(fā)射出去。
3 miniDSP Codec 應(yīng)用注意事項(xiàng)
由于 miniDSP Codec 具有特殊的內(nèi)核架構(gòu),在使用中和常規(guī) Codec相比具有一定的特殊性。本節(jié)總結(jié)了部分應(yīng)用注意事項(xiàng)供參考。
3.1 合理利用和分配內(nèi)存資源
miniDSP 的內(nèi)存分為指令內(nèi)存( Instruction RAM )和系數(shù)內(nèi)存( Coefficient RAM)兩部分。由于存儲(chǔ)控件是有限的,所以并非控件庫(kù)中的所有模塊都可以同時(shí)被編譯并執(zhí)行。
圖 7. GDE 的資源窗口
使用 GDE 完成 miniDSP 的流程圖后首先要生成代碼并檢查是否有內(nèi)存溢出的錯(cuò)誤。如圖 6所示,用戶可在 View 下拉菜單內(nèi)找到 Resources 窗口,打開后可查看 miniDSP A 和 D的資源使用情況。若有內(nèi)存溢出發(fā)生, GDE 會(huì)自動(dòng)報(bào)錯(cuò)并自動(dòng)以紅色顯示內(nèi)存溢出的詳情。
部分內(nèi)存溢出的錯(cuò)誤可以通過重新對(duì) miniDSP A 和 D 合理分配代碼占用來修正。例如,若 miniDSP D的存儲(chǔ)空間已滿而 miniDSP A 的存儲(chǔ)空間尚有空余??梢詫⒉糠挚丶?miniDSP D 中轉(zhuǎn)移到 miniDSP A中運(yùn)行。 GDE 控件庫(kù)內(nèi)提供了 DSP_A_DSP_D 和 DSP_D_DSP_A 兩個(gè)組件,它們可以用于連接 A 和 D兩個(gè)內(nèi)核進(jìn)行數(shù)據(jù)交換。
另外用戶可以使用切換應(yīng)用場(chǎng)景的方法來解決部分內(nèi)存不足的問題,例如將 miniDSP的程序分為音樂播放時(shí)的程序和語音通話時(shí)的程序兩部分。這兩部分程序的應(yīng)用場(chǎng)景是獨(dú)立的,用戶可為兩種應(yīng)用場(chǎng)景編寫各自的代碼,并在應(yīng)用場(chǎng)景切換時(shí)切換相應(yīng)的 miniDSP 的程序即可。
3.2 miniDSP Codec 寄存器初始化時(shí)序
miniDSP Codec的寄存器可以分為兩類:一類是常規(guī)寄存器,包括電源管理,時(shí)鐘設(shè)置和路徑選擇等設(shè)置,通常稱為Analog Block Registers 。該類寄存器同普通 Codec 是相似的; 另一類是 miniDSP 程序寄存器。 miniDSP的程序是通過 I2C 總線下載到內(nèi)部運(yùn)行的,所以 miniDSP 的所有內(nèi)存地址均映射到特定的 I2C地址。地址映射也提供了相應(yīng)的接口讓用戶可以在 Codec 運(yùn)行時(shí)調(diào)節(jié) miniDSP程序中的控件參數(shù),例如調(diào)節(jié) miniDSP 中音量控件的音量,或改變混音器的混音比例。
初始化 miniDSP Codec必須嚴(yán)格遵循正確的時(shí)序,不適合的時(shí)序可能會(huì)引起程序加載異?;蛘吣M輸出產(chǎn)生 POP聲等問題。在初始化之前,首先通過 RESET 管腳或者軟件復(fù)位寄存器( Page 0/Register 1 )對(duì) Codec進(jìn)行復(fù)位,復(fù)位后 Codec 內(nèi)部所有寄存器將恢復(fù)默認(rèn)狀態(tài)。之后用戶需要配置時(shí)鐘、電源管理、 ADC 和DAC 通道的寄存器及 miniDSP 程序等。推薦的配置順序如圖 8 所示:
圖 8. miniDSP Codec 初始化時(shí)序
3.3 運(yùn)行時(shí)的 miniDSP 程序切換
一般情況下,當(dāng) miniDSP Codec 的程序通過 I2C總線下載后就可持續(xù)運(yùn)行無需進(jìn)行重新加載。但在下列兩種情況下, miniDSP
的內(nèi)核程序需要在運(yùn)行時(shí)進(jìn)行切換:
? Codec 的采樣頻率改變。例如由音樂播放頻率由 48kHz 切換到 44.1kHz 。采樣頻率的變化導(dǎo)致 Codec時(shí)鐘必須重新配置,并且 miniDSP
程序中所有跟采樣頻率有關(guān)的濾波器參數(shù)等均需要更新。所以當(dāng)采樣頻率切換時(shí), miniDSP也需要重新加載符合新采樣頻率的固件。
? 內(nèi)存限制。如 3.1 節(jié)所述,由于 miniDSP的內(nèi)存是有限的,導(dǎo)致無法將所有處理功能集中于單一程序中一次性下載并執(zhí)行,尤其是某些占用資源較多的音效(例如SRS、回聲消除等)會(huì)因?yàn)閮?nèi)存資源的限制而無法同時(shí)加載執(zhí)行。解決方法即根據(jù)不同應(yīng)用場(chǎng)景的需要,在場(chǎng)景切換的同時(shí)切換相應(yīng)的 miniDSP 程序。
miniDSP 的程序切換實(shí)際上就是使用新固件進(jìn)行 miniDSP 的重新初始化。 miniDSP內(nèi)核程序更新前后均需要按照正確的時(shí)序來配置電源、時(shí)鐘及模擬輸入輸出。錯(cuò)誤的時(shí)序?qū)?dǎo)致更新時(shí)模擬輸出出現(xiàn) POP 聲,甚至 miniDSP 程序?qū)懭胧?。正確的 Codec 初始化時(shí)序請(qǐng)參考 3.2 節(jié)。
3.4 miniDSP 驅(qū)動(dòng)頭文件
GDE 支持將 miniDSP 程序編譯成 C 語言的頭文件格式( .h File)來提供給驅(qū)動(dòng)程序調(diào)用。手機(jī)操作系統(tǒng)只需要在驅(qū)動(dòng)程序中引用頭文件內(nèi)的數(shù)組便可完成 miniDSP內(nèi)核程序的加載。如圖 9 所示,驅(qū)動(dòng)代碼頭文件生成選項(xiàng)可在 GDE 的 Tools→Option→Build
菜單中找到并打開。使能該功能后, GDE 會(huì)在目標(biāo)程序目錄下生成 main_RateXX_pps_driver.h 文件( XX代表采樣率)。
圖 9. 驅(qū)動(dòng)頭文件生成選項(xiàng)
頭文件結(jié)構(gòu)如圖 10所示,主要分為接口段和代碼段兩部分。接口段主要包括每個(gè)音量、開關(guān)、音效控件的名稱信息及地址信息
,用來提供給驅(qū)動(dòng)程序一個(gè)接口來控制它們。代碼段包括三個(gè)子段落:常規(guī)寄存器代碼段、 miniDSP A程序代碼段和 miniDSP D 程序代碼段。驅(qū)動(dòng)程序需要引用代碼段內(nèi)的數(shù)組來完成寄存器及 miniDSP的程序?qū)懭搿?br />
圖 10. 驅(qū)動(dòng)頭文件結(jié)構(gòu)示例
需要注意的是常規(guī)寄存器代碼段內(nèi)的參數(shù)通常是 GDE 按照器件 EVM板產(chǎn)生的默認(rèn)參數(shù),該參數(shù)并不一定適用于實(shí)際的用戶系統(tǒng)。例如用戶系統(tǒng)使用了與 EVM 板不同的 MCLK時(shí)鐘頻率,則用戶必須手動(dòng)更改常規(guī)寄存器代碼段內(nèi)的 PLL 參數(shù)來滿足實(shí)際需求。同理,GDE并不關(guān)心用戶使用哪一個(gè)模擬輸出。選擇耳機(jī)、受話器或者喇叭輸出的工作應(yīng)由智能手機(jī)的系統(tǒng)按照實(shí)際需求來決定。所以,一般常規(guī)寄存器代碼段僅對(duì)電源、時(shí)鐘等固定參數(shù)做上電初始化。而模擬路徑的選擇及輸出級(jí)的開關(guān)、靜音等功能均由系統(tǒng)來管理。
3.5 Adaptive Filtering
注: 并不是所有的 miniDSP 器件均支持 Adaptive Filtering功能,請(qǐng)參考相應(yīng)器件的手冊(cè)獲得詳細(xì)支持信息。
當(dāng) miniDSP Codec運(yùn)行在普通模式下,濾波器、音效等控件的參數(shù)將被鎖定無法實(shí)時(shí)更改。這種模式適用于不需要實(shí)時(shí)調(diào)節(jié)參
數(shù)的場(chǎng)合。若用戶希望實(shí)時(shí)調(diào)節(jié)濾波器參數(shù)或改變某個(gè)混音器的混音比例等,則需要啟用 Adaptive Filtering模式。
Adaptive Filtering 模式下系數(shù)內(nèi)存(Coefficient Memory)將分為 Buffer A 和 Buffer B兩塊,兩塊內(nèi)存內(nèi)容完全一致,相互備份。miniDSP 工作時(shí)將鎖定 Buffer A 或者 Buffer B其中的一個(gè),從中獲取參數(shù)信息。
控制接口( I2C 或 SPI)可以讀寫未鎖定的另一塊 Buffer。當(dāng)用戶更新了未鎖定 Buffer 內(nèi)的參數(shù)后,可通過操作特定寄存器來通知 miniDSP 切換到更新后的 Buffer來使用新的參數(shù)。原先被鎖定的 Buffer 將被釋放,用戶需對(duì)它更新相同的參數(shù)以確保兩塊 Buffer的參數(shù)同步。圖 11 給出了標(biāo)準(zhǔn)的 Adaptive Filtering 更新參數(shù)操作時(shí)序圖供參考。
圖 11. Adaptive Filtering 更新參數(shù)操作時(shí)序
以 AIC3254 的 miniDSP A 為例,表 3 列出了 miniDSP A 的 Adaptive Filtering 控制寄存器,用戶可通過D2 開啟 Adaptive Filtering 功能。 miniDSP 運(yùn)行時(shí),若 D1 的值為 0,則表明 miniDSP 正在使用 Buffer A,用戶可以通過 I2C 更新 Buffer B 內(nèi)的參數(shù)。更新結(jié)束后,用戶向 D0 寫入 1 通知 miniDSP 切換到 BufferB 的新參數(shù)。切換完成后 D0 的值會(huì)自動(dòng)清零,用戶需要讀取 D0 的值來確保 Buffer的切換已經(jīng)完成。當(dāng)確認(rèn)切換完成后,用戶需要將同樣的參數(shù)值寫入釋放出來的 Buffer A 以確保參數(shù)同步。
表 3. AIC3254 miniDSP A Adaptive Filtering 控制寄存器( P8_R1 )
為了簡(jiǎn)化用戶的程序流程,當(dāng) miniDSP 正在運(yùn)行時(shí),Buffer A 和 Buffer B的頁(yè)面地址被設(shè)計(jì)成均指向未鎖定的 Buffer 。這個(gè)設(shè)置允許用戶在切換 Buffer后無需修改寫入地址即可向釋放出來的 Buffer 內(nèi)存更新參數(shù)。在 miniDSP 停止運(yùn)行的時(shí)候, Buffer A 和
Buffer B 的頁(yè)面地址均恢復(fù)正常模式,用戶需使用它們各自的地址進(jìn)行參數(shù)更新。
4 總結(jié)
本文以智能手機(jī)為例,介紹了 miniDSP 音頻 Codec在便攜式設(shè)備中的典型應(yīng)用及注意事項(xiàng)。相對(duì)于傳統(tǒng)音頻 Codec, miniDSP 音頻 Codec從根本上改變了一成不變的固定音效處理模式。 miniDSP內(nèi)核提供給用戶一個(gè)強(qiáng)大和靈活的開發(fā)空間,并具持續(xù)的可升級(jí)性。最終可提升終端產(chǎn)品的性能及生命周期。
5 參考文獻(xiàn)
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)