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