音頻捕獲和播放正在成為許多基于微控制器 (MCU) 的應(yīng)用程序的必要條件。但是,在保真度和編解碼器方面的音頻支持范圍非常廣泛。您可以使用基于簡(jiǎn)單 8 位 MCU 的平臺(tái)托管支持音頻的應(yīng)用程序,但高質(zhì)量的音頻可能需要數(shù)字信號(hào)控制器 (DSC) 或 32 位 MCU。本文將調(diào)查音頻領(lǐng)域的廣度,建議與不同級(jí)別的 MCU 性能相匹配的潛在應(yīng)用,并指出可幫助您開始使用音頻元素的項(xiàng)目的現(xiàn)成評(píng)估套件。
讓我們先看看使用 8 位 MCU 可以完成什么。過去,為產(chǎn)品添加語音錄制和播放功能意味著使用數(shù)字信號(hào)處理器或?qū)S靡纛l芯片?,F(xiàn)在,Microchip Technology發(fā)布了一份應(yīng)用說明,重點(diǎn)介紹了使用自適應(yīng)差分脈沖編碼調(diào)制 (ADPCM) 在 8 位PIC18F67J10 MCU 上處理簡(jiǎn)單的語音編碼和解碼。ADPCM 編碼基于連續(xù)語音樣本高度相關(guān)的事實(shí)。該算法根據(jù)前一個(gè)樣本預(yù)測(cè)每個(gè)后續(xù)樣本,并且只對(duì)預(yù)測(cè)樣本和實(shí)際樣本之間的差異進(jìn)行編碼。您當(dāng)然不會(huì)使用 ADPCM 對(duì)音樂進(jìn)行編碼,但該算法在語音應(yīng)用中非常有效。
您會(huì)發(fā)現(xiàn)基于浮點(diǎn)數(shù)學(xué)和精度數(shù)據(jù)轉(zhuǎn)換器的 ADPCM 實(shí)現(xiàn)。這樣的實(shí)現(xiàn)顯然超出了 8 位 MCU 的能力。Microchip 開發(fā)了一種基于 4 位 ADPCM 數(shù)據(jù)的實(shí)現(xiàn)。8 位 MCU 可以支持 8 KHz 采樣率的單調(diào)音頻。
ADPCM 編碼 編碼
器的設(shè)計(jì)(圖 1)接受二進(jìn)制補(bǔ)碼格式的 16 位數(shù)據(jù)流。您可以使用片上 10 位 A/D 轉(zhuǎn)換器 (ADC) 對(duì)來自麥克風(fēng)的樣本進(jìn)行編碼。解碼器采用 4 位 ADPCM 數(shù)據(jù)并生成 16 位二進(jìn)制補(bǔ)碼輸出。您可以使用片上捕捉/比較/PWM (CCP) 外設(shè)將 PWM 信號(hào)驅(qū)動(dòng)到輸出濾波器。
圖 1:ADPCM 編碼器框圖,其中 sp 是預(yù)測(cè)樣本,si 是線性輸入樣本,d 是差值,t 是 4 位 ADPCM 值。
有許多因素可能會(huì)限制此類應(yīng)用在 8 位 MCU 上的性能,盡管 CPU 性能通常不是主要因素。例如,集成 ADC 的轉(zhuǎn)換速度和閃存的寫入速度將實(shí)現(xiàn)限制為 8 KHz 速率。事實(shí)上,Microchip 表示,語音功能可以在性能較低的 8 位PIC16 系列MCU 上實(shí)現(xiàn)。ADPCM 應(yīng)用很容易適應(yīng) PIC18F67J10 MCU 的內(nèi)存占用。例如,解壓縮算法僅使用 128 KB 中的 484 字節(jié)可用于程序存儲(chǔ)。
Microchip 不為PIC18 系列MCU 提供以音頻為中心的開發(fā)套件,但您可以輕松地將其組合在一起。PICDEM開發(fā)板包括一個(gè) PIC18 MCU 和一個(gè)支持dsPIC30F DSP的MCU 或數(shù)字信號(hào)控制器 (DSC)。將語音播放 PICtail Plus 子板添加到套件中,您就可以進(jìn)行音頻實(shí)驗(yàn)了。
如果將任務(wù)的編碼部分排除在外,那么 8 位 MCU 的音頻任務(wù)能力要強(qiáng)得多。例如,您可以設(shè)計(jì)一個(gè)產(chǎn)品,將預(yù)先錄制的語音片段作為語音提示播放給最終用戶。您單獨(dú)創(chuàng)建示例,只需使用 MCU 解碼數(shù)據(jù)并輸出 PWM 信號(hào)。
16 位音頻應(yīng)用程序
升級(jí)到 16 位 MCU,您可能會(huì)期望您所針對(duì)的音頻應(yīng)用類型會(huì)有顯著提升。然而,實(shí)際上,差異并不像您想象的那么大。正如我們剛剛討論的,數(shù)據(jù)轉(zhuǎn)換時(shí)間和內(nèi)存訪問速度等特性決定了音頻能力。您得到的是額外的免費(fèi) MCU 周期來托管手頭應(yīng)用程序的其他元素。
讓我們看看瑞薩最新的 16 位 MCU 系列——RL78 系列。該 MCU 系列針對(duì)包括電池供電設(shè)備在內(nèi)的低功耗應(yīng)用進(jìn)行了優(yōu)化。該設(shè)計(jì)提供 41 Dhrystone MIPS (DMIPS),最大時(shí)鐘速度為 32 MHz。這種性能水平使其僅次于低端 32 位 MCU,而且實(shí)際上比某些 MCU 更快。
瑞薩電子發(fā)布了一份應(yīng)用說明,重點(diǎn)介紹在 ADPCM 應(yīng)用中使用 RL78。編碼器使用集成的 10 位 A/D 轉(zhuǎn)換器對(duì)輸入進(jìn)行采樣。與我們之前討論的 Microchip 示例一樣,該實(shí)現(xiàn)以 8 KHz 采樣率創(chuàng)建 4 位 ADPCM 數(shù)據(jù)。解碼器可以以 11.025 KHz 的采樣率運(yùn)行。您可以使用RSK RL78/G13開發(fā)人員套件(圖 2)
對(duì) Renesas 的 ADPCM 應(yīng)用程序進(jìn)行試驗(yàn)。該套件不是針對(duì)音頻的,但它確實(shí)集成了許多以音頻為中心的功能,包括單音和立體聲音頻放大器。該板還包括一個(gè)麥克風(fēng)輸入和前置放大器以及一個(gè)用于數(shù)字麥克風(fēng)的接口。
圖 2:用于低功耗 RL78 MCU 的 Renesas 開發(fā)套件包括單音和立體聲放大器以及麥克風(fēng)輸入。
遷移到 16 位 MCU 的另一個(gè)好處是可以選擇更廣泛的編碼算法,這些算法更占用 CPU 資源,可以提供更好的音頻質(zhì)量或更高級(jí)別的壓縮,這意味著您可以在可用內(nèi)存中存儲(chǔ)更多音頻。
編解碼器選擇
例如,讓我們考慮 Microchip PIC24 系列MCU。對(duì)于編碼和解碼應(yīng)用,Microchip 提供對(duì) ADPCM、G.711、G.726A 和 Speex 編解碼器的支持。實(shí)際上有更多的編解碼器選擇,但列出的編解碼器是免版稅的。
G.711 是廣泛用于電話應(yīng)用的 ITU(國(guó)際電信聯(lián)盟)標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)規(guī)定了 8 位樣本、8 KHz 采樣率,并使用 PCM 算法。
G.726A 也是 ITU 標(biāo)準(zhǔn),基于 ADPCM。該標(biāo)準(zhǔn)規(guī)定了 8 KHz 采樣率,但在樣本大小方面提供了靈活性,并提供了 16、24、32 或 40 Kbit/s 數(shù)據(jù)速率的選擇。
Speex 是一種開源編解碼器,專為 IP 語音 (VoIP) 應(yīng)用程序而開發(fā)。編解碼器基于代碼激勵(lì)線性預(yù)測(cè) (CELP) 算法。該編解碼器可以支持 8、16 和 32 KHz 采樣率。
通常,G.711 提供了我們討論過的選項(xiàng)中質(zhì)量最好的。Microchip 表示,相對(duì)于 PIC24 MCU,它需要大約 60 MIPS 才能實(shí)現(xiàn)。根據(jù)所選的編碼選項(xiàng),G.726A 編解碼器可能需要 16 到 40 MIPS。Speex 編解碼器在某些情況下可以在質(zhì)量方面與 G.726A 相媲美,并且需要少于 16 MIPS。
根據(jù) Microchip 的說法,G.711 編解碼器需要 8 KB 來存儲(chǔ) 1 秒的語音。G.726A 編解碼器的要求范圍為 2 到 5 KB 以存儲(chǔ)一秒。同時(shí),Speex 編解碼器只需要 1 KB 即可存儲(chǔ)一秒鐘的語音。
添加 DSP 功能
Microchip 實(shí)際上將 PCI24 系列與dsPIC33 DSC組合在一起系列(圖 3),因?yàn)檫@些 IC 共享相同的 CPU 架構(gòu),盡管后者增加了對(duì) DSP 應(yīng)用程序的數(shù)學(xué)支持。在音頻應(yīng)用方面,通過移動(dòng)到 DSC 來查看您添加的內(nèi)容很有趣。
dsPIC33 在支持的編解碼器方面并沒有增加太多,盡管您將再次釋放可用于應(yīng)用程序其他方面的 CPU 周期。但是,DSC 允許您使用 Microchip 的自動(dòng)增益控制庫,它會(huì)在編碼過程之前自動(dòng)調(diào)整語音信號(hào)的幅度。該功能在揚(yáng)聲器和麥克風(fēng)之間的距離變化的應(yīng)用中特別有用,例如揚(yáng)聲器電話。
Microchip dsPIC33 IC 還可以使用該公司的語音和音頻快進(jìn)工具。設(shè)計(jì)團(tuán)隊(duì)在開發(fā)過程中使用該工具實(shí)時(shí)控制以音頻為中心的算法,例如噪聲抑制、回聲消除和均衡。先前的功能也在庫中實(shí)現(xiàn)。此外,基于 GUI 的語音工具生成可移植到 PIC33 DSC 的代碼。
Microchip 提供了一個(gè)全面的以音頻為中心的開發(fā)工具集(圖 3),用于基于 PIC24 和 dsPIC33 的設(shè)計(jì)。Explorer 16通用開發(fā)板支持這兩個(gè) MCU 系列。您可以通過Audio PICtail Plus添加音頻支持該產(chǎn)品附帶的子卡和軟件。該組合支持 16 位和 24 位音頻,包括用于存儲(chǔ)音頻的 4 Mb 串行閃存,并包括一個(gè)用于解調(diào)來自 MCU 的 PWM 輸出的低通濾波器。
圖 3:對(duì)于 dsPIC MCU 系列,Microchip 提供了一組強(qiáng)大的以音頻為中心的庫,可以通過基于 GUI 的語音和音頻快進(jìn)開發(fā)工具進(jìn)行管理。
32 位和音樂
現(xiàn)在讓我們轉(zhuǎn)到 32 位空間。如您所料,音樂通過 32 位 MCU 進(jìn)入畫面。通常,MCU 無法將音樂實(shí)時(shí)編碼為 MP3 或 WMA(Windows Media Audio)等格式。但是 32 位 MCU 可以處理完美的音樂解碼,以及我們之前討論的所有音頻應(yīng)用。如果要實(shí)現(xiàn)編碼,則需要使用專用的編解碼器 IC。
當(dāng)您進(jìn)入音樂領(lǐng)域時(shí),您通常會(huì)超越片上外圍設(shè)備的能力來生成所需的音頻質(zhì)量。MCU 和 DAC 的組合可以處理具有 32 到 48 KHz 采樣率的 16 到 24 位音頻??紤] 32 位空間后,您還將看到以音頻為中心的 MCU 產(chǎn)品。例如,Atmel 提供AT32UC3 系列32 位 MCU,有通用版本和音頻專用版本。該產(chǎn)品基于 AVR MCU 內(nèi)核。
音頻 MCU 的一個(gè)示例是AT32UC3A0512AU集成 512 KB 閃存和 64 KB RAM 的 MCU。音頻 MCU 帶有設(shè)備執(zhí)行許可算法(如 MP3、WMA 和 AAC 解碼器)所需的標(biāo)識(shí)號(hào)。MCU 集成了便攜式音樂播放器所需的完整功能集,例如支持閃存卡和強(qiáng)大的 USB 堆棧。
Microchip 還在其基于 MIPS 內(nèi)核的32 位 PIC32 MCU 系列上支持音樂應(yīng)用。32 位 MCU 不支持 DSPIC33 可用的增益控制庫或語音和音頻快進(jìn)開發(fā)工具。但是,32 位產(chǎn)品支持我們?cè)诖擞懻摰呐c Microchip MCU 相關(guān)的所有其他編解碼器。
正如您所料,Microchip 為 32 位 MCU 提供了許多開發(fā)工具,這些工具將在音頻和音樂項(xiàng)目中派上用場(chǎng)。PIC32 音頻開發(fā)板(圖 4)將PIC32MX795F512 MCU與 512 KB 閃存和 128 KB SRAM 集成在一起。該板還包括一個(gè)可以處理實(shí)時(shí)音樂編碼和解碼的 Wolfson 編解碼器。Microchip 還支持通過開源 Helix MP3 解碼器庫在 PIC32 上解碼
圖 4:Microchip 基于 PIC32 的音頻開發(fā)板與 iPod PICtail 配對(duì),其中包括一個(gè)用于 Apple iPod 的對(duì)接連接。
開發(fā)板包括一個(gè)與 iPod 上使用的 Apple MFi 接口兼容的連接器。Microchip 還提供名為 iPod PICtail Plus 的配套產(chǎn)品,其中包括一個(gè)用于 iPod 的基座。
如您所見,鑒于 MCU 供應(yīng)商提供的工具和庫的廣泛性,向基于 MCU 的系統(tǒng)設(shè)計(jì)添加音頻功能相對(duì)簡(jiǎn)單。您必須對(duì)給定類別的 MCU 可以支持的音頻質(zhì)量抱有現(xiàn)實(shí)的期望來處理這樣的設(shè)計(jì)。您會(huì)發(fā)現(xiàn)即使是非常低端的 MCU 也可以處理短音頻片段的播放。隨著處理能力的提高,您可以添加編碼并最終支持音樂。
評(píng)論
查看更多