凡是從事計算機或電子信息相關領域工作的童鞋,一定都聽說過嵌入式和單片機吧?
很多人應該知道,這兩個名詞和硬件系統有著非常密切的關系 。一聽到它們,就容易讓人聯想到插滿芯片和針腳的電路板:

文章插圖
但是,如果要問具體什么是嵌入式,什么是單片機,它們之間究竟有什么區別,我相信大部分人并不能解釋清楚 。
今天,小棗君就給大家做一個入門科普,揭秘上述問題的答案 。與此同時,我還會給大家介紹一下,我們經常聽說的51、STM32,究竟是什么 。
什么是嵌入式
首先,我們來看看什么是嵌入式 。
嵌入式,一般是指嵌入式系統,英文叫作:embedded system 。嵌入式開發,其實就是對嵌入式系統的開發 。
IEEE(美國電氣和電子工程師協會)對嵌入式系統的定義是:“用于控制、監視或者輔助操作機器和設備的裝置” 。
國內學術界的定義更為具體一些,也更容易理解:
嵌入式系統,是以應用為中心,以計算機技術為基礎,軟件硬件可裁剪,適用于對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統 。
以應用為中心,說明嵌入式系統是有明確實際用途的 。以計算機技術為基礎,說明它其實就是一種特殊的計算機 。軟硬件可裁剪,說明它有很強的靈活性和可定制能力 。
專用計算機系統,“專用”所對應的,就是“通用” 。我們常用的個人PC、筆記本電腦、數據中心服務器,可以用于多種用途,就是“通用計算機系統” 。
嵌入式系統究竟具體應用于哪些“專用”方向呢?
舉例如下:
個人通信與娛樂系統:手機、數碼相機、音樂播放器、可穿戴電子產品、PSP游戲機
家電類產品:數字電視、掃地機器人、智能家電
辦公自動化:打印機,復印機、傳真機
醫療電子類產品:生化分析儀、血液分析儀、CT
網絡通信類產品:通信類交換設備、網絡設備 (交換機、路由器、網絡安全)
汽車電子類產品:引擎控制、安全系統、汽車導航與娛樂系統
工業控制類產品:工控機、交互式終端 (POS、ATM)、安全監控、數據采集與傳輸、儀器儀表
軍事及航天類產品:無人機、雷達、作戰機器人

文章插圖
嵌入式系統的應用領域
上述這些領域,都使用了嵌入式系統 。這還只是冰山一角 。
可以說,嵌入式系統完完全全地包圍了我們,時刻影響著我們的工作和生活 。
嵌入式系統,既然是一個計算機系統,那么肯定離不開硬件和軟件 。
一個嵌入式系統的典型架構如下:

文章插圖
注意,最重要的就是嵌入式操作系統和嵌入式微處理器 。
從硬件角度來看,嵌入式系統就是以處理器(CPU)為核心,依靠總線(Bus)進行連接的多模塊系統:

文章插圖
和個人PC是一樣的方式
下面這張圖,就是一個嵌入式系統的實物樣例:

文章插圖
中間偏左上角,S3C2440,是CPU,中間是RAM,然后還有ROM、網卡、串口、電源等等 ??梢钥闯觯度胧较到y麻雀雖小,五臟俱全 。
什么是單片機
嵌入式系統的核心,就是嵌入式處理器 。嵌入式處理器一般分為以下幾種典型類型:
嵌入式微控制器MCU(Micro Control Unit)
MCU內部集成ROM/RAM、總線邏輯、定時/計數器、看門狗、I/O、串口、A/D、D/A、FLASH等 。典型代表是8051、8096、C8051F等 。
嵌入式DSP處理器(Digital Signal Processor)
DSP處理器專門用于信號處理,在系統結構和指令算法進行了特殊設計 。在數字濾波、FFT、頻譜分析中廣泛應用 。典型代表是TI(德州儀器)公司的TMS320C2000/C5000系列 。
嵌入式微處理器MPU(Micro Processor Unit)
MPU由通用處理器演變而來,具有較高的性能,擁有豐富的外圍部件接口 。典型代表是AM186/88、386EX、SC-400、PowerPC、MIPS、ARM系列等 。
此外,還有嵌入式片上系統SoC(System on Chip)和可編程片上系統SoPC(System on a Programmable Chip) 。
我們的單片機,就屬于上述的第一種——MCU(嵌入式微控制器) 。

文章插圖
我們來詳細介紹一下它 。
單片機,又稱為單片微控制器,英文叫Single-Chip Microcomputer 。
它其實就是一種集成電路芯片,是通過超大規模集成電路技術,將CPU、RAM、ROM、輸入輸出和中斷系統、定時器/計數器等功能,塞進一塊硅片上,變成一個超小型的計算機 。
這么說來,單片機不就是一個嵌入式系統?別急,我們往下看 。
“單片機”其實是一種古老的叫法 。以前半導體工藝技術不成熟,不同的功能無法做進一個芯片(Chip),所以會有多片機 ?,F在半導體技術早已非常發達,所以不存在多片機 。但是,“單片機”的叫法卻一直延用至今 。
很多高校老師喜歡強調單片機姓“單”,除了指單片機只是一個硅片之外,更多是指單片機的功能單一,它是完成運算、邏輯控制、通信等功能的單一模塊 。即便它性能再強大,功能依然是單一的 。
單片機技術從上世紀70年代末誕生,早期的時候是4位,后來發展為8位,16位,32位 。它真正崛起,是在8位時代 。8位單片機功能很強,被廣泛應用于工業控制、儀器儀表、家電汽車等領域 。
我們在研究單片機的時候,經常會聽到兩個詞——51單片機、STM32 。我來介紹一下它們究竟是什么 。
51單片機,其實就是一系列單片機的統稱 。該系列單片機,兼容Intel 8031指令系統 。它們的始祖,是Intel(英特爾)的8004單片機 。
注意,51單片機并不全是英特爾公司的產品 。包括ATMEL(艾德梅爾)、Philips(飛利浦)、華邦、Dallas(達拉斯)、Siemens(西門子)、STC(國產宏晶)等公司,也有很多產品屬于51單片機系列 。

文章插圖
ATMEL公司的51單片機,AT89C51

文章插圖
這是一個51單片機的開發板,中間那個芯片才是51單片機
51單片機曾經在很長時間里都是市面上最主流、應用最廣泛的單片機,占據大量的市場份額 。
51單片機其實放在現在毫無技術優勢,是一種很老的技術 。之所以它的生命力頑強,除了它曾經很流行之外,還有一個原因,就是英特爾公司徹底開放了51內核的版權 。
所以,無論任何單位或個人,都可以毫無顧忌地使用51單片機,不用付費,也不用擔心版權風險 。
此外,51單片機擁有雄厚的存量基礎和群眾基礎 。很多老項目都是用的51單片機,出于成本的考慮,有時候只能繼續沿用51單片機的技術進行升級 。而且,很多老一輩的工程師,都精通51單片機開發技術 。所以,51單片機的生命力得以不斷延續 。
再來看看STM32 。
STM32,是意法半導體公司推出的基于ARM Cortex-M內核的通用型單片機 。

文章插圖
STM32單片機
意法半導體(STMicroelectronics)是世界最大的半導體公司之一,于1987年6月成立,是由意大利的SGS微電子公司和法國Thomson半導體公司合并而成 。1998年5月,SGS-THOMSON Microelectronics 將公司名稱改為意法半導體有限公司 。

文章插圖
意法半導體LOGO
ARM公司以前小棗君給大家介紹過 。它是目前全球做芯片設計最厲害的公司之一,利用手機芯片的快速發展而崛起,占有物聯網市場極大的份額 。
在單片機領域,ARM的Cortex-M內核擁有壓倒性的優勢,已經成為絕對的主流 。很多半導體公司都放棄了自己原先的架構,轉做ARM架構的單片機 。

文章插圖
STM32單片機開發板
STM32的硬件配置可以滿足大部分的物聯網開發需求,開發工具和相關的文檔資料齊全,已經成為目前單片機學習的首選對象 。
嵌入式和單片機的區別
說到這里,我們來看看,嵌入式和單片機的區別到底是什么 。
從前文的介紹來看,嵌入式系統是一個大類,單片機是其中一個重要的子類 。嵌入式系統像是一個完整的計算機,而單片機更像是一個沒有外設的計算機 。
以前單片機包括的東西并不算多,兩者的硬件區別較為明顯 。但是,隨著半導體技術的突飛猛進,現在各種硬件功能都能被做進單片機之中 。所以,嵌入式系統和單片機之間的硬件區別越來越小,分界線也越來越模糊 。
于是,人們傾向于在軟件上進行區分 。
從軟件上,行業里經常把芯片中不帶MMU(memory management unit,內存管理單元)從而不支持虛擬地址,只能裸奔或運行RTOS(實時操作系統,例如ucos、華為LiteOS、RT-Thread、freertos等)的system,叫做單片機(如STM32、NXP LPC系列、NXP imxRT1052系列等) 。而把芯片自帶MMU可以支持虛擬地址,能夠跑Linux、Vxworks、WinCE、Android這樣的“高級”操作系統的system,叫做嵌入式 。
在某些時候,單片機本身已經足夠強大,可以作為嵌入式系統使用 。它的成本更低,開發和維護的難度相對較小,尤其是針對一些針對性更強的應用 。而嵌入式系統理論上性能更強,應用更廣泛,但復雜度高,開發難度大 。
嵌入式和單片機的學習價值
最后我們來說一說嵌入式和單片機的學習價值,到底有沒有必要學習嵌入式和單片機 。
最近這些年,有一句話被廣泛傳播,那就是——“軟件為王” 。人們普遍認為軟件知識的價值遠遠大于硬件,而學習軟件,從事軟件方向,會更容易找到工作,找到更高收入、更有前途的工作 。
而嵌入式和單片機,往往被歸為“硬件”方向,遭人“嫌棄” 。加上嵌入式和單片機的學習難度較大,學習周期很長,需要漫長的“煎熬”,所以越來越多的人放棄這條路 。
小棗君認為這種想法是不正確的 。
首先,嵌入式和單片機并不是純“硬件”類方向 。前面我也說了,它們是軟件和硬件的緊密結合 。

文章插圖
如果你想學好嵌入式和單片機,只懂數字電路和微機接口這樣的硬件知識是不夠的,你更需要學習的,是匯編、C/C++語言、數據結構和算法知識 。
擁有軟硬結合的能力,遠遠比單純掌握某種程序開發語言更有價值 。
其次,嵌入式和單片機擁有廣泛的應用場景,在各個領域都有項目需求和人才需求 。
根據權威部門統計,目前我們國家每年的嵌入式人才缺口高達50萬 。尤其是嵌入式軟件開發,是未來幾年最熱門和最受歡迎的職業之一 。具有10年工作經驗的高級嵌入式工程師,年薪可以達到30-50萬元左右 。
而且我們國家現在正在大力發展芯片產業,也會帶動嵌入式人才的就業,提升待遇 。

文章插圖
隨著5G的全面啟動,整個社會正在向“萬物互聯”的方向發展 。物聯網技術也將迎來前所未有的歷史機遇 。嵌入式和單片機技術是物聯網技術的重要組成部分,也將進入發展的快車道 。
【嵌入式和單片機的區別 什么叫做嵌入式】因此,盡管學習過程會比較艱辛,小棗君仍然建議有志青年關注這一賽道 。技術越難,過程越苦,越有利于構建競爭壁壘 。到了后期,個人價值可以得到進一步的體現 。
- 震級是如何區分和震級的威力 5級地震算嚴重嗎
- 水泥混凝土路面分脹縫和縮縫兩種 混凝土路面分隔縫的間距是多少
- 306不銹鋼標準成分是18%鉻加8%鎳 304和306不銹鋼的區別
- 病嬌和黑化有什么區別 病嬌是什么
- FBI和CIA是干嘛的 cia是什么意思
- 主動公開信息的方式和途徑 西安工業大學教學網
- 研究的方法演繹和歸納區別 演繹是什么意思
- 山羊和綿羊有什么區別
- 18k金和黃金的區別是什么
- 弱酸弱堿鹽是弱酸和弱堿反應生成的 有哪些鹽是弱酸弱堿鹽
