單片機是不是嵌入式呢?
簡單來說是,因為很多嵌入式產(chǎn)品中被嵌入的計算機系統(tǒng)就是單片機,譬如空調(diào)中嵌入的控制板其實核心就是個單片機。實際上大部分家電產(chǎn)品中嵌入的計算機系統(tǒng)都是單片機。
因為單片機足夠簡單便宜而且夠用,所以使用單片機是最劃算最適合的。
而單片機現(xiàn)在出貨量的領(lǐng)域也就是家電產(chǎn)品了,當(dāng)然未來IOT類的應(yīng)用會越來越多,會成為單片機的很大的增量市場。
廣義和狹義的嵌入式
嵌入式這個概念實際上很泛化,現(xiàn)在講嵌入式這個詞的人,可能想表達的意思并不相同。咱們上面講的嵌入式的概念是嵌入式本來的定義,也就是所謂廣義上的嵌入式。
而狹義的嵌入式,其實是“嵌入式linux系統(tǒng)”的簡稱。
這種狹義的嵌入式最初指的是運行了linux系統(tǒng)的嵌入式計算機系統(tǒng)。后來也包括運行了和linux同級別的其他嵌入式系統(tǒng)(譬如WinCE、Vxworks、Android等)的計算機。
看過上面的介紹之后你就知道到底單片機是不是嵌入式了,其實這兩者之間的聯(lián)系有很深,總之,不管你是準備學(xué)習(xí)嵌入式或是單片機,都要自己想好了再做決定。
嵌入式和單片機的區(qū)別
說到這里,我們來看看,嵌入式和單片機的區(qū)別到底是什么。
從前文的介紹來看,嵌入式系統(tǒng)是一個大類,單片機是其中一個重要的子類。嵌式系統(tǒng)像是一個完整的計算機,而單片機更像是一個沒有外設(shè)的計算機。
以前單片機包括的東西并不算多,兩者的硬件區(qū)別較為明顯。
但是,隨著半導(dǎo)體技術(shù)的突飛猛進,現(xiàn)在各種硬件功能都能被做進單片機之中。所以,嵌入式系統(tǒng)和單片機之間的硬件區(qū)別越來越小,分界線也越來越模糊。
于是,人們傾向于在軟件上進行區(qū)分。
從軟件上,行業(yè)里經(jīng)常把芯片中不帶MMU(memory management unit,內(nèi)存管理單元)從而不支持虛擬地址,只能裸奔或運行RTOS(實時操作系統(tǒng),例如ucos、華為LiteOS、RT-Thread、freertos等)的system,叫做單片機(如STM32、NXP LPC系列、NXP imxRT1052系列等)。
同時,把芯片自帶MMU可以支持虛擬地址,能夠跑Linux、Vxworks、WinCE、Android這樣的“高級”操作系統(tǒng)的system,叫做嵌入式。
在某些時候,單片機本身已經(jīng)足夠強大,可以作為嵌入式系統(tǒng)使用。它的成本更低,開發(fā)和維護的難度相對較小,尤其是針對一些針對性更強的應(yīng)用。而嵌入式系統(tǒng)理論上性能更強,應(yīng)用更廣泛,但復(fù)雜度高,開發(fā)難度大。
為什么要學(xué)習(xí)嵌入式和單片機
今天我也只是給大家簡單地介紹了一下單片機和嵌入式以及他們之間的關(guān)系和區(qū)別,雖然嵌入式系統(tǒng)已經(jīng)有30多年的歷史,但其實一直隱藏在背后的,自從物聯(lián)網(wǎng)上升為國家戰(zhàn)略后,嵌入式系統(tǒng)也漸漸從后臺走到前臺。
嵌入式和單片機并不是純“硬件”類方向。如果你想學(xué)好嵌入式和單片機,只懂?dāng)?shù)字電路和微機接口這樣的硬件知識是不夠的,你更需要學(xué)習(xí)的,是匯編、C/C++語言、數(shù)據(jù)結(jié)構(gòu)和算法知識。擁有軟硬結(jié)合的能力,遠遠比單純掌握某種程序開發(fā)語言更有價值。
其次,嵌入式和單片機擁有廣泛的應(yīng)用場景,在各個領(lǐng)域都有項目需求和人才需求。而且我們國家現(xiàn)在正在大力發(fā)展芯片產(chǎn)業(yè),也會帶動嵌入式人才的,提升待遇。
隨著5G建設(shè)的深入,整個社會正在向“萬物互聯(lián)”的方向變革。
物聯(lián)網(wǎng)技術(shù)也將迎來前所未有的歷史機遇。嵌入式和單片機技術(shù)是物聯(lián)網(wǎng)技術(shù)的重要組成部分,也將進入快速發(fā)展的時代。
技術(shù)越難,過程越苦,越有利于構(gòu)建競爭壁壘。大學(xué)里很多同學(xué)都熱衷于學(xué)習(xí)各種編程語言,往往忽視了這一塊,可以說在嵌入式開發(fā)這一塊的人才我們國家還是比較欠缺的。因此,我覺得大家非常值得投入時間去學(xué)習(xí)嵌入式開發(fā)的技能。