MPU還是MCU,不是一個簡單選擇的問題
當為你的下一個設(shè)計方案選擇正確的核心處理器件時,你應(yīng)該考慮哪些因素呢?本文將對MPU和MCU做些對比分析,并以此對器件的選擇給出一些指導性建議和意見。
本文引用地址:http://www.ex-cimer.com/article/164617.htm每當在為新設(shè)計選擇正確合理的器件時,我們可能會有些茫然不知所措。這是需要做正確的平衡處理的事,包括價格,性能,功耗等方面的影響。當然,你可以為新設(shè)計著手考慮一些直接的技術(shù)方案,但是如果核心器件,無論是微控制器還是微處理器成為一系列新產(chǎn)品的基礎(chǔ)平臺,那么我們可能需要花長時間來做決定,到底是選MCU還是MPU。
首先,我們來看看MCU和MPU的主要差別。一個典型的MCU通常使用片內(nèi)flash存儲器來存儲和執(zhí)行程序代碼。以這種方式存儲程序意味著MCU有非??斓膯訒r間,上電能夠快速執(zhí)行代碼,片內(nèi)存儲還有個優(yōu)勢是可以加密程序。使用片內(nèi)存儲方式唯一不足就是總存儲空間受MCU本身所限。目前市場上絕大多數(shù)flash型MCU最大空間為2M字節(jié),從各種應(yīng)用上看,這證明了是一個限制因素。而MPU沒有存儲空間的限制,MPU使用外部存儲器提供程序和數(shù)據(jù)空間。程序一般放在非易失性存儲器如NAND或者串行Flash內(nèi),啟動時,程序載入到外部DRAM中,然后開始執(zhí)行。這意味著MPU沒有MCU啟動運行來的快,但MPU可擴展的外部DRAM和NVM容量能達到數(shù)百Mbytes,甚至上Gbytes。另一個不同是供電,一般MCU僅僅需要單電壓供電,而MPU需要幾路不同的電壓分別給IO,內(nèi)核,DDR等供電,開發(fā)者往往需要在電路板上設(shè)計附加的電源轉(zhuǎn)換芯片。
從應(yīng)用前景來看,設(shè)計規(guī)范的某些方面可能要求以特殊方式選擇器件。例如,外設(shè)接口通道數(shù)需求超過了MCU能提供的怎么辦?再比如,規(guī)格書規(guī)定了用戶接口的容量,而MCU由于沒有足夠大的片內(nèi)存儲器或者達不到需要的性能,無法滿足需求怎么辦?當著手第一次設(shè)計,必須要知道的是有很大的可能性產(chǎn)品會有許多變更情況。如果那樣的話,基于平臺設(shè)計方法將是首選的設(shè)計方法,這將保證更充足的功耗和接口富余,以適應(yīng)以后的功能升級。
選擇難以決斷的一個特征是任何所提供的設(shè)計都能滿足所需要的處理性能。處理能力通常用Dhrystone MIPS (DMIPS)來量化,它是測量處理器運算能力最常見指標之一。例如,一顆基于ARM Cortex-M4內(nèi)核的Atmel SAM4系列MCU處理率為150 DMIPS,而一顆ARM Cortex-A5處理器MPU,如SAMA5D3能達到850 DMIPS。一種估算DMIPS需求的方式是觀察可能導致性能惡化的局部應(yīng)用。運行一個完整的操作系統(tǒng),如Linux, Android或者Windows CE,對你的應(yīng)用來說可能要求至少300-400 DMIPS。對許多應(yīng)用來說,能夠滿足RTOS并且有50 DMIPS的足夠?qū)捲<纯伞J褂肦TOS還有其他好處,只需要很少的存儲空間,一般內(nèi)核僅僅需要幾KB到幾十KB的容量。然而,為了運行完整的操作系統(tǒng),需要一個內(nèi)存管理單元(MMU),依次指定處理器內(nèi)核的使用執(zhí)行,這就要求更快的處理運算能力。對于運行大量數(shù)字運算的應(yīng)用,額外的DMIPS需要保留給OS以及其他的通信和控制任務(wù)。所以,越是基于海量運算的應(yīng)用,越應(yīng)該考慮使用MPU來控制。
無論是針對消費電子還是工業(yè)自動化為目標的應(yīng)用設(shè)計,用戶界面(UI)都需要認真考慮。作為消費者,我們已經(jīng)熟悉并樂于使用多彩色直觀的用戶圖形界面。盡管操作員的操作環(huán)境多少會受限,但工業(yè)應(yīng)用中已經(jīng)越來越多使用這種需要操作員交互的方式。對于用戶界面(UI),有許多要素。第一,處理運算額外的需求,如UI庫Qt,普遍放在Linux頂部,需要額外的80-100 DMIPS開銷。第二,是和UI的復雜度相關(guān),越是豐富多彩,富于變化的多媒體圖像顯示,就需要越快的處理能力和越多的內(nèi)存,并且隨著解析度的增加,這種需求成比例的增加,這也是為什么以UI為中心的設(shè)計更適合用MPU的原因。相反,低解析度的靜態(tài)圖像UI可以使用MCU尋址。另一個關(guān)鍵點是,MPU通常集成一個嵌入式TFT LCD控制器,這是很有用的。很少有MCU芯片有這個功能,所以需要添加額外的TFT LCD控制器和驅(qū)動元器件。即使一些MCU嵌入了TFT LCD控制器來搶占市場,但仍需要足夠大的SRAM來驅(qū)動顯示。例如,QVGA 320 x 240分辨率16bit色彩的屏幕需要150K字節(jié)的SRAM。對于SRAM來說這是相當大的容量,所以可能需要額外多的內(nèi)存和器件。更加復雜先進的圖形用戶界面,特別是屏幕超過了4.3英寸,會明確規(guī)定使用MPU。所以,如果說在彩色TFT屏幕上運行用戶圖形界面是把MPU當做核心,那么分段點狀矩陣LCD屏和其他帶有串行接口的顯示屏就以MCU為核心。
從連接性角度說,大多數(shù)MCU和MPU可以利用一切通用外設(shè)接口。但諸如USB2.0,以太網(wǎng)等高速通信外設(shè)接口通常只有MPU會配備,因為MPU更具有處理大量數(shù)據(jù)的能力。數(shù)據(jù)通信中是否有足夠的通道和帶寬是個關(guān)鍵問題。根據(jù)所用的通信協(xié)議,在使用第三方工具時應(yīng)當檢查代碼空間的壓縮問題。當應(yīng)用需要高速連通性時候,特別是使用基于OS的堆棧,要求基于MPU來設(shè)計系統(tǒng)。
另一個決定使用MCU還是MPU的關(guān)鍵方面是根據(jù)應(yīng)用系統(tǒng)的實時/確定性的行為。由于MCU處理器內(nèi)核嵌入了flash,軟件要么是RTOS要么是C,這決定了MCU在大多數(shù)即時性應(yīng)用中將起一個至關(guān)重要的角色。
最后一點需要考慮的是功耗。雖然MPU有低功耗模式,但不會像典型MCU那樣低??紤]到附加的硬件部分,MPU在使用低功耗模式時有更多的附加因素,這可能使系統(tǒng)變的更復雜。同樣,MCU實際功耗大大低于MPU,低功耗模式中,SRAM和寄存器需要保持,這是要考慮的因素。顯而易見,操作系統(tǒng)即時的從休眠模式中恢復運行和RAM直接相關(guān)。做出選擇基于MCU還是MPU的決定牽涉到性能,容量,預(yù)算成本。一般而言,MCU趨向于低成本低功耗解決方案,MPU趨向于功能充足,高性能的場合。MCU趨向于在遠程控制,消費電子,智能儀器儀表等低功耗應(yīng)用上,這些應(yīng)用強調(diào)電池的使用壽命,極少使用用戶圖形交互界面,MCU也使用在需要即時行為功能的場合。MPU則是基于操作系統(tǒng)的工業(yè)和消費應(yīng)用的理想選擇,這些應(yīng)用通常有大量的計算,高速的互聯(lián)性,或者強大用戶圖形交互界面。
選擇一家可以提供高兼容性MCU和MPU產(chǎn)品的廠商,你能很容易移植,使軟件代碼的重復使用率最大,獲得最好的投資回報。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
linux相關(guān)文章:linux教程
評論