Arduino、arm、樹莓派、單片機四者有什麼不同?


====簡單地說:

1.Arduino是一種開發工具軟體,不是一種晶元。它可以支持很多種處理器晶元的開發,內部有很多庫,開發軟體方便。

2.ARM是英國的一個公司,主要設計ARM系列的處理器。ARM系列處理器是32位處理器,是晶元,不是軟體,是很流行的晶元。三星,蘋果等很多公司都買ARM公司的授權。

3.樹莓派是一種電路板子。它使用ARM處理器晶元,和linux操作系統或windows操作系統,是一個很小體積的桌面電腦。

4.單片機是指處理器內核加了一些外圍介面電路,做到一個晶元中,也叫微控制器MCU。8051晶元,avr晶元,arm晶元...都叫單片機,而英特爾的80x86系列是中央處理器,不能叫單片機。

====複雜地說:

1.Arduino是平台

Arduino只是一個用java和gnu實現的、開源的開發平台,其結構源於Processing。它可以支持多種MCU,包括atmel公司的AtmelTiny系列、avr8、ARM Cortex M0、ARM Cortex M3、ST公司的ARM Cortex M3,TI公司的energia平台也採用了Arduino的平台結構,可以用於開發MSP430、C2000等。從原理上,Arduino平台不受MCU限制,但是當前只是支持有限的MCU。

當前已經支持有名的ESP8266,ESP32等ARM內核板開發。

2.硬體抽象層HAL

Arduino有一個硬體抽象層,實現了硬體無關層和硬體相關層的分離。

3.編程語言

Arduino採用C和C++混合編程,採用成熟的開源gnu來編譯。

4.類庫和例子

Arduino有大量的類庫支持,同時從簡到繁有大量的應用例子,可以很快地基於類庫和例子實現用戶的應用。但是如果想了解底層的實現,也可以看到底層實現的源碼。

5.應用

Arduino主要用於前端的以控制為主的環境,如機器人控制前端,四軸飛行器前端控制,3D印表機前端控制等。對簡單的控制系統,只用Arduino開發就可以了,

6.對比

(1)Arduino是平台,不是某種MCU;

(2)ARM只是ARM系列的MCU;

(3)樹莓派是基於ARM和linux或windows操作系統的卡片式電腦,可以用於計算量大的環境,可以作為一個通用計算機來用,也可以用於複雜控制系統的後端數據處理和GUI,像一個很小的PC機。

(4)單片機也是指某種MCU,只是叫法不同。

廣告:

本人做的基於Proteus模擬的Arduino開發學習例子。

嵌入式系統工匠坊 --- ESCW https://weidian.com/s/259792644?wfr=cifr=shopdetail


今天我也回答一個稍微長一點的答案

首先說一下這個問題問的很有意思,包含的信息量很大

樓下的 「凱美瑞,V型發動機,帕薩特,小轎車四者有什麼不同?」回答也很有意思,我竟然無力反駁,獲得的認同數還比較多,我也是醉了。

從問題中可以看出樓主可能興趣比較廣泛,遇到問題還沒有找到更好的解決辦法,但是最幸運的是你找到了知乎。

我是從小白一步步走過來的,現在對你的問題有一點小小的了解,在此獻醜了,希望對你能有些幫助。

閑事不扯現在開始解決問題:

1.先說說Arduino

Arduino是一款便捷靈活、方便上手的開源電子原型平台,包含硬體(各種型號的Arduino板)和軟體(Arduino IDE)。它適用於愛好者、藝術家、設計師和對於「互動」有興趣的朋友們。(來源百度百科)

地址:Arduino_百度百科

說了和沒說是的是吧?

通俗的講:arduino就是主要以以AVR單片機為核心控制器的單片機應用開發板(當然也有其他核心的例如STM32版本的但是不是官方的,還有intel的伽利略),或者是學習板啥的,但是Arduino開發人員開發了簡單的函數,還有許多應用庫,這樣就不用直接去操作寄存器了,使得沒有很好的單片機基礎的人員也可以使用Arduino做出自己想要的東西。Arduino的開發人員還開發了一個簡潔的IDE(集成開發環境)也就是寫代碼,編譯,調試,下載的上位機軟體。

還有這些都是開源的可以在他們的官網下載

更多了解請訪問官網:http://www.arduino.cc

2.再說ARM

ARM處理器是Acorn計算機有限公司面向低預算市場設計的第一款RISC微處理器

百度百科:arm_百度百科

通俗的講:arm是一款處理器也可以說是單片機,是功能比較強大的單片機。

arm也是公司的名字

但是值得注意的是ARM公司通過出售晶元技術授權

也就是說ARM公司不做晶元的生產,只有買了這些技術授權的半導體公司才做晶元

我的個人理解是ARM提供處理器的核心技術方案,各個半導體公司加上自己的外設等等東西做成自己的晶元,所有採用arm提供技術授權的晶元都叫ARM

這裡就不談Soc了

Arm的種類自己去百度吧太多了。

3.說說樹莓派

樹莓派由註冊於英國的慈善組織「Raspberry Pi 基金會」開發,Eben·Upton/埃·厄普頓為項目帶頭人。2012年3月,英國劍橋大學埃本·阿普頓(Eben Epton)正式發售世界上最小的台式機,又稱卡片式電腦,外形只有信用卡大小,卻具有電腦的所有基本功能,這就是Raspberry Pi電腦板,中文譯名"樹莓派"。這一基金會以提升學校計算機科學及相關學科的教育,讓計算機變得有趣為宗旨。基金會期望這 一款電腦無論是在發展中國家還是在發達國家,會有更多的其它應用不斷被開發出來,並應用到更多領域。在2006年樹莓派早期概念是基於Atmel的 ATmega644單片機,首批上市的10000「台」樹莓派的「板子」,由中國台灣和大陸廠家製造。

來源於 百度百科

地址:樹莓派_百度百科

樹莓派就是將你電腦機箱里的大部分東西都集成到了一塊電路板上的 微型電腦,接上顯示器滑鼠鍵盤等等 東西 和你的電腦沒啥實質的區別,操作系統不一樣這個是基於linux的系統。

4.說說單片機

單片機(Microcontrollers)是一種集成電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調製電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。從上世紀80年代,由當時的4位、8位單片機,發展到現在的300M的高速單片機。

來源於 百度百科

地址:單片機_百度百科

單片機在國外叫MCU 微型控制器

就是將CPU RAM ROM 等等集成到一塊晶元上構成 單片微型計算機

總結:Arduino 簡單的完善的資源豐富開源的單片機應用開發板

ARM高性能單片機(簡單理解)

樹莓派微型卡片計算機

單片機:單晶元計算機

小弟才疏學淺,如有錯誤還請各路大神,指點。


凱美瑞,V型發動機,帕薩特,小轎車四者有什麼不同?


arduino是開發環境,可以開發avr.stm32.esp8266等平台。

51是個平台可以用keil等開發環境開發。

arm是個構架。

樹莓派是個小型linux電腦。

所以,說arduino性能不行是單說arduino uno這個板子吧。

當然arduino的代碼如果不是有一定積澱,會很臃腫。


既然用車做類比。。

ARDUINO 就好比一個汽車品牌 有高端車也有低端車。買來就能開,你能讓車跑起來不代表你了解發動機是怎麼工作的。

ARM 類似於一類汽油發動機,有性能好的有性能差的,但是總之他們都是燒汽油的。(arduino的有些「車」也用這種發動機)

樹莓派 和arduino類似 它家的車用的是ARM的高端發動機

單片機 好比動力輸出裝置。。有燒汽油的汽油機(ARM的很多晶元也可以劃在單片機里),也有很多用蒸汽的蒸汽機(比如最常見的mega.8051等等),還有很多還不如蒸汽機的(比如8031..)


先說單片機,所謂的單片機是把CPU、RAM、ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調製電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的微型計算機系統。

而樹莓派、arduino都是一種單片機系統。

以樹莓派為例:

最中間的就是這個系統最主要的晶元,BCM2836,這個片子把CPU、GPU、內存I/O控制器等一大堆東西封裝在一起,這就是一個單片機。如果沒記錯的話SMSC是一個網卡晶元,剩下板子上的元器件都是電容、電阻、電感之類的,還有就是各種介面。你可以想想PC機,各個組件遍布主板的各個位置,而把大多數東西封裝在一起,這就是單片機了。還有就是ARM,ARM是ARM公司(Advanced RISC Machines)推出的一類核心架構,主要包括:

這個你可以簡單的理解為CPU。一般常用的核心架構包括IA-32 IA-64(INTEL),ARM,MIPS,POWER(PS3用的就是POWER哦)等。


arduino==c#

arm==c

樹莓派==java

單片機==彙編

大概就是這個意思,

arduino的本質就是一塊avr的開發板,然後有人給他寫了很多庫函數,avr晶元自己的,或者是一些外圍部件的,這樣開發者就不用了解硬體具體的操作方式就可以玩轉那些硬體了,他的核心思想是:寫硬體無關代碼

arm系列的晶元就是一個高性能的單片機,他的處理能力遠高於普通的單片機,其中會有很多寄存器的調用,學習階段比較常見的2440 6410 或是 stm32,都是的arm系列的

樹莓派不是一塊晶元,是一個開發板,它的面相人群不是嵌入式工程師,是軟體工程師,那你就應該明白它是幹嘛的了。

單片機的話,分很多種,但是常見的8051這類型,我的理解就是性能不咋地的arm處理器,寄存器少很多,操作方式簡單很多,

ps:我們老師給我們提倡的是用M0的晶元完全代替51單片機,


相比較用汽車做類比 可能用手機會更貼切

arduino 相當於 安卓 是一個平台

arm 相當於高通 就是處理器類別 也會有其他牌子 例如avr,相當於 聯發科

樹莓派 相當於 iPhone 裡面有可能會用 三星的屏幕 高通的 基帶 自帶系統 是一個成品

單片機 相當於 手機 是一個品類 與 印表機 筆記本 對位。

如有錯誤 請不吝指正


強行做了一個分類,很多地方可能不是很準確,有錯誤的地方還望指正。

看了看大家的答案,其實這四個東西的區別很聯繫很難說清,有些概念的也沒有一個統一說法,究其原因是很多地方的界限都模糊了,不好下一個明確定義。

ps:喜歡那個美凱龍的答案(??ω??)?


@張順 的回答已經很全面了,僅補充一點:


Arduino的處理器最早是AVR的,現在已經有了ARM處理器的版本,比如Arduino Due http://arduino.cc/en/Main/arduinoBoardDue 的處理器Atmel SAM3X8E是ARM Cortex-M3的架構.


ARM指的是一種處理器架構,很多單片機都是ARM架構的,比如STM32系列。單片機一般需要用C來編程,從最底層(寄存器)來控制單片機運行,而Arduino將底層一些東西封裝好了留下介面給你調用,使得你可以直接操作一些外設如鍵盤液晶之類的東西不用去關注底層。樹莓派就是更高級更強悍的Arduino,跑了一個操作系統,還可以用Python編程。


簡單點說,單片機就是一塊晶元,但日常所說的大部分是指單片機開發板,就是在一塊PCB上集成了單片機晶元和其它外圍元件來組成最小系統,當然也可以按照需求進行定製。

Arduino就是單片機開發板的升級版,可以做更多的事情,例如做智能家居的控制單元,並且還有對應的IDE,開發起程序來比較強大。

樹莓派可以理解為Arduino的強化版,它偏向軟體程序,對硬體的控制沒有上面兩個強大,適合通過程序來控制。

ARM不了解,應該是一類晶元的平台吧。

靠近硬體的程度,單片機&>Arduino&>樹莓派

靠近軟體的程度,樹莓派&>Arduino&>單片機

純屬個人理解!


這種提問方式就是求嘲諷的。然而並不想嘲諷提問者,主要是經歷過這種有興趣但只有興趣的痛苦經歷。

提問者問了;

Arduino、arm、樹莓派、單片機四者有什麼不同?

不同的就不說了,因為它們之間本來沒有什麼相同之處。

但是它們是有一些聯繫的,譬如可以用嵌入式開發、物聯網這樣更高層概念將它們聯繫起來。

Arduino 可以方便的操作IO,你可以用它快速搭建一些好玩的東西,這麼火的東西隨便搜一下就大概知道用途了。

arm是處理器架構 ,具有低功耗特性,被絕大多數單片機採用。

樹莓派是一個卡片電腦,與Arduino的區別是擁有完整的操作系統,2代就可以流暢播放1080p高清視頻。

單片機你可以理解成是「把電腦集成進一塊晶元」 。

如果你不僅僅是想了解一下概念,建議看一下課程,我看過朱有鵬的嵌入式系列課程,個人覺得挺適合沒有什麼基礎的同學,會把你這些疑惑掃清。


第一個吧,屬於入門的時候學個預科,然後本領到了,選專業,學校就叫arm,專業呢,包括單片機,嵌入式系統兩個,前一個本科畢業就行,能找工作了,後一個要本碩博連讀,碩士還有方向,一個叫linux,一個叫wince,到博士了,再選,是安卓呢還是qt還是kde還是win32,部分拔尖的吧,還能申請到一所學校叫做apple,那裡面有一個學位叫做IOS driver and app,後面的我就編不下去了....


其實好像去年就計劃做研發(開發應用)

想做家居智能

大學有個同學讀研究生是做家居智能的,反正智商還不錯,就是口太臭,也瞧不起人

搞技術的也很難區分瞧不起人和自信這條線,我也不怪他,我本人也和他差不了多少

但是今年也一直拖到現在沒做

這2個星期又重新看

我就來說2句吧

我從來就沒研究過什麼硬體版本,也不喜歡看書,什麼型號之間的區別看了眼花,腦缺氧,一看就頭暈,

大學的書就是太爛,太舊,讓人看了沒點興趣,所以當年也沒有學懂

我也寫不出那些型號什麼的

這裡只是以我的小白經驗,說說自己的理解

(圖過幾天補上吧)

單片機

是我大學學的,那時候的老師有在美的做,就是你用的電飯煲,煲水機,電磁爐裡面都有單片機,我現在的理解就是,做開關,模式切換,定時等功能用的

--價格甚至可以到3塊錢一個,記得當年就沒有超過10塊的

樹莓派

一塊板生產力足的板,甚至相當於一台配置低的手機,擴展方便(淘寶見有大批量的二手拆機樹莓派,目測是大量工業化應用,估計做機器人,機器怪手也可以,也就是蘇寧那些物流機器人也可以的,目測國外大量使用,比較高大上)

--最新是3代B版,盜版,水貨最便宜也要200RMB,正版320~400

arm

記得有一個叫周立功的,當年最出名的一句話「現在免費給你大學生用,日後你畢業了去公司干還不是要用我的產品」,但今天來看,是錯的,還錯的很離譜,技術不但不斷革新,無論軟硬體,唯有壟斷和技術壁壘才能讓所有人用你的產品,例如高通,還是馬雲說的對「未來是年輕人的」,意思是錢還是我馬雲的,目前不知道ARM和單片機的差別在哪裡

--價格不詳

Arduino

由於Android系統的多元化,才導致了Arduino的抬頭,有人會跳出來說了,Android和Arduino根本2回事,你傻吧你,就當我傻吧,你聽我慢慢說

Android系統用的是Java語言做應用,是屬於JVM,JAVA體系,

而Anduino的唯一優勢就是他也是用jvm開發的,

你今天用了Arduino,學好了,就算你明天畢業不做硬體,還可以找一份android app 的軟體開發工作做,

如果你本來是JAVA程序員,那麼好了,你很容易就能進入硬體這一塊,

當然也有人看錯Arduino成Android,Arduino的書就這麼才能賣的,

這些是 Arduino的唯一優勢了,

Arduino應該甚至都不可以刷一個Android安卓系統,估計樹莓派可以,打算還是用樹莓派開發了

-價格不便宜160左右


arduino 是單片機的一類,跑不了系統,八位的單片機。

樹莓派使用 ARM 架構的A7 晶元,跑的是32位的系統。不過樹莓3已經是64位了,誰送我一塊樹莓派3……

arduino 和樹莓派沒什麼可比性。

以後這樣的問題樓主還是先去谷歌再來問吧……問的給人你思路好凌亂的感覺。


講個容易理解的說法吧,arduino相當於黑白屏手機主板,樹莓派類似智能手機主板。

ARM是英國一家做CPU架構的公司,提到ARM一般理解為採用ARM架構的CPU,類似電腦的X86或者X64的cpu,需要安裝在主板上,還要有內存,硬碟等才能運行,樹莓派就是一個採用ARM架構CPU的電腦主板,接上屏幕,燒寫進去操作系統就能運行。

而單片機就是一個晶元,內部包含了一個CPU,還有內存,ROM,各種IO電路。由於內部CPU性能弱,所以只能跑跑簡單的代碼或者一些簡單的有任務調度功能的操作系統。

有些單片機內部的CPU也是ARM架構的,當然還有51架構等,單片機就是把一個電腦主板核心部分塞在一個晶元里。只是性能很弱功能很簡單而已。


Arduino 是晶元,是初學者玩的,學不了多少東西,因為你不知道底層,arm是一個架構,不是晶元,大部分晶元的架構用的都是arm,樹莓派不了解,不過也不會接觸底層,是用腳本語言編寫的,單片機是晶元,類型有很多,32位的單片機用的都是arm的架構


推薦閱讀:

對Arduino設為輸出(OUTPUT)的引腳進行寫操作(digitalWrite)的作用是什麼?
為什麼一般情況下從事軟體工作比硬體待遇高?
有沒有大學自學嵌入式系統成功的?
軟體轉行去做醫療器械軟體,怎麼樣?
嵌入式開發,從開發板到產品的過程是什麼樣的?

TAG:ARM | 嵌入式系統 | 單片機 | Arduino | 樹莓派RaspberryPi |