Arduinoarm树莓派单片机四者区别和关系

Posted 天府云创

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduinoarm树莓派单片机四者区别和关系相关的知识,希望对你有一定的参考价值。

很多初学者搞不清Arnduino、arm、树莓派、单片机这几个的区别。

其实拿这4者来比较本身就是一件错误的事。

这四者就像:大众、12缸发动机、保时捷、小汽车的区别

 

从一开始方向就走错了,以为学习嵌入式上述所有东西都要学。

好不容易熬了几个月,感觉还是一无所成,做不出什么项目,经常会感觉懂了又好像什么都不懂。

这就是定位不够精准导致的,把精力都分散出去了,最后没一个能拿的出手的。

这四者都是属于嵌入式技术范畴,嵌入式涉及的技术知识体系非常庞大

但是随着AIoT物联网技术普及,这四者开发板(也叫智能硬件)牢牢地结合在一起。还有后面的各种传感器技术,构建出Iot的数据来源和执行命令的终端机器。AIoT【云边端协同】

理论上一个人不可能全部都吃得下,除非你从大学开始把谈恋爱、打游戏、刷视频的时间都奉献出来。(研究广度+深度的结合,才能出项目出成果,停留在学术理论阶段无法作出实际的应用)

对于大多数普通人来说,专注于嵌入式某个细分方向深耕足够了。

下面分别对这4者来分析下:

1. Arduino

单片机有很多不同的品牌和型号,Arduino是单片机的一种。

一般来说是以AVR单片机为首的集成电路板就叫Arduino(当然后面还有用STM32或者其他单片机开发的非官方版,这里就不一一阐述了)。提一点STM32的成本性价比最高

 

Arduino用专业的术语说就是开源的硬件开发学习平台,包含了多种型号的Arduino电路板和专用编程开发工具(Arduino IDE)。【Arduino、micro:bit、掌控板等各种开源硬件,兼容Scratch3.0,支持AI与IoT功能,只需要拖动图形化程序块即可完成编程-->Mind++ 支持python/c++,大部分少儿编程采用的该方案】

Arduino是一款由开源软件环境提供支撑的开源硬件原型平台。最早是意大利的一个团队的一个开源项目,早期单片机开发都需要从寄存器层面操作,这个团队把这些寄存器封装成一个个函数的形式,提供非电子工程师也能看得懂的函数接口给大家操作。现在的Arduino其中包括硬件(各种型号Arduino板)和软件(Arduino IDE)的组成。集成开发环境是Arduino IDE ,编写和编译sketch后通过USB接口线上载到Arduino运行。模拟和数字管脚可以连接到各类设备和部件上,与之交互。基本包含一个USB连接、电源连接器、复位开关LED电源指示灯和串口通信指示灯、shield扩展板。Arduino的核心其实是一个AVR单片机,但是对Arduino的编程却是专门的语言,不同与一般单片机直接用C语言开发。应该是一个被封装过的可以二次编程开发的开源平台。

Arduino SKD有很多现成的库函数,用于对硬件层的控制。

开发者通过调用库函数就能轻易地使用AVR这个芯片的功能,然后通过不同程序去实现不同的硬件控制,比如说控制灯、继电器、电机、蜂鸣器之类的。

 

而不需要像单片机开发那样要看芯片数据手册去配置寄存器使用芯片功能。

虽然用Arduino开发电子产品效率像开挂一样,不过实际产品却很少用。

因为实际的产品在成本、尺寸、性能、功耗等方面都有特定的要求。

Arduino一般是用于给你学习和提升c语言用的,通过这个平台你可以快速了解c语言是如何控制硬件的。

还有就是一些创客需要快速去实现某些奇特的想法。

所以,如果是走Linux软件方向的,从Arduino入手比较合适,如果你想从事单片机开发偏硬件方向,我建议直接从51单片机入手。

 

2. 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定位是通用市场,典型的就是平板电脑、手机、数字电视、机顶盒、服务器、打印机等领域。

3.树莓派

树莓派和Arduino有点像,不是某个芯片,而是一个集成的电路板。

树莓派性能比Arduino要强悍很多,树莓派用的是ARM内核处理器,接上鼠标和键盘就可以当迷你电脑一样用。

不过电脑一般是window系统,而树莓派大多是Linux。

很多想学习Linux,想从事嵌入式纯软件方向的就是基于树莓派这个平台来学习的。

树莓派可以称之为微型电脑主板,是基于ARM设计的(Arduino可以说是基于单片机设计的,早期的树莓派也算是基于单片机设计的)。于2012年正式发售的最小的台式机,可以说是卡片电脑。发展至今,既然称之为微型电脑,也有了电脑的样子,各式各样的配置一应俱全。CPU采用ARM11系列,也有采用Cortex-A系列,也算是性能强悍。它是为了计算机编程教育才被设计的。树莓派相当于一个成品开发板,它的主控芯片是ARM架构(但是是Cortex-A系列,不是前面提到的Cortex-M),和Arduino一样也是开源的,但是它不属于单片机的范畴。单片机没办法跑Linux,而树莓派可以。这样说来,树莓派就是一个基于ARM和Linux系统的微型电脑。

 

4.单片机

这个我是最熟悉的,毕竟自己干练习了10年。

单片机就是一个芯片,品牌和型号都很多,比如GD、ST、TI、STC、新唐、NXP等等太多了。

单片机需要做电路和程序的二次开发才能实现一个完整的电子产品功能。

这个方向的职位有几个:单片机工程师、STM32工程师、嵌入式工程师。

学习的知识体系也更多,总体来说基础部分有3个:基础电路、C语言、单片机(51,STM32)。

更加详细的学习路径和步骤可以通过关注无际单片机编程了解。

Arduino就是相当于用AVR的单片机帮你做好底层硬件和基础单片机寄存器配置程序,你直接使用就能实现。

从难度来说单片机开发更难,Arduino更简单。

从产品的角度,单片机也比Arduino应用更加广泛。

单纯学Arduino基本没什么就业方向,Arduino打c语言基础,需要继续往树莓派学习,主要往Linux应用开发。时代在变化,现在越来越多继续A芯片的开发板子越来越多,例如高端的NVIDIA Jetson 这种在识别率和请求相应速度上要高出很多(就是一点:价格很贵),当然随着鸿蒙OS的崛起,华为海思的开发板也越来越应用普遍(场景+生态+能力赋能将会是Iot江湖的新商业模式)

 

 【简单地总结】

Arduino,简单的单片机,有很多封装好的库可以使用。适合没有编程基础的初学者。

单片机,可以叫微控制器(MCU),可以作为控制中心,常用的比如51和STM32。一般专业人员由此入门。

ARM开发板,性能和资源要比单片机强大很多。使用的芯片也很强大。适合有专业需求的人。

树莓派,基于ARM的微型计算机。一个重要的特点就是树莓派可以运行操作系统。功能能加丰富。


--->树莓派、arduino板都是一种单片机系统,Arduino是基于单片机设计的,但是Arduino又是一个开源平台,有了自己专门的开发工具和语言,看起来是脱离了单片机,但是其核心又是一个单片机。树莓派是基于ARM设计的,算是微型电脑主板,为了教育而设计的,也可以理解为一款平台,学习计算机编程的平台,但是树莓派要比Arduino高级一些,树莓派可以跑Linux,windows等主流操作系统,而Arduino不行。最中间的就是这个系统最主要的芯片,BCM2836,这个片子把CPU、GPU、内存I/O控制器等一大堆东西封装在一起,这就是一个单片机。

 资料整理: https://www.zhihu.com/question/21045562

以上是关于Arduinoarm树莓派单片机四者区别和关系的主要内容,如果未能解决你的问题,请参考以下文章

Arduinoarm树莓派单片机四者区别和关系

Arduinoarm树莓派单片机四者区别和关系

Arduinoarm树莓派单片机四者有什么不同?

Arduinoarm树莓派单片机四者有什么不同?

Arduinoarm树莓派单片机四者有什么不同?

原创Arduinoarm树莓派与单片机