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