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