我們經(jīng)常說51,STM32,到底是什么?嵌入式又是什么?
首先,讓我們看看什么是嵌入式
嵌入式,一般指嵌入式系統(tǒng),英文叫:embedded system。嵌入式開發(fā)實際上就是嵌入式系統(tǒng)的開發(fā)。
IEEE(電氣和電子工程師協(xié)會)對嵌入式系統(tǒng)的定義是:“用于控制、監(jiān)視或協(xié)助機器和設(shè)備運行的設(shè)備”。
國內(nèi)的學(xué)術(shù)定義更具體一些,也更容易理解。
嵌入式系統(tǒng),以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可切割,適用于對功能、可靠性、成本、體積、功耗等有嚴(yán)格要求的特殊計算機系統(tǒng)。
以應(yīng)用為中心表明嵌入式系統(tǒng)具有明確的實際用途。以計算機技術(shù)為基礎(chǔ),表明它實際上是一種特殊的計算機。硬件和軟件都可以切割,說明它具有很強的靈活性和可定制性。
特殊計算機系統(tǒng),“特殊”對應(yīng)“一般”。我們經(jīng)常使用個人PC、筆記本電腦、數(shù)據(jù)中心服務(wù)器,可以用于多種用途,是“通用計算機系統(tǒng)”。
嵌入式系統(tǒng)的具體“專用”方向是什么?
以下是一些示例:
個人通信和娛樂系統(tǒng):手機、數(shù)碼相機、音樂播放器、可穿戴電子設(shè)備、PSP 游戲機
家電:數(shù)字電視、掃地機、智能家電
辦公自動化:打印機、復(fù)印機、傳真機
醫(yī)療電子產(chǎn)品:生化分析儀、血液分析儀、CT
網(wǎng)絡(luò)通訊產(chǎn)品:通訊類交換設(shè)備、網(wǎng)絡(luò)設(shè)備(交換機、路由器、網(wǎng)絡(luò)安全)
汽車電子產(chǎn)品:發(fā)動機控制、安全系統(tǒng)、汽車導(dǎo)航和娛樂系統(tǒng)
工控產(chǎn)品:工控機、交互終端(POS、ATM)、安防監(jiān)控、數(shù)據(jù)采集傳輸、儀器儀表
軍用和航空產(chǎn)品:無人機、雷達、作戰(zhàn)機器人
上述所有領(lǐng)域都使用嵌入式系統(tǒng)。這只是冰山一角。
可以說,嵌入式系統(tǒng)完全包圍著我們,無時無刻不在影響著我們的工作和生活。
嵌入式系統(tǒng),既然是計算機系統(tǒng),必然離不開硬件和軟件。
嵌入式系統(tǒng)的典型架構(gòu)如下:從硬件上看,嵌入式系統(tǒng)是以處理器(CPU)為核心,依靠總線(Bus)進行連接的多模塊系統(tǒng)。
上圖就是一個嵌入式系統(tǒng)板子有CPU,有RAM,有ROM、網(wǎng)卡、串口、電源等。可見嵌入式系統(tǒng)雖小,但五臟俱全。嵌入式系統(tǒng)的核心是嵌入式處理器。
嵌入式處理器一般分為以下幾種典型類型
嵌入式微控制器MCU(微控制單元)
嵌入式DSP處理器(數(shù)字信號處理器)
DSP處理器專用于信號處理,在系統(tǒng)結(jié)構(gòu)和指令算法上進行了專門設(shè)計。它廣泛用于數(shù)字濾波、FFT 和頻譜分析。典型代表是 TI (Texas Instruments) 的 TMS320C2000/C5000 系列。
嵌入式微處理器 MPU(微處理器單元)
MPU由通用處理器演變而來,具有高性能和豐富的外圍組件接口。典型代表有AM186/88、386EX、SC-400、PowerPC、MIPS、ARM系列等。
此外,還有嵌入式片上系統(tǒng)SoC(System on Chip)和可編程片上系統(tǒng)SoPC(System on a Programmable Chip)。我們的單片機屬于上述的第一個——MCU(嵌入式微控制器)。
單片機(微控制器)Microcontroller,英文全稱為Single-Chip Microcomputer。
它實際上是一個集成電路芯片,它是一種超大規(guī)模集成電路技術(shù),把CPU、RAM、ROM、輸入/輸出和中斷系統(tǒng)、定時器/計數(shù)器等功能都塞進一個硅片,變成一臺微型計算機。這么看來,單片機不就是嵌入式系統(tǒng)嗎?
術(shù)語“單片機”實際上是一個舊名稱。由于之前半導(dǎo)體技術(shù)不成熟,不同的功能無法做到一個芯片(Chip)中,所以會有多片機。現(xiàn)在半導(dǎo)體技術(shù)早就很先進了,所以沒有多片機。然而,“單片機”這個名稱一直沿用至今。
很多高校教師喜歡強調(diào)單片機姓“單”,除了指單片機只是一個硅芯片,更多的是指單片機的功能單一,就是完成計算、邏輯控制、通信等功能的單個模塊。即使它的性能再強大,功能依然單一。
單片機技術(shù)誕生于 1970 年代后期,早期是 4 位,后來發(fā)展為 8 位、16 位和 32 位。它在真正崛起是在 8 位時代。8位單片機功能非常強大,廣泛應(yīng)用于工控、儀器儀表、家電、汽車等領(lǐng)域。
我們在研究單片機的時候,經(jīng)常會聽到兩個詞——51單片機,STM32。下面介紹一下它們的真正含義。
51單片機,其實就是一系列單片機的統(tǒng)稱。該系列單片機,兼容Intel 8031指令系統(tǒng)。它們的鼻祖,英特爾(Intel) 8004單片機。
請注意,51系列單片機并非都是英特爾的產(chǎn)品。包括ATMEL(愛德梅爾)、飛利浦(Philips)、華邦、達拉斯(Dallas)、西門子(Siemens)、STC(國產(chǎn)宏芯片)等公司,也有不少產(chǎn)品屬于51單片機系列。
長期以來,51單片機曾經(jīng)是市場上最主流、應(yīng)用最廣泛的單片機,占據(jù)了很大的市場份額。
不得不承認51單片機其實現(xiàn)在沒有技術(shù)優(yōu)勢,是很老的技術(shù)了。之所以能如此堅韌,除了曾經(jīng)的人氣之外,就是英特爾徹底開放了51核的版權(quán)。因此,無論任何單位或個人,都可以使用51單片機,不用擔(dān)心付費,不用擔(dān)心版權(quán)風(fēng)險。
此外,51單片機擁有強大的庫存基礎(chǔ)和大眾基礎(chǔ)。很多老項目都在使用51單片機,出于成本考慮,有時只能繼續(xù)沿用51單片機技術(shù)升級。而且,很多老一輩的工程師都精通51單片機開發(fā)技術(shù)。因此,51單片機的生命力得以延續(xù)。
然后看STM32
STM32,是意法半導(dǎo)體公司推出的基于ARM Cortex-M內(nèi)核的通用微控制器。
意法半導(dǎo)體是全球最大的半導(dǎo)體公司之一,于1987年6月由意大利SGS微電子和法國湯姆森半導(dǎo)體合并而成。
ARM是目前全球最強大的芯片設(shè)計公司之一,利用手機芯片的快速發(fā)展和物聯(lián)網(wǎng)市場份額的巨大上升,在微控制器領(lǐng)域,ARM的Cortex-M內(nèi)核具有壓倒性優(yōu)勢,已成為絕對主流。許多半導(dǎo)體公司已經(jīng)放棄了原來的架構(gòu),轉(zhuǎn)而使用ARM架構(gòu)的微控制器。STM32的硬件配置可以滿足大多數(shù)物聯(lián)網(wǎng)開發(fā)需求,開發(fā)工具及相關(guān)文檔齊全,已成為當(dāng)前微控制器學(xué)習(xí)的首選對象。
嵌入式和微控制器的區(qū)別
說到這,我們來看看,嵌入式和微控制器有什么區(qū)別。
從前面的介紹來看,嵌入式系統(tǒng)是一個大類,而微控制器(單片機)是重要的子類之一。嵌入式系統(tǒng)就像一臺完整的計算機,而微控制器更像是一臺沒有外圍設(shè)備的計算機。以往單片機包含的并不多,兩者的硬件差異比較明顯。但是,隨著半導(dǎo)體技術(shù)的飛速進步,現(xiàn)在各種硬件功能都可以做成單片機了。因此,嵌入式系統(tǒng)和微控制器的硬件差異越來越小,分界線越來越模糊。因此,人們傾向于在軟件中進行區(qū)分。
從軟件上來說,業(yè)界往往把芯片不帶MMU(內(nèi)存管理單元,memory management unit)因而不支持虛擬地址,只能運行裸機或RTOS(實時操作系統(tǒng),如ucos、Huawei LiteOS、RT -Thread、freertos等)系統(tǒng),稱為微控制器(如STM32、NXP LPC系列、NXP imxRT1052系列等)。
同時,芯片自帶的MMU可以支持虛擬地址,可以運行Linux、Vxworks、WinCE、Android等“高級”操作系統(tǒng),稱為嵌入式。
在某些時候,微控制器本身足夠強大,可以用作嵌入式系統(tǒng)。它的開發(fā)和維護成本更低,難度也相對較小,特別是對于一些更有針對性的應(yīng)用程序。另一方面,嵌入式系統(tǒng)在理論上更強大且應(yīng)用更廣泛,但更復(fù)雜且難以開發(fā)。
嵌入式和微控制器的學(xué)習(xí)價值
最后說一下嵌入式和單片機的學(xué)習(xí)價值,到底嵌入式和單片機沒必要學(xué)。
近年來,有一句話廣為流傳,那就是——“軟件為王”。人們普遍認為,軟件知識的價值遠大于硬件,而學(xué)習(xí)軟件,從事軟件方向的工作,會更容易找到工作,并且收入更高,更有前途。
嵌入式和單片機,常歸為“硬件”方向,被人們“嫌棄”。另外,嵌入式和單片機學(xué)習(xí)比較困難,學(xué)習(xí)周期長,需要很長的“磨難”,所以越來越多的人放棄了這條路。
我認為這個想法是不正確的。
首先,嵌入式和單片機不是純粹的“硬件”類方向。正如我之前所說,它們是軟件和硬件的緊密結(jié)合。如果要學(xué)習(xí)嵌入式和單片機,只知道數(shù)字電路和微機接口這樣的硬件知識是不夠的,還需要學(xué)習(xí)更多,就是匯編、C/C++語言、數(shù)據(jù)結(jié)構(gòu)和算法知識。
擁有軟硬件結(jié)合的能力,遠比簡單地掌握某種程序開發(fā)語言更有價值。
其次,嵌入式和微控制器應(yīng)用場景廣泛,各個領(lǐng)域都有項目需求和人才需求。據(jù)權(quán)威機構(gòu)統(tǒng)計,目前中國每年的嵌入式人才短缺高達50萬人。尤其是嵌入式軟件開發(fā)是未來幾年最熱門、最受歡迎的職業(yè)之一。10年經(jīng)驗的高級嵌入式工程師,年薪約30萬-50萬人民幣。而隨著5G建設(shè)的深入,全社會正朝著“萬物互聯(lián)”的方向邁進。物聯(lián)網(wǎng)技術(shù)也將迎來前所未有的歷史機遇,嵌入式人才待遇也會水漲船高。
因此,盡管學(xué)習(xí)過程會很艱難,但我仍然建議有抱負的年輕人專注于這條賽道。技術(shù)越難,過程越痛苦,越有利于建立競爭壁壘。后期可以進一步體現(xiàn)個人價值。
轉(zhuǎn)自:CSDN博主
原文鏈接:https://blog.csdn.net/m0_67034740/article/details/124103073