一些常见的处理器如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系列内核的芯片叫处理器,其他都不是。
因此你说的其中只有树莓派是处理器。
那么剩下的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妥妥的,或者使用你最熟悉的芯片就好了。
单片机最擅长的就是控制,并非处理速度,只要能实现目标控制就好。因此芯片只不过是我们手上工具而已。
一些常见的处理器如arm,arduino,stm32,51,树莓派的联系和区别,还有各自的长短板?相关推荐
- arduino与51单片机的十大区别,哪个好学?
在DF创客社区上很多初次学习arduino和单片机的同学都会问同一个问题,那就是arduino与51单片机有什么区别?arduino和51单片机哪个性能更强? 针对这个问题我们先来了解下arduino ...
- Arduino/stm32 智能小车设计(二)
Arduino/stm32 智能小车设计(二) 本节进行Arduino智能小车的代码讲解. 一.I/O口定义与初始化函数 如下图RGB指示灯用到10.11.12三个I/O口,分别对应蓝色.红色.绿色. ...
- Arduino/stm32 智能小车设计(一)
Arduino/stm32 智能小车设计(一) 智能小车原理图设计 智能小车原理图组件包括: 模块设计 一.控制模块 二.供电模块 三.充电管理模块 四.电机驱动模块 五.红外寻迹及红外避障模块 六. ...
- M1支持Windows arm_不讲武德?改变规则?苹果M1处理器 amp; ARM Mac简评
<英保国语录>: 刚才有个朋友问我,英老师发生什么事了,我说怎么回事,给我发了几张截图. 我一看,嗷,原来是昨天,有两个年轻人,三十多岁,一个叫Apple,一个叫ARM. 他们说,哎~有一 ...
- GC9A01-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)
GC9A01-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于GC9A01 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...
- ST7735-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)
ST7735-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于ST7735 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...
- STM32——ARM与STM32之间的联系
ARM与STM32之间的联系 stm32是基于ARM内核的一种控制器,是包含与被包含的关系. ARM(STM32)
- stm32和树莓派哪个好?哪个入手难度更高?
今天来聊一下stm32和树莓派,stm32我用了几年,树莓派我对它的理解仅限于理论层面. 自己并没有用树莓派做过产品,但是这个理论足以让大家对这两个平台有初步的了解. 很多人新手会去比较,stm32和 ...
- STM32下载程序至SRAM——基于正点原子精英STM32F103ZET6开发板
STM32下载程序至SRAM--基于正点原子精英STM32F103ZET6开发板 如题,由于STM32的FLASH烧写寿命在1万次左右,对于本人这样的改一行代码都想下载到开发板中测试的强迫症患者,真是 ...
最新文章
- 利用循环,使得10 * 10的二维数组具有以下值,并按以下结构输出在屏幕上
- Golang开发环境搭建-Vim篇
- Spring Data ElasticSearch示例--使用NativeSearchQuery查询
- mysql自动增长id 溢出_MySQL表自增id溢出的故障复盘怎么解决 MySQL表自增id溢出的故障复盘解决方法...
- jgGrid获得的id值是主键的id而不是jqGrid的行号值
- 最全高考分数线出炉!!查了分后,这届学生为了过线真是太拼了.......
- Linu系统编程---10(Linux的终端,线路规程,网络终端,进程组)
- CRM、用户管理权限
- IoT开发精英实战营招募啦!速来报名!
- String 是值类型还是引用类型
- keil删除工程_RTT 是如何管理和构建工程的?
- java URI 编码解码
- sqluldr2 用法简述
- mysql基础01 创建表 修改表
- java 泛型去重_泛型,list集合去重
- 共谋发展:软件孵化器与软件开发云
- 麦克斯韦方程组(彩图完美解释版)
- 微信小程序获取access_token报错errcode: 40125,errmsg: invalid appsecret
- 计算机系统与维护专科毕业论文,计算机系统维护毕业设计论文
- Gmail企业邮箱在用OUTLOK或FOXMAIL有时出现密码错误的解决办法