环球电气之家-午夜精彩视频-中国专业电气电子产品行业服务网站!

產品分類

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

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

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

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

音頻接口日益成為嵌入式設計的期望特性。與此同時,嵌入式系統的用戶對音頻質量的要求越來越高。對開發人員來說,這帶來了如下挑戰:如何在基于微控制器的系統中運行 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

推薦產品

更多
主站蜘蛛池模板: 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 运动木地板_体育木地板_篮球馆木地板_舞台木地板-实木运动地板厂家 | 生物风-销售载体,基因,质粒,ATCC细胞,ATCC菌株等,欢迎购买-百风生物 | 阿尔法-MDR2000无转子硫化仪-STM566 SATRA拉力试验机-青岛阿尔法仪器有限公司 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 | 浙江建筑资质代办_二级房建_市政_电力_安许_劳务资质办理公司 | 石英粉,滑石粉厂家,山东滑石粉-莱州市向阳滑石粉有限公司 | 玻璃钢型材-玻璃钢风管-玻璃钢管道,生产厂家-[江苏欧升玻璃钢制造有限公司] | 压滤机滤板_厢式_隔膜_板框压滤机滤板厂家价格型号材质-大凯环保 | 超声波清洗机_大型超声波清洗机_工业超声波清洗设备-洁盟清洗设备 | 物流之家新闻网-最新物流新闻|物流资讯|物流政策|物流网-匡匡奈斯物流科技 | 周易算网-八字测算网 - 周易算网-宝宝起名取名测名字周易八字测算网 | 制氮设备_PSA制氮机_激光切割制氮机_氮气机生产厂家-苏州西斯气体设备有限公司 | 学生作文网_中小学生作文大全与写作指导 | 烟台金蝶财务软件,烟台网站建设,烟台网络推广 | 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 礼至家居-全屋定制家具_一站式全屋整装_免费量房设计报价 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 | 撕碎机,撕破机,双轴破碎机-大件垃圾破碎机厂家| 天津热油泵_管道泵_天津高温热油泵-天津市金丰泰机械泵业有限公司【官方网站】 | 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 衬氟止回阀_衬氟闸阀_衬氟三通球阀_衬四氟阀门_衬氟阀门厂-浙江利尔多阀门有限公司 | 电池挤压试验机-自行车喷淋-车辆碾压试验装置-深圳德迈盛测控设备有限公司 | 粘度计,数显粘度计,指针旋转粘度计 | 振动时效_振动时效仪_超声波冲击设备-济南驰奥机电设备有限公司 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 二次元影像仪|二次元测量仪|拉力机|全自动影像测量仪厂家_苏州牧象仪器 | 瓶盖扭矩仪(扭力值检测)-百科 | 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 三防漆–水性三防漆–水性浸渍漆–贝塔三防漆厂家 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 步进驱动器「一体化」步进电机品牌厂家-一体式步进驱动 | 胶原检测试剂盒,弹性蛋白检测试剂盒,类克ELISA试剂盒,阿达木单抗ELISA试剂盒-北京群晓科苑生物技术有限公司 | 安全阀_弹簧式安全阀_美标安全阀_工业冷冻安全阀厂家-中国·阿司米阀门有限公司 | 地图标注|微信高德百度地图标注|地图标记-做地图[ZuoMap.com] | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | 临朐空调移机_空调维修「空调回收」临朐二手空调 | 818手游网_提供当下热门APP手游_最新手机游戏下载 | 色谱柱-淋洗液罐-巴罗克试剂槽-巴氏吸管-5ml样品瓶-SBS液氮冻存管-上海希言科学仪器有限公司 |