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