隨著智能產(chǎn)品越來越多,應用到的MCU數(shù)量也隨之增長,有對MCU接觸過的朋友都知道,MCU有不同的位數(shù),如
8位MCU、24位MCU、32位MCU,每種MCU的應用都有不同領域產(chǎn)品,今天就來聊聊8位和32位的MCU,接下來看看8位MCU和32位MCU如何選擇,先從兩者的功能來區(qū)別。
本文比較了8位MCU和32位MCU 用例,也可用作如何在兩種 MCU 架構之間進行選擇的指南,本文中的大多數(shù)32位MCU 示例都集中在 ARM Cortex-M 上,它在各種 MCU 供應商產(chǎn)品組合中的行為非常相似。8位MCU MCU 架構種類繁多,因此很難對8位MCU供應商的產(chǎn)品進行類似比較。為了進行比較,我們將使用嵌入式開發(fā)人員首選的廣泛使用且易于理解的 8051 架構。
8位MCU和32位MCU如何選擇?
事實上,ARM Cortex 和 8051 哪個更好,并不是像“吉他或鋼琴哪個更好?”這樣的邏輯問題,真正要解決的問題是哪種MCU能夠幫助我們更好地解決今天面臨的問題,不同的任務需要不同的工具,我們的目標是了解“如何更好地使用我們擁有的工具”,包括8位MCU和32位MCU,那些簡單地說“ARM 更好”或“8051 更好”的人幾乎肯定是在以自己的方式思考并試圖銷售產(chǎn)品。
要比較不同的設備,您需要測量它們,有許多構建工具可供選擇,已嘗試進行公平的比較,并選擇我們認為能代表真實開發(fā)人員體驗的場景。
并非所有 MCU 都是一樣的
在我們開始比較架構之前,請務必注意并非所有制造的 MCU 都是一樣的。將基于 ARM CortexM0+ 處理器的現(xiàn)代 MCU 與已有 30 年歷史的 8051 MCU 進行比較,8051 MCU 根本很難超越性能比較,幸運的是,仍有許多供應商繼續(xù)投資于8位MCU處理器。對于很多應用來說,8位MCU內(nèi)核可以彌補 M0+ 或 M3 內(nèi)核的不足,并且在某些方面表現(xiàn)更好。
開發(fā)工具也很重要,現(xiàn)代嵌入式固件開發(fā)包括功能完整的 IDE、現(xiàn)成的固件庫、大量示例、完整的評估和入門套件,以及用于簡化硬件設置、庫管理和生產(chǎn)編程等任務的工具。需要幫助應用程序。如果 MCU 具有現(xiàn)代8位MCU內(nèi)核和開發(fā)環(huán)境,則此類 MCU 的性能通常優(yōu)于類似的基于 ARM Cortex 的 MCU。
系統(tǒng)規(guī)模
作為一般原則,ARM CortexM 內(nèi)核適用于較大的系統(tǒng)規(guī)模,而 8051 器件適用于較小的系統(tǒng)規(guī)模。中型系統(tǒng)有兩種方法可供選擇,具體取決于系統(tǒng)執(zhí)行的任務。請注意,在大多數(shù)情況下,外圍設備的組合起著重要作用。如果您需要 3 個 UART、1 個 LCD 控制器、4 個時鐘和 2 個 ADC,則并非所有這些外設都在8位MCU MCU 上。
易用性與成本和尺寸
對于中型系統(tǒng),您可以使用任一架構來完成工作。權衡是在 ARM 內(nèi)核提供的易用性和 8051 設備提供的成本和物理尺寸優(yōu)勢之間做出選擇。ARM Cortex-M 架構在所有流行的編譯器中具有集成的內(nèi)存映射模式和完整的 C99 支持,使得這種架構非常容易編寫固件。此外,還提供各種庫和第三方代碼。當然,這種易用性的代價是成本。對于上市時間短的復雜應用程序和缺乏經(jīng)驗的固件開發(fā)人員來說,易用性是一個關鍵因素。
盡管8位MCU組件比32位組件具有成本優(yōu)勢,但真正的區(qū)別在于成本等級。具有 2 KB/512 B(閃存/RAM)的小型8位MCU設備很常見,但小于 8 KB/2 KB 的32位設備很少見。對于不需要很多資源的系統(tǒng),這種存儲容量范圍允許系統(tǒng)開發(fā)人員實現(xiàn)成本顯著降低的解決方案。因此,對成本非常敏感或內(nèi)存要求低的應用程序傾向于選擇 8051 解決方案。
一般來說,8位MCU設備在物理尺寸方面也有優(yōu)勢。例如,一些MCU的32位QFN封裝為4mm x 4mm,而基于8051的8位MCU器件的QFN封裝可以小到2mm x 2mm。芯片級封裝 (CSP) 中的8位MCU和32位架構之間的差異并不大,但成本更高且更難組裝??臻g受限的應用通常需要選擇 8051 MCU 來滿足這些限制。
通用代碼和 RAM 效率
8051 MCU 成本低的主要原因之一是它們通常比 ARM Cortex-M 內(nèi)核更有效地使用閃存和 RAM。更少的資源。系統(tǒng)越大,這種影響越小。
然而,8位MCU內(nèi)存資源的這種優(yōu)勢可能并不總是適用。在某些情況下,ARM 內(nèi)核的效率與 8051 內(nèi)核一樣,甚至更高。例如,32 位操作只需要一條 ARM 設備指令,而 8051 MCU 則需要多條8位MCU指令。顯然,這段代碼在 ARM 架構上運行效率更高。
用于小型閃存/RAM 的 ARM 架構的兩個主要缺點是代碼空間效率和 RAM 使用的可預估性。首個也是很明顯的問題是一般的代碼空間效率。8051 內(nèi)核使用 1 位、2 位或 3 位指令,而 ARM 內(nèi)核使用 2 位或 4 位指令。8051 指令通常更小,但它們實際上需要更多時間,因此這種優(yōu)勢減弱了。與 8051 相比,ARM 內(nèi)核每條指令可以完成更多工作,32位算術就是一個例子,實際上,指令寬度使得 8051 產(chǎn)生相當密集的代碼。
代碼空間效率
在具有分布式訪問變量的系統(tǒng)中,ARM 體系結構的加載/存儲體系結構通常比指令寬度更重要??紤]一個信號量實現(xiàn),它需要在代碼的不同位置遞減(賦值)或遞增(解除分配)一個變量。ARM 內(nèi)核需要將變量加載到寄存器中,對其進行操作并將其存儲回去,這需要三個指令。另一方面,8051 內(nèi)核可以只用一條指令直接操作內(nèi)存位置。隨著對變量所做的工作量每次都增加,加載/存儲開銷變得微不足道。但是如果一次要完成的工作較少,加載/存儲會產(chǎn)生很大的不同,8051 具有明顯的效率優(yōu)勢。
信號量在嵌入式軟件中并不常見,但簡單的計數(shù)器和標志信號量廣泛用于面向控制的應用程序中,并且具有相同的目的,常見的 MCU 代碼屬于這種類型。
另一個原因是 ARM 處理器比 8051 內(nèi)核有更多的空閑堆??臻g。8051 設備通常只在堆棧中為每個函數(shù)調(diào)用存儲返回地址(2 位),并且通常通過分配在堆棧上的靜態(tài)變量來完成大部分工作。
在某些情況下,默認情況下函數(shù)是不可重入的,這可能會導致問題。但是,這也意味著需要預留的??臻g很小,完全可以預估,這對于 RAM 有限的 MCU 很重要。
不同的任務需要不同的工具。我們的目標是了解如何充分利用我們擁有的工具,包括8位MCU和32位MCU。
架構細節(jié)
現(xiàn)在讓我們談談基本場景。假設您有基于 ARM 和 8051 的 MCU 以及必要的外圍設備,ARM 設備非常適合大型系統(tǒng)或以易用性為優(yōu)先考慮的應用程序。如果低成本/小尺寸是看重的問題,那么 8051 器件是一個不錯的選擇,下面我們對每個架構所擅長的應用進行更詳細的分析,并分離出一般原理。
(1) 延遲
兩種架構在中斷和函數(shù)調(diào)用延遲方面存在很大差異,8051 比 ARM Cortex-M 內(nèi)核更快。此外,具有好的外圍總線 (APB) 的外圍設備也會影響延遲。這是因為數(shù)據(jù)需要通過 APB 和 AMBA 高性能總線 (AHB) 發(fā)送。后續(xù),許多基于 Cortex-M 的 MCU 在使用高頻內(nèi)核時鐘時需要 APB 時鐘分配,這也會增加外設延遲。
做了一個簡單的實驗,實驗中斷由 I/O 引腳觸發(fā),此中斷將向引腳發(fā)送信號并根據(jù)引起中斷的引腳更新標志,然后我測量了一些指示32位實現(xiàn)的參數(shù)。
簡而言之,實驗結果表明 8051 內(nèi)核在進入和退出中斷服務程序 (ISR) 方面具有優(yōu)勢。然而,隨著中斷服務例程 (ISR) 變得更大并且執(zhí)行時間更長,這些延遲變得微不足道。按照既定原則,系統(tǒng)越大,8051的優(yōu)勢就越小。此外,如果中斷服務例程 (ISR) 包含大量數(shù)據(jù)傳輸或大于8位MCU的整數(shù)數(shù)據(jù)操作,則執(zhí)行時間優(yōu)勢為中斷服務例程 (ISR) 遷移到 ARM 內(nèi)核。例如,使用新樣本更新 16 位或32位移動平均值的 ADC ISR 可能在 ARM 設備上運行得更快。
(2) 控制與處理
8051 內(nèi)核的基本功能是控制代碼,可以分布式訪問變量并使用大量控制邏輯(if、case 等)。8051 內(nèi)核在處理8位MCU數(shù)據(jù)方面也非常有效,而 ARM Cortex-M 內(nèi)核則擅長數(shù)據(jù)處理和32位運算。此外,32 位數(shù)據(jù)通道允許 ARM MCU 一次移動 4 個字節(jié),而 8051 一次只能移動 1 個字節(jié),從而可以更有效地復制大數(shù)據(jù)包。因此,主要通過將數(shù)據(jù)從一個地方移動到另一個地方(例如 UART 到 CRC 或 US B)來進行流式數(shù)據(jù)處理的應用程序更適合基于 ARM 處理器的系統(tǒng)。
這并不意味著您不應該運行在 8051 內(nèi)核上執(zhí)行大量數(shù)據(jù)移動或32位數(shù)學會運算的應用程序,在許多情況下,其他考慮因素超過了 ARM 內(nèi)核的效率優(yōu)勢,或者這些優(yōu)勢變得無關緊要,考慮使用 UART 轉 SPI 橋。應用程序大部分時間都在外圍設備之間復制數(shù)據(jù),這是 ARM 內(nèi)核更有效地執(zhí)行的任務。
然而,這也是一個非常小的應用程序,可能小到可以安裝在只有 2 KB 內(nèi)存的設備上。8051 內(nèi)核效率較低,但具有足夠的處理能力來處理此應用中的高數(shù)據(jù)速率。對于 ARM 設備,可用的額外周期是在空閑循環(huán)或“WFI”(Wait for Interrupt)中,等待下一個可用數(shù)據(jù)到達。在這種情況下,8051 內(nèi)核是合適的,因為額外的 CPU 周期并不重要,而且較小的閃存封裝可以節(jié)省資金。如果額外的周期用于做有意義的工作,那么額外的效率就非常重要,并且提高的效率可以使 ARM 內(nèi)核受益。
(3)指針
8051 設備不像 ARM 設備那樣有統(tǒng)一的內(nèi)存映射,但它們對訪問代碼(閃存)、IDATA(內(nèi)部 RAM)和 XDATA(外部 RAM)有不同的指令。為了生成好的代碼,指向 8051 代碼的指針指示它指向的空間。然而,在某些情況下,可以使用泛型指針指向任意空間,但這種類型的指針訪問效率低下。例如,將指針指向緩沖區(qū)并將數(shù)據(jù)從該緩沖區(qū)輸出到 UART 的函數(shù)。如果指針是 XDATA 指針,XDATA 數(shù)組可以發(fā)送到 UART,但需要先將代碼空間中的數(shù)組復制到 XDATA。通用指針可以指向代碼和 XDATA 空間,但它們速度較慢并且需要更多代碼才能訪問。
特定于領域的指示符在大多數(shù)情況下很有用,但通用指示符在編寫用途未知的可重用代碼時非常靈活。如果這在您的應用中很常見,則 8051 將失去其效率優(yōu)勢。
(4) 選擇并完成作品
我多次注意到計算傾向于選擇 ARM 而控制傾向于選擇 8051,但沒有應用程序只專注于計算或控制。您如何大致描述您的應用程序并計算其良好范圍?假設考慮一個應用程序,它不能明確地分配給8位MCU或32位類別。
該應用程序不需要所有可用的 MIPS,并且需要優(yōu)化成本,因此代碼空間比執(zhí)行速度更重要。成本比應用程序的速度更重要這一事實使 8051 內(nèi)核在一般代碼情況下略有優(yōu)勢。此外,8051內(nèi)核在控制代碼方面也有一定的優(yōu)勢。ARM 內(nèi)核主導32位計算,但許多應用程序并未考慮到這一點。考慮到所有這些因素,8051 內(nèi)核是這個特定應用的不錯選擇。
假設應用程序更關心執(zhí)行速度而不是成本,則 ARM 內(nèi)核全面主導計算代碼,只需進行少量更改,通用代碼就不會被任何架構所吸引。在這種情況下,控制代碼多于計算,但總體結果相當平衡。顯然,這個過程涉及很多評估,但是分解應用程序并評估每個組件的技術可以揭示哪些架構在哪些情況下具有顯著優(yōu)勢。
功耗
通過查看數(shù)據(jù)表,很容易根據(jù)功耗數(shù)據(jù)得出哪種 MCU 更好,某些類型的 MCU 具有出色的睡眠和活動模式電流性能,但這種評級非常具有誤導性,占空比(在每種功耗模式下花費的時間)始終主導功耗,除非這兩個設備具有相同的占空比,否則數(shù)據(jù)表中的當前規(guī)格毫無意義,適合您的應用需求的重要架構通常具有較低的功耗。
考慮一個系統(tǒng),該系統(tǒng)在喚醒設備后將 16 位 ADC 樣本添加到移動平均值,然后返回睡眠狀態(tài)并且在獲取下一個樣本之前不會再次喚醒。此任務涉及大量 16 位和32位計算。ARM 設備可以比 8051 設備更快地執(zhí)行計算和返回睡眠狀態(tài),因此 8051 具有更好的睡眠和活動模式電流,但消耗更少的系統(tǒng)功率。當然,如果您正在執(zhí)行的任務更適合 8051 設備,則出于同樣的原因,MCU 的功耗對您的系統(tǒng)有利。
8位MCU還是32位?怎么決定呢!
如果即使在考慮了所有這些變量之后,您仍然不確定哪種 MCU 架構是很好選擇怎么辦? 也就是說,兩者都是不錯的選擇,使用哪種架構并不重要。過去的經(jīng)驗和個人喜好即使不是直接的技術優(yōu)勢,也在決定 MCU 架構方面發(fā)揮著重要作用。
此外,您還可以利用這個機會評估潛在的未來項目,如果您未來的大部分項目更適合ARM設備,請選擇ARM,如果未來的項目更注重降低成本和尺寸。