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