8位、16位和32位的 mcu,更多的位是更好的嗎?

單片機(jī)中的比特?cái)?shù)越多越好嗎?這就好比問(wèn): 在內(nèi)燃機(jī)里,更多的汽缸是不是更好?外圍設(shè)備和其他功能很重要,而不僅僅是位(或圓柱)。例如,在20世紀(jì)80年代,沃爾沃推出了一款配備 v4渦輪增壓發(fā)動(dòng)機(jī)的旅行車,它的離線速度比配備更大的 v8發(fā)動(dòng)機(jī)的雪佛蘭科爾維特要快。當(dāng)然,一旦 v8發(fā)動(dòng)機(jī)在100碼后發(fā)動(dòng)起來(lái),旅行車就完蛋了。但是最初的一百碼為沃爾沃的廣告提供了一個(gè)很好的視覺(jué)效果。對(duì)于 mcu 來(lái)說(shuō),總功耗、外圍設(shè)備的可用性、延遲需求和其他因素都很重要,而不僅僅是位的數(shù)量。
微控制器無(wú)處不在。它們存在于手機(jī)、玩具、汽車、白色家電、可再生能源系統(tǒng)、物聯(lián)網(wǎng)設(shè)備等等。微控制器是控制從馬達(dá)到發(fā)光二極管等硬件功能所必不可少的。Mcu 的基本體系結(jié)構(gòu)包括一個(gè)中央處理單元、一些存儲(chǔ)器和外圍功能(圖1)。單片機(jī)從傳感器、開(kāi)關(guān)和其他設(shè)備獲取輸入,并按照預(yù)編程指令控制外圍設(shè)備的功能,如顯示器驅(qū)動(dòng)器、執(zhí)行器和電機(jī)。根據(jù)所控制的功能的復(fù)雜性和各種輸入所需的處理量,mcu 有8位、16位和32位。一般來(lái)說(shuō),比特越多,處理的潛力就越大。

圖1: mcu 由三個(gè)基本單元組成,中央處理器(CPU)、存儲(chǔ)器和外圍功能
“ bit”是“二進(jìn)制數(shù)字”在一個(gè)8位單片機(jī)中,數(shù)據(jù)以8位的形式存儲(chǔ),稱為字節(jié)(在某些情況下,稱為八位元)。一個(gè)8位內(nèi)存寄存器可以存儲(chǔ)28個(gè)可能值中的一個(gè)。根據(jù)所使用的整數(shù)表示形式,實(shí)際值的范圍不同。例如,對(duì)于無(wú)符號(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)。但是這些分類只是開(kāi)始暗示特定的8位 mcu 的實(shí)際功能(圖2)。

圖2:8位處理器可以提供廣泛的性能能力
8位 mcu 是多功能的; 它們提供簡(jiǎn)單的編程、能源效率和小型封裝尺寸(有些只有六個(gè)引腳)。但是這些微控制器通常不是用來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)和通信功能的。最常見(jiàn)的網(wǎng)絡(luò)協(xié)議和通信軟件堆棧是16位或32位。通信外圍設(shè)備可用于一些8位設(shè)備,但16位和32位 mcu 往往是更有效的選擇。盡管如此,8位 mcu 通常用于各種控制、傳感和接口應(yīng)用程序。
32位功耗更高
雖然8位處理器是通用的,但它們的性能也同樣有限。當(dāng)8位不足時(shí),設(shè)計(jì)人員可以使用32位的 mcu,它可以帶來(lái)相當(dāng)大的性能沖擊。32位 mcu 被廣泛應(yīng)用,它們可以支持高端代數(shù)運(yùn)算和浮點(diǎn)數(shù)學(xué)。雖然8位 mcu 通常被限制在幾兆赫茲的處理速度,但是32位單元可用,時(shí)鐘頻率在 GHz 范圍內(nèi),盡管幾百兆赫茲單元更為常見(jiàn)。
提高性能的代價(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)致能量消耗的增加。一般來(lái)說(shuō),32位 mcu 可以通過(guò)交換更高的能量消耗來(lái)支持更高強(qiáng)度的計(jì)算。但是在8位和32位之間的選擇并沒(méi)有那么簡(jiǎn)單。例如,32位單片機(jī)可以比8位單片機(jī)更快地完成一系列計(jì)算,然后進(jìn)入睡眠模式的時(shí)間更長(zhǎng)。那么,32位 MCU 是否更節(jié)能呢?這是可能的,但不一定是真的。一個(gè)8位單片機(jī)可以有較低的總體能源消耗和有助于更長(zhǎng)的電池壽命在便攜式設(shè)備。選擇并不簡(jiǎn)單,最佳能源消耗解決方案必須根據(jù)具體情況確定。
這里有一個(gè)中間地帶
回到 ICE 的類比,在4個(gè)圓柱體(8位)和8個(gè)圓柱體(32位)之間有一個(gè)中間地帶; 通常,6個(gè)圓柱體(16位)的設(shè)計(jì)可以提供正確的效率和性能組合。8位 mcu 的性能本質(zhì)上是有限的,只能通過(guò)添加外圍設(shè)備在一定范圍內(nèi)進(jìn)行改進(jìn)。使用32位 mcu 的系統(tǒng)可以提供更高的性能,但是與其他解決方案相比,可能會(huì)過(guò)度消耗并消耗更多的功耗。
這就是16位 mcu 的用武之地; 它們可以結(jié)合8位單元的簡(jiǎn)單性,同時(shí)提供增強(qiáng)的性能,而不需要過(guò)多的功耗。特別是在不需要大規(guī)模多線程和適度內(nèi)存需求的應(yīng)用程序中,16位 mcu 可以提供最佳的中間解決方案(圖3)。

圖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è)備
外圍設(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)用程序受益??梢允芤嬗?6位或32位 mcu 的示例包括 FFT 計(jì)算、高質(zhì)量音頻或視頻、高分辨率圖像處理和各種邊緣計(jì)算應(yīng)用程序。此外,機(jī)器學(xué)習(xí)和人工智能的實(shí)現(xiàn)通常需要32位,通常使用特定應(yīng)用程序的加速器。
在復(fù)雜度的另一端,處理來(lái)自傳感器或其他來(lái)源的模擬信號(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ī)可能是明智的。
總結(jié)-哪個(gè)單片機(jī)是最好的?
那么,更多的比特更好嗎?不,不一定。這是一個(gè)復(fù)雜的決策過(guò)程(圖4)。成功的設(shè)計(jì)確定了以最具成本效益的方式提供所需性能的單片機(jī)架構(gòu)。對(duì)于電池供電的設(shè)備,以最節(jié)能的方式。

圖4:8位與32位單片機(jī)的比較: 8位設(shè)備幾乎總是比32位設(shè)計(jì)的功耗要低,而8位單位的成本可以更低,但這并不總是正確的。選擇是復(fù)雜的,取決于許多特定于應(yīng)用程序的需求。在某些情況下,16位單片機(jī)可能是最佳選擇。
確定最佳的單片機(jī)不一定是一個(gè)簡(jiǎn)單的問(wèn)題要回答。有時(shí),這不僅僅是關(guān)于當(dāng)今的性能需求; 隨著時(shí)間的推移,可能需要交付一個(gè)具有增長(zhǎng)潛力的解決方案,以處理更具挑戰(zhàn)性的應(yīng)用程序需求。例如,安全需求可以不斷發(fā)展。適應(yīng)未來(lái)對(duì)新的或增加的安全功能的需求的能力可能是一個(gè)重要的應(yīng)用考慮因素。
如果一個(gè)特定的應(yīng)用程序需要大量的內(nèi)存,使用32位 MCU 通常會(huì)比8位甚至16位設(shè)備提供更多的內(nèi)存隨機(jī)存取存儲(chǔ)器。延遲是比較各種 MCU 選擇時(shí)需要考慮的另一個(gè)因素??梢允褂?位、16位或32位 MCU“同樣好地”執(zhí)行某些功能。但是,如果應(yīng)用程序需要較低的延遲,那么它可能需要16位或32位處理器的速度和更快的時(shí)鐘速率。