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