嵌入式實驗樓
看到上面藍色字了麼?關注下吧!
CPU(CentralProcessing Unit),是一臺計算機的運算核心和控制核心。CPU由運算器、控制器和寄存器及實現它們之間聯繫的數據、控制及狀態的總線構成。主要功能是解釋計算機指令以及處理計算機軟體中的數據。計算機的可編程性主要是指對中央處理器的編程。
1970年代以前,中央處理器由多個獨立單元構成,後來發展出由集成電路製造的中央處理器,這些高度收縮的組件就是所謂的微處理器,其中分出的中央處理器最為複雜的電路可以做成單一微小功能強大的單元,也就是所謂的核心。
差不多所有的CPU的運作原理可分為四個階段:提取(Fetch)、解碼(Decode)、執行(Execute)和寫回(Writeback)。 CPU從存儲器或高速緩衝存儲器中取出指令,放入指令寄存器,並對指令解碼,並執行指令。所謂的計算機的可編程性主要是指對CPU的編程。
MPU (MicroProcessor Unit),叫微處理器,是可編程特殊集成電路。MPU只是一個處理器,需要搭配內存等非常多的其他外設才可以構成一個系統。MCU內部有處理器、內存、Flash及其他模塊,僅僅需要搭配少量外設就可以構成一個系統。
在上世紀80年代非常流行,那時的微型計算機、遊戲機都是使用MPU。比如Motorola公司的68000晶片就是一款主流的微處理器(MPU)。下圖是一款Alpha Micro AM-1000系列的微型計算機電路板,電路板右側中間最大的晶片就是MPU 68000。
後來MPU逐漸式微,可以認為MPU發現到現在只剩下了intel、AMD公司x86系列CPU。這類CPU也越來越複雜,稱之為「微處理器」似乎不恰當了。在個人電腦領域,可以看到類似下圖的主板。主板上插上CPU、內存條、音效卡等等就構成了一臺計算機。整個主板體積龐大、製造複雜。
MCU(Micro ControlUnit),叫微控制器,是指隨著大規模集成電路的出現及其發展,把中央處理器、存儲器、定時/計數器(timer/counter)、各種輸入輸出接口等都集成在一塊集成電路晶片上的微型計算機,形成晶片級的晶片。與應用在個人電腦中的通用型微處理器相比,它更強調自供應(不用外接硬體)和節約成本。它的最大優點是體積小,可放在儀表內部,但存儲量小,輸入輸出接口簡單,功能較低。
MCU的發展經歷過8位8051單片機、16位AVR單片機、32位STM單片機。
MCU內部集成了處理器和各類模塊,比如USB控制器、UART控制器、內存、Flash等等。只需要外接少量的器件,就可以搭建一個電子系統。
單片系統或片上系統(英語:System on a Chip,縮寫:SoC)是一個將電腦或其他電子系統集成到單一晶片的集成電路。單片系統可以處理數位訊號、模擬信號、混合信號甚至更高頻率的信號。單片系統常常應用在嵌入式系統中。單片系統的集成規模很大,一般達到幾百萬門到幾千萬門。
SoC 可以基於 MCU 或 MPU,並將提供執行某些類型的應用程式所需的一切。例如,對於圖像處理,SoC 可能具有 MPU、數位訊號處理器 (DSP) 和/或圖形處理單元 (GPU) 的組合,用於執行快速算法計算,以及用於驅動顯示器和 HDMI 或其他音頻/視頻輸入/輸出技術。SoC 可在單個微型 IC 上實現整個晶片系統。
微控制器 (MCU) 往往比微處理器 (MPU) 更便宜、設置更簡單、操作更簡單。MCU 可以被視為單晶片計算機,集成了ROM、RAM等在晶片內部,而 MPU 則具有支持各種功能(如內存、接口和 I/O)的外圍晶片,可任意更換不同廠商的同種類型外設。微控制器和微處理器之間的一個重要區別是微處理器通常會運行作業系統。作業系統允許多個進程通過多個線程同時運行。需要驅動程序來支持外圍設備。
MCU將運行「裸機接口」,這意味著沒有作業系統。沒有作業系統,MCU一次只能運行一個控制迴路。從軟體的角度來看,這意味著單個線程在微控制器的處理器或中央處理單元 (CPU) 上運行。
MCU 僅具有與外部世界交互的基本選項。MCU 可能有 I2C、SPI、UART(串行),有時還有低級 USB 連接。這些基本接口通常僅用於對 MCU 進行編程。MCU 的目的是永遠運行一個相當簡單的控制循環,或者直到它中斷或以其他方式停止。MCU 往往比 MPU 便宜。MCU並非不可能進行無線通信,但請記住,MCU一次只能運行一個線程。要得到服務,任何其他輸入或進程都必須等待單線程或控制循環先完成它正在執行的操作。除了 I2C、SPI 或 UART 等基礎接口外,微處理器往往還有許多接口。MPU 也可能有更複雜的接口,如乙太網、藍牙、WiFi、快閃記憶體等。
越來越難判斷一個設備是 MCU 還是 MPU,因為如今 MCU 可以做很多事情,包括更複雜的外圍設備。MCU 和 MPU 之間的區別變得不那麼明顯,因為現在一些 MCU 帶有用於更複雜外設的簡單軟體驅動程序,並且可以找到更多具有片上集成外設的 MPU。
CPU、MPU、MCU、SOC從大處講,就是一個系統的核心罷了,只是晶片的封裝程度不同、處理性能不同罷了,因此在不同的應用應用場景需要選擇合適的處理器。
最後附上一張晶片的思維導圖,詳細地了解它們之間聯繫以及特性: