MCU中的位越多越好嗎?這類似于問:內燃機(ICE)中的氣缸越多越好嗎?外設和其他功能很重要,而不僅僅是位(或bit)。對于MCU,總功耗、外圍設備的可用性、延遲需求和其他因素都很重要,而不僅僅是位數。
MCU無處不在。它們存在于手機、玩具、車輛、白色家電、可再生能源系統、物聯網(IoT)設備等等中。MCU對于控制從電機到閃爍LED的硬件功能至關重要。MCU的基本架構包括一個中央處理單元、一些存儲器和外圍功能(圖1)。MCU從傳感器、開關和其他設備獲取輸入,并按照預編程指令的規定控制外圍設備的功能,例如顯示器、執行器和電機的驅動器。根據所控制功能的復雜性和各種輸入所需的處理量,MCU有8位、16位和32位可供選擇。一般來說,位數越多,處理潛力越大。
“位”是“二進制數字”。在8位MCU中,數據以8位為一組存儲,稱為字節(或在某些情況下,八位字節)。一個8位內存寄存器可以存儲可能的28個值之一。根據所使用的整數表示,實際值的范圍會有所不同。例如,對于無符號二進制數,范圍是0到255(2^8減1),使用二進制補碼表示,范圍是-128(-1X2^7)到127(2^7–1)。雖然8位MCU中的數據總線是8位寬,但地址總線的寬度可能會有所不同。12到16位的地址總線寬度很常見。例如,一條16位寬的地址總線會產生65536(2^16)個字節(稱為64KB)。但這些分類只是開始暗示特定8位MCU的實際功能(圖2)。
8位MCU用途廣泛;它們提供簡單的編程、能源效率和小封裝尺寸(有些只有六個引腳)。但這些MCU通常并非設計用于實現網絡和通信功能。最常見的網絡協議和通信軟件堆棧是16位或32位。某些8位設備可以使用通信外設,但16位和32位MCU通常是更有效的選擇。盡管如此,8位MCU通常用于各種控制、傳感和接口應用。
一、32位更強大
雖然8位MCU用途廣泛,但它們的性能同樣受到限制。當8位不夠用時,設計人員可以求助于32位MCU,它可以帶來相當大的性能沖擊。32位MCU的應用范圍很廣,它們可以支持高端代數運算和浮點數學運算。雖然8位MCU通常僅限于數MHz的處理速度,但32位單元的時鐘速率可達到GHz范圍,盡管數百MHz單元更為常見。
提高性能的同時也增加了32位MCU的編程復雜性,包括多個狀態寄存器、復雜的中斷管理、多層固件執行權限等。這是32位單元如此強大的部分原因。它們可以為需要大量數據處理的應用程序快速處理數千個復雜的計算,例如圖像處理或高速系統的實時控制。此外,32位MCU通常需要更大的內存地址空間來緩沖高帶寬數據流。
通常與32位MCU相關的更高時鐘速度也會導致能耗增加。一般來說,32位MCU可以通過犧牲更高的能耗來支持更密集的計算。但是在8位和32位之間的選擇并不是那么簡單。例如,32位MCU可以比8位MCU更快地完成一系列計算,然后進入更長時間的睡眠模式。那么,32位MCU是不是更節能呢?這是可能的,但不一定是真的。8位MCU可以降低整體能耗,并有助于延長便攜式設備的電池壽命。選擇并不簡單,必須根據具體情況確定最佳能耗解決方案。
二、介于中間MCU
回到ICE的類比,在8bit(8位)和32bit(32位)之間有一個中間地帶;通常,16bit(16位)設計可以提供恰到好處的效率和性能組合。8位MCU的性能本質上是有限的,只能通過添加外設在有限的范圍內提高。使用32位MCU的系統可提供更高的性能,但與替代解決方案相比,可能會過大并消耗更多功率。
這就是16位MCU的用武之地,它們可以結合8位單元的簡單性,同時提供增強的性能而不會造成過多的功率損失。特別是在不需要大量多線程和適度內存需求的應用中,16位MCU可以提供最佳的中間解決方案(圖3)。
外圍設備可能是關鍵。一些16位MCU具有數學協MCU,支持密集的數學計算,類似于一些32位單元在相同的時鐘速度下。而且,有許多支持16位MCU的通信堆棧。例如,如果實施正確,以太網、控制器局域網(CAN)、通用串行總線(USB)和Zigbee都是可以在16位MCU上高效運行的通信協議。與許多32位解決方案相比,使用16位MCU可以提供更簡單的電路板實現。
三、MCU外設
外設的可用性及其駐留位置可能是推動選擇8位、16位或32位的重要因素??梢赃x擇向8位MCU添加外部通信外設。但是,添加外圍芯片通??梢韵褂?位MCU的成本效益。使用已經集成了通信功能的32位單元會更便宜。向上擴展會發現32位MCU通常包含更多功能,并且可以比8位和16位設備更有效地處理多個外圍功能。
涉及更大數量和快速計算的應用程序受益于16位和32位MCU的使用??梢詮?6位或32位MCU受益的示例包括FFT計算、高質量音頻或視頻、高分辨率圖像處理和各種邊緣計算應用。此外,機器學習和人工智能實現通常需要32位,通常帶有特定于應用程序的加速器。
另一方面,處理來自傳感器或其他來源的模擬信號不一定受益于使用32位或16位MCU。8位MCU可以包括支持8位、10位、12位甚至16位速率的內置模數轉換器(ADC)。
8位MCU可以支持一些加密功能以提高安全性。但這些功能通常是在硬件中實現的,這會增加成本或軟件,從而增加了相對低功耗MCU的負擔。如果更高級別的安全功能很重要,那么使用16位或32位MCU可能是明智的。
四、哪個MCU更好?
那么,比特越多越好嗎?不,不一定。這是一個復雜的決策過程(圖4)。成功的設計確定了以最具成本效益的方式提供所需性能的MCU架構。對于電池供電的設備,應選擇最節能的方式。
確定最佳MCU不一定是一個簡單的問題。有時,這不僅僅是關于當今的性能要求;隨著時間的推移,可能需要提供具有增長潛力的解決方案來處理更具挑戰性的應用需求。例如,安全需求可以不斷發展。適應未來對新的或增加的安全功能的需求的能力可能是一個重要的應用考慮因素。
如果特定應用需要大量隨機存取存儲器(RAM),與8位甚至16位設備相比,使用32位MCU通常會提供更多的RAM。在比較各種MCU替代方案時,延遲是另一個需要考慮的因素。使用8位、16位或32位MCU可能“同樣出色地”執行某些功能。但是,如果應用程序需要低延遲,則可能需要具有更快時鐘速率的16位或32位MCU的速度。
以上就是英銳恩單片機開發工程師分享的“8位MCU、16位MCU和32位MCU?位越多越好嗎?”。英銳恩專注單片機應用方案設計與開發,提供8位單片機、16位單片機、32位單片機。