Arduino,C51,STM32,ARM和FPGA有什么联系和区别?

首先,51是最老的芯片(指8051),专利已经过期,其他厂商兼容的芯片范围很广。你列举的这些中,速度慢,内存小(不包括部分厂商在《幻变》中做的机型)。常见的厂商stc,atmel的正统89c51系列以及后来的魔变机型。国内ST89,10,11,12,st89最新15。还有c8051系列,还有带高速usb接口的芯片,很多无线收发芯片的核心都是8051。但是指令集是兼容的,只是寄存器的复杂度不同。\x0d\\x0d\ arduino是一个平台,他的早期崛起和最广泛的核心是基于avr单片机。我们都开玩笑说arduino团队买了avr芯片。既然你没问avr,那我就只说arduino了。他很容易理解。做毕业、原型制作、快速开发的时候,硬件很容易搭建,基本不需要你画板,只需要连线就可以了。代码也很容易理解。基本上不涉及寄存器级别。总的来说,发展很快。小定制还是性价比高的。即使真的做产品或者做研究,成本也很高,简单性和高度抽象带来的是低效率和高资源支出。模块数量上去后,系统就不持久了。\x0d\虽然有基于stm32、fpga、lpc、pic等芯片的arduino,但是开源库和ide的发展没有跟上,没有办法继承avr的arduino遗产。虽然avr32位MCU的arduino官方,arm m0和内嵌openwrt系统的arduino yun也有生产。但是价格和便利性简直(更别说新芯片大部分都是低压io,外部模块很少兼容。\x0d\在说stm32之前,先说说arm。正如上面的人所说,arm有好几个版本。就说最近的分部吧,一个是用mmu内存管理,一般需要外接ram,flash才能工作。那就是你听到的手机处理器arm的多少,还有路由器的处理器,服务器的处理器。该功能是运行系统。还有一种是没有mmu的嵌入式系统,有ram和flash像8051。现在分为m0 m3 m4 m7等嵌入式版本,以及m0+升级版等特殊版本。简而言之就是高于8051不知道去哪了的芯片。然后stm32是st意法半导体公司生产的系列芯片,从arm公司买了核心(嵌入式)版权,加上自己的外设。功能强大,速度快,外设多。但是寄存器的复杂程度不能和8051相比。所以也开发了官方库,现在开发了专门的代码生成软件cube来简化操作。\ x0d \ x0d \ FPGA强大多了。上面说的这几种都是单片机,运算都是一步一步来,逻辑串联。Fpga是并行的,单片机一次只能做一个操作。只要fpga有足够的资源(芯片很贵),就可以同时做上百次运算。所以一般用在对速度要求高的地方,比如视频压缩,高速网络设备。8051,arduino,stm32,10元都可以,没有几百块fpga就没有资源可用,连前三个都没有。Fpga不是C开发的,你可以把它想象成数学算法然后去电路执行(视频压缩就是其中之一)。更多的数学,算法类。\x0d\\x0d\ Summary 1,8051系列是光荣的结束。架构被延迟了,除了旧代码和旧系统升级,用在特定领域的芯片上。但他之所以还占据很大份额,是因为他是大学的教科书。\x0d\总结2、arduino是一个玩具,可以玩,美术生更多的是用来互动的。很多不懂嵌入式硬件的程序员用它来做东西玩。如果你真的懂,要么直接用底层avr,要么用stm32什么的。总结3stm32杠杠的值得学习。在同性质的单片机中性价比最高。还有很多学习资料。\x0d\ Summary 4太泛了,上一个总结的东西都包括了。\x0d\摘要5。好好学饭碗,报酬丰厚。但是你要有博士或者硕士学位才能做一件事,如果你不在的话,你是享受不到这个的。同时材料少,入门成本高。