stm32|一些常见的处理器如arm,arduino,stm32,51,树莓派的联系和区别,还有各自的长短板()


先理清楚一些概念,然后我们再说下区别。
什么是处理器?
常常说的处理器,指的是CPU,擅长做计算,一般主频用Ghz来计算,因为频率很高,适合跑系统,比如Linux。市面上常用的处理器有Intel AMD厂商的x86架构处理器,有IBM的power架构处理器,高通苹果海思有ARM架构处理器。说PC端的处理器大家比较熟悉,移动端现在几乎ARM架构处理器一统天下。
那么什么是ARM处理器呢?

这就要介绍一下ARM公司的产品线,ARM属于英国一家公司,专门设计内核,目前的内核有M0,M3,M4,M7,H7,A系列。
这里说的处理器说的就是A系列内核的芯片。比如树莓派使用了博通的处理器,一共两个大核心A72,4个小核心A53。
除了A系列内核的芯片叫处理器,其他都不是。
【stm32|一些常见的处理器如arm,arduino,stm32,51,树莓派的联系和区别,还有各自的长短板()】因此你说的其中只有树莓派是处理器。

那么剩下的M内核是什么?
M指的是MCU,Microcontroller Computer Unit (微控制器单元),又叫单片微型计算机(简称单片机)
单片机是把非常微小的CPU,内存,定时器,和各种外部接口集成在一个芯片上,形成了芯片级别的微型计算机。
因此从M0到M7内核对应着不同的CPU频率,从48M到好几百M不等,经典的STM32F103是M3内核,72Mhz主频。
Arduino一般认为是使用avr系列8位单片机的开发板和atmel公司的arm开发板,当然现在也有其他开发板,比如esp8266,esp32,stm32系列,飞思卡尔的k系列,这里我们说Arduino就单只8位单片机。
Arduino最受欢迎的有两个芯片,Atmega2560和Atmega328p,都是8位单片机,16Mhz主频。属于avr系列单片机,是比较旧的,不是现在主流的arm m内核。
51单片机由于国内和Arduino一样,都是8位单片机,但是属于英特尔抛弃的51内核,由于该芯片价格极低,功能简单易用,现在在简单低端的应用上非常受欢迎。现在STM32出了STM8的8位单片机抢51单片机的市场。

大概有了了解,那么说下他们的区别。
Arduino是为创客而生的,你懂太多硬件知识就能够使用单片机控制你周围的所以设备,因此性能,代码大小什么的,从来不是首先考虑的事情,我们在做项目的时候,需要的就是快速原型实现,和快速项目迭代,多人项目合作。这就是Arduino的优点,因此现在网络上非常多人贡献了代码库,你使用Arduino的时候只需要调用库就可以了。
51单片机,这是高校电子专业必修和课程,麻雀虽小五脏俱全,非常适合用来教学,由于寄存器很少,用汇编写代码也不是很难,用c编代码就更容易了。这样一年年下来,国内51的资源非常丰富,又有stc这样的厂商提供芯片,大学生还是很喜欢用的。
STM32,得益于ARM这样的内核设计公司授权IP内核,这样STM32公司不需要设计自己的内核,只需要为内核搭配不同的外部接口即可生产出自己的芯片。因为单片机的使用场景非常复杂,不同场景要求的芯片价格也极其敏感。这样导致了单片机是一个非常定制化的东西。所以市场上会出现某个系列的单片机非常受欢迎就是这个原因,因为这样的芯片匹配到了多数场景。ARM公司的IP授权模式使得这些芯片厂商能够从内核设计工作解脱出来,专门做好芯片的定制化就行。
最开始是意法半导体基于ARM公司的M3内核设计了一款中高端定位的32位芯片,STM32F103,然后非常受欢迎,哪怕现在还是新手入门必选。那时候在往高端的就是ARM公司的ARM7,ARM9内核处理器了,需要跑裁剪后的Linux系统,哪怕现在华为和全志一些芯片还在使用ARM9内核,主频不到1Ghz。STM32火了之后其他厂商也开始使用ARM的M3内核,接着后面ARM开发了M0和M4M7内核,针对更低端和更高端的设备应用场景。STM32就使用这些内核开发了不同系列芯片,比如stmf0,stm32f4,stm32f7等。飞思卡尔开发了k6和k2系列,分别对应m4和m0内核。
所以最后,如果是开发产品,那么一般选择STM32的芯片,性价比非常高,当然不同项目或者设备不同,需要考虑的不一样。
比如为了降低成本,国产的32位单片机也未尝不可。
比如项目不一样,不一定只考虑STM32,还有microchip,atmel,飞思卡尔,ti等品牌呢,而且有时候不同厂家的芯片就代表了某一个产品的开发方案。而且有些项目还要考虑是否是汽车级或者工业级。
有时候Arduino未必不能做开发,比如现在的3d打印机项目就是基于arduino的,也没看出差在哪里。
如果你只需要点亮一个普通led灯,不一定非得用32位的单片机,用51妥妥的,或者使用你最熟悉的芯片就好了。
单片机最擅长的就是控制,并非处理速度,只要能实现目标控制就好。因此芯片只不过是我们手上工具而已。

    推荐阅读