FPGA,arduino,STM32,树莓派四者的简介

FPGA,arduino,STM32,树莓派四者的简介

FPGA

首先说一下FPGA,FPGA叫做可编程门阵列。它的逻辑门,时序等都由开发者自己编程,是一个通过硬件描述语言在FPGA芯片上自定义集成电路的过程

优势:简单的说,它就相当于一张白纸,把需要做的东西全部自己做出来,自由度最高。理论上FPGA可以配置成任何需要的处理器。一般用于通信类的行业。
难点: 开发难度高,门槛也比较高。对数电模电的要求比MCU更高。花费的时间也是最长的。

arduino

Arduino是一个平台,Arduino所使用的芯片也是单片机,但是性能上与stm32还是有很大的差距。Arduino的编译环境-Arduino IDE。

优势:在于操作比较简单,不用操心寄存器的配置,有非常多的开源硬件库,即使没有专业功底,通过简单学习也能快速上手,网上有大量的Arduino+模块的配置资源,适合广大的DIY爱好者极客。
劣势: 做产品或者研究很不友好,成本高,内部硬件的可操作性比较差,简单高度抽象化带来就是效率低下以及资源开销大,模块数量上去后系统就撑不住了(芯片性能有限)。适用于未成年编程入门教育启蒙以及爱好者DIY,在市场应用中很少有arduino身影。

树莓派

与嵌入式微控制器(STM32)相比,除了可以完成相同的IO引脚控制之外,因为运行有相应的操作系统,可以完成更复杂的任务管理与调度,能够支持更上层应用的开发,为了开发者提供了更广阔的应用空间。比如开发语言的选择不仅仅只限于C语言,连接底层硬件与上层应用,可以实现物联网的云控制和云管理。对于视觉处理,复杂数据处理有着很大的优势。

优势:开发速度非常快,有非常多的开源硬件库,只需要把模块和树莓派连接,再把网上相应的驱动软件下载下来就可以完成,性能突出,非常强大。STM32能做的树莓派应该都可以做。适用于采集,处理,识别,深度学习等
劣势:可能只是完成一个很小的IO控制功能却要运行一个庞大的操作系统作为支撑,牺牲了自己的性能优势,显得有些得不偿失。并且如果没有底层硬件和驱动的支持,我们的自由度就只限于SDK(软件开发工具包)的范畴了

STM32

基于ARM Cortex-M3内核,现又开发了M7内核,运算速度,响应能力比较迅速。

优势: 开发工具,比较齐全,开发资料也比较丰富。基本上都不需要外部的硬件扩展。带有唤醒功能的低功耗模式,在功耗方面控制得比较好,另外,实时性比较强。工业上广泛使用,如汽车智能工业,微控制器、传感器、致动器、电机控制等。对于了解硬件底层有很大帮助。
劣势:没有操作系统,太过复杂的计算没有办法应对,对于视觉处理的能力不如树莓派。

对于我即将想做的视觉机器人(题外话)

视觉机器人是一个软硬件紧密结合的工程,硬件方面单片机对于传感器的接口、对于电机的驱动、硬件三方库的资源、甚至编程速度都是会强过树莓派的。
所以:最优解就是树莓派做上层交互算法(处理视频流、音频流),单片机驱动全部硬件,二者通过总线连接交互(uart、i2c、spi、usb等)。机器人预计需要一个寒假的时间。

你可能感兴趣的:(简介)