如何挑選並使用適合嵌入式音訊回饋檔的音訊編解碼器及微控制器
資料提供者:DigiKey 北美編輯群
2020-12-02
嵌入式系統越來越需要提供高傳真度音訊當作使用者回饋,而不是只用蜂鳴器,包括警報與警示。在過去,逼逼聲與唧唧聲固然有用,但使用者逐漸期望有更先進的音效,能以 MP3 等檔案格式播放音訊。問題在於,音訊播放功能並不容易,而且可能會在系統上增添額外成本及複雜性。首先想到的是尋找可播放 MP3 的微控制器,但這通常會在物料清單 (BOM) 上增添數美元的成本,也會對嵌入式軟體帶來可觀的複雜性。
有個解決方案特別不錯,可在額外成本與軟體複雜性之間取得平衡,那就是使用音訊編解碼器。音訊編解碼器不僅可接受來自微控制器的音訊資料流,通常也有多種功能能讓開發人員仔細微調音訊播放系統,藉此提升系統播放的音效品質。
本文將探討音訊編解碼器所扮演的角色,開發人員在挑選時應考量的主要特性,以及如何有效運用。本文也會介紹來自 AKM Semiconductor、Texas Instruments 及 Maxim Integrated 的解決方案並加以示範,但也可參考其他廠商的產品。最後將針對如何使用編解碼器加速音訊播放應用的開發作業,以及降低系統成本,提供提示與訣竅。
音訊編解碼器是什麼?
音訊編解碼器屬於硬體元件,可針對內含音訊資訊的數位資料流進行編碼或解碼1。音訊編解碼器相當實用,因為能卸除微控制器的音訊處理負擔。如此即可大幅降低軟體複雜性,亦可在應用中使用較低廉且功能較少的微控制器。
典型的音訊編解碼器含有數個功能區塊:
- I2S 介面可傳輸或接收編碼的數位音訊資料
- I2C 介面可配置並讀取音訊編解碼器的控制暫存器
- 麥克風輸入會連接到類比數位轉換器 (ADC)
- 至少一個音訊輸出通道,如揚聲器輸出,但絕大多數亦含有線路輸出,也可能含有多個揚聲器輸出可達到立體聲播放。
- 數位區塊含有高通、低通、陷波及等化器濾波器,可微調音訊播放及錄音。
有個範例音訊編解碼器因為成本低且具有多重音訊功能,因此相當受到歡迎,即 AKM Semiconducto 的 AK4637EN 24 位元音訊編解碼器 (圖 1)。AK4637EN 除了上述三種功能外,還有逼逼聲發聲器輸入,能以所需頻率的脈寬調變 (PWM) 訊號來發出逼逼聲。
圖 1:AK4637EN 音訊編解碼器搭配單聲道揚聲器輸出,具有音訊播放及錄音功能。亦含有內部音訊區塊,可用來對進出的音訊進行濾波,以改善音訊傳真度。 (圖片來源:AKM Semiconductor)
開發人員會發現,音訊編碼器的主要差別在於輸出單聲道或立體聲音訊,以及是否具備數位區塊能力。舉例而言,AK4637EN 提供高通濾波器、低通濾波器、四頻段等化器、自動調平聲道功能,以及單頻段等化器。後者可當作陷波濾波器。開發人員如何設定這些數位濾波器,會大幅影響系統的聲音表現。
音訊編解碼器對於剛接觸音訊播放的開發人員來說有時令人卻步。舉例而言,AK4637EN 屬於簡易型音訊編解碼器,快速檢視其規格書就可發現其具有 64 個可配置的暫存器。一開始看可能覺得很多,但這些暫存器絕大多數都是用來針對可用的多種數位濾波器,設定濾波器係數。只需要使用其中少數暫存器來讓系統正確輸出音訊,因此音訊編解碼器的驅動器開發作業遠比新手工程師想的還要簡單。
如何挑選音訊編解碼器
在產品開發期間挑選任何元件時,有個重要的因素就是成本,音訊編解碼器也不例外。但重要的是,開發人員也要注意成本效益,因此在音訊方面,團隊必須在設計要求以及關鍵的解決方案參數之間謹慎權衡。
首先要考量的是音訊編解碼器所需的輸出。目前有多種不同的選擇。例如,AK4637EN 有一個線路輸出及一個單聲道揚聲器輸出。其他編解碼器,例如 Texas Instruments 的 TLV320AIC3110IRHBR 立體聲音訊編解碼器就可驅動兩個 1.29 W 的揚聲器 (圖 2)。
圖 2:TI 的 TLV320AIC3110IRHBR 音訊編解碼器具有立體聲輸出與放大功能,還具有麥克風輸入。此編解碼器能以內部放大器驅動 1.29 W,並具有可編程數位音訊區塊。(圖片來源:Texas Instruments)
其他音訊編解碼器,如 Maxim Integrated 的 MAX9867,在設計上就只能驅動一對耳機 (圖 3)。MAX9867 具有典型 I2S 及 I2C 數位介面,但亦含有可數位選擇的立體聲麥克風輸入及兩個線路輸入。
圖 3:Maxim Integrated 的 MAX9867 音訊編解碼器可驅動立體聲耳機,並可在數位麥克風及線路輸入之間進行選擇。(圖片來源:Maxim Integrated)
在這三種解決方案中決定要採用何種輸出類型 (甚至是輸入),是相當重要的初期決定。
開發人員也需要考量方案要驅動的對象為何。音訊編解碼器是否會直接驅動耳機、一個揚聲器或一對揚聲器?而且輸出額定值為何?若系統要驅動一個 5 W 洋生氣,則沒有太多嵌入式系統編解碼器可勝任此工作。反之,開發人員可選擇線路輸出,並使用獨立的 D 類放大器來直接驅動放大器。如此即可節省成本,並達到設計靈活性。
最後兩個考量是內部佈線與數位濾波能力。這其實才是決定音訊編解碼器的真正差別所在與成本差異。以 TLV320AIC311IRHBR 為例,就具有抗爆音與軟啟動能力,可將揚聲器的爆音降至最低,並順暢切換到音訊播放功能。此外也有內部混頻器,可用於各個輸出通道及數位音量控制。
開發人員在考量音訊編解碼器的需求時,必須謹慎在 BOM 及電路會佔用的板空間之間達到平衡。
音訊播放系統
使用音訊編解碼器時,務必要瞭解音訊編解碼器外部有多個不同的必要區塊,如此才可順利進行音訊播放。確切的區塊會依據應用及採用的播放方法而稍微有點不同,但一般情況如圖 4 所示。
圖 4:在典型嵌入式應用中,音訊播放系統的一般連接區塊圖指出,必須要有音訊檔案儲存區,可位於微控制器或外部記憶體。(圖片來源:Beningo Embedded Group)
此圖中有幾個點值得探討。首先,必須要有方法可用來儲存音訊播放檔案。在此有兩個選項:將檔案儲存在微控制器內部的快閃記憶體,或存在外部快閃記憶體。需依據音訊檔案的大小,以及微控制器內部的快閃記憶體大小進行決定。
開發人員也要考量播放的音訊格式為何。最常使用的是 MP3。在此情況下,挑選的微控制器必須有可支援 MP3 解碼的軟體堆疊。如此一來即可開啟 MP3 檔案,並利用動態記憶體存取 (DMA) 控制器,透過 I2S 介面向外推送。即便可以配置 I2S 連接埠以用於主控/從屬及其他多種模式,因此必須謹慎檢視,以確保資料以正確的速率傳輸到編解碼器。
誠如上述,可依據應用決定是否需要外部音訊放大器。典型編解碼器輸出介於 1 至 1.5 W,對於驅動小型揚聲器非常實用。為了驅動 3 W 或更大功率的揚聲器,就必須使用外部放大器。當然,最常使用的是 D 類放大器。放大器也不一定要具有可變增益。音訊編解碼器可數位調整音量控制功能,藉此提供寬廣的輸出功率範圍。
有個層面經常遭到忽略,那就是大電容量。音訊播放時,會從電軌消耗大量電力。若板上沒有足夠店容量,輸出品質會大幅受到影響,因此會發出砰聲以及其他不想要的噪音。只要在測試期間仔細監測電軌就可偵測此情況。在 PC 板開發期間,在板上額外多留一些覆蓋區是不錯的主意,如此就可嘗試不同的電容值,以便微調輸出電路。
挑選及使用音訊編解碼器時的提示與訣竅
音訊編解碼器可大幅簡化嵌入式軟體,並提供應用更優異的音訊品質。如果開發人員從未使用過音訊編解碼器,可能會有點棘手。為了順利運用音訊編解碼器,團隊應謹記幾個「提示與訣竅」,例如:
- 使用微控制器內的直接記憶體存取控制器 (DMA) 功能來饋送資料給音訊編解碼器,就可讓 CPU 的干涉降至最低。如此即可協助確保編解碼器不會資料「飢渴」。
- 未播放音訊時,使用編解碼器靜音功能,即可避免低位準的輸出雜訊達到揚聲器。
- 停用或啟用播放時,使用音訊編解碼器的軟靜音功能,即可預防揚聲器產生爆音及其他不想要的噪音。
- 在編解碼器啟用後,再使用終端應用程式來輸出編解碼器暫存器。試著對問題除錯或微調揚聲器輸出電路與外殼時,此作法特別實用。
- 運用編解碼器的內部數位濾波器機制。數位濾波器能讓開發人員將輸出等化、過濾掉不想要的高低頻,並讓音效系統的品質發揮到最高。
- 別忘了,只有在電路板與揚聲器皆裝入外殼內,對音效進行微調才會有用,因為外殼與安裝方式可造成很大的差異。
若要開始使用,開發人員可使用適用於 Maxim Integrated MAX9867 的 MAX9867EVKIT+ 評估套件進行試驗。
圖 5:MAX9867 用的 MAX9867EVKIT+ 評估套件會透過 USB 纜線接至 PC,並具有 RCA 輸入、耳機輸出以及光纖傳輸與接收模組。(圖片來源:Maxim Integrated)
此套件含有板件及相關軟體,出貨時即配置好,可使用 Sony/Philips 數位介面 (S/PDIF) 來傳送並接收音訊資料,但亦可設定成使用 I2S。此套件具有兩個 RCA 輸入插孔、兩個 3.5 mm 類比輸出耳機插孔,以及光纖接收與傳送模組。軟體相容於 Windows,透過 USB 纜線連接到 PC 後,會開啟圖形使用者介面 (GUI),開發人員即可藉此試驗 MAX9867 的設定值 (圖 6)。
圖 6:使用 Windows 系統 GUI,使用者即可試驗 MAX9867 的多種設定值,從時脈與數位音訊 (選取的標籤),一路到暫存器 1 與暫存器 2 (右側)。(圖片來源:Maxim Integrated)
結論
嵌入式系統使用者已習慣高品質音訊,如今會期望警報、警示及其他使用者音訊回饋項目不要再使用蜂鳴器與逼逼聲。因此,開發團隊勢必要在系統中實作 MP3 播放能力。一開始來看,可能會是複雜的工作。但開發人員只要使用正確的音訊編解碼器搭配微控制器,然後依照一些最佳設計實務,就可在音訊應用相關的成本及複雜性上達到平衡。
參考

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。