從事計(jì)算機(jī)和或電子行業(yè)相關(guān)領(lǐng)域工作的朋友,一般都聽說過單片機(jī)和嵌入式。但是要問單片機(jī)和嵌入式兩者之間有什么聯(lián)系,大多數(shù)人都不能很好的解釋清楚。想要弄清楚嵌入式和單片機(jī)有什么聯(lián)系,首先就要弄明白什么是嵌入式,什么是單片機(jī)。
什么是嵌入式
按照歷史性、本質(zhì)性、普遍性要求,嵌入式系統(tǒng)應(yīng)定義為:“嵌入到對(duì)象體系中的專用計(jì)算機(jī)系統(tǒng)”。“嵌入性”、“專用性”與“計(jì)算機(jī)系統(tǒng)”是嵌入式系統(tǒng)的三個(gè)基本要素。對(duì)象系統(tǒng)則是指嵌入式系統(tǒng)所嵌入的宿主系統(tǒng)。
嵌入式系統(tǒng)是以應(yīng)用為中心,以現(xiàn)代計(jì)算機(jī)技術(shù)為基礎(chǔ),能根據(jù)用戶需求(功能、可靠性、成本、體積、功耗、環(huán)境等)靈活定制軟硬件模塊的特殊計(jì)算機(jī)系統(tǒng)。
面向應(yīng)用:強(qiáng)調(diào)嵌入式系統(tǒng)的目標(biāo)是滿足用戶的特定需求。對(duì)于大多數(shù)完整的嵌入式系統(tǒng)來說,用戶只要打開電源就可以直接使用其功能,不需要二次開發(fā),也不需要進(jìn)行少量的配置操作。
專用性:嵌入式系統(tǒng)的大部分應(yīng)用對(duì)可靠性和實(shí)時(shí)性要求較高,這決定了為特定應(yīng)用服務(wù)的專用系統(tǒng)是嵌入式系統(tǒng)的主流模式,并不強(qiáng)調(diào)系統(tǒng)的通用性和可擴(kuò)展性。這種特殊性通常導(dǎo)致嵌入式系統(tǒng)是軟件和硬件緊密集成的最終系統(tǒng),因?yàn)樗梢杂行У靥岣哒麄€(gè)系統(tǒng)的可靠性,降低成本,并使其有更好的用戶體驗(yàn)。
以現(xiàn)代計(jì)算機(jī)技術(shù)為核心:嵌入式系統(tǒng)最基本的支撐技術(shù),一般包括集成電路設(shè)計(jì)技術(shù)、系統(tǒng)結(jié)構(gòu)技術(shù)、傳感與檢測(cè)技術(shù)、嵌入式操作系統(tǒng)與實(shí)時(shí)操作系統(tǒng)技術(shù)、資源約束系統(tǒng)的高可靠性軟件開發(fā)技術(shù)、系統(tǒng)形式化規(guī)范與驗(yàn)證技術(shù)、通信技術(shù)、低功耗技術(shù)、信號(hào)處理和控制優(yōu)化技術(shù),圍繞計(jì)算機(jī)的基本原理,集成到特定的專用設(shè)備中,形成一個(gè)嵌入式系統(tǒng)。
軟件和硬件是可以量身定制的:嵌入式系統(tǒng)針對(duì)的應(yīng)用場(chǎng)景非常多,帶來的設(shè)計(jì)指標(biāo)要求(功能性能、可靠性、成本、功耗)非常不同,很難有一套解決方案來滿足現(xiàn)實(shí)中所有的系統(tǒng)需求。因此,根據(jù)不同的需求,靈活地裁剪軟硬件,構(gòu)建滿足需求的最終系統(tǒng),是嵌入式技術(shù)發(fā)展的必然技術(shù)路線。
什么是單片機(jī)?
單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。相當(dāng)于一個(gè)微型的計(jì)算機(jī),和計(jì)算機(jī)相比,單片機(jī)只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。
單片機(jī)也被稱為單片微控器,屬于一種集成式電路芯片。在單片機(jī)中主要包含CPU、只讀存儲(chǔ)器ROM和隨機(jī)存儲(chǔ)器RAM等,多樣化數(shù)據(jù)采集與控制系統(tǒng)能夠讓單片機(jī)完成各項(xiàng)復(fù)雜的運(yùn)算,無論是對(duì)運(yùn)算符號(hào)進(jìn)行控制,還是對(duì)系統(tǒng)下達(dá)運(yùn)算指令都能通過單片機(jī)完成。 由此可見,單片機(jī)憑借著強(qiáng)大的數(shù)據(jù)處理技術(shù)和計(jì)算功能可以在智能電子設(shè)備中充分應(yīng)用。簡(jiǎn)單地說,單片機(jī)就是一塊芯片,這塊芯片組成了一個(gè)系統(tǒng),通過集成電路技術(shù)的應(yīng)用,將數(shù)據(jù)運(yùn)算與處理能力集成到芯片中,實(shí)現(xiàn)對(duì)數(shù)據(jù)的高速化處理。
單片機(jī)是不是嵌入式?
那么單片機(jī)到底是不是嵌入式呢?簡(jiǎn)單來說:是。
因?yàn)楹芏嗲度胧疆a(chǎn)品中被嵌入的計(jì)算機(jī)系統(tǒng)就是單片機(jī),譬如空調(diào)中嵌入的控制板其實(shí)核心就是個(gè)單片機(jī)。實(shí)際上大部分家電產(chǎn)品中嵌入的計(jì)算機(jī)系統(tǒng)都是單片機(jī)。
因?yàn)閱纹瑱C(jī)足夠簡(jiǎn)單便宜而且夠用,所以使用單片機(jī)是最劃算最適合的。而單片機(jī)現(xiàn)在出貨量最大的領(lǐng)域也就是家電產(chǎn)品了,當(dāng)然未來IOT類的應(yīng)用會(huì)越來越多,會(huì)成為單片機(jī)的很大的增量市場(chǎng)。
嵌入式和單片機(jī)的區(qū)別
從上面的介紹來看,嵌入式系統(tǒng)是一個(gè)大類,而單片機(jī)是一個(gè)重要的子類。嵌入式系統(tǒng)就像一臺(tái)完整的計(jì)算機(jī),而單片機(jī)則更像是一臺(tái)沒有外設(shè)的計(jì)算機(jī)。過去的單片機(jī)包含的東西不多,兩者在硬件上的區(qū)別更加明顯。然而,隨著半導(dǎo)體技術(shù)的飛速發(fā)展,現(xiàn)在各種硬件功能都可以在單片機(jī)中完成。因此,嵌入式系統(tǒng)與單片機(jī)之間的硬件差異越來越小,分界線越來越模糊。
于是,人們傾向于在軟件上進(jìn)行區(qū)分。
從軟件上,行業(yè)里經(jīng)常把芯片中不帶MMU(memory management unit,內(nèi)存管理單元)從而不支持虛擬地址,只能裸奔或運(yùn)行RTOS(實(shí)時(shí)操作系統(tǒng),例如ucos、華為L(zhǎng)iteOS、RT-Thread、freertos等)的system,叫做單片機(jī)(如STM32、NXP LPC系列、NXP imxRT1052系列等)。
同時(shí),把芯片自帶MMU可以支持虛擬地址,能夠跑Linux、Vxworks、WinCE、Android這樣的“高級(jí)”操作系統(tǒng)的system,叫做嵌入式。
在某些情況下,微控制器本身足夠強(qiáng)大,可以用作嵌入式系統(tǒng)。它的成本較低,開發(fā)和維護(hù)相對(duì)容易,特別是對(duì)于更有針對(duì)性的應(yīng)用程序。嵌入式系統(tǒng)在理論上具有更強(qiáng)的性能和更廣泛的應(yīng)用,但其復(fù)雜性高,開發(fā)難度大。
單片機(jī)與嵌入式系統(tǒng)的聯(lián)系
根據(jù)IEEE的定義,嵌入式系統(tǒng)是用來控制或監(jiān)視機(jī)器、裝置或工廠等大規(guī)模系統(tǒng)的設(shè)備。 從定義我們可以看出,實(shí)際上以前的控制裝置、單片機(jī)系統(tǒng)應(yīng)該也屬于嵌入式系統(tǒng)的范疇。
我們可以這樣理解,嵌入式系統(tǒng)是一個(gè)大類,單片機(jī)是其中一個(gè)重要的子類。嵌入式系統(tǒng)顧名思義就是一個(gè)嵌入在其他系統(tǒng)中的系統(tǒng)。例如汽車系統(tǒng)中嵌入姿態(tài)控制系統(tǒng),就可以使汽車駕駛更安全,更有效;電源系統(tǒng)內(nèi)引入自動(dòng)控制系統(tǒng),能夠讓電源工作的更穩(wěn)定。這里的姿態(tài)控制系統(tǒng)和電源的自動(dòng)控制系統(tǒng)就屬于嵌入式系統(tǒng)。