互聯(lián)網(wǎng)時代,MCU無處不在,它被應用于許多領域,比如移動電話、汽車、家電、玩具、物聯(lián)網(wǎng)設備等等。很多人都知道MCU有8位、16位和32位,一般來說,位數(shù)越多MCU處理性能越強。
圖① MCU由中央處理器(CPU)、存儲器和外圍功能組成
有的人會疑惑既然都已經有32位MCU了,8位及16位的MCU怎么還沒被淘汰?其實MCU并不是單一地看位數(shù)大小來決定它的好壞。首先我們需要先明白MCU中“位”的含義。“位”是一個二進制數(shù)字,在一個8位單片機中,數(shù)據(jù)以8位的形式存儲,稱為字節(jié)(在某些情況下,稱為八位元)。一個8位內存寄存器可以存儲28個可能值中的一個。根據(jù)所使用的整數(shù)表示形式,實際值的范圍不同。例如,對于無符號二進制數(shù),范圍是0到255(28減1) ,使用2的補碼表示,范圍是 -128(- 1 x27)到127(27-1)。雖然8位單片機中的數(shù)據(jù)總線是8位寬的,但是地址總線寬度可以不同。地址總線寬度通常為12位到16位。例如,16位寬地址總線的結果是直接可尋址內存空間為65,536(216)字節(jié)(稱為64kb)。但是這些分類只是開始暗示特定的8位 mcu 的實際功能(圖2)。
圖② 8位處理器可以提供廣泛的性能能力
8位MCU應用廣泛,但與16位MCU和32位MCU相比,性能有限。當8位不夠時,設計師可以向32位MCU求助,這可以帶來相當大的性能沖擊。它們可以支持高端代數(shù)操作和浮點數(shù)學操作。雖然8位MCU通常僅限于MHz的處理速度,但32位單元的時鐘速率可以達到GHz范圍,盡管數(shù)百個MHz單元更為常見。提高性能的代價是增加32位 mcu 的編程復雜性,包括多個狀態(tài)寄存器、復雜的中斷管理、多層固件執(zhí)行特權等等。這就是為什么32位單位如此強大的部分原因。他們可以快速處理數(shù)以千計的復雜計算,以滿足需要大量數(shù)據(jù)處理的應用,例如圖像處理或高速系統(tǒng)的實時控制。此外,32位處理器的較大內存地址空間往往需要緩沖高帶寬的數(shù)據(jù)流。通常與32位 mcu 相關的較高時鐘速度也會導致能量消耗的增加。一般來說,32位 mcu 可以通過交換更高的能量消耗來支持更高強度的計算。但是在8位和32位之間的選擇并沒有那么簡單。例如,32位單片機可以比8位單片機更快地完成一系列計算,然后進入睡眠模式的時間更長。那么,32位 mcu 是否更節(jié)能呢?這種可能性很大,但未必準確。8位mcu可以減少總能量消耗,幫助延長便攜式設備的電池壽命?;氐?ICE 的類比,在4個圓柱體(8位)和8個圓柱體(32位)之間有一個中間地帶,通常6個圓柱體(16位)的設計可以提供正確的效率和性能組合。8位 mcu 的性能本質上是有限的,只能通過添加外圍設備在一定范圍內進行改進。使用32位 mcu 的系統(tǒng)可以提供更高的性能,但是與其他解決方案相比,可能會過度消耗并消耗更多的功耗。這時候16位 mcu 就脫穎而出了,它們可以結合8位單元的簡單性,同時提供增強的性能,而不需要過多的功耗。特別是在不需要大規(guī)模多線程和適度內存需求的應用程序中,16位 mcu 可以提供最佳的中間解決方案(圖3)。
圖③:16位 mcu 與8位設備相比,配有專門的電機控制外圍設備、數(shù)字變流技術、低功耗電池供電設計、高級模擬集成和硬件安全性能提高。(圖片: 微芯片)
外圍設備可能是關鍵。一些16位 mcu 有數(shù)學協(xié)處理器,支持密集的數(shù)學計算,類似于在相同時鐘速度下的32位單元。此外,還有許多支持16位 mcu 的通信棧。例如,有了正確的實現(xiàn),以太網(wǎng)、控制器局域網(wǎng)路、通用串行總線(USB)和 Zigbee 等通信協(xié)議就可以在16位 mcu 上高效運行。與許多32位解決方案相比,使用16位 mcu 可以提供更簡單的電路板實現(xiàn)。外圍設備的可用性以及它們所在的位置可能是推動選擇8位、16位或32位的重要因素。向8位單片機添加外部通信外設也是一種選擇。但是,外圍芯片的加入往往會降低使用8位單片機的成本效益。使用一個集成了通信功能的32位單元可以節(jié)省成本。向上移動規(guī)模發(fā)現(xiàn)32位 mcu 通常包含更多的功能,并且能夠比8位和16位設備更有效地處理多個外圍功能。使用16位和32位 mcu 可以使計算量更大、速度更快的應用程序受益。可以受益于16位或32位 mcu 的示例包括 FFT 計算、高質量音頻或視頻、高分辨率圖像處理和各種邊緣計算應用程序。此外,機器學習和人工智能的實現(xiàn)通常需要32位,通常使用特定應用程序的加速器。在復雜度的另一端,處理來自傳感器或其他來源的模擬信號并不一定受益于使用32位或16位 mcu。8位 mcu 可以包括內置的模數(shù)轉換器(adc) ,支持8位、10位、12位甚至16位速率。8位 mcu 可用于支持一些加密功能,以提高安全性。但是這些功能通常是在硬件上實現(xiàn)的,這增加了成本,或者軟件增加了相對低功耗處理器的負擔。如果高級安全功能很重要,那么使用16位或32位單片機可能是明智的。所以說,選擇多少位 mcu 是個復雜的決策過程(圖4),它需要參考多種應用因素,選型需要根據(jù)具體情況才能確定最佳的能耗方案。
圖④ 8位與32位單片機的比較