“随着物联网应用程序的采用势头越来越大,嵌入式开发社区面临的压力也越来越大,以便兼顾每种设计的可用计算资源,延迟,成本和大小。由于其实时性,对云连接的关注也被视为一些发展的挑战,导致混合“雾”计算方法。提供本地网关以为雾方法提供内部云方面可能需要相当高的计算需求和算法处理。
”随着物联网应用程序的采用势头越来越大,嵌入式开发社区面临的压力也越来越大,以便兼顾每种设计的可用计算资源,延迟,成本和大小。由于其实时性,对云连接的关注也被视为一些发展的挑战,导致混合“雾”计算方法。提供本地网关以为雾方法提供内部云方面可能需要相当高的计算需求和算法处理。许多负责开发网关设备的设计人员面临的挑战是了解其计算要求的多样性。某些应用程序,尤其是工业物联网部署中的应用程序,可能涉及相当复杂的电机控制或视觉处理任务。对于这些要求,不仅要求高水平的计算能力,还要求实时确定性行为。虽然高端CPU通常是设备,但还有许多其他设备正在引起开发人员的注意。其中之一是现场可编程门阵列(FPGA),由于其硬确定性能力,它正在快速获得动力。
那些不熟悉FPGA的人在复杂性,成本和功耗方面面临着许多神话这些设备的饥饿性。许多开发人员认为FPGA可能只适用于高度化,高成本的军事系统,但目前的情况已远离这种情况。在当今的云连接世界中,FPGA的应用是在数据中心应用中,除了加速搜索功能之外,还使用神经网络深度学习技术进行图像识别搜索。
毫无疑问在考虑使用FPGA时,精通构建基于微控制器或微处理器的系统的嵌入式开发人员将会被他们前面的学习曲线所震撼。对大多数人来说,显着的差异将从基于软件的思维过程转变为硬件“门”方法。被认为是设计定制IC的接近的东西,它将完全符合您的要求,FPGA本质上是通用门和单元的空白画布,使用硬件描述语言(HDL)编程或连接在一起的结构(图1)。研究数字逻辑的电子工程师将非常快速地感受到FPGA背后的基本概念,而其他人可能会发现有关该主题的在线进修课程非常有用。值得一提的是,使用FPGA的一个很好的介绍是Simon Monk编写的FPGA编程。
图1:FPGA器件的功能框图。
随着FPGA的使用在广泛的范围内获得动力应用程序,有关它们的信息的可用性。这主要是由的FPGA供应商推动的,这些供应商在提供的开源软件工具方面投入了大量资金,以帮助定义和加速设计流程。在FPGA架构中集成MCU以创建FPGA片上系统(SoC)器件进一步有助于管理FPGA并将其集成到终应用中。极大地简化了学习和开发过程,有助于FPGA在更广泛的应用中的使用,以及开放社区论坛的发展。在制造商社区内采用FPGA也有助于提高他们的能力,并为许多人群资助的FPGA评估板项目做出了贡献,如Mojo和Papilio。 FPGA制造商还通过创建开发工具包和评估板,努力使设计更容易获得,这些开发工具包和评估板在更广泛的开源社区得到了很好的支持。所有这些举措共同创造了丰富的技术信息和支持资源,有助于鼓励设计人员考虑他们的个FPGA设计。
这种评估板的一个例子是Microsemi的SmartFusion2入门套件,如图2所示。图2:SmartFusion2入门套件。
包含Microsemi SmartFusion2的系具有相关存储器和时钟的FPGA SoC器件,以及承载原型区域,电源转换器和电源管理IC的SmartFusion2基板,入门套件提供了一个完整的平台,您可以从中开始次设计。
FPGA SoC器件采用32位ARM®Cortex®-M3微控制器内核,作为微控制器子系统(MSS)在FPGA架构中实现。它支持64 MB DDR内存和16 MB闪存,可运行142 MHz。图3显示了SmartFusion2 SOM的功能框图。
图3:SmartFusion2系统级模块的功能框图。
SOM还包括一个JTAG接口,看门狗定时器,以太网接口和主机GPIO和串行(I 2 C,CAN,SPI和UART)接口。基板的连接和用户I/O功能的全部范围如图4所示.FPGA结构的大小取决于型号,范围从6060到56520逻辑单元。 SoC代码运行一个uClinux内核,通过提供对所有Linux工具的访问,包括SSH,FTP和Telnet等网络实用程序,进一步帮助开发过程。
图4:SmartFusion2基板功能框图。
在编程FPGA SoC时,Microsemi的设计流程工具Libero可从Microsemi网站。该套件还包括完整的FPGA SoC和设置为Libero项目的电路板。 Libero将FPGA设计的设计流程与嵌入式应用程序开发集成在一起,如图5所示。
图5:Libero集成了传统的通过微控制器固件开发实现FPGA设计流程。
Libero快速入门指南是使用Libero和整体设计流程的良好介绍。 Libero的一个关键部分是System Builder向导(图6),它通过询问一系列有助于塑造基本系统要求,配置选项的问题来帮助开发人员进行架构设计过程,并在必要时为架构添加额外的外围设备。。
图6:Libero System Builder向导 - MSS中时钟功能的示例设置。
符合传统开发实践,现代解读使用闪烁的LED设计项目实施“Hello World”个程序。在本教程中完整记录,该文档指导工程师完成设计流程,以实现此基本设计功能。图7是本教程的屏幕截图,重点介绍了输出信号到指定GPIO引脚的分配,该引脚在基板上连接了一个LED。
图7:闪烁LED示例中GPIO引脚的分配。
结论
FPGA在原始计算能力,设计灵活性和每瓦性能方面为开发人员提供了很多帮助。以前被视为复杂程序,耗电量大且价格昂贵的设备,近年来随着越来越多的商业应用程序正在利用其广泛的功能,它们已经成熟了很多。人们认识到,在工程师创建复杂的神经网络设计之前,存在合理的学习曲线。但是,由于本文所述的开发工具的可用性,采取步已变得非常容易。
分享到:
猜你喜欢