前文中多次出現了MCU、MPU、DSP、FPGA等嵌入式處理器概念,很多初學者可能比較迷惑,下面將對這些概念進行簡單介紹。
微控制器 (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不斷增大、外設不斷增多,微控制器的應用領域和場合越來越大。
微處理器(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通常有兩個含義。
如圖 2.3.2 為TI公司的DSP晶片TMS320VC5509A。
DSP晶片為了達到快速處理數位訊號處理的目的,採用了許多特殊軟硬體結構。首先是採用哈佛結構,將程式和資料分開,同時為處理器提供指令和資料。然後採用多級流水線技術,在指令週期內可以執行更多指令。加上專用的硬體乘法器、特殊的DSP指令,使得DSP晶片在計算處理上,遠超同主頻的MCU或MPU。
DSP晶片擁有強大的資料處理能力,在數位訊號處理領域,如調變/解調、資料加密/解密、圖形處理、數位濾波、音訊處理等計算密集型的場景廣泛應用。
現場可程式化門陣列(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學習完後,再結合實際情況選擇深入學習方向。
嵌入式Linux視訊:https://www.100ask.net/index
微控制器視訊:https://www.100ask.net/page/1707053
全文下載:點選下載