【你所不知道的Arduino】Arduino到底是什麼? MCU又是什麼?

文章推薦指數: 80 %
投票人數:10人

基於看過很多學校同學、老師甚至是從業工程師對於Arduino及MCU都有著不少誤解,所以分享此篇 ... 【若需要嵌入式系統技術輔導課程可來信洽談合作方式: ... 總網頁瀏覽量 2019年1月21日星期一 【你所不知道的Arduino】Arduino到底是什麼?MCU又是什麼? 歡迎透過合法的方式分享此文內容,若要轉載/轉貼,請明確貼出此原始連結並標示作者基本資訊,請勿抄襲及非法轉貼(例如擷取內文但並未註明出處) 基於看過很多學校同學、老師甚至是從業工程師對於Arduino及MCU都有著不少誤解,所以分享此篇文章 Q: Arduino到底是什麼?  Arduino是現今在學生或maker界之間很流行的一種搭載微控制器(單晶片微電腦)的電路板(專業一點來說其實是一種開發板,也就是開發階段所用的平台,所以許多腳位都拉出來,也因為這樣就有相對應的PCB面積)的系列的名稱(包含其軟體,函數庫與工具),因其應用軟體介面之完整度與其搭配的硬體之整合度極高,可讓開發者在不必深入了解底層硬體驅動步驟原理的情況下,而直接透過比較直觀的方式操控微電腦,所以相當盛行。

即便是非電機電子資工背景的人,在大多數的狀況下,只要受過基礎教學訓練,亦可利用Arduino做出一些簡單的微電腦應用 Arduino是很方便的工具,但背後的原理仍然很重要,需要注意,很多人會忽略這點,以為東西會動就代表自己會MCU韌體開發了,但其實可能完全不瞭解較深入的背後原理,其實若多理解背後原理,再來使用Arduino,那麼在使用上將會如虎添翼 此外,Arduino的軟硬體都是開源(OpenSource),其實很值得鑽研應用層底下的這些library和硬體電路設計,可以學到很多東西,只可惜很多人都只拿它來做簡單的應用,沒有看到更深入、更有價值的學習及探討層面,也因為Arduino有著簡單易用的外表,所以很多學校老師都誤以為Arduino只能讓學生做雛形,其實不然,事實上Arduino上面的ATMEGA328MCU從很早期(至少十幾年前)就已經被使用在許多產品的開發上,只是當時這款MCU還沒有Arduino這層外衣 板子上面是以MCU(微控制器)為主要核心元件,下面會針對MCU做說明 承上,因為微控制器(MCU)本來主要就是要被用在硬體控制領域(例如控進馬達、驅動電路等等),所以它的規格(位元數、時脈等)本來就不用太強,但也常因此而被許多不了解的人所誤會(以為MCU很慢所以就很LOW很簡單,其實這完全是錯誤的認知) Q: MCU到底是什麼? 微控制器(MicrocontrollerUnit,MCU),等同一顆小電腦(麻雀雖小五臟俱全),內含CPU、記憶體以及基本周邊單元(當然也有很多不僅有基本周邊的較高級MCU) 大多負責做少量資料運算處理的應用(如對外部硬體電路驅動) 又稱為單晶片微電腦(Single-ChipMicrocomputer) 許多人會將微控制器混淆成微處理機/微處理器。

嚴格來說,這說法是錯的,為什麼呢?因為微處理機(或微處理器)指的是CPU封裝而成的chip(如8086),可以參考Wikipedia的內容: A microprocessor isa computerprocessor thatincorporatesthefunctionsofacentralprocessingunitonasingle integratedcircuit (IC)。

而微控制器則是除了CPU之外,還有包含周邊、記憶體單元等,都封裝在一顆chip上,所以才叫做單晶片微電腦,因為常被用在硬體控制領域(而不是處理例如網路多媒體這種進行大量資料運算處理的領域。

讀者可自行對照樹莓派那類的硬體狀況去思考一下),所以也稱為微控制器。

此外也要注意一下:MCU與SoC這類的平台有時也被稱之為「嵌入式微處理器」,英文是EmbeddedMicroprocessor,例如Atmel/Microchip公司的SAM9G20或者ST公司的STM32MP1(ST的MPU系列是屬於這裡所說的EmbeddedMicroprocessor),但這些並不是傳統的「微處理器」或「微處理機」。

因為時代的演進促進平台的多元化,容易使人混淆,導致這些名詞之間不論是在許多書籍或網路資料中都常被混淆解釋,當然這些名詞的定義也有過少數爭議)。

很多款Arduino板子上面的MCU款式名稱為ATMEGA328(如Uno、Fio、Nano、Mini...等等),當然後來Arduino系列也有出上面搭載別款MCU的板子(如ArduinoDUE是搭載AtmelSAM3X8E的MCU) 我們以ATMEGA328MCU內部架構圖為例(如下圖),我們可以看到這顆MCU內部有CPU、記憶體單元和周邊單元,而連間這之間的排線即為匯流排單元(灰色粗箭頭的部分) 延伸文章: MPU/MCU/EmbeddedMicroprocessor/EmbeddedProcessor名詞定義探討與整理 【若需要嵌入式系統技術輔導課程可來信洽談合作方式:[email protected],亦可先點擊參考這篇介紹文章】 張貼者: 阿良 於 1/21/201912:47:00上午 以電子郵件傳送這篇文章BlogThis!分享至Twitter分享至Facebook分享到Pinterest 標籤: 嵌入式系統, arduino 沒有留言: 張貼留言 較新的文章 較舊的文章 首頁 訂閱: 張貼留言(Atom) 技術課程招生資訊 【阿良的嵌入式系統技術學習區】嵌入式系統軟韌體技術課程招生 師資介紹 關於阿良老師 輔導成功案例經驗分享 嵌入式系統軟韌體技術課程 全部課程簡介 嵌入式系統基礎原理與實務課程 STM32系列MCU韌體程式設計基礎實務課程 嵌入式Linux(EmbeddedLinux)基礎實務課程 歡迎FB按讚 我的文章 ►  2021 (84) ►  十二月 (9) ►  十一月 (10) ►  十月 (19) ►  九月 (2) ►  八月 (8) ►  七月 (9) ►  五月 (4) ►  四月 (6) ►  三月 (6) ►  二月 (9) ►  一月 (2) ►  2020 (27) ►  十二月 (7) ►  十一月 (4) ►  十月 (3) ►  九月 (2) ►  八月 (4) ►  六月 (1) ►  五月 (1) ►  三月 (2) ►  二月 (3) ▼  2019 (19) ►  十一月 (2) ►  三月 (3) ►  二月 (3) ▼  一月 (11) 方便好用的TCP/UDP傳輸測試軟體:SocketTest HC藍牙模組基本設定 安裝PL2303USBtoSerial轉換線之驅動程式 USB_to_Serial轉換器或轉換線或轉換板 ArduinoIDE安裝及基本設定步驟 【你所不知道的Arduino】Arduino到底是什麼?MCU又是什麼? 應用慣性感測之電子筆記系統 用於頸部姿態辨識的慣性感測訊號處理方法 適合學習EmbeddedLinux及RTOS的開發板 簡易無線藍牙遙控插座實作教學(2020/09/11更新) 【C語言觀念複習筆記】指標陣列(Arrayofpointer)相關觀念之範例解析說明 技術文章 物聯網 (20) 穿戴式裝置 (8) 計時器 (1) 計數器 (1) 單晶片 (28) 嵌入式系統 (57) 程式設計 (8) 韌體 (37) 微控制器 (28) 資工系 (3) 電子元件 (3) 電子系 (4) 電子電路 (6) 電機系 (5) 實務技術 (8) 樹梅派 (4) 藍牙 (4) ADC (2) applicationprograms (2) arduino (27) C# (1) C語言 (11) EmbeddedLinux (17) firmware (8) FreeRTOS (3) GUI (1) IC (4) IoT (6) MCU (38) python (5) RaspberryPi (17) STM32 (19) STM32Cube (5) STM32CubeMX (6) 教育與社會議題文章 大學教育 技職教育體系 社會議題 教育 產業 產學落差 勞工 資工系 電子系 電機系 實務技術 數學 學用落差 關於作者



請為這篇文章評分?