經(jīng)常被學生好友剛入行的同學問到:老師,單片機到底是MCU還是叫SOC啊?我看網(wǎng)上說法都不一樣,有點懵。今天就聊聊這個話題。
先說結論:它主要是 MCU,但現(xiàn)在越來越像 SoC了
一、MCU
MCU是微控制器單元。關鍵在控制兩個字,單片機設計出來的主要目的,就是為了控制??刂葡匆聶C的馬達、工廠里的小設備等等。
單片是精髓:它把完成控制這個任務需要的最核心的東西,都集成在一個芯片里了。
目標明確:一個MCU芯片焊到電路板上,加上電源、晶振和幾個必要的元件,它就能獨立干活了。它就是為嵌入式控制而生的。
MCU的特點:高度集成、CPU+內(nèi)存+存儲+豐富外設五臟俱全、為控制而生、成本低功耗低。
二、SoC又是個啥?
SoC叫片上系統(tǒng)。關鍵在系統(tǒng)兩個字,不僅僅是為了控制,目標是在單一芯片上實現(xiàn)一個完整的、更復雜的電子系統(tǒng)的核心功能。
1.集成度更高、更復雜:
它一定包含一個或多個強大的CPU核心,可能是復雜的應用處理器,像手機里的ARM Cortex-A系列。一般包含強大的圖形處理器GPU,用來處理復雜的圖像顯示,比如手機屏幕、智能手表的界面。
有專用的硬件加速模塊,比如處理視頻編解碼、AI運算。集成多種高速、復雜的通信接口,可能還會集成大量的內(nèi)存控制器。它更像把一臺小型電腦的主板上的核心部件CPU、GPU高速接口控制器等待都塞進了一個芯片。
2.需要外部配合:
一個SoC一般不能像MCU那樣簡單焊上就能用。它要搭配外部的大容量內(nèi)存、外部的大容量存儲、更復雜的電源管理系統(tǒng)、多個時鐘源、操作系統(tǒng)來管理這些復雜資源。
應用:智能手機、平板電腦、智能電視、機頂盒、高端智能手表、一些物聯(lián)網(wǎng)網(wǎng)關、汽車娛樂系統(tǒng)等等。像手機里的高通驍龍、蘋果A系列、華為麒麟芯片都是SoC,樹莓派的核心芯片也是SoC。
SoC特點:超高集成度、功能特別復雜、面向系統(tǒng)級的應用、需要外部大內(nèi)存、存儲、復雜電源、操作系統(tǒng)支持、性能強功耗相對較高。
三、單片機到底算哪個?
傳統(tǒng)單片機,像51、AVR、PIC、基礎STM32等等,就是純粹的MCU。結構相對簡單,集成度滿足控制的需求,外設圍繞控制任務設計,不用復雜外部元件和操作系統(tǒng)就能跑裸機或是RTOS。
現(xiàn)在的一些高性能、多功能單片機,比如一些帶強大DSP、豐富網(wǎng)絡接口、大內(nèi)存的STM32H7系列、集成了WiFi、藍牙的ESP32-S3。這類芯片就有點模糊了,可以說是MCU級別的SoC。
它們核心還是嵌入式控制。但是為了更復雜的應用像跑點簡單UI、做點音頻處理、跑輕量級Linux,它們集成度更高了,加入了一些原本是屬于SoC的特性,比如更快的CPU、更大的片上RAM、更豐富高速的接口、甚至專用加速器。
不過,它們一般不用像手機SoC那樣搭配超大外部DDR內(nèi)存,不用跑龐大的Android、Linux,整體復雜度和功耗還是低于典型的SoC。
四、做開發(fā)怎么選
選型看需求:你要做個溫濕度計控制個小電機?用個51內(nèi)核的MCU就夠了,實時性強。
你要做個小智能設備,需要連 WiFi、跑個輕量級OS處理點復雜邏輯,ESP32、STM32H7 這類增強型MCU或者MCU級SoC就很合適,在功耗、實時性和功能之間是很好的平衡。
你要做視頻監(jiān)控、跑復雜的用戶界面、需要大量網(wǎng)絡交互,那可能得考慮用能跑Linux的 SoC了。
關注內(nèi)核架構:ARM Cortex-M系列就是為了MCU實時控制設計的。Cortex-A 系列是為應用處理器SoC設計的??葱酒玫氖裁春诵模揪湍芏ㄎ凰鼘儆谀囊活?。
所以現(xiàn)在可以這么理解:MCU是SoC的一個子集,專門來控制。 MCU現(xiàn)在越來越強大,集成的東西越來越多,越來越像一個系統(tǒng)的核心時,它就慢慢沾上了SoC的邊。但它的根,還是在控制上。