資料介紹
該如何對8位以及32位的MCU進行選擇?8位和32位MCU在功能上仍是互為輔助、各有千秋,這其中的訣竅就在于,需先了解什么樣的應用適合什么樣的MCU架構(gòu)。
本文對比了8位MCU和32位MCU的使用案例,也可作為如何選擇這兩種MCU架構(gòu)的指南使用。本文中大部分32位MCU的范例將關注ARM Cortex-M,Cortex-M在不同MCU供應商產(chǎn)品組合中表現(xiàn)得非常相似。鑒于8位MCU有很多種架構(gòu),所以很難對8位供應商產(chǎn)品進行類似的比較。為了便于進行比較,我們將使用廣泛應用、易于理解的8051 架構(gòu),該架構(gòu)深受嵌入式開發(fā)人員的青睞。
8位和32位MCU該如何選擇?
有時,當我對比人們所熟知的事物(例如ARM和8051)時,感覺就像在物聯(lián)網(wǎng)論壇上發(fā)出「《星際爭霸戰(zhàn)》比《星際大戰(zhàn)》好看」的帖子一樣,很快就能火起來。
事實上,ARM Cortex和8051哪個更好并不是個邏輯問題,就像是在問:吉他和鋼琴哪個更好?真正要解決的問題應是哪種MCU能幫我更好地解決當下面臨的問題。不同的任務需要使用不同的工具,我們的目的是要了解「如何才能更好地運用我們所擁有的工具」,包括8位和32位MCU。幾乎可以肯定地說,那些簡單回答「ARM更好」或「8051更好」的人各有其目的,他們也許正在試圖銷售某種產(chǎn)品。
對不同的設備進行比較,需要對其進行測量。有很多構(gòu)建工具可供選擇,我們盡量選擇一些場景,我認為其能夠進行最公平的比較,且最能代表開發(fā)人員的真實體驗。
并非所有的MCU都是一樣的
在開始對架構(gòu)進行比較之前,要注意到并非所有生產(chǎn)的MCU都是一樣的,這一點非常重要。如果將基于ARM CortexM0 處理器的現(xiàn)代MCU與30年前的8051 MCU進行對比,8051 MCU在性能對比上不會勝出。幸運的是,依然有許多供應商一直在對8位處理器持續(xù)投資。在許多應用中,8位內(nèi)核能依然能夠彌補M0 或M3內(nèi)核不利的地方,甚至在一些方面性能更佳。
開發(fā)工具也很重要。現(xiàn)代嵌入式固件開發(fā)需要全功能IDE、現(xiàn)成的固件庫、豐富的范例、完整的評估和入門套件以及助手應用以簡化硬體設定、庫管理和量產(chǎn)程式設計之類的工作。當MCU有了現(xiàn)代化的8位內(nèi)核和開發(fā)環(huán)境后,在很多情況下,這樣的MCU將超越基于ARM Cortex的類似MCU。
系統(tǒng)規(guī)模
一般性原則是,ARM CortexM內(nèi)核更適用于較大的系統(tǒng)規(guī)模,而8051設備適用于較小的系統(tǒng)規(guī)模。中等規(guī)模的系統(tǒng)可以選擇兩種方式,這取決于系統(tǒng)要執(zhí)行的任務。有必要注意一點,在大多數(shù)情況下,外設組合將會發(fā)揮重要的作用。如果需要3個UART、1個LCD控制器、4個時鐘和2個ADC,你可能并不會在8位MCU上找到所有這些外設。
易用性vs.成本和尺寸
對于中等規(guī)模的系統(tǒng)來說,使用任何一種架構(gòu)都可以完成工作,需要權(quán)衡的是選擇ARM內(nèi)核帶來的易用性,還是8051設備帶來的成本和物理尺寸優(yōu)勢。ARM Cortex-M架構(gòu)具有統(tǒng)一的存儲映射模式,并且在所有常見編譯器中支持完整的C99,這使得這種架構(gòu)非常易于寫固件。此外,還可得到一系列庫和協(xié)力廠商代碼。當然,這種易用性的代價就是成本。對于高復雜性、上市時間較短的應用或缺乏經(jīng)驗的固件開發(fā)人員來說,易用性是個重要因素。
盡管8位與32位組件相比有些成本上的優(yōu)勢,但真正的區(qū)別就在于成本級別。大家經(jīng)常會發(fā)現(xiàn)具有2 KB/512 B(Flash/RAM)的小容量8位器件,而卻很少見低于8 KB/2 KB的32位器件。在不需要很多資源的系統(tǒng)中,該范圍的存儲容量能夠讓系統(tǒng)開發(fā)人員獲得顯著降低成本的解決方案。因此,對成本極為敏感或僅需較小存儲容量的應用會更傾向于選擇8051解決方案。
通常,8位器件也具有物理尺寸上的優(yōu)勢。例如,某些MCU的32位QFN封裝為4 mm×4 mm,而基于8051的8位器件的QFN封裝可小至2 mm×2 mm。芯片級封裝(CSP)的8位和32位架構(gòu)之間的差異較小,但卻使成本增加,且組裝較難。對于空間嚴格受限的應用來說,通常需要選擇8051 MCU來滿足限制要求。
通用代碼和RAM效率
8051 MCU成本較低的主要原因之一是,它通常比ARM Cortex-M內(nèi)核更高效地使用Flash和RAM,這允許系統(tǒng)采用更少資源實現(xiàn)。系統(tǒng)越大,這種影響就越小。
但這種8位存儲資源的優(yōu)勢并不總是如此,在某些情況下,ARM內(nèi)核會像8051內(nèi)核一樣高效或比其更高效。例如:32位運算僅需要一條ARM設備指令,而在8051 MCU上則需要多條8位指令。顯然,這種代碼在ARM架構(gòu)上有更高的執(zhí)行效率。
ARM架構(gòu)在Flash/RAM尺寸較小時的兩個主要缺點是:代碼空間效率和RAM使用的可預測性。首要也是最明顯的問題是通用代碼空間效率。8051內(nèi)核使用1位組、2位組或3位組指令,而ARM內(nèi)核使用2位組或4位組指令。通常情況下,8051指令更小,但這一優(yōu)勢因?qū)嶋H上花費許多時間而受到削弱,ARM內(nèi)核比8051在一條指令下能做更多工作,32位運算就是這樣一個范例。實踐起來,指令寬度是能在8051上產(chǎn)生適度的更密集代碼。
代碼空間效率
在含有分散式訪問變數(shù)的系統(tǒng)中,ARM架構(gòu)的載入/存儲架構(gòu)通常比指令寬度更為重要。試想訊號量的實現(xiàn),一個變數(shù)需要在代碼周圍的多個不同位置進行減量(分配)或者增量(釋放)。ARM內(nèi)核必須將變數(shù)載入到寄存器,對其進行操作并重新存儲,這需要3條指令。另一方面,8051內(nèi)核可以直接在記憶體位置上進行操作,且僅需1條指令。隨著每次對變數(shù)完成工作量的增大,由于載入/存儲而產(chǎn)生的消耗就變得微不足道。但對于每次僅完成一點工作的情況來說,載入/存儲能產(chǎn)生重要影響,讓8051獲得明顯的效率優(yōu)勢。
盡管訊號量在嵌入式軟體中并非常見,但簡單的計數(shù)器和標志訊號量卻廣泛應用于控制導向的應用中并起著相同的作用。許多常見的MCU代碼都屬于這一類型。
另一個原因是,ARM處理器比8051內(nèi)核擁有更多的自由使用棧空間。通常情況下,8051設備針對每次函式呼叫僅在棧上存儲返回位址(2位組),通常通過分配給棧的靜態(tài)變數(shù)處理大量的任務。
在某些情況下,這會產(chǎn)生問題,因為這會造成函數(shù)預設不可重入。然而,這也意味著必須保留的??臻g很小,且完全可預測,這在RAM容量有限的MCU中至關重要。
圖一: 不同的任務需要使用不同的工具,我們的目的是要了解「如何才能更好地運用我們所擁有的工具」,包括8位和32位MCU。(Source:Yola)
架構(gòu)細節(jié)
現(xiàn)在,我們來說基本情景。假設有基于ARM和基于8051的MCU各一個,配有所需的外設,那么對于較大的系統(tǒng)或需要重點考慮易用性的應用來說,ARM設備是更好的選擇。如果首要考慮的是低成本/小尺寸,那么8051設備將是更好的選擇。下面我們對于每種架構(gòu)更擅長的應用進行更詳細的分析,同時也劃分出一般原則。
(1) 延時
兩種架構(gòu)的中斷和函式呼叫延時存在很大差異,8051比ARM Cortex-M內(nèi)核更快。此外,高級外設匯流排(APB)配備的外設也會影響延時,這是因為資料必須通過APB和AMBA高性能匯流排(AHB)傳輸。最后,當使用高頻內(nèi)核時鐘時,許多基于Cortex-M的MCU需要分配APB時鐘,這也增加了外設延時。
我做了1個簡單的實驗,實驗中的中斷是通過I/O引腳觸發(fā)的。該中斷對引腳發(fā)出一些信號,并根據(jù)引發(fā)中斷的引腳更新標志。然后我測量了一些參數(shù)顯示了32位的實現(xiàn)。
簡單說明這個實驗結(jié)果,8051內(nèi)核在中斷服務程式(ISR)進入和退出時顯示出優(yōu)勢。但是,隨著中斷服務程式(ISR)越來越大和執(zhí)行時間的增加,這些延遲將變得微不足道。和已有原則一致,系統(tǒng)越大,8051的優(yōu)勢越小。此外,如果中斷服務程式(ISR)涉及到大量資料移轉(zhuǎn)或大于8位的整數(shù)資料運算,中斷服務程式(ISR)執(zhí)行時間的優(yōu)勢將轉(zhuǎn)向ARM內(nèi)核。例如,一個采用新樣本更新16位或32位移動平均的ADC ISR可能在ARM設備上執(zhí)行得更快。
(2) 控制vs處理
8051內(nèi)核的基本功能是控制代碼,其中對于變數(shù)的訪問是分散的,并且使用了許多控制邏輯(if、case等)。8051內(nèi)核在處理8位資料時也是非常有效的,而ARM Cortex-M內(nèi)核擅長資料處理和32位運算。此外,32位資料通道使得ARM MCU復制大包的資料更加有效,因為它每次可以移動4個位組,而8051每次僅能夠移動1個位組。因此,那些主要把資料從一個地方移動到另一個地方(例如UART到CRC或者到USB)的流資料處理的應用更適合選擇基于ARM處理器的系統(tǒng)。
這并不意味著有大量資料移動或32位運算的應用不應該選擇8051內(nèi)核完成。在許多情況下,其他方面的考慮將超過ARM內(nèi)核的效率優(yōu)勢,或者說這種優(yōu)勢是不相關的??紤]使用UART到SPI橋接器,該應用花費大部分時間在外設之間復制資料,而ARM內(nèi)核會更高效地完成該任務。
然而,這也是一個非常小的應用,可能小到足以放入一個僅有2 KB存儲容量的器件就足夠合適。盡管8051內(nèi)核效率較低,但它仍然有足夠的處理能力去處理該應用中的高資料速率。對于ARM設備來說,可用的額外周期可能處于空閑回圈或「WFI」(等待中斷),等待下一個可用的資料片到來。在這種情況下,8051內(nèi)核仍然最有意義,因為額外的CPU周期是微不足道的,而較小的Flash封裝會節(jié)約成本。如果我們要利用額外的周期去做些有意義的工作,那么額外的效率將是至關重要的,且效率越高可能越有利于ARM內(nèi)核。這個例子說明,清楚被開發(fā)系統(tǒng)所關注的環(huán)境中的各種架構(gòu)優(yōu)勢是何等重要。做出這個最佳的決定是簡單但卻重要的一步。
(3) 指針
8051設備沒有像ARM設備那樣的統(tǒng)一的存儲映射,而是對存取碼(Flash)、IDATA(內(nèi)部RAM)和XDATA(外部RAM)有不同的指令。為了生成高效的代碼,8051代碼的指標會說明它指向什么空間。然而,在某些情況下,使用通用指標可以指向任何空間,但是這種類型的指標是低效的訪問。例如,將指標指向緩沖區(qū)并將該緩沖區(qū)資料輸出到UART的函數(shù)。如果指標是XDATA指標,那么XDATA陣列能被發(fā)送到UART,但在代碼空間中的陣列首先需要被復制到XDATA。通用指標能同時指向代碼和XDATA空間,但速度較慢,并且需要更多的代碼來訪問。
專用區(qū)域指標在大多情況下能發(fā)揮作用,但是通用指標在編寫使用情況未知的可重用代碼時非常靈活。如果這種情況在應用中很常見,那么8051就失去了其效率優(yōu)勢。
(4) 通過選擇完成工作
我已經(jīng)注意到多次,運算傾向于選擇ARM,而控制傾向于選擇8051,但沒有應用僅僅著眼于計算或控制。我們怎樣才能表征廣義上的應用,并計算出它的合適范圍呢?讓我們考慮一個由10%的32位計算、25%的控制代碼和65%的一般代碼構(gòu)成的假定的應用,它不能明確地歸于8位或32位類別。
這個應用也更注重代碼空間而不是執(zhí)行速度,因為它并不需要所有可用MIPS,并且必須為成本進行優(yōu)化。成本比應用速度更為重要的事實在一般代碼情形下將給8051內(nèi)核帶來微弱優(yōu)勢。此外,8051內(nèi)核在控制代碼中有中間等級的優(yōu)勢。ARM內(nèi)核在32位計算上占上風,但是這并非是很多應用所考慮的。考慮到所有這些因素,這個特殊的應用選擇8051內(nèi)核更加合適。
如果進行細微的改變,假設該應用更關心執(zhí)行速度而非成本,那么通用代碼不會傾向于哪種架構(gòu),并且ARM內(nèi)核在計算代碼中全面占優(yōu)勢。在這種情況下,雖然有比計算更多的控制代碼,但是總的結(jié)果將相當均衡。顯然,在這個過程中有很多的評估,但是分解應用,然后評估每一元件的技術(shù)將?明并確保我們了解在哪種情況下哪種架構(gòu)有更顯著的優(yōu)勢。
功耗
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 從8位AVR到32位SAM D21 MCU的應用程序移植
- MCU選8位還是32位?這可不是扔鋼镚的事!
- 8位和32位MCU該如何選擇?
- 基于Arm的32位MCU的中密度高性能線路的STM32F103X8資料 11次下載
- 32怎么將mcu內(nèi)的代碼擦除_8位和32位MCU該如何選擇?
- 8位MCU要被淘汰了嗎?
- 8位MCU和32位MCU的使用案例資料下載
- 8位、16位、32位MCU,性能大比拼@資料下載
- 利用高度集成的8位MCU簡化CAN汽車應用資料下載
- 中科芯32位MCU選型指南資料免費下載 73次下載
- GD32F1xx系列32位MCU選型手冊詳細資料免費下載 22次下載
- MCU的8、16位與ARM 32位之戰(zhàn) 17次下載
- 高可靠性8位/16位All flash MCU結(jié)構(gòu)、特點及應
- 8位MCU升級至32位MCU的設計方案
- NEC 8位MCU參考手冊
- 中微愛芯8位低功耗AD型MCU AiP9P152簡介 1240次閱讀
- 推薦一款實用的32位MCU-OTA組件 922次閱讀
- 2020年MCU產(chǎn)品及應用現(xiàn)狀和趨勢 1.5w次閱讀
- 利用高度集成的8位MCU簡化CAN汽車應用 2676次閱讀
- 三大白電中MCU應用的現(xiàn)狀分析 6545次閱讀
- 基于EFM8 8位MCU的智能家居系統(tǒng)開關設計 4400次閱讀
- 該如何對8位以及32位的MCU進行選擇 4266次閱讀
- 如何選擇MCU選8位的還是32位的到底有什么區(qū)別 1.4w次閱讀
- 8位和32位MCU在功能上有什么區(qū)別?如何選擇? 2.1w次閱讀
- 基于32位RX CPU核的閃存mcu 2304次閱讀
- 32位已成主流 8位MCU市場是否還有出路 5661次閱讀
- 基于8位MCU的LED調(diào)光引擎設計 3484次閱讀
- 對比了8位MCU和32位MCU的使用案例來作為選擇指南 9372次閱讀
- 8位MCU的無感BLDC設計 7285次閱讀
- 開發(fā)工程師的創(chuàng)意變戲法:8位MCU變身32位MCU?! 2728次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統(tǒng)的設計與實現(xiàn)
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發(fā)板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多