日韩成人激情_欧美黑人xxx_国产一区二精品区在线_精品在线一区_97成人资源_久久久久久一区

產(chǎn)品分類

當(dāng)前位置: 首頁(yè) > 工業(yè)電氣產(chǎn)品 > 端子與連接器 > 線路板連接器 > FFC連接器

類型分類:
科普知識(shí)
數(shù)據(jù)分類:
FFC連接器

如何在嵌入式系統(tǒng)中高效解碼并播放音頻文件

發(fā)布日期:2022-04-17 點(diǎn)擊率:27

音頻接口日益成為嵌入式設(shè)計(jì)的期望特性。與此同時(shí),嵌入式系統(tǒng)的用戶對(duì)音頻質(zhì)量的要求越來(lái)越高。對(duì)開發(fā)人員來(lái)說(shuō),這帶來(lái)了如下挑戰(zhàn):如何在基于微控制器的系統(tǒng)中運(yùn)行 MP3 或其他音頻文件。這些系統(tǒng)不僅受資源限制,而且缺少便于開發(fā)人員在 Linux 系統(tǒng)上使用的音頻接口。因此,解碼音頻文件并高效地將內(nèi)容轉(zhuǎn)換為模擬聲音,就變得更加困難。

開發(fā)人員還必須在硬件或軟件解決方案之間謹(jǐn)慎選擇,并決定使用哪些元器件,這是因?yàn)槌杀尽⒖臻g和開發(fā)時(shí)間都是重要考慮因素。

本文介紹了 AKM Semiconductor、Adafruit、STMicroelectronics 和 Cirrus Logic Inc. 提供的幾種硬件和軟件解決方案,開發(fā)人員可以使用它們來(lái)高效地將音頻文件添加到其嵌入式設(shè)備中。此外,本文還說(shuō)明了一些“小技巧”,以幫助確保解決方案成功實(shí)施。

選擇嵌入式音頻格式

在深入探討如何將音頻功能集成到嵌入式設(shè)備之前,有必要仔細(xì)思考為何通常首選 MP3 音頻格式。對(duì)于嵌入式系統(tǒng),實(shí)際上有三種潛在音頻格式可供開發(fā)人員使用:脈沖編碼調(diào)制 (PCM)、WAV 和 MP3。

PCM 是一種未經(jīng)壓縮的無(wú)損音頻格式,常由音頻編解碼器用來(lái)將音頻流的數(shù)字表示轉(zhuǎn)換為用戶聽到的模擬聲音。這是一種廣受支持的標(biāo)準(zhǔn)格式,可以追溯到 CD 年代。PCM 可以在嵌入式系統(tǒng)中使用,但問題是 PCM 文件通常比 WAV 或 MP3 文件大得多。在資源受限且錙銖必較的設(shè)備中,若要支持這種格式,產(chǎn)品可能需要更大的外部存儲(chǔ)設(shè)備或具有更大存儲(chǔ)器的微控制器。因此,除非產(chǎn)品容量低、只有一個(gè)音頻文件或成本不受限制,否則通常會(huì)避免使用 PCM。

WAV 文件也是未經(jīng)壓縮且無(wú)損的,這方面與 PCM 非常相似。WAV 文件在嵌入式應(yīng)用中往往比 PCM 文件更受歡迎,但它同樣會(huì)占用大量空間。如果嵌入式系統(tǒng)已經(jīng)有 SD 卡或其他大容量存儲(chǔ)設(shè)備,那么 WAV 文件可能非常適合。

對(duì)于大多數(shù)系統(tǒng),MP3 文件是首選音頻格式。MP3 文件是有損的,因此在對(duì)音頻進(jìn)行編碼時(shí),可能會(huì)損失一些音頻保真度。但是,MP3 遠(yuǎn)小于 PCM 或 WAV,因此將音頻文件放到設(shè)備上的傳輸和存儲(chǔ)時(shí)間更短,并且其對(duì)存儲(chǔ)器的要求也更小。

一旦決定要使用 MP3,開發(fā)人員便可選擇使用硬件或軟件來(lái)實(shí)現(xiàn)。

基于硬件的 MP3 解碼

最快速、最簡(jiǎn)單的解決方案通常是使用硬件 MP3 解碼器,例如 Adafruit 的 1681 VS1053B(圖 1)。VS1053B 可以通過(guò)串行流直接接受 MP3、WAV、OGG 或 MIDI 文件格式并進(jìn)行解碼,開發(fā)人員幾乎不需要花什么精力。對(duì)流進(jìn)行解碼后,VS1053B 利用 18 位數(shù)模轉(zhuǎn)換器 (DAC) 將其轉(zhuǎn)換為音頻。

Adafruit 基于硬件的 VS1053B MP3 解碼器芯片示意圖圖 1:Adafruit 的 VS1053B 是基于硬件的 MP3 解碼器芯片,可接收音頻流并將其解碼為代表性的模擬音頻信號(hào)。此解決方案所需的軟件最少,并且不需要開發(fā)人員了解如何解碼或轉(zhuǎn)換 MP3 文件。(圖片來(lái)源:Adafruit)

VS1053B 真正有意思的地方是,與許多其他使用 I2C 的解碼器相比,它還能通過(guò)簡(jiǎn)單的 UART 進(jìn)行調(diào)試和控制。此外,它有八個(gè)通用輸入/輸出引腳,可用于讀取位、設(shè)置開關(guān)或狀態(tài) LED 之類的應(yīng)用功能。

對(duì)于希望嘗試基于硬件的解決方案的開發(fā)人員,不必為 VS1053B 定制分線板。Adafruit 提供 1381 VS1053B 編解碼器 + MicroSD 分線板。除 VS1053B 外,該板還有一個(gè) MicroSD 卡插槽,可用于存儲(chǔ)音頻文件以進(jìn)行解碼(圖 2)。分線板可連接到微控制器,后者通過(guò) SPI 或 SDIO 端口連接到 SD 卡以讀出音頻文件。音頻文件流隨后傳送到 VS1053B 進(jìn)行解碼。然后,可以根據(jù)需要將 VL1053B 的輸出導(dǎo)向耳機(jī)插孔或揚(yáng)聲器等。

Adafruit 的 1381 VS1053B 編解碼器 + MicroSD 分線板的圖片圖 2:Adafruit 的 1381 VS1053B 編解碼器 + MicroSD 分線板包含必要的硬件,可輕松連接微控制器以播放音頻。分線板上有一個(gè)板載 MicroSD 卡插槽,微控制器可以通過(guò) SPI 讀取卡內(nèi)容,然后將文件傳輸?shù)?VS1053B 進(jìn)行解碼。(圖片來(lái)源:Adafruit)

基于軟件的 MP3 解碼

一種稍微復(fù)雜一點(diǎn)但從物料 (BOM) 角度看成本常常更低的解決方案,是在微控制器上解碼 MP3 文件,然后將解碼后的文件流式傳輸?shù)揭纛l編解碼器以生成音頻。為了實(shí)施基于軟件的高效解決方案,開發(fā)人員需要實(shí)現(xiàn)若干關(guān)鍵組件,例如:

  • MP3 解碼器庫(kù)

  • 存儲(chǔ)驅(qū)動(dòng)程序

  • 文件系統(tǒng)堆棧

  • 直接存儲(chǔ)器訪問 (DMA) 驅(qū)動(dòng)程序

  • I2S 驅(qū)動(dòng)程序

  • I2C 驅(qū)動(dòng)程序

  • 音頻編解碼器驅(qū)動(dòng)程序

乍看之下,軟件開發(fā)人員似乎有大量工作要做,需要集成許多具有挑戰(zhàn)性的軟件組件以將 MP3 解碼并轉(zhuǎn)換為音頻。實(shí)現(xiàn) MP3 解碼解決方案的最佳辦法是利用一個(gè)支持音頻編碼、解碼和常規(guī)處理的微控制器平臺(tái)。

盡管可以在互聯(lián)網(wǎng)上找到許多開源解決方案,但 STM32 工具鏈?zhǔn)情_發(fā)人員可以利用的專業(yè)可靠、久經(jīng)考驗(yàn)的解決方案。STM32 微控制器系列有一個(gè)稱為 STM32CubeMx 的開發(fā)工具,其與 STM32CubeIDE 集成在一起,后者包含音頻示例和開發(fā)庫(kù)。這些示例和工具是 STM32CubeMX 附加插件(稱為 X-CUBE-AUDIO)的一部分。該插件為 Arm Cortex-M4 類微控制器中的所有 STM32 處理器提供了用于 MP3 解碼的音頻庫(kù)。

具體來(lái)說(shuō),它有一些代碼項(xiàng)目示例可用于創(chuàng)建能在 STM32F469IGH6TR 微控制器上運(yùn)行的 MP3 播放器。STM32F469IGH6TR 是一款功能強(qiáng)大的微控制器,具有 1 兆字節(jié) (MB) 的閃存和 384 KB 的 RAM,運(yùn)行速率為 180 兆赫茲 (MHz)。該微控制器采用 176 引腳 UBGA 封裝,提供了大量 GPIO 和外設(shè)特性,支持幾乎所有應(yīng)用。

STMicroelectro<em></em>nics 的 STM32F469IGH6TR 是一款 180 MHz Arm Cortex-M4 處理器的示意圖圖 3:STM32F469IGH6TR 是一款 180 MHz Arm Cortex-M4 處理器,具有 1 MB 的閃存和 384 KB 的 RAM。176 引腳 UBGA 封裝提供了大量 GPIO,支持幾乎所有嵌入式應(yīng)用。(圖片來(lái)源:STMicroelectronics)

MP3 播放器代碼示例運(yùn)行在 STM32F469I-DISCO Discovery 套件上(圖 4)。STM32F469I-DISCO 包含 MP3 解碼和播放所需的一切功能。該板有一塊 4 英寸 800 x 480 像素 LCD,用于將當(dāng)前 MP3 演示狀態(tài)告知開發(fā)人員,另外還提供了播放、停止、下一首、上一首等播放器控件。此外,Discovery 板還含有耳機(jī)插孔,能以立體聲方式播放所產(chǎn)生的音頻。關(guān)于示例代碼,唯一需要注意的是 MP3 文件須由外部提供,具體來(lái)說(shuō)是由 USB 驅(qū)動(dòng)大容量存儲(chǔ)設(shè)備提供,其通過(guò) micro USB 連接器連接。

STMicroelectro<em></em>nics 的 STM32F469I-DISCO Discovery 套件圖片圖 4:STM32F469I-DISCO Discovery 套件有一個(gè) 4 英寸 LCD,用于操作 MP3 播放器演示。音頻文件由外部 USB 大容量存儲(chǔ)設(shè)備通過(guò)板載 Micro USB 連接器提供。它提供了一個(gè)解碼 MP3 文件的實(shí)際范例。(圖片來(lái)源:STMicroelectronics)

雖然 MP3 解碼庫(kù)確實(shí)需要 Arm Cortex-M4 或更好的處理器,但事實(shí)證明,在開發(fā)板上運(yùn)行演示代碼是一種很好的方式,不僅可以查看和試驗(yàn)實(shí)際范例,而且還能驗(yàn)證應(yīng)用性能。使用串行線調(diào)試 (SWD) 接口和 Arm 內(nèi)核的儀器跟蹤宏單元 (ITM) 功能,可以對(duì)程序計(jì)數(shù)器執(zhí)行統(tǒng)計(jì)分析,確定大約需要多大處理能力來(lái)解碼并播放 MP3 文件。結(jié)果是,將近 50% 的 CPU 時(shí)間用于更新 LCD 顯示,而 10% 或更少的時(shí)間用于 MP3 解碼。STMicroelectronics 的音頻庫(kù)非常有效,其使用 DMA 將 I2S 上的解碼幀推送到音頻編解碼器。

如果應(yīng)用不需要 LCD,僅需要基于其他系統(tǒng)事件來(lái)播放音頻,那么可以使用功能較少的處理器。例如,開發(fā)人員可以看看 STM32F469VGT6。STM32F469VGT6 仍然非常強(qiáng)大,具有 1 MB 的閃存和 384 KB 的 RAM,全部位于 100 引腳 LQFP 中。該器件沒有使用 BGA 封裝,該封裝有時(shí)可能會(huì)讓開發(fā)人員和制造商望而卻步。

STMicroelectro<em></em>nics 的 STM32F469VGT6 180 MHz 處理器(帶 1 MB 閃存)的圖片圖 5:STM32F469VGT6 是一款 180 MHz 處理器,具有 1 MB 的閃存和 384 KB 的 RAM。該器件基于 Arm Cortex-M4 系列,由 STMicroelectronics 音頻庫(kù)支持。如圖所示,它采用 100 引腳 LQFP 封裝,這會(huì)讓開發(fā)人員和制造商沒那么望而卻步。(圖片來(lái)源:STMicroelectronics)

開發(fā)人員選定并試用了他們認(rèn)為最適合其應(yīng)用的解決方案之后,就需要決定如何將解碼的 MP3 文件從數(shù)字波形轉(zhuǎn)換為模擬聲音。

利用編解碼器將音頻流轉(zhuǎn)換為聲音

大多數(shù)基于硬件的解碼解決方案還會(huì)包括一個(gè)數(shù)模轉(zhuǎn)換器 (DAC),用于將接收到的數(shù)字文件格式轉(zhuǎn)換為模擬聲音。但是,這些芯片通常包含 I2S 輸出端口,允許開發(fā)人員添加自己的音頻編解碼器?;谲浖慕鉀Q方案肯定需要編解碼器,才能將解碼的數(shù)字流轉(zhuǎn)換為音頻。有兩種方法可以完成此任務(wù)。

第一種方法是可以獲取數(shù)字音頻,利用微控制器的板載 DAC 外設(shè)生成音頻輸出。一般而言,這不是生成音頻的最佳方法,因?yàn)樗枰~外的分立元器件以及精心的模擬電路設(shè)計(jì)和布局,才能獲得高質(zhì)量輸出。此外,微控制器上也需要進(jìn)行更多設(shè)置才能讓 DAC 正常運(yùn)行,而且一般還需要額外的處理器電源以確保 DAC 獲得適當(dāng)?shù)墓╇姟?/p>

第二種方法(一般推薦采用這種方法)是使用集成的音頻編解碼器。音頻編解碼器基本上是集成電路,具備所有用于生成模擬輸出的電路,例如 DAC 和 D 類放大器。相比于分立解決方案,音頻編解碼器的優(yōu)勢(shì)在于占用的電路板空間非常小,而且還能內(nèi)置數(shù)字電路來(lái)控制音頻輸出流。

舉例來(lái)說(shuō),Cirrus Logic 的 CS43L22-CNZ DAC 為開發(fā)人員提供了廣泛的功能,例如:

  • 通過(guò) I2C 總線執(zhí)行 DAC 控制

  • 多路輸出,例如耳機(jī)和揚(yáng)聲器

  • 無(wú)需外部輸出濾波

  • 數(shù)字信號(hào)處理器引擎,用于音量、低音和高音控制

  • 滴答和噼啪噪聲抑制

CS43L22-CNZ 通過(guò) I2S 接口從微控制器接收 PCM 編碼的數(shù)據(jù)流,然后使用其內(nèi)部 DAC 進(jìn)行轉(zhuǎn)換(圖 6)。CS43L22-CNZ DAC 可以驅(qū)動(dòng)多路輸出,例如揚(yáng)聲器或耳機(jī)。如果使用單個(gè)單聲道,CS43L22-CNZ 可以向揚(yáng)聲器輸出 2 W 功率;如果使用立體聲聲道,則每個(gè)聲道最多為 1 W。

Cirrus Logic 的 CS43L22-CNZ DAC 音頻 DAC 示意圖圖 6:CS43L22-CNZ DAC 是一種音頻 DAC,可通過(guò)單聲道輸出最高 2 W 的功率,或以立體聲音頻輸出每通道 1 W 的功率。該 DAC 具有一個(gè)數(shù)字信號(hào)處理引擎,可輕松控制音量、低音和高音。(圖片來(lái)源:Cirrus Logic)

一些開發(fā)人員可能不需要 CS43L22-CNZ 的全部功能,可以通過(guò)精簡(jiǎn)來(lái)節(jié)省一些 BOM 成本。

當(dāng)然,這取決于應(yīng)用的要求,但這種方法有一個(gè)很好的例子,那就是 AKM 的 AK4637EN 音頻編解碼器(圖 7)。這是一款 24 位單聲道編解碼器,其輸出 DAC 僅用于揚(yáng)聲器。該編解碼器還有一個(gè)麥克風(fēng)放大器,如果應(yīng)用需要,它也可以用來(lái)錄制音頻。

AKM Semico<em></em>nductor 采用 20 引腳 QFN 小型封裝的 AK4637EN 音頻 DAC 的示意圖(點(diǎn)擊放大)圖 7:AK4637EN 是采用 20 引腳 QFN 小型封裝的音頻 DAC,可輸出最高 1 W 的單聲道音頻。該編解碼器可通過(guò) I2C 總線以數(shù)字方式進(jìn)行控制,以管理輸出音量和自動(dòng)輸出控制。(圖片來(lái)源:AKM Semiconductor)

同大多數(shù)音頻編解碼器一樣,AK4637EN 也有 I2S 接口,用以接收來(lái)自微控制器的數(shù)字音頻信號(hào)。此外,該芯片還有 I2C 接口,用于控制板載數(shù)字特性,例如音量控制。

與任何產(chǎn)品功能一樣,開發(fā)人員需要花時(shí)間仔細(xì)檢查其對(duì)系統(tǒng)的要求,并在編解碼器特性和成本與目標(biāo) BOM 成本之間取得平衡。

實(shí)現(xiàn) MP3 解決方案的技巧與訣竅

開發(fā)人員在為應(yīng)用選擇適當(dāng)?shù)慕鉀Q方案時(shí),可以使用以下“小技巧”:

  • 以預(yù)期的生產(chǎn)量執(zhí)行 BOM 成本分析比較:一種情況是使用外部 MP3 解碼器,另一種情況是使用功能更強(qiáng)大的、能夠自行運(yùn)行 MP3 解碼器的微控制器。務(wù)必使用悲觀、可達(dá)成和樂觀三種生產(chǎn)量數(shù)字來(lái)確定更好的決策范圍。

  • 利用支持 I2S 的音頻編解碼器生成輸出音頻。分立解決方案的調(diào)整可能更耗時(shí),而元器件成本可能相當(dāng)。

  • 使用開發(fā)板對(duì) MP3 軟件庫(kù)進(jìn)行性能分析,以了解解決方案運(yùn)行所需的最低微控制器特性。

  • 利用 DMA 通道將解碼的 MP3 幀通過(guò) I2S 接口傳輸?shù)揭纛l編解碼器。這將支持使用較為便宜的處理器。

  • 仔細(xì)檢查 MP3 軟件庫(kù)許可,確保它們可與商業(yè)產(chǎn)品一起使用。除非是芯片供應(yīng)商提供,否則大多數(shù)開源庫(kù)用于商業(yè)產(chǎn)品時(shí)都需要付費(fèi)許可證。

遵循以上提示將有助于確保開發(fā)人員為其嵌入式應(yīng)用選擇正確的音頻解決方案。

總結(jié)

為嵌入式系統(tǒng)增加音頻功能曾經(jīng)是一項(xiàng)復(fù)雜的工作,但是如本文所示,如今的開發(fā)人員有大量解決方案可供選擇:既有專用的外部編解碼器,也有集成的軟件庫(kù)。盡管如此,開發(fā)人員仍需要仔細(xì)評(píng)估應(yīng)用需求,確定哪種解決路徑最合理。

需要考慮的因素包括:BOM,解決方案的復(fù)雜性,開發(fā)和集成的時(shí)間與成本,以及解決方案的可擴(kuò)展性。一旦對(duì)照產(chǎn)品批量、目標(biāo)成本和開發(fā)計(jì)劃?rùn)?quán)衡上述因素,最合適的解決方案就會(huì)變得清晰起來(lái)。

下一篇: PLC、DCS、FCS三大控

上一篇: 利用可調(diào)低泄漏 LDO

推薦產(chǎn)品

更多
主站蜘蛛池模板: 日本免费网| 欧美日韩精品在线一区 | 黄片毛片免费观看 | www.日韩系列 | 紧缚调教一区二区三区视频 | 日韩综合 | 久久国产精品偷 | 7799精品视频天天看 | 欧美成人视屏 | 国产欧美在线 | 亚洲欧美在线视频 | 一区二区视频在线 | www.亚洲视频.com | 久久久久久国产一区二区三区 | 黄色毛片免费看 | 国产剧情一区二区三区 | 一区二区三区国产好 | 一级黄色日本片 | 中文字幕在线观看一区 | 亚洲顶级毛片 | 自拍偷拍第一页 | 亚洲www啪成人一区二区麻豆 | 日韩综合在线 | 精品国产乱码久久久久久a丨 | 国产成人精品一区二区在线 | 午夜一区二区三区在线观看 | 亚洲欧美一区二区三区国产精品 | 久久精品一区二区视频 | 精品一二区 | 欧美精品一区在线 | 成人欧美一区二区三区黑人孕妇 | 日韩电影中文字幕在线观看 | 91精品国产自产在线老师啪 | 精品在线免费看 | 欧美影院 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 热久久999| 国产成人精品一区二区三 | 国产精品一区二 | 成人免费淫片aa视频免费 | 欧美一级艳情片免费观看 |