FPGA已经变得如此具有成本效益,因此它们越来越多地与MCU结合使用,以提高整体系统效率。用途包括在的电路板空间中添加额外的功能,为复杂算法的前端添加节能处理,聚合多个外部设备以卸载高性能MCU或作为使现有设计适应新的所需的“粘合”逻辑在接口要求方面,FPGA提供了标准MCU中常常缺乏的额外灵活性。本文将快速回顾一些的应用,其中FPGA和MCU“配对”,以展示如何通过降低功耗,减小电路板空间,提高处理性能或接口灵活性来提高系统效率,从而显着改善您的下一个设计。
FPGA作为MCU配套器件
您为设计选择的MCU多久没有完全具备您需要的所有接口通道?或许您对MCU的初始选择非常合适,但是出现了新的要求,因为您的客户需要为其设计添加一些额外的接口。您可能可以使用更复杂的MCU,但这可能会增加显着的电路板空间(因为它仅在高引脚数封装中可用),功率增加(因为它只能提供比您真正需要的更多闪存和SRAM) )或者更高的成本(出于上述两个原因)。
解决这个难题的一种方法是通过在MCU旁边添加FPGA来规划对额外接口的需求。 FPGA可以轻松提供额外的接口,只需提供您需要的接口,同时限制电路板空间,成本和功耗的增加。实际上,与使用更复杂的MCU的选项相比,通常终会减少电路板空间,降低成本并降低功耗。
例如,莱迪思iCE40超低功耗FPGA可在极小的2.078 mm×2.078 mm电路板占板面积内提供多达26个信号IO,并且由于这些器件是通过片上NVM配置的,您不需要额外的电路板空间用于配置设备。这些FPGA还有两个专用的I 2 C接口和两个专用SPI接口,具有大量可配置逻辑,可以根据应用需要添加更多接口(直到用完引脚)。莱迪思ICE5LP1K-SWG36ITR50的框图。
该器件还具有高达80 kbits的嵌入式Block RAM,可用于接口FIFO和缓冲器,因此MCU可以等待整个数据包准备好进行处理。在将数据发送到MCU之前,DSP模块还可用于对原始传感器数据进行低级数据处理,作为预处理步骤。当FPGA可以在中断MCU之前智能地聚合数据时,可以大幅降低MCU功耗。此外,莱迪思的iCE5LP FPGA专为超低功耗应用而设计,电源静态电流仅为71μA。添加更多接口只需要额外的电路板空间或功率。查看您喜欢的MCU与更高引脚数之间的当前价格差异,然后将其与Digi-Key网站上的莱迪思iCE5PL1K FPGA价格进行比较,看看可能还有哪些成本节省。
快速响应FPGA接口请求
使用FPGA配套器件时,快速响应FPGA的服务请求非常重要。例如,音频接口可能需要具有比传感器数据更高的优先级访问权,因为必须避免音频数据中的“停顿”或者用户体验可能显着降低。通常,能够支持各种中断优先级有助于提高FPGA伙伴的实用性,并进一步提高整体系统性能和功效。
有效使用DMA还有助于进一步卸载MCU并提高效率。例如,FPGA可能首先缓冲预处理原始数据的完整数据包,以减小需要存储和传输的消息的大小。 FPGA可以中断MCU并启动DMA传输,将整个消息移动到MCU存储器中。一旦DMA传输完成并且整个消息准备好进行处理,就可以中断CPU并开始对消息进行处理。
Atmel 32位AT32UC3A MCU,例如,有一个DMA控制器和一个中断控制器,两者都是可编程优先级。中断控制器图(如图2左侧所示)在右侧有一个优先级块,它为CPU产生中断级。优先级块选择具有优先级的中断,由与每个中断源相关的中断优先级寄存器(IPRn)中的中断级别字段定义。因此,可以在I 2 C端口上为较高优先级的源(例如实时音频接口)分配比低频传感器更高的优先级,以保证更快的处理。
图2:Atmel AT32UC3A MCU的中断控制器和DMA控制器框图。 (由Atmel提供)
AT32UC3A MCU的DMA控制器,其框图如图2右侧所示,连接到许多不同的外设,如DMA框图右侧所示。外设DMA控制器根据与每个外设相关的DMA通道号(外设由配置寄存器分配给通道,因此它们是完全可编程的)优先考虑每个外设DMA请求,其中较低的通道号具有较高的优先级。这样可以轻松地对DMA传输进行分组和优化,以实现效的数据传输。如果算法的某些部分支持一种类型的传输而不是另一种传输,则优先级甚至可以重新分配。
传感器融合进一步提高了系统效率
如前所述,FPGA可用于通过使用DSP技术预处理传感器数据。特别是,具有DSP模块的FPGA可以实现许多常见的滤波算法,例如有限脉冲响应(FIR)滤波器,无限脉冲响应(IIR)滤波器和快速傅里叶变换(FFT)。由于这些硬件模块可以串行或并行方式运行,因此您可以根据带宽和功率要求构建滤波器以实现配置。例如,如果需要过滤多个传感器输出,FPGA可以为每个传感器使用单独的滤波器块(如果带宽要求足够高),或者使用单个滤波器块并在多个传感器之间复用(如果带宽要求是足够低)。
除了对原始传感器数据进行预处理外,FPGA还可以智能方式组合来自多个传感器的读数,以进一步降低MCU的处理要求。在通知MCU需要处理之前,本地组合多个传感器读数的传感器“融合”算法可以显着提高系统效率。例如,结合心率,温度和排汗读数以及将组合与FPGA内的设定警报水平进行比较,可以为MCU提供比原始数据更有价值的信息。
MCU通常需要但是,要自己做一些数据处理。它不能将所有内容都留给FPGA。幸运的是,即便是廉价的MCU现在也具有DSP处理功能,可以有效地处理大量数据。例如,着名的Microchip PIC MCU系列具有面向DSP的系列成员,如DSPIC 33EP(例如DSPIC33EP32MC202),其工作速率高达70 MIPS,一些指令可同时执行多达8个操作。面向过滤器的指令可以受益于40位累加器,以提高定点。 DSPIC33EP中专用硬件DSP引擎的框图如图3所示。
图3:Microchip DSPIC33 MCU中的DSP引擎框图。 (由Microchip提供)
DSP引擎包括一个17 x 17乘法器/缩放器,具有零回填和符号扩展,可创建40位结果。除法运算通过使用19次迭代的重复循环的单独硬件除法块实现,并且可中断以减少坏情况的中断延迟。桶形移位器有助于为40位加法器和双40位累加器正确对齐数据。这种丰富的面向DSP的处理硬件是常规ALU的补充,它提供16位加,减和位操作。凭借这一系列广泛的数据处理硬件,甚至可以非常有效地支持复杂的操作。
用于硬件加速和基于MCU处理的SoC FPGA
FPGA与MCU是FPGA的良好伴侣供应商甚至将MCU伴侣放在他们的设备上。当这些片上系统(SoC)FPGA用作高端MCU的配套产品时,更复杂的功能可以转移到FPGA上。一个常见的例子是FPGA处理大部分系统接口,不仅使用标准外设,还使用外部存储器。由于SoC FPGA具有重要的片上存储器,用于管理数据缓冲和处理通信帧的MCU以及外部存储器控制器,因此您可以获得实现完整通信通道控制器,桥接器或聚合器所需的所有功能。这可以让主MCU管理更别的功能,例如人机界面(HMI),过程控制和服务质量优化。
一些SoC FPGA具有额外的功能,可以卸载更低的功能来自主机MCU的电平处理。例如,Microsemi SmartFusion2 SoC FPGA系列(M2S050-FGG896的框图如图4所示),不仅具有完整的ARM Cortex子系统,而且还具有重要的片上Flash NVM和SRAM模块作为MCU的一部分子系统。这些存储器可与处理器结合使用,作为代码和数据存储,片外DDR控制器作为大型缓冲存储器,PCIe和以太网控制器作为FIFO存储器。智能DMA控制器可以在不中断处理器的情况下管理大部分数据传输。
图4:Microsemi SmartFusion2 SoC FPGA框图。 (由Microsemi提供)
SmartFusion2 SoC FPGA还具有片上安全硬件,可用于保护远程代码更新免受黑客攻击和其他安全威胁。大型片上闪存可用于存储受保护的引导代码,这使得支持安全引导操作成为可能,即使对于没有本机安全功能的主机处理器也是如此。大量的可编程结构可以提供定制的硬件加速,以进一步从主机控制器卸载处理。例如,在底盘控制系统中,可编程结构可用于传感器数据的DSP预处理,传感器融合组合电压,电流和温度读数,机箱风扇控制系统温度的电机控制,控制台接口,本地诊断监控和控制,或通过PCIe桥接到其他控制平面功能。使用SoC,FPGA伙伴实际上可以承担比主机更多的处理,在作为主要参与者的MCU和仅作为辅助支持角色的FPGA之间切换传统角色。
结论
有许多应用,其中MCU和FPGA配对,可以通过更低的功耗,更小的电路板空间,改进的处理或更高的灵活性来显着提高系统效率。了解如何通过在这两个设备之间分配功能来实现某些改进可能是您下设计成功的关键。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。