常見處理器MCU、MPU、DSP、FPGA等嵌入式處理器

羽飛竹製品發表於2021-03-25

前文中多次出現了MCU、MPU、DSP、FPGA等嵌入式處理器概念,很多初學者可能比較迷惑,下面將對這些概念進行簡單介紹。


MCU

微控制器 (Micro-Controller Unit , MCU) ,俗稱微控制器。 之所以稱之為微控制器 (Single Chip Microcomputer),是因為不同於其它處理器,它將CPU、RAM(隨機儲存器)、ROM(只讀存器)、I/O、中斷系統、定時器等各種功能外設資源集中到一個晶片上。這個晶片就是一個完整的微型計算機,只需要供電或加上極少的外圍電路即可工作。


常見的MCU有80C51系列微控制器、Atmel公司的AVR系列微控制器、Microchip公司的PIC系列微控制器、TI公司的MSP430系列微控制器、ST公司的STM32系列微控制器、NXP公司的LPC1700系列微控制器。


早期的MCU主要是8位,後面發展出16位,再到現在主流的已經是32位。此外,主頻不斷提高、ROM不斷增大、外設不斷增多,微控制器的應用領域和場合越來越大。


MPU

微處理器(Micro-Processor Unit,MPU)。類似通用計算機的CPU,主要負責處理計算,需要外加RAM、 Flash、電源等電路。


MCU和MPU的本質區別是因為應用場景的定位不同。MPU注重透過相對強大的運算/處理能力,執行復雜多樣的大型程式,因此常需要外掛執行記憶體(RAM)、儲存器(Flash)等。MCU注重功能較為單一、價格敏感的應用場景,不需要相對強大的運算/處理能力,更多的是對裝置管理/控制,因此不需要大容量的RAM、Flash來執行大型程式,於是將RAM、Flash全整合在一起,大家也就俗稱“微控制器”,如圖 2.3.1 所示。



如今,隨著技術的發展,市場及需求的變化,MPU和MCU的界限日趨模糊。高階的32位MCU主頻越來越高,已經反超低端MPU主頻,MCU也有外掛RAM和Flash的場景,依靠硬體結構去區分逐漸困難。讀者可以簡單的認為,嵌入式微處理器MPU,通常執行Linux、Android等非實時作業系統,應用在高階應用市場,比如智慧手機、路由器等消費電子市場領域,而嵌入式微控制器MCU,常用執行裸機或實時性作業系統,應用在中、低端應用市場,比如家電控制領域、工業控制領域等。


DSP

DSP通常有兩個含義。


數字訊號處理(Digital Signal Processing,DSP),是一門學科技術,使用數值計算的方式對訊號進行加工處理的理論和技術。

數字訊號處理器(Digital Signal Processor,DSP),是一種專門用於數字訊號處理領域的微處理器晶片。

如圖 2.3.2 為TI公司的DSP晶片TMS320VC5509A。


DSP晶片為了達到快速處理數字訊號處理的目的,採用了許多特殊軟硬體結構。首先是採用哈佛結構,將程式和資料分開,同時為處理器提供指令和資料。然後採用多級流水線技術,在指令週期內可以執行更多指令。加上專用的硬體乘法器、特殊的DSP指令,使得DSP晶片在計算處理上,遠超同主頻的MCU或MPU。


DSP晶片擁有強大的資料處理能力,在數字訊號處理領域,如調製/解調、資料加密/解密、圖形處理、數字濾波、音訊處理等計算密集型的場景廣泛應用。


FPGA

現場可程式設計門陣列(Field-Programmable Gate Array,FPGA),由可程式設計互連連線的可配置邏輯塊(CLB) 矩陣構成的半導體器件。通俗地說,FPGA就是一個可以透過程式設計改變內部硬體結構,實現所需功能的晶片。前面的MCU、DSP等都是硬體資源固定,只能透過修改軟體實現所需功能。而FPGA是透過硬體描述語言或其它方式修改硬體,將FPGA變為CPU或專用晶片,來實現控制或演算法。因此,MCU、DSP能夠實現的功能,FPGA理論上都可以實現,反之則不一定。如圖 2.3.3 為Xilinx公司的FPGA晶片XC3S400A。


FPGA主要有兩大優勢:高速和靈活。FPGA使用硬體處理資料,採用併發和流水技術,多個模組之間可以同時並行執行。FPGA可以根據現場情況配置器件功能,能夠在技術和需求變化時重新配置,實現系統最佳化升級。


在某些通訊領域,需要處理高速的通訊協議,同時通訊協議隨時都可能修改,不適合做成專門的晶片,FPGA的高速、靈活就便成了首選。


雖然FPGA功能強大,但實際工程專案中,還需考慮硬體成本、開發難度和市場需求等因素。一些簡單的控制場合,儘管FPGA和MCU都能勝任,但MCU價格低廉和研發簡單,更划算。


【總結】

如今複雜的嵌入式系統往往是複合架構,比如“MPU+FPGA”、“MPU+DSP”、“MCU+FPGA”、“MCU+DSP”,甚至“MCU +MPU+FPGA+DSP”。控制、顯示、通訊一般選擇MCU或MPU,通訊和資料處理演算法選擇DSP,大量的資料處理和特定實現選擇FPGA。


MCU開發需要C語言基礎,然後學習各類資源、介面,再到RTOS;MPU通常執行Linux,需要Linux基 礎、作業系統、網路程式設計等知識;DSP開發需要具備資料訊號處理演算法的理論知識;FPGA開發需要了解高速介面或音/視處理演算法等。


一般來說,MCU相對比較簡單,適合作為入門學習,待MCU學習完後,再結合實際情況選擇深入學習方向。

————————————————

版權宣告:本文為CSDN博主「韋東山」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。

原文連結:https://blog.csdn.net/thisway_diy/article/details/114916402


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69997197/viewspace-2764980/,如需轉載,請註明出處,否則將追究法律責任。

相關文章