?目錄
?一、MCU、MPU、ARM
(一)MCU(微控制器)
(二)MPU(微處理器)
(三)ARM(架構)
二、DSP
(一)數字信號處理
(二)數字信號處理器
三、FPGA
(一)基本概念
(二)特點
(三)工作原理
(四)應用領域
四、MCU開發與ARX-Linux開發的區別
(一)硬件層面
(二)軟件層面
(三)應用場景
五、開源硬件Arduino和樹莓派
(一)Arduino
(二)樹莓派
一、MCU、MPU、ARM
(一)MCU(微控制器)
1、定義
????????MCU的英文全稱是 Micro Controller Unit,即微處理器,又稱單片微型計算機或者單片機。
? ? ? ? 它把中央處理器 (CPU) 的頻率與規格做適當縮減,并將內存 (RAM、ROM)、定時器/計數器、USB、A/D 轉換、UART、PLC、DMA 等周邊接口,甚至 LCD 驅動電路都整合在單一芯片上,形成芯片級的計算機,為不同的應用場合做不同組合控制。
2、特點
????????其最大特點是單片化,體積小、功耗低、可靠性高,并且具備豐富的外設接口,適用于對成本和功耗要求較高、控制功能較為復雜的嵌入式應用場景。
? ? ? ? 在智能家居、工業控制、消費電子等領域廣泛使用。例如,在智能家居系統中,MCU 可以控制家電設備的運行狀態、接收傳感器數據等。
(二)MPU(微處理器)
1、定義
????????MPU 的英文全稱是 Micro Processor Unit,即微處理器,通常是由計算機中的CPU演變而來的,可以理解為加強版的CPU,是一種高性能的處理器,即不帶外圍功能的器件。?
? ? ? ? 它通常具有強大的運算能力和復雜的指令集,可以進行復雜的運算和處理。
????????嵌入式微處理器系統需要在MPU 的基礎上添加 RAM、ROM、Flash、電源等外圍電路,以及USB、LCD、鍵盤等外部設備,來構成完整的計算機系統。
????????而MCU則是將 RAM、ROM、定時器等外設集成在一個芯片上,形成芯片級的系統,即MCU集成了外圍功能器件。
2、特點
????????MPU 的優勢在于其強大的運算能力和對復雜操作系統的支持,能夠處理大量的數據和復雜的任務,主要應用于對計算能力要求較高的嵌入式系統,如智能手機、平板電腦、工業平板電腦、車載導航系統等。
????????以智能手機為例,MPU 需要運行復雜的操作系統和各種應用程序,處理圖像、音頻、視頻等大量數據,這就需要 MPU 具備強大的運算能力和高速的處理速度。
(三)ARM(架構)
1、定義
????????ARM 的全稱為?Advanced RISC Machines,是一個公司的名稱,同時也是一種處理器架構的名稱。
????????ARM 公司并不直接生產芯片,而是設計芯片架構和 IP 核,授權給其他半導體公司生產基于 ARM 架構的芯片。
2、特點
????????ARM 架構具有低功耗、低成本、高性能的特點,廣泛應用于嵌入式系統領域。基于 ARM 架構的芯片在市場上占據了很大的份額,無論是 MCU 還是 MPU,很多都采用了 ARM 架構。
????????例如,Cortex - M 系列是面向微控制器應用的低功耗、低成本的 ARM 架構,常用于各類 MCU 中;而 Cortex - A 系列則是面向高性能應用的架構,常用于智能手機、平板電腦等設備中的 MPU。
二、DSP
????????DSP有兩種含義:①數字信號處理(Digital Signal Processing)、②數字信號處理器(Digital Signal Processor)。以下是對它們的詳細介紹:
(一)數字信號處理
1、定義
????????是一種通過計算機或專用處理設備,對數字信號進行采集、變換、濾波、估值、增強、壓縮、識別等處理,以達到提取信息、便于應用的目的的技術。
2、處理過程
????????①?采樣:將連續的模擬信號轉換為離散的數字信號,按照一定的采樣頻率對模擬信號進行抽樣,得到一系列離散的樣本點。
????????②?量化:將采樣得到的離散信號的幅度值進行量化,將其映射到有限個離散的電平值上,以便于計算機進行處理。
????????③ 編碼:對量化后的信號進行編碼,將其轉換為二進制代碼表示,以便于存儲和傳輸。
????????④ 數字信號處理算法:運用各種算法對編碼后的數字信號進行處理,如快速傅里葉變換 (FFT) 用于頻譜分析、數字濾波用于去除噪聲、卷積運算用于信號的特征提取等。
????????⑤ 解碼:將處理后的數字信號進行解碼,還原為原始信號的表示形式。
????????⑥ 重構:將解碼后的數字信號通過數模轉換器(DAC)轉換為模擬信號,以便于實際應用。
3、應用
????????廣泛應用于通信、音頻處理、圖像處理、雷達、聲納、生物醫學工程等眾多領域。
????????例如在通信領域,數字信號處理用于調制解調、信道編碼解碼等,以提高通信系統的性能和可靠性;在音頻處理中,用于音頻編碼解碼、音效增強等,改善音頻質量。
(二)數字信號處理器
1、定義
????????是一種專門為了進行數字信號處理而設計的微處理器,它具備獨特的硬件架構和指令集,能夠高效地執行各種數字信號處理算法。
2、特點
????????① 哈佛結構:采用哈佛結構,將程序存儲器和數據存儲器分開,有各自獨立的總線,可同時進行指令和數據的讀取,提高了數據處理效率。
????????② 高速運算能力:集成了專門的硬件乘法器、累加器等,能在一個指令周期內完成一次乘法和一次加法操作,適合數字信號處理中的濾波、FFT 等運算密集型任務。
????????③ 豐富的指令集:具有針對數字信號處理的指令集,如 FFT 指令、卷積指令等,可高效實現各種數字信號處理算法。
????????④ 低功耗設計:隨著技術發展,不斷優化低功耗設計,適用于電池供電的便攜式設備。
3、應用
????????在需要對數字信號進行實時處理的設備和系統中廣泛應用。
????????如在手機中,用于處理音頻、視頻信號以及通信信號;在數字音頻播放器中,負責音頻解碼和音效處理;在雷達系統中,用于對回波信號進行處理,提取目標信息等。
三、FPGA
(一)基本概念
????????FPGA 的全稱是 Field Programmable Gate Array,即現場可編程門陣列;是一種基于查找表 (LUT) 結構的可編程邏輯器件。
????????由大量的邏輯單元、存儲單元、輸入輸出單元以及可編程的布線資源組成。
? ? ? ? 用戶可通過硬件描述語言(如Verilog HDL、VHDL)對其進行編程,實現各種數字邏輯功能,如組合邏輯、時序邏輯、計數器、編碼器、譯碼器等,還能實現復雜的系統級功能,如數字信號處理、圖像處理、通信協議處理等。
????????通俗地講,FPGA猶是一張白紙,可以任意實現所需功能,無論是復雜的CPU,還是簡單的數字邏輯電路,都可以用 FPGA 實現。
? ? ? ? 而單片機、ARM 以及DSP則是已成型的機器,單片機和ARM能現的功能,FPGA一定可以實現,反過來不一定可行。
(二)特點
1、靈活性高
????????用戶可以根據自己的需求對 FPGA 進行編程,實現不同的功能。
????????在產品開發過程中,如果需要對功能進行修改或升級,只需重新編寫程序并下載到 FPGA 中,而無需對硬件電路進行大規模改動。
2、并行處理能力強
????????FPGA 內部有大量可并行工作的邏輯單元,能夠同時處理多個任務,實現數據的并行處理和運算。這使得它在處理一些對實時性要求較高的任務,如圖像處理、視頻解碼等具有很大優勢。
3、可重構性
????????部分 FPGA 支持在線重構,即在系統運行過程中可以動態地改變其邏輯功能。
????????這一特性使得 FPGA 能夠根據不同的應用場景或任務需求,實時地調整自身的功能,提高了系統的適應性和靈活性。
4、開發周期短
????????與專用集成電路(ASIC)相比,FPGA 的開發不需要復雜的制造流程和較長的開發周期。開發人員可以快速地進行設計、仿真和驗證,縮短產品的上市時間。
(三)工作原理
????????FPGA 的工作原理基于可編程邏輯單元的配置和互連。其內部的邏輯單元通過可編程的布線資源連接在一起,形成各種邏輯電路。
????????用戶通過編寫硬件描述語言代碼來描述所需的邏輯功能,然后使用 FPGA 開發工具對代碼進行編譯、綜合、布局布線等處理,生成配置文件。
????????將配置文件下載到 FPGA 中后,FPGA 會根據配置文件中的信息對內部的邏輯單元和布線資源進行配置,使其實現用戶所期望的功能。
(四)應用領域
1、通信領域
????????用于實現各種通信協議的處理,如以太網、USB、PCI - E 等接口協議,以及無線通信中的調制解調、信道編碼解碼等功能。
????????在 5G 通信基站中,FPGA 可用于處理高速的信號傳輸和復雜的數字信號處理算法。
2、數字信號處理領域
????????可實現快速傅里葉變換 (FFT)、數字濾波、卷積運算等數字信號處理算法,常用于音頻處理、圖像處理、雷達信號處理等方面。
????????例如,在音頻處理中,利用 FPGA 實現音頻特效處理和音頻編解碼。
3、工業控制領域
????????用于實現邏輯控制、運動控制、數據采集等功能。在自動化生產線中,FPGA 可以作為核心控制器,對各種傳感器和執行機構進行實時控制和數據處理。
4、航空航天與國防領域
????????由于其高可靠性和靈活性,FPGA 在航空航天和國防領域得到了廣泛應用。
????????如衛星通信、雷達系統、武器裝備的控制等。在惡劣的環境條件下,FPGA 能夠穩定地工作,并根據任務需求進行功能重構。
四、MCU開發與ARX-Linux開發的區別
????????MCU 開發和 ARM - Linux 開發是嵌入式開發中兩種不同的開發方向,它們在多個方面存在明顯區別:
(一)硬件層面
1、硬件平臺
????????(1)MCU:通常是集成度高的單芯片解決方案,內部集成了 CPU、內存、外設接口等,硬件資源相對有限。比如常見的 STM32 系列 MCU,內部 Flash 可能從幾十 KB 到幾 MB 不等,RAM 也一般在幾 KB 到幾百 KB。
????????(2)ARM - Linux:基于 ARM 架構的處理器,硬件資源豐富。除了處理器,還需要搭配外部存儲設備(如 SD 卡、eMMC)、內存芯片(如 DDR)等。像基于 ARM Cortex - A 系列的開發板,內存可達 1GB 甚至更高,存儲容量也能輕松擴展到幾 GB。
2、功耗
????????(1)MCU:功耗較低,適合對功耗敏感的應用場景,如物聯網設備、可穿戴設備等。一些低功耗 MCU 在待機模式下功耗僅為微安級別。
????????(2)ARM - Linux:由于硬件資源豐富,運行的系統和應用程序復雜,功耗相對較高。不過,現在也有一些低功耗優化的 ARM - Linux 平臺,但總體上仍高于 MCU。
3、啟動方式
????????(1)MCU:通常芯片廠商將上電啟動代碼固化在芯片中,上電后直接跳轉到程序入口處,實現系統的啟動。
????????(2)ARM - Linux:與PC啟動方式類似,啟動一般包括BIOS、Bootloader、內核啟動、應用程序啟動等幾個階段。
(二)軟件層面
1、操作系統(開發方式)
? ? ? ? (1)MCU:很多情況下不使用操作系統,直接進行裸機開發,通過編寫代碼直接控制硬件資源。也可使用一些輕量級的實時操作系統(RTOS),如 FreeRTOS、uC/OS 等,以實現多任務調度和資源管理。
? ? ? ? (2)ARM - Linux:以 Linux 操作系統為基礎,Linux 具有豐富的驅動程序和軟件庫,能支持復雜的應用程序運行。可以利用 Linux 的多用戶、多任務特性,實現各種功能。
2、開發語言和工具鏈
? ? ? ? (1)MCU:主要使用 C 語言進行開發,部分情況下也會使用匯編語言進行底層優化。開發工具鏈通常包括編譯器(如 GCC)、調試器(如 JTAG、SWD)和集成開發環境(IDE),如 Keil、IAR 等。
? ? ? ? (2)ARM - Linux:除了 C 語言,還廣泛使用 C++、Python 等語言。開發工具鏈包括交叉編譯器(如 arm - linux - gcc)、調試工具(如 gdb),以及 Linux 開發環境,如 Ubuntu 等。開發過程中還需要使用一些腳本語言(如 Shell 腳本)進行系統配置和自動化構建。
3、軟件復雜度
? ? ? ? (1)MCU:軟件功能相對簡單,主要實現對硬件的控制和基本的數據處理。代碼量通常較小,開發周期相對較短。
? ? ? ? (2)ARM - Linux:軟件復雜度高,需要處理操作系統的移植、驅動程序的開發、文件系統的配置等。同時,應用程序也更加復雜,可能涉及圖形界面、網絡通信、數據庫等功能。
(三)應用場景
1、MCU
????????適用于對成本、功耗和實時性要求較高,功能相對簡單的應用場景,如智能家居設備(智能插座、溫濕度傳感器)、工業控制中的小型控制器、汽車電子中的一些簡單控制模塊等。
2、ARM - Linux
????????適用于對計算能力、功能豐富度和系統穩定性要求較高的應用場景,如智能終端設備(智能手機、平板電腦)、工業自動化中的人機交互界面、網絡設備(路由器、交換機)等。
五、開源硬件Arduino和樹莓派
????????Arduino 和樹莓派都是廣受歡迎的開源硬件平臺,但它們在設計目標、硬件性能、應用場景等方面存在一些差異。以下是對其詳細介紹:
(一)Arduino
1、簡介
????????Arduino 是一個開放源碼的電子原型平臺,由硬件和軟件組成。其硬件設計簡單,易于使用,主要面向藝術家、設計師、愛好者和初學者,用于快速創建交互式電子項目。
2、硬件特點
(1)多種類型開發板
????????有多種類型的開發板,如Uno、Mega、Nano等,以適應不同的應用需求。
????????例如Uno適用于初學者和小型項目,Mega有更大的內存和更高的處理能力,適用于較為復雜、對資源需求較高的項目。
(2)接口豐富
????????開發板上配備了微控制器以及豐富的電子元件接口,包括數字輸入輸出引腳、模擬輸入輸出引腳等。
????????這些接口能夠便捷地連接各類外部設備,像傳感器(如溫度傳感器、光線傳感器)、執行器(如電機、舵機)等,從而實現各種功能。
3、軟件特點
(1)簡單易學
????????采用類似于 C/C++ 的編程語言,通過 Arduino 集成開發環境(IDE)進行代碼的編寫、上傳和調試。對于有一定編程基礎的人來說,很容易上手。
(2)資源豐富
????????Arduino 為開發者提供了大量豐富的函數庫和示例代碼。這些資源極大地降低了開發的難度,就算是沒有深厚電子專業背景的人員,也能夠快速開發出自己的項目。
4、應用場景
????????常用于快速原型制作、藝術創作、物聯網設備開發、機器人開發、環境監測等領域。例如,制作一個智能花盆,通過連接土壤濕度傳感器和水泵,實現自動澆水功能。
(二)樹莓派
1、簡介
????????樹莓派是一款基于 Linux 系統的微型計算機,旨在推廣計算機科學教育和為小型設備提供計算能力。它更側重于提供完整的計算機功能,可作為小型服務器、媒體中心或用于各種需要較高計算能力的項目。
2、硬件特點
(1)強大的處理能力
????????配備了性能較強的 ARM 架構處理器,內存也相對較大,能夠運行完整的操作系統。
????????如 Raspbian (基于 Debian 的定制版)、Ubuntu 等。不同型號的樹莓派在處理器性能、內存大小等方面有所不同,以滿足不同用戶的需求。
(2)豐富的接口
????????具有 HDMI 接口、USB 接口、以太網接口、音頻接口等,可連接顯示器、鍵盤、鼠標、網絡設備等,使其具備與普通計算機相似的功能。
????????同時,也有通用輸入輸出引腳(GPIO),可以連接外部硬件設備進行擴展。
3、軟件特點
(1)完整的操作系統
????????由于運行完整的 Linux 操作系統,具備完整的文件系統、多用戶多任務處理能力以及豐富的軟件包管理系統。用戶可以像使用普通計算機一樣安裝和運行各種軟件,如辦公軟件、瀏覽器、媒體播放器等。
(2)編程語言多樣
????????支持多種編程語言,如 Python、C/C++、Java 等。開發者可以根據自己的需求和喜好選擇合適的語言進行開發。
4、應用場景
????????廣泛應用于智能家居控制中心、網絡服務器、多媒體播放中心、人工智能實驗平臺、科學研究等領域。例如,搭建一個家庭媒體服務器,通過樹莓派連接硬盤和電視,實現視頻播放和文件共享功能。
????????以上即為 嵌入式常見概念的介紹?的全部內容,創作不易,麻煩三連支持一下唄~??