近年來,隨著工藝與IP的逐漸成熟,32位的MCU增長迅速,風頭之勁乃至16位的MCU基本上被跳過了。現在說嵌入式MCU,要么就是8位,要么就是32位,16位的MCU產品型號屈指可數。
那么8位的MCU的情形又如何,很多嵌入式工程師都有一些誤解,下面來簡單分析下。
01
8位MCU正在被淘汰
這是最常見的誤解,先說事實,根據最新的Gartner的市場報告,8位的市場營收額和增長額跟32位的相比都僅僅差幾個百分點??紤]到8位的單個芯片比32位芯片要便宜很多的事實,8位的出貨量其實遠高于32位的。
打個直觀的比方,現在我們有了高鐵,是不是所有傳統的普快、特快火車都要立即淘汰呢?顯然事實并非如此,至于原因就太多了?,F實情況就是8位 MCU曾經的應用領域并不能立即用32位的MCU直接替代。
02
8位處理器缺乏創(chuàng)新
不少人會認為既然現在市場的寵兒是32位的MCU,廠商們是不是都沒有投入研發(fā)資源在8位產品上了。
這么想的人可能一想到8位的MCU,腦海中會浮現40DIP的“經典8051”的形象,事實上芯片廠商們并沒有停止創(chuàng)新。
比如CIP-51內核因為采用了一個時鐘周期等同于一個指令周期的設計,瞬間將同頻率的8051性能提高了12倍。國內的一些半導體廠商也有基于8051或其他8位內核的創(chuàng)新。
03
8位處理器難以使用C/C++語言編程
如果你了解Arduino的設計原理,這個誤解就不攻自破。
當然坦白講,8位的MCU使用高級語言編程確實比32位的MCU要困難些,主要障礙就是內存地址的不統一。
比如8051內核的內存地址就分為CODE、data、sfr、idata和xdata。如果涉及到banking就更復雜了,8位的PIC還有硬件Stack這樣更加“非主流”的設計,但是這些障礙都可以通過工具的優(yōu)化來緩解。
04
8位處理器專為簡單應用而生
這個觀點倒是有幾分真實,但是嵌入式應用本身就是簡單應用居多。嵌入式系統應用的本身特點決定了8位依然有很多用武之地。外設和編譯器的進化將慢慢拓展8位處理器的應用范疇。
05
8位處理器不能勝任IoT應用需求
IoT應用不是一個單獨的應用,而是一個復合應用。
智能手表、智能音箱、主控制器、網關這種當然需要復雜的處理器來實現。
但是IoT應用還包含大量的傳感器節(jié)點、執(zhí)行節(jié)點和轉換節(jié)點。
這種節(jié)點用低功耗的8位處理器來實現更加適合。
06
8位處理器響應慢
這個就是完全的誤解了。典型的嵌入式應用中,響應速度主要跟中斷響應和喚醒延遲相關。8位處理器有天然的優(yōu)勢(地址轉換工作量小、IP單元實現門數少),不輸于32位的處理器。
07
8位處理器的能效低于32位處理器
曾經看過ARM公司的權威工程師寫的一本書,書中觀點是32位處理器的能效比高于8位的MCU,理由是32位處理器能快速處理完任務,休眠時間的比例更大。
但是這個結論包含一個假設,就是任務有一定復雜度。
如果任務本身非常簡單,喚醒過程的功耗也很大,那么這個假設不成立。
針對不同應用場景,不能簡單說8位、32位哪個能效比更高。至少非常簡單的應用中,8位的能效比要高。如果再加上單獨響應,無需CPU干預的一些任務,8位的能效比甚至能高出很多。
08
相同價格的32位處理器功能遠強于8位處理器
這個也有一定程度的可信度,但是不要忘記有相當大的一部分應用使用8位的MCU就已足夠在這種情況下,非要購買平均價格高一點的32位 MCU,成本就會上升。對于很多基本上標準化了的嵌入式產品來說,8位MCU還是具有一定的成本優(yōu)勢的。
09
8位處理器設計的應用不能適應未來變化
這是個思維角度問題,作為嵌入式程序員,更應該考慮當前的任務。不管是什么類型的MCU,如果產品形態(tài)變化了或者需求本身變化了,就要重新設計。未來誰都看不清,何必考慮那么多沒有實際意義的前瞻。
10
8位處理器開發(fā)工作更繁重且沒有升級路徑
32位處理器的處理更加以軟件為中心,可以做更多的代碼復用。
而8位處理器更多地利用硬件外設來完成任務。
綜合而言,沒有絕對的差別。
只要是嵌入式處理器,升級路徑都不大明確。
如果你采用既有8位,又有32位的產品的廠家,你會發(fā)現很多外設都很相似。
考慮到現在圖形化配置外設的趨勢,升級路徑逐漸變得不那么重要,反正都是圖形化或者腳本化來生成基礎驅動代碼。
?嵌入式工程師是指專門從事嵌入式系統設計、開發(fā)和維護的專業(yè)人員?。嵌入式系統是將微處理器(CPU)和其他硬件器件封裝在一個芯片或板卡上的計算機系統,廣泛應用于手機、電視、空調、工業(yè)控制、醫(yī)療設備、航天航空等領域。?
職責和技能要求
嵌入式工程師的主要職責包括:
?硬件接口設計?:根據產品需求,選擇合適的微控制器(MCU)、傳感器、執(zhí)行器等硬件組件,并設計它們之間的接口電路。
?軟件開發(fā)?:編寫嵌入式系統的底層驅動程序、操作系統(RTOS)或中間件,以及上層應用程序,確保系統高效穩(wěn)定運行。
?系統調試與優(yōu)化?:通過仿真器、調試器等工具,對系統進行調試,解決硬件沖突、軟件bug等問題,并對性能進行優(yōu)化。
?跨學科協作?:與機械工程師、電子工程師、產品經理等多部門緊密合作,確保產品從設計到量產的每一個環(huán)節(jié)都能滿足用戶需求。
嵌入式工程師需要具備以下技能:
?編程能力?:熟練掌握C/C++、匯編語言等編程語言。
?硬件知識?:熟悉模擬電子技術、處理器體系結構等硬件知識。
?跨學科能力?:具備電子電路、信號處理、通信協議等多領域知識。
?問題解決能力?:在有限的資源條件下,快速定位并解決問題。
?持續(xù)學習?:保持對新技術、新工具的敏感度,不斷學習以適應行業(yè)發(fā)展的需求。
職業(yè)發(fā)展前景
隨著物聯網(IoT)、人工智能(AI)、5G等技術的快速發(fā)展,嵌入式系統的應用領域將更加廣泛,對嵌入式工程師的需求也將持續(xù)增長。未來,嵌入式工程師將在智能家居、智慧城市、工業(yè)自動化、醫(yī)療健康、汽車電子等多個領域發(fā)揮重要作用,推動社會向更加智能化、自動化的方向發(fā)展。