中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

產品分類

當前位置: 首頁 > 工業電氣產品 > 端子與連接器 > 線路板連接器 > FFC連接器

類型分類:
科普知識
數據分類:
FFC連接器

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

發布日期:2022-04-17 點擊率:49

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

開發人員還必須在硬件或軟件解決方案之間謹慎選擇,并決定使用哪些元器件,這是因為成本、空間和開發時間都是重要考慮因素。

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

選擇嵌入式音頻格式

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

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

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

對于大多數系統,MP3 文件是首選音頻格式。MP3 文件是有損的,因此在對音頻進行編碼時,可能會損失一些音頻保真度。但是,MP3 遠小于 PCM 或 WAV,因此將音頻文件放到設備上的傳輸和存儲時間更短,并且其對存儲器的要求也更小。

一旦決定要使用 MP3,開發人員便可選擇使用硬件或軟件來實現。

基于硬件的 MP3 解碼

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

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

VS1053B 真正有意思的地方是,與許多其他使用 I2C 的解碼器相比,它還能通過簡單的 UART 進行調試和控制。此外,它有八個通用輸入/輸出引腳,可用于讀取位、設置開關或狀態 LED 之類的應用功能。

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

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

基于軟件的 MP3 解碼

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

  • MP3 解碼器庫

  • 存儲驅動程序

  • 文件系統堆棧

  • 直接存儲器訪問 (DMA) 驅動程序

  • I2S 驅動程序

  • I2C 驅動程序

  • 音頻編解碼器驅動程序

乍看之下,軟件開發人員似乎有大量工作要做,需要集成許多具有挑戰性的軟件組件以將 MP3 解碼并轉換為音頻。實現 MP3 解碼解決方案的最佳辦法是利用一個支持音頻編碼、解碼和常規處理的微控制器平臺。

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

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

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,支持幾乎所有嵌入式應用。(圖片來源:STMicroelectronics)

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

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

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

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

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

開發人員選定并試用了他們認為最適合其應用的解決方案之后,就需要決定如何將解碼的 MP3 文件從數字波形轉換為模擬聲音。

利用編解碼器將音頻流轉換為聲音

大多數基于硬件的解碼解決方案還會包括一個數模轉換器 (DAC),用于將接收到的數字文件格式轉換為模擬聲音。但是,這些芯片通常包含 I2S 輸出端口,允許開發人員添加自己的音頻編解碼器。基于軟件的解決方案肯定需要編解碼器,才能將解碼的數字流轉換為音頻。有兩種方法可以完成此任務。

第一種方法是可以獲取數字音頻,利用微控制器的板載 DAC 外設生成音頻輸出。一般而言,這不是生成音頻的最佳方法,因為它需要額外的分立元器件以及精心的模擬電路設計和布局,才能獲得高質量輸出。此外,微控制器上也需要進行更多設置才能讓 DAC 正常運行,而且一般還需要額外的處理器電源以確保 DAC 獲得適當的供電。

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

舉例來說,Cirrus Logic 的 CS43L22-CNZ DAC 為開發人員提供了廣泛的功能,例如:

  • 通過 I2C 總線執行 DAC 控制

  • 多路輸出,例如耳機和揚聲器

  • 無需外部輸出濾波

  • 數字信號處理器引擎,用于音量、低音和高音控制

  • 滴答和噼啪噪聲抑制

CS43L22-CNZ 通過 I2S 接口從微控制器接收 PCM 編碼的數據流,然后使用其內部 DAC 進行轉換(圖 6)。CS43L22-CNZ DAC 可以驅動多路輸出,例如揚聲器或耳機。如果使用單個單聲道,CS43L22-CNZ 可以向揚聲器輸出 2 W 功率;如果使用立體聲聲道,則每個聲道最多為 1 W。

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

一些開發人員可能不需要 CS43L22-CNZ 的全部功能,可以通過精簡來節省一些 BOM 成本。

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

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

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

與任何產品功能一樣,開發人員需要花時間仔細檢查其對系統的要求,并在編解碼器特性和成本與目標 BOM 成本之間取得平衡。

實現 MP3 解決方案的技巧與訣竅

開發人員在為應用選擇適當的解決方案時,可以使用以下“小技巧”:

  • 以預期的生產量執行 BOM 成本分析比較:一種情況是使用外部 MP3 解碼器,另一種情況是使用功能更強大的、能夠自行運行 MP3 解碼器的微控制器。務必使用悲觀、可達成和樂觀三種生產量數字來確定更好的決策范圍。

  • 利用支持 I2S 的音頻編解碼器生成輸出音頻。分立解決方案的調整可能更耗時,而元器件成本可能相當。

  • 使用開發板對 MP3 軟件庫進行性能分析,以了解解決方案運行所需的最低微控制器特性。

  • 利用 DMA 通道將解碼的 MP3 幀通過 I2S 接口傳輸到音頻編解碼器。這將支持使用較為便宜的處理器。

  • 仔細檢查 MP3 軟件庫許可,確保它們可與商業產品一起使用。除非是芯片供應商提供,否則大多數開源庫用于商業產品時都需要付費許可證。

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

總結

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

需要考慮的因素包括:BOM,解決方案的復雜性,開發和集成的時間與成本,以及解決方案的可擴展性。一旦對照產品批量、目標成本和開發計劃權衡上述因素,最合適的解決方案就會變得清晰起來。

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

上一篇: 利用可調低泄漏 LDO

推薦產品

更多
中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

      9000px;">

          国产二区国产一区在线观看| 一本大道久久a久久综合婷婷| 国产精品成人免费精品自在线观看| 亚洲一区二区三区四区在线免费观看 | 国产一区高清在线| 久久久精品黄色| 99精品视频免费在线观看| 亚洲韩国精品一区| 26uuu欧美| 99国内精品久久| 石原莉奈在线亚洲三区| 国产日韩欧美在线一区| 日本精品一区二区三区四区的功能| 亚洲高清视频的网址| 日韩三级中文字幕| 色av成人天堂桃色av| 精品一区二区三区视频在线观看 | 久久久久久久综合日本| 91麻豆精东视频| 久久精品免费观看| 一级日本不卡的影视| 欧美精品一区二区不卡| 欧美体内she精视频| 国产精品系列在线观看| 亚洲一区二区在线视频| 久久精品日韩一区二区三区| 精品视频在线视频| 9i看片成人免费高清| 国产一区二区三区在线看麻豆 | 国产精品久久久久久亚洲伦| 欧美日韩国产a| 成人国产在线观看| 精品综合免费视频观看| 午夜精品久久久久影视| 亚洲美女视频一区| 国产精品国产三级国产a| 久久综合五月天婷婷伊人| 欧美高清性hdvideosex| 色乱码一区二区三区88| 成人av影视在线观看| 国产精品综合av一区二区国产馆| 日韩精品一二三| 亚洲成人精品影院| 亚洲午夜久久久久中文字幕久| 亚洲丝袜精品丝袜在线| 国产精品日韩成人| 国产精品区一区二区三| 国产午夜亚洲精品羞羞网站| 精品国产乱码久久久久久蜜臀| 日韩欧美一区中文| 日韩精品自拍偷拍| ww久久中文字幕| 久久这里只有精品视频网| 欧美va亚洲va在线观看蝴蝶网| 欧美一区二区免费视频| 欧美一级午夜免费电影| 91精品欧美一区二区三区综合在 | 在线视频亚洲一区| 在线观看免费视频综合| 欧美亚洲动漫制服丝袜| 欧美三级韩国三级日本一级| 欧美日韩你懂得| 日韩午夜激情电影| 欧美精品一区二区久久婷婷| 久久久不卡网国产精品二区| 国产亚洲欧美日韩在线一区| 国产女同性恋一区二区| 中文字幕日韩一区二区| 亚洲精品福利视频网站| 亚洲图片欧美综合| 日韩激情视频在线观看| 久久99精品久久久久久| 国产成人在线色| 在线视频欧美区| 日韩一级二级三级| 中日韩免费视频中文字幕| 亚洲人成7777| 日本va欧美va精品| 成人免费va视频| 欧美日韩高清一区二区| 中文天堂在线一区| 日韩av一区二区在线影视| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美成人国产一区二区| 国产精品视频麻豆| 日韩和的一区二区| 国产成人啪免费观看软件| 欧美三级资源在线| 国产欧美视频一区二区三区| 亚洲综合在线电影| 国产69精品久久久久777| 欧美日韩一二区| 中文字幕中文在线不卡住| 日本成人超碰在线观看| 色综合天天做天天爱| 久久嫩草精品久久久精品| 一区二区日韩电影| 风间由美一区二区三区在线观看 | 欧美日韩国产在线播放网站| 久久免费精品国产久精品久久久久| 一区二区在线电影| 风间由美一区二区三区在线观看| 91精品欧美久久久久久动漫| 有坂深雪av一区二区精品| 韩国在线一区二区| 在线播放视频一区| 亚洲另类春色国产| 成人动漫中文字幕| 国产免费久久精品| 国产真实乱子伦精品视频| 欧美二区三区的天堂| 亚洲午夜日本在线观看| 色综合天天视频在线观看| 久久久天堂av| 激情欧美日韩一区二区| 日韩欧美一级精品久久| 日本sm残虐另类| 91精品欧美久久久久久动漫| 亚洲伊人色欲综合网| 91美女精品福利| 中文字幕中文在线不卡住| 国产高清亚洲一区| 国产亚洲女人久久久久毛片| 国产高清成人在线| 国产婷婷色一区二区三区在线| 九九热在线视频观看这里只有精品| 欧美一区二区网站| 视频一区二区欧美| 日韩一区二区中文字幕| 毛片不卡一区二区| 欧美成人猛片aaaaaaa| 国产麻豆精品一区二区| 国产午夜精品一区二区三区嫩草 | 无码av免费一区二区三区试看| 欧美午夜宅男影院| 亚洲成人午夜影院| 精品国产三级a在线观看| 精品一区二区三区免费| 精品1区2区在线观看| 国产精品夜夜嗨| 国产精品国产三级国产三级人妇| zzijzzij亚洲日本少妇熟睡| 自拍偷在线精品自拍偷无码专区| 9色porny自拍视频一区二区| 亚洲一区二区三区激情| 日韩欧美一级二级三级| 国产精品系列在线播放| 中文字幕日本乱码精品影院| 色悠悠亚洲一区二区| 日韩av高清在线观看| 久久久久久99精品| 在线视频一区二区三| 日本sm残虐另类| 国产三区在线成人av| 在线观看日韩高清av| 国产一区在线不卡| 亚洲午夜精品网| 国产欧美日韩视频在线观看| 欧美一区二区三区免费在线看| 天天综合色天天综合| 欧洲激情一区二区| 一区二区三区欧美视频| 99久久国产综合精品麻豆| 亚洲欧美另类久久久精品| 在线播放一区二区三区| 国产v日产∨综合v精品视频| 亚洲欧美综合另类在线卡通| 欧洲激情一区二区| 日本成人在线一区| 欧美激情中文字幕一区二区| 波多野结衣的一区二区三区| 亚洲国产精品人人做人人爽| 26uuu精品一区二区| 在线观看不卡一区| 国产精品一区2区| 午夜私人影院久久久久| 欧美videos中文字幕| 在线一区二区三区| 国内外成人在线视频| 亚洲黄网站在线观看| 国产精品美女一区二区| 日韩免费看的电影| 欧美熟乱第一页| 色婷婷狠狠综合| 不卡在线视频中文字幕| 国内精品不卡在线| 免费欧美高清视频| 日韩福利电影在线观看| 亚洲码国产岛国毛片在线| 国产网红主播福利一区二区| 日韩欧美一二三四区| 欧美日韩dvd在线观看| 91黄色激情网站| 高清不卡一区二区在线| 激情六月婷婷久久| 久久不见久久见免费视频1| 视频在线观看国产精品| 亚欧色一区w666天堂| 亚洲天堂av一区| 亚洲欧美电影一区二区|