基于简单8位MCU的支持音频的应用程序

音视频及家电

734人已加入

描述

  音频捕获和播放正在成为许多基于微控制器 (MCU) 的应用程序的必要条件。但是,在保真度和编解码器方面的音频支持范围非常广泛。您可以使用基于简单 8 位 MCU 的平台托管支持音频的应用程序,但高质量的音频可能需要数字信号控制器 (DSC) 或 32 位 MCU。本文将调查音频领域的广度,建议与不同级别的 MCU 性能相匹配的潜在应用,并指出可帮助您开始使用音频元素的项目的现成评估套件。

  让我们先看看使用 8 位 MCU 可以完成什么。过去,为产品添加语音录制和播放功能意味着使用数字信号处理器或专用音频芯片。现在,Microchip Technology发布了一份应用说明,重点介绍了使用自适应差分脉冲编码调制 (ADPCM) 在 8 位PIC18F67J10 MCU 上处理简单的语音编码和解码。ADPCM 编码基于连续语音样本高度相关的事实。该算法根据前一个样本预测每个后续样本,并且只对预测样本和实际样本之间的差异进行编码。您当然不会使用 ADPCM 对音乐进行编码,但该算法在语音应用中非常有效。

  您会发现基于浮点数学和精度数据转换器的 ADPCM 实现。这样的实现显然超出了 8 位 MCU 的能力。Microchip 开发了一种基于 4 位 ADPCM 数据的实现。8 位 MCU 可以支持 8 KHz 采样率的单调音频。

  ADPCM 编码 编码

  器的设计(图 1)接受二进制补码格式的 16 位数据流。您可以使用片上 10 位 A/D 转换器 (ADC) 对来自麦克风的样本进行编码。解码器采用 4 位 ADPCM 数据并生成 16 位二进制补码输出。您可以使用片上捕捉/比较/PWM (CCP) 外设将 PWM 信号驱动到输出滤波器。

音乐播放器

  图 1:ADPCM 编码器框图,其中 sp 是预测样本,si 是线性输入样本,d 是差值,t 是 4 位 ADPCM 值。

  有许多因素可能会限制此类应用在 8 位 MCU 上的性能,尽管 CPU 性能通常不是主要因素。例如,集成 ADC 的转换速度和闪存的写入速度将实现限制为 8 KHz 速率。事实上,Microchip 表示,语音功能可以在性能较低的 8 位PIC16 系列MCU 上实现。ADPCM 应用很容易适应 PIC18F67J10 MCU 的内存占用。例如,解压缩算法仅使用 128 KB 中的 484 字节可用于程序存储。

  Microchip 不为PIC18 系列MCU 提供以音频为中心的开发套件,但您可以轻松地将其组合在一起。PICDEM开发板包括一个 PIC18 MCU 和一个支持dsPIC30F DSP的MCU 或数字信号控制器 (DSC)。将语音播放 PICtail Plus 子板添加到套件中,您就可以进行音频实验了。

  如果将任务的编码部分排除在外,那么 8 位 MCU 的音频任务能力要强得多。例如,您可以设计一个产品,将预先录制的语音片段作为语音提示播放给最终用户。您单独创建示例,只需使用 MCU 解码数据并输出 PWM 信号。

  16 位音频应用程序

  升级到 16 位 MCU,您可能会期望您所针对的音频应用类型会有显着提升。然而,实际上,差异并不像您想象的那么大。正如我们刚刚讨论的,数据转换时间和内存访问速度等特性决定了音频能力。您得到的是额外的免费 MCU 周期来托管手头应用程序的其他元素。

  让我们看看瑞萨最新的 16 位 MCU 系列——RL78 系列。该 MCU 系列针对包括电池供电设备在内的低功耗应用进行了优化。该设计提供 41 Dhrystone MIPS (DMIPS),最大时钟速度为 32 MHz。这种性能水平使其仅次于低端 32 位 MCU,而且实际上比某些 MCU 更快。

  瑞萨电子发布了一份应用说明,重点介绍在 ADPCM 应用中使用 RL78。编码器使用集成的 10 位 A/D 转换器对输入进行采样。与我们之前讨论的 Microchip 示例一样,该实现以 8 KHz 采样率创建 4 位 ADPCM 数据。解码器可以以 11.025 KHz 的采样率运行。您可以使用RSK RL78/G13开发人员套件(图 2)

  对 Renesas 的 ADPCM 应用程序进行试验。该套件不是针对音频的,但它确实集成了许多以音频为中心的功能,包括单音和立体声音频放大器。该板还包括一个麦克风输入和前置放大器以及一个用于数字麦克风的接口。

音乐播放器

  图 2:用于低功耗 RL78 MCU 的 Renesas 开发套件包括单音和立体声放大器以及麦克风输入。

  迁移到 16 位 MCU 的另一个好处是可以选择更广泛的编码算法,这些算法更占用 CPU 资源,可以提供更好的音频质量或更高级别的压缩,这意味着您可以在可用内存中存储更多音频。

  编解码器选择

  例如,让我们考虑 Microchip PIC24 系列MCU。对于编码和解码应用,Microchip 提供对 ADPCM、G.711、G.726A 和 Speex 编解码器的支持。实际上有更多的编解码器选择,但列出的编解码器是免版税的。

  G.711 是广泛用于电话应用的 ITU(国际电信联盟)标准。该标准规定了 8 位样本、8 KHz 采样率,并使用 PCM 算法。

  G.726A 也是 ITU 标准,基于 ADPCM。该标准规定了 8 KHz 采样率,但在样本大小方面提供了灵活性,并提供了 16、24、32 或 40 Kbit/s 数据速率的选择。

  Speex 是一种开源编解码器,专为 IP 语音 (VoIP) 应用程序而开发。编解码器基于代码激励线性预测 (CELP) 算法。该编解码器可以支持 8、16 和 32 KHz 采样率。

  通常,G.711 提供了我们讨论过的选项中质量最好的。Microchip 表示,相对于 PIC24 MCU,它需要大约 60 MIPS 才能实现。根据所选的编码选项,G.726A 编解码器可能需要 16 到 40 MIPS。Speex 编解码器在某些情况下可以在质量方面与 G.726A 相媲美,并且需要少于 16 MIPS。

  根据 Microchip 的说法,G.711 编解码器需要 8 KB 来存储 1 秒的语音。G.726A 编解码器的要求范围为 2 到 5 KB 以存储一秒。同时,Speex 编解码器只需要 1 KB 即可存储一秒钟的语音。

  添加 DSP 功能

  Microchip 实际上将 PCI24 系列与dsPIC33 DSC组合在一起系列(图 3),因为这些 IC 共享相同的 CPU 架构,尽管后者增加了对 DSP 应用程序的数学支持。在音频应用方面,通过移动到 DSC 来查看您添加的内容很有趣。

  dsPIC33 在支持的编解码器方面并没有增加太多,尽管您将再次释放可用于应用程序其他方面的 CPU 周期。但是,DSC 允许您使用 Microchip 的自动增益控制库,它会在编码过程之前自动调整语音信号的幅度。该功能在扬声器和麦克风之间的距离变化的应用中特别有用,例如扬声器电话。

  Microchip dsPIC33 IC 还可以使用该公司的语音和音频快进工具。设计团队在开发过程中使用该工具实时控制以音频为中心的算法,例如噪声抑制、回声消除和均衡。先前的功能也在库中实现。此外,基于 GUI 的语音工具生成可移植到 PIC33 DSC 的代码。

  Microchip 提供了一个全面的以音频为中心的开发工具集(图 3),用于基于 PIC24 和 dsPIC33 的设计。Explorer 16通用开发板支持这两个 MCU 系列。您可以通过Audio PICtail Plus添加音频支持该产品附带的子卡和软件。该组合支持 16 位和 24 位音频,包括用于存储音频的 4 Mb 串行闪存,并包括一个用于解调来自 MCU 的 PWM 输出的低通滤波器。

音乐播放器

  图 3:对于 dsPIC MCU 系列,Microchip 提供了一组强大的以音频为中心的库,可以通过基于 GUI 的语音和音频快进开发工具进行管理。

  32 位和音乐

  现在让我们转到 32 位空间。如您所料,音乐通过 32 位 MCU 进入画面。通常,MCU 无法将音乐实时编码为 MP3 或 WMA(Windows Media Audio)等格式。但是 32 位 MCU 可以处理完美的音乐解码,以及我们之前讨论的所有音频应用。如果要实现编码,则需要使用专用的编解码器 IC。

  当您进入音乐领域时,您通常会超越片上外围设备的能力来生成所需的音频质量。MCU 和 DAC 的组合可以处理具有 32 到 48 KHz 采样率的 16 到 24 位音频。考虑 32 位空间后,您还将看到以音频为中心的 MCU 产品。例如,Atmel 提供AT32UC3 系列32 位 MCU,有通用版本和音频专用版本。该产品基于 AVR MCU 内核。

  音频 MCU 的一个示例是AT32UC3A0512AU集成 512 KB 闪存和 64 KB RAM 的 MCU。音频 MCU 带有设备执行许可算法(如 MP3、WMA 和 AAC 解码器)所需的标识号。MCU 集成了便携式音乐播放器所需的完整功能集,例如支持闪存卡和强大的 USB 堆栈。

  Microchip 还在其基于 MIPS 内核的32 位 PIC32 MCU 系列上支持音乐应用。32 位 MCU 不支持 DSPIC33 可用的增益控制库或语音和音频快进开发工具。但是,32 位产品支持我们在此讨论的与 Microchip MCU 相关的所有其他编解码器。

  正如您所料,Microchip 为 32 位 MCU 提供了许多开发工具,这些工具将在音频和音乐项目中派上用场。PIC32 音频开发板(图 4)将PIC32MX795F512 MCU与 512 KB 闪存和 128 KB SRAM 集成在一起。该板还包括一个可以处理实时音乐编码和解码的 Wolfson 编解码器。Microchip 还支持通过开源 Helix MP3 解码器库在 PIC32 上解码

音乐播放器

  图 4:Microchip 基于 PIC32 的音频开发板与 iPod PICtail 配对,其中包括一个用于 Apple iPod 的对接连接。

  开发板包括一个与 iPod 上使用的 Apple MFi 接口兼容的连接器。Microchip 还提供名为 iPod PICtail Plus 的配套产品,其中包括一个用于 iPod 的基座。

  如您所见,鉴于 MCU 供应商提供的工具和库的广泛性,向基于 MCU 的系统设计添加音频功能相对简单。您必须对给定类别的 MCU 可以支持的音频质量抱有现实的期望来处理这样的设计。您会发现即使是非常低端的 MCU 也可以处理短音频片段的播放。随着处理能力的提高,您可以添加编码并最终支持音乐。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分