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

產品分類

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

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

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

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

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

推薦產品

更多
主站蜘蛛池模板: 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 信阳市建筑勘察设计研究院有限公司| 固诺家居-全屋定制十大品牌_整体衣柜木门橱柜招商加盟 | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | 电动葫芦|手拉葫芦|环链电动葫芦|微型电动葫芦-北京市凌鹰起重机械有限公司 | 风信子发稿-专注为企业提供全球新闻稿发布服务 | 膜结构停车棚-自行车棚-膜结构汽车棚加工安装厂家幸福膜结构 | 猪I型/II型胶原-五克隆合剂-细胞冻存培养基-北京博蕾德科技发展有限公司 | RS系列电阻器,RK_RJ启动调整电阻器,RQ_RZ电阻器-上海永上电器有限公司 | 连续密炼机_双转子连续密炼机_连续式密炼机-南京永睿机械制造有限公司 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 铁盒_铁罐_马口铁盒_马口铁罐_铁盒生产厂家-广州博新制罐 | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 电销卡_北京电销卡_包月电话卡-豪付网络 | 生物风-销售载体,基因,质粒,ATCC细胞,ATCC菌株等,欢迎购买-百风生物 | 钢丝绳探伤仪-钢丝绳检测仪-钢丝绳探伤设备-洛阳泰斯特探伤技术有限公司 | 考勤系统_人事考勤管理系统_本地部署BS考勤系统_考勤软件_天时考勤管理专家 | 不锈钢水管-不锈钢燃气管-卫生级不锈钢管件-不锈钢食品级水管-广东双兴新材料集团有限公司 | 立式壁挂广告机厂家-红外电容触摸一体机价格-华邦瀛 | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | 叉车电池-叉车电瓶-叉车蓄电池-铅酸蓄电池-电动叉车蓄电池生产厂家 | 五轴加工中心_数控加工中心_铝型材加工中心-罗威斯 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 云南外加剂,云南速凝剂,云南外加剂代加工-普洱澜湄新材料科技有限公司 | 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | 上海刑事律师|刑事辩护律师|专业刑事犯罪辩护律师免费咨询-[尤辰荣]金牌上海刑事律师团队 | 地图标注-手机导航电子地图如何标注-房地产商场地图标记【DiTuBiaoZhu.net】 | 广西绿桂涂料--承接隔热涂料、隔音涂料、真石漆、多彩仿石漆等涂料工程双包施工 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 太原装修公司_山西整装家装设计_太原室内装潢软装_肖邦家居 | 塑料瓶罐_食品塑料瓶_保健品塑料瓶_调味品塑料瓶–东莞市富慷塑料制品有限公司 | 泉州陶瓷pc砖_园林景观砖厂家_石英砖地铺石价格 _福建暴风石英砖 | 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 水压力传感器_数字压力传感器|佛山一众传感仪器有限公司|首页 | 南京欧陆电气股份有限公司-风力发电机官网 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 |