FPGA 已经变得如此成本效益的,它们越来越多地与微控制器配合使用,以提高整个系统的效率。使用包括添加额外的功能在电路板空间最小,增加功率高效处理的复杂算法的前端,聚集多个外部设备卸载高性能 MCU 或以适应现有的设计到新所需的“胶水”逻辑接口要求,FPGA 可提供额外的灵活性往往缺乏标准的 MCU。本文将快速浏览一些最流行的应用,FPGA 和微控制器的“配对”来展示如何提高系统效率,通过降低功耗,减少电路板空间,提高了处理性能,接口灵活性可能能够显着地提高你的下一个设计。

 

FPGA 成为 MCU 配套设备

多久的 MCU 您选择为您的设计只是不太有所有的接口通道,你需要?或者,也许你最初的选择单片机适合刚刚完美,但一个新的需求来了,因为你最好的客户希望他们的最新设计一些额外的接口。你也许能够使用更复杂的 MCU,而这可能会导致增加显著的电路板空间(因为它只有在高引脚数封装),提高了功率(因为它仅适用于更多的闪存和 SRAM 比你真正需要的),或者更高的成本(对于以前的原因)。

 

围绕这个难题的一种方法是通过添加一个 FPGA 旁边的 MCU 规划需要额外的接口。该 FPGA 可以方便地提供额外的接口,只是你需要的,同时限制增加了电路板空间,成本和功耗。事实上,相对于使用更复杂的 MCU 的选择,您通常最终会用更少的电路板空间,更低的成本和更少的功率。

 

例如,莱迪思的 iCE40 超低功耗 FPGA 可提供多达 26 个信号的 IO 在一个非常小的 2.078 毫米由 2.078 毫米电路板面积,而且因为这些设备通过片上 NVM 配置,您不需要额外的电路板空间为配置的设备。这些 FPGA 也有两个专用 I2C 接口,并用大量的可配置逻辑的两个专用 SPI 接口的添加为更多的接口,为您的应用程序将需要(直到用完针)。莱迪思 ICE5LP1K-SWG36ITR50 的框图如图 1 所示。

 

莱迪思 FPGA iCE5LP 的框图

 

图 1:莱迪思 FPGA iCE5LP 框图。 (莱迪思半导体公司提供)

 

该装置还具有高达 80 千位的嵌入式 RAM 块可用于接口的 FIFO 缓冲器和因此 MCU 可以等到整个数据包准备好进行处理。 DSP 模块也可以被用来做低级别的数据处理上的原始传感器数据作为先于数据发送到 MCU 一个预处理步骤。当 FPGA 可以智能地聚合数据中断的 MCU 之前,极大地降低了 MCU 电源是可能的。此外,莱迪思的 iCE5LP FPGA 已经被设计为非常低功率应用仅为 71μA 核心电源的静态电流。添加更多的接口,几乎不需要额外的电路板空间和功耗。看看你最喜欢的微控制器和高引脚数版本之间的当前价格差,然后把它比作莱迪思 FPGA iCE5PL1K 价格上向 Digi-Key 的网站,看看有什么成本节约也可能会提供。

 

快速响应 FPGA 接口的请求

当使用 FPGA 同伴设备能够快速 FPGA 的服务请求响应也可以是重要的。例如,音频接口可能需要具有比传感器数据更高的优先级访问,因为在音频数据的“失速”必须避免或用户体验可显著降低。在一般情况下,能够支持多种中断优先级可帮助提高了 FPGA 的伴侣的实用性,进一步提高系统的整体性能和能效。

 

有效利用 DMA 还可以进一步帮助卸载 MCU 和提高工作效率。例如,也许在 FPGA 可以首先缓冲向上的前处理的原始数据的完整数据分组,以减少需要被存储和发送的消息的大小。该 FPGA 可中断的 MCU,并启动 DMA 传输是将整个邮件到 MCU 内存。一旦 DMA 传输完成并且整个消息准备处理中,CPU 可以中断和消息的高层处理可以开始。

 

爱特梅尔 32 位 AT32UC3A MCU,例如,具有一个 DMA 控制器和一个中断控制器,无论是可编程优先级。中断控制器图,对图 2 的左侧所示,具有在右侧一个优先块,在产生中断级别到 CPU。优先级块选择具有最高优先级的中断,如中断优先级寄存器(IPRn)与每个相关联的所定义的中断级字段中断源。因此,较高优先级的源,例如一个实时音频接口,可以被分配的优先级高于低频传感器,也许在 I2C 端口,用于保证更快的处理。

 

为爱特梅尔 MCU AT32UC3A 中断控制器图片

DMA 控制器的形象,为爱特梅尔 MCU AT32UC3A

 

 

图 2:中断控制器和 DMA 控制器框图为爱特梅尔 MCU AT32UC3A。 (爱特梅尔提供)

 

该 AT32UC3A MCU 的 DMA 控制器,框图,其中显示在图 2 右侧的,连接到许多不同的外围设备,在右侧的 DMA 框图所示。外围 DMA 控制器优先基于与每个外设相关的 DMA 通道数的每个外设 DMA 请求(外设被分配到一个信道由一个配置寄存器,因此它们是完全可编程的)与具有较高优先级较低的信道号。这允许 DMA 传输可以很容易地进行分组,并为最有效的数据传送可能优化。优先级,甚至可以当重新分配算法青睐一种类型的转移在另一个的部分。

 

传感器融合进一步提高系统效率

如前所述,FPGA 的可用于通过采用 DSP 技术来预先处理传感器数据。特别是,FPGA,具有 DSP 块可以实现许多共同的过滤算法中,例如有限脉冲响应(FIR)滤波器,无限脉冲响应(IIR)滤波器和快速傅立叶变换(FFT)。由于这些硬件模块可以操作无论是在串行或并行的方式,你可以构建过滤器基于带宽和功率要求的最佳配置。例如,如果多个传感器输出需要被过滤,在 FPGA 既可以使用单独的过滤器块,每个传感器(如果带宽要求是足够高),或使用一个单一过滤器块和多个传感器之间多路复用它(如果带宽要求是足够低)。

 

除了预处理原始传感器数据时,FPGA 还可以结合的读数从多个传感器,以智能的方式来进一步卸载的 MCU 处理要求。传感器“融合”的算法,结合本地多个传感器读数,之前通知 MCU 的处理是必需的,可以显着提高系统效率。结合心脏速率,温度,以及排汗读数和比对 FPGA 内部设置的警报水平的组合,例如,可以提供微控制器与不仅仅是原始数据更有价值的信息。

 

该 MCU 通常需要做一些数据的处理自己,但是。它不能放弃一切到 FPGA 中。幸运的是,即使是廉价的微控制器现在 DSP 的处理能力,并且可以有效地紧缩大量数据。久负盛名的 Microchip 的 PIC MCU 系列,例如,具有 DSP 的家庭成员,如 DSPIC 33EP(如 DSPIC33EP32MC202),在高达 70 MIPS 的操作与某些指令执行多达 8 个操作一次。过滤器的指令可以受益于 40 位累加器增加定点精度。在 DSPIC33EP 专用硬件 DSP 引擎的框图如图 3 所示。

 

框图在 Microchip 的 dsPIC33 系列 MCU

 

图 3:DSP 引擎框图在 Microchip 的 dsPIC33 系列 MCU。 (Microchip 的提供)

 

DSP 引擎包括一个 17×17 乘法器 / 定标器零回填并签署扩展到创建一个 40 位的结果。除法运算使用的是 19 次迭代一个重复循环通过一个单独的硬件除法模块实现的,且是可中断降低最坏情况下的中断延迟。桶式移位器有助于正确地调整数据为 40 位加法器和双 40 位累加器。这种丰富的 DSP 的处理硬件除了常规的 ALU,提供 16 位的加,减,和位操作。有了这个广泛的集数据处理硬件,甚至复杂的操作都可以非常有效地支持。

 

SoC FPGA 的硬件加速和基于微控制器的处理

FPGA 和微控制器做出这样的好同伴的 FPGA 供应商甚至把 MCU 的同伴在其设备上。当这些系统级芯片(SoC)的 FPGA 用作同伴高端 MCU 的,更复杂的功能可以被移动到 FPGA。一个常见的例子是用于 FPGA 来处置许多系统界面,不仅与标准外设还与外部存储器。由于的 SoC FPGA 有显著的片上存储器,微控制器来管理数据缓冲和处理通信框架和外部存储控制器,你有你需要实现一个完整的通信信道控制器,桥梁,或聚合碎片。这可以离开主 MCU 管理更高水平的功能,例如人机界面(HMI),过程控制,以及服务质量的优化。

 

一些的 SoC FPGA 具有更多的功能,可从主机 MCU 卸载更是低层次处理。例如,Microsemi 的 SmartFusion2 SoC 的 FPGA 系列(M2S050-FGG896 的框图如图 4 所示),不仅拥有完整的 ARM Cortex 子系统,但其片上闪存 NVM 和 SRAM 块显著为 MCU 的一部分子系统。这些存储器可以与处理器一起使用,作为代码和数据存储,与芯片外的 DDR 控制器作为大缓冲存储器,并与 PCIe 和以太网控制器作为先进先出存储。智能 DMA 控制器可以管理许多数据传输的不中断的处理器。

 

Microsemi 的 SmartFusion2 SoC 的 FPGA 的框图

 

图 4:Microsemi 的 SmartFusion2 SoC 的 FPGA 程序框图。 (Microsemi 公司提供)

 

SmartFusion2 的 SoC FPGA 还具有片上硬件的安全性,可用于保护远程代码更新来自黑客和其他安全威胁。大型片上闪存可用于存储受保护的引导代码,这使得它可以支持安全启动的操作,即使没有本地安全功能的主机处理器。大量的可编程结构可以从主机控制器提供定制硬件加速,进一步卸载处理。例如,在一个底盘控制系统,可编程织物可以用于 DSP 的预处理传感器数据,传感器融合组合的电压,电流,和温度读数,马达控制的机箱风扇控制系统的温度,控制台接口,本地诊断监测和控制,或通过 PCIe 桥接至其他控制平面功能。随着 SoC 的 FPGA 的同伴实际上可能承担更多的处理比主机,切换一个 MCU 之间的传统角色作为主角,并仅在次要辅助作用的 FPGA。

 

结论

有许多应用,其中的 MCU 和一个 FPGA,配对在一起,可以显着地经由较低功耗,减少电路板空间,提高了处理,或增加的灵活性提高系统效率。了解如何通过分配这两个设备之间的函数来实现其中的一些改进,可能是在你的下一个设计成功的关键。