8位MCU過(guò)時(shí)了嗎?不,我們對(duì)他有誤解
近年來(lái),隨著工藝與IP的逐漸成熟,32位的MCU增長(zhǎng)迅速,風(fēng)頭之勁乃至16位的MCU基本上被跳過(guò)了?,F(xiàn)在說(shuō)嵌入式MCU,要么就是8位,要么就是32位,16位的MCU產(chǎn)品型號(hào)屈指可數(shù)。
本文引用地址:http://2s4d.com/article/202411/464777.htm那么8位的MCU的情形又如何,很多嵌入式工程師都有一些誤解,下面來(lái)簡(jiǎn)單分析下。
一、8位MCU正在被淘汰
這是最常見(jiàn)的誤解,先說(shuō)事實(shí),根據(jù)最新的Gartner的市場(chǎng)報(bào)告,8位的市場(chǎng)營(yíng)收額和增長(zhǎng)額跟32位的相比都僅僅差幾個(gè)百分點(diǎn)??紤]到8位的單個(gè)芯片比32位芯片要便宜很多的事實(shí),8位的出貨量其實(shí)遠(yuǎn)高于32位的。打個(gè)直觀的比方,現(xiàn)在我們有了高鐵,是不是所有傳統(tǒng)的普快、特快火車都要立即淘汰呢?顯然事實(shí)并非如此,至于原因就太多了?,F(xiàn)實(shí)情況就是8位 MCU曾經(jīng)的應(yīng)用領(lǐng)域并不能立即用32位的MCU直接替代。
二、8位處理器缺乏創(chuàng)新
不少人會(huì)認(rèn)為既然現(xiàn)在市場(chǎng)的寵兒是32位的MCU,廠商們是不是都沒(méi)有投入研發(fā)資源在8位產(chǎn)品上了。這么想的人可能一想到8位的MCU,腦海中會(huì)浮現(xiàn)40DIP的“經(jīng)典8051”的形象。事實(shí)上芯片廠商們并沒(méi)有停止創(chuàng)新。比如CIP-51內(nèi)核因?yàn)椴捎昧艘粋€(gè)時(shí)鐘周期等同于一個(gè)指令周期的設(shè)計(jì),瞬間將同頻率的8051性能提高了12倍。國(guó)內(nèi)的一些半導(dǎo)體廠商也有基于8051或其他8位內(nèi)核的創(chuàng)新。
三、8位處理器難以使用C/C++語(yǔ)言編程
如果你了解Arduino的設(shè)計(jì)原理,這個(gè)誤解就不攻自破。當(dāng)然坦白講,8位的MCU使用高級(jí)語(yǔ)言編程確實(shí)比32位的MCU要困難些,主要障礙就是內(nèi)存地址的不統(tǒng)一。比如8051內(nèi)核的內(nèi)存地址就分為CODE、data、sfr、idata和xdata。如果涉及到banking就更復(fù)雜了。8位的PIC還有硬件Stack這樣更加“非主流”的設(shè)計(jì),但是這些障礙都可以通過(guò)工具的優(yōu)化來(lái)緩解。
四、8位處理器專為簡(jiǎn)單應(yīng)用而生
這個(gè)觀點(diǎn)倒是有幾分真實(shí),但是嵌入式應(yīng)用本身就是簡(jiǎn)單應(yīng)用居多。嵌入式系統(tǒng)應(yīng)用的本身特點(diǎn)決定了8位依然有很多用武之地。外設(shè)和編譯器的進(jìn)化將慢慢拓展8位處理器的應(yīng)用范疇。
五、8位處理器不能勝任IoT應(yīng)用需求
IoT應(yīng)用不是一個(gè)單獨(dú)的應(yīng)用,而是一個(gè)復(fù)合應(yīng)用。智能手表、智能音箱、主控制器、網(wǎng)關(guān)這種當(dāng)然需要復(fù)雜的處理器來(lái)實(shí)現(xiàn)。但是IoT應(yīng)用還包含大量的傳感器節(jié)點(diǎn)、執(zhí)行節(jié)點(diǎn)和轉(zhuǎn)換節(jié)點(diǎn)。這種節(jié)點(diǎn)用低功耗的8位處理器來(lái)實(shí)現(xiàn)更加適合。
六、8位處理器響應(yīng)慢
這個(gè)就是完全的誤解了。典型的嵌入式應(yīng)用中,響應(yīng)速度主要跟中斷響應(yīng)和喚醒延遲相關(guān)。8位處理器有天然的優(yōu)勢(shì)(地址轉(zhuǎn)換工作量小、IP單元實(shí)現(xiàn)門數(shù)少),至少不輸于32位的處理器。
七、8位處理器的能效低于32位處理器
曾經(jīng)看過(guò)ARM公司的權(quán)威工程師寫的一本書(shū),書(shū)中觀點(diǎn)是32位處理器的能效比高于8位的MCU,理由是32位處理器能快速處理完任務(wù),休眠時(shí)間的比例更大,但是這個(gè)結(jié)論包含一個(gè)假設(shè),就是任務(wù)有一定復(fù)雜度。
如果任務(wù)本身非常簡(jiǎn)單,喚醒過(guò)程的功耗也很大,那么這個(gè)假設(shè)不成立。針對(duì)不同應(yīng)用場(chǎng)景,不能簡(jiǎn)單說(shuō)8位、32位哪個(gè)能效比更高。至少在非常簡(jiǎn)單的應(yīng)用中,8位的能效比要高。如果再加上單獨(dú)響應(yīng),無(wú)需CPU干預(yù)的一些任務(wù),8位的能效比甚至能高出很多。
八、相同價(jià)格的32位處理器功能遠(yuǎn)強(qiáng)于8位處理器
這個(gè)也有一定程度的可信度,但是不要忘記有相當(dāng)大的一部分應(yīng)用使用8位的MCU就已足夠,在這種情況下,非要購(gòu)買平均價(jià)格高一點(diǎn)的32位 MCU,成本就會(huì)上升。對(duì)于很多基本上標(biāo)準(zhǔn)化了的嵌入式產(chǎn)品來(lái)說(shuō),8位MCU還是具有一定的成本優(yōu)勢(shì)的。
九、8位處理器設(shè)計(jì)的應(yīng)用不能適應(yīng)未來(lái)變化
這是個(gè)思維角度問(wèn)題,作為嵌入式程序員,更應(yīng)該考慮當(dāng)前的任務(wù)。不管是什么類型的MCU,如果產(chǎn)品形態(tài)變化了或者需求本身變化了,就要重新設(shè)計(jì)。未來(lái)誰(shuí)都看不清,何必考慮那么多沒(méi)有實(shí)際意義的前瞻。
十、8位處理器開(kāi)發(fā)工作更繁重且沒(méi)有升級(jí)路徑
32位處理器的處理更加以軟件為中心,可以做更多的代碼復(fù)用。而8位處理器更多地利用硬件外設(shè)來(lái)完成任務(wù)。綜合而言,沒(méi)有絕對(duì)的差別。
只要是嵌入式處理器,升級(jí)路徑都不大明確。如果你采用既有8位,又有32位的產(chǎn)品的廠家,你會(huì)發(fā)現(xiàn)很多外設(shè)都很相似??紤]到現(xiàn)在圖形化配置外設(shè)的趨勢(shì),升級(jí)路徑逐漸變得不那么重要,反正都是圖形化或者腳本化來(lái)生成基礎(chǔ)驅(qū)動(dòng)代碼。
評(píng)論