一张图展示它们之间的关系,如下所示:
什么是arm?
其实ARM是一种微处理器架构,但它和“手臂”(Arm)毫无关系,哪怕在拼写上一样。虽然两者都十分强壮,但ARM更像一个小而精干的智能脑袋,可以帮助各种设备实现高效、可靠的计算和控制。
ARM,全称为Advanced RISC Machines,是一家专门从事芯片设计的英国公司。ARM以其低功耗、高性能和可移植性等特性,被广泛应用于各种嵌入式系统、消费电子、手机、平板电脑、汽车电子等领域。
ARM架构的处理器采用精简指令集计算机(RISC)的体系结构,与传统x86架构的处理器相比,它更注重处理器架构的简单性、有效性和高效性,避免了不必要的复杂性和浪费的硬件资源,因此具有卓越的计算能力和出色的功耗表现。
目前,ARM已经成为世界上最重要的CPU(Central Processing Unit,中央处理器)的架构之一,被广泛应用于各种终端产品、智能设备和嵌入式系统。同时,ARM还以开放性和生态性而闻名,即使是非ARM授权厂商也可以轻松获取并使用ARM开源技术和工具,进一步促进了ARM技术的普及和广泛应用。
那么,为什么要使用ARM呢?因为它既轻量级又高性能,非常适合于嵌入式系统、移动设备和物联网应用。和其他微处理器架构相比,ARM还具有低功耗、大容量缓存和良好的软件支持等优点,使得它成为最流行的微处理器架构之一。
说起来,你可能听到过ARM Cortex-A、Cortex-M和Cortex-R等不同类型的产品系列。它们就像不同品牌的汽车,每个系列都有自己独特的配置和优点,适用于不同的场景和需求。
嵌入式开发当中除了ARM架构以外还有一些其它架构,比如,Atmel公司推出的AVR家族,前面提到的Arduino其它就是基于AVR家族的单片机,至什么是单片机我们后面再讲。
ARM【更多扩展阅读详见博主的四大主流芯片架构(X86、ARM、RISC-V和MIPS)】
ARM指的是一种处理器架构。单片机一个大类,包括很多架构,ARM是其中一种架构(这里特指ARM7和现在的Cortex-M系列)。除了ARM,还有8051,AVR,PIC等架构。
前面我们把Arduino比作是大众,树莓派是保时捷,那arm就是一个V12发动机。
Arm本身就是一家英国公司名简称(Advanced RISC Machines),arm也是一种芯片内核技术。
我们单片机一般都是有内核的,比如说51内核,以前因特尔设计的,主要针对一些控制和运算比较简单的电子产品。
还有ARM内核的,主要针对运算和控制比较复杂的电子产品。
Arduino的AVR单片机正好介于这两者之间,比51内核强大,比ARM内核菜。
单纯的内核不能直接应用在产品,需要进行二次开发,所以,ARM公司一般会把这种内核技术卖给半导体公司做二次设计。
一般ARM公司有3种授权级别:
① .架构层授权
这个级别是指可以对ARM内核架构进行大量改造,包括汇编指令集的扩展和缩减,像苹果就是在ARMV7-A架构基础上,扩展出swift架构。
除了苹果以外,还有海思麒麟、联发科、三星、高通等cpu大多都是ARM架构。(架构一样,但使用的平台不一样例如联发科是MTK平台,高通是骁龙系列平台等)
② .内核层授权
这个级别是可以在这个内核基础上可以加自己需要的外设,比如说GPIO、USART、ADC、DMA等等,最后做成自己的单片机。
像STM32就是这样干的,类似的芯片还有巨多,大多数出SOC单片机的都是属于这层。
③ .使用层授权
这个层级权限最低,相当于你只能使用它,不能对它进行修改。
ARM内核也分很多个版本,ARM7、ARM9、ARM11,到了ARM11以后就是以Cortex命名了。
Cortex架构也分三个系列性能从低到高:M、R、A。
Cortex-M定位是中低端市场,也就是我们的单片机,也叫微控制器,我们最常用的STM32F103就是Cortex-M3的内核。
Cortex-R定位高端实时系统,比如说医疗、工业、汽车、基带等等领域。
Cortex-A定位是通用市场,典型的就是平板电脑、手机、数字电视、机顶盒、服务器、打印机等领域。
树莓派
如果Arduino像一辆小轿车,那么树莓派就像一架大型客机。虽然都是基于低功耗处理器架构设计的单板计算机,但树莓派拥有更加丰富的接口和性能,为你的创意提供更多样化的选择和更广阔的可能性。
虽然它看起来并不像什么高科技,但在这个压缩成盒子大小的小家伙身上,你会惊奇地发现有着和大型计算机一样强大的功能。树莓派基于Linux操作系统,具有多种程序语言支持,能够实现各种各样的智能应用,例如机器人、智能家居、电子音乐等等,让你体验到前所未有的DIY乐趣。
尤其值得一提的是,树莓派有着无限的可能性,可以通过各种扩展板、传感器和外围设备来进行创意拓展。你甚至可以将它变成一台迷你的游戏机,畅玩复古游戏,或者利用它来制作智能万能遥控器,让你的生活更加方便。
总之,只要你愿意,树莓派可以成为你的创意王国,帮助你实现各种理想和奇思妙想!
前面提到的Arduino是基于AVR架构的,那树莓派呢?是不是也是单片机呢?
树莓派是基于Cortex-A的片上系统,也就是SoC。这里的Cortex-A是基于ARM架构的一类处理器。
什么是Arduino?
Arduino是一个基于开源硬件和软件的嵌入式平台,由意大利的开发者团队负责开发和维护。Arduino平台通过简单易用的硬件和软件工具,使得电子爱好者和一般用户都能够简单快速地实现物联网、自动化控制、机器人等各种应用项目。
Arduino平台的核心板卡是由微控制器(MCU)和相关模块组成的,除了基本的输入输出连接外,还有多个通信接口,包括串口、SPI和TWI等,可以与其他设备进行通信和数据传输。此外,Arduino平台还具备丰富的插件模块和开源库文件,可以实现更复杂的功能需求。
在Arduino平台上,用户可以使用C/C++语言进行编程,具体采用Arduino集成开发环境(IDE)来进行开发和测试程序。另外,Arduino平台还支持许多类似Scratch的图形编程界面,使得Arduino编程成为了比较简单易学的过程。
总之,Arduino就是一款让人爱不释手的单板计算机,这个单板计算机具有丰富的功能,可以帮助您控制电路、感知传感器数据或模拟信号,以及与各种设备进行智能交互。如果你喜欢玩DIY或者热衷于物联网领域,那么Arduino会是你最好的选择之一。不管是启蒙科技、创建新趣味还是设计创意项目,Arduino都可以满足你的需求,并带给你无限的乐趣!
只要你有足够的创意,Arduino都会帮你实现,比如用手机来开关你的台灯、特定的敲门声可以自动打开房门锁、无人机和机械手臂等等。
Nano家族的开发板
单片机
在介绍单片机之前我们先了解一下嵌入式处理器有哪些类型:
如图所示,嵌入式处理器分为MCU、DSP、MPU、SoC、SoPC这几种。我们所说的单片机其实就是指嵌入式微控制器MCU(Micro Control Unit)。前面提到的树莓派是基于ARM的Cortex-A的SoC,所以它不是单片机。
Arduino、arm、树莓派、单片机它们四个的关系如图所示。可以看到单片机除了Arduino以外,还有意法半导体的STM32,恩智浦的LPC等等。
下面是单片机(MCU)和系统级芯片(SoC)的对比表格:
单片机就是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了一些I/O设备。概括的说,单片机就像是一架小型飞机,拥有着各种强大的功能,可以帮助你创造出许多非常有趣的项目。
想象一下,如果单片机是一双鞋子,那么它就是“万能鞋”。它不仅具有启动、运行程序等基本功能,还可以实现各种控制和数据采集,包括温度、湿度、气压、声音、图像、运动等各种传感器数据。与此同时,单片机支持众多编程语言,如汇编语言、C语言、C++语言等,方便用户根据需求对其进行开发。
当然,使用单片机也需要一定的基础知识和编程技巧,就像穿鞋子需要学习如何系鞋带一样。但只要你肯花点时间学习,就能够驾驭这位技术大神,制作出各种酷炫的自动化系统和智能设备。
区别
总上所述,Arduino其实就是一款简单易上手的单片机。而ARM是一种嵌入式应用非常广泛的一种计算机体系架构。树莓派就是基于ARM体系架构下的一种SoC开发板。单片机就是一种嵌入式处理器,也就是嵌入式微控制器MCU(Micro Control Unit)。