在嵌入式學習和開發(fā)的路上,你是否也遇到過這些情況:UART 和串口分不清,MCU 和 MPU 傻傻搞混,SPI、I2C、I2S 看著都像,驅動、固件、Bootloader、BSP 聽得頭大……
別急,這不是你一個人的困惑。嵌入式開發(fā)涉及的術語確實又雜又多,而且很多詞不僅縮寫相似,使用語境也相互交叉。
為了幫你打通這些基礎概念,我們整理了一份嵌入式常見名詞速查表,從最基礎的 GPIO、串口通信協(xié)議開始,到高階的 BSP、OTA、交叉編譯,按照由淺入深的順序,一口氣幫你理清思路。
不論你是剛入門的小白,還是在實際開發(fā)中偶爾卡住的進階者,這篇文章都值得收藏。
- GO -
串口:Serial Port,串行通信接口,是最基礎的通信方式之一。通過逐位傳輸數(shù)據(jù)進行通信,硬件上通常使用 RX/TX 兩條線路。廣泛用于早期電腦與外設連接、嵌入式系統(tǒng)調試等。例如 USB 轉串口模塊、TTL 串口通信。
GPIO:General Purpose Input/Output,通用輸入輸出口,是單片機與外設進行數(shù)字電平交互的基本接口。可配置為輸入或輸出狀態(tài),適合用于讀取按鍵、電平檢測或控制 LED、蜂鳴器等外設。例如 STM32 控制繼電器、讀取光敏電阻開關量。
UART:Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)器,是一種串行通信協(xié)議,支持全雙工傳輸,常用于點對點的數(shù)據(jù)通信。結構簡單,速率可調,適用于模塊通信或調試信息輸出。例如使用 UART 輸出調試信息到串口工具。
SPI:Serial Peripheral Interface,串行外設接口,是一種高速的全雙工主從式通信協(xié)議。由 SCLK、MISO、MOSI 和 CS 四根線構成,適用于顯示屏、SD 卡、傳感器等高速設備。例如 STM32 控制 OLED 屏幕通過 SPI 發(fā)送圖像數(shù)據(jù)。
I2C:Inter-Integrated Circuit,集成電路間通信,是一種雙線串行通信協(xié)議,由 SDA 和 SCL 兩根線組成,支持多個設備掛載在同一總線上。適用于小體積、低速率的傳感器通信。例如 MPU6050 通過 I2C 接入單片機。
I2S:Integrated Interchip Sound,音頻串行總線,是專用于音頻數(shù)據(jù)傳輸?shù)慕涌跇藴剩S糜跀?shù)字音頻解碼芯片與處理器間的通信。例如播放模塊與音頻 DAC 芯片間使用 I2S 接口傳輸聲音信號。
USB:Universal Serial Bus,通用串行總線,是現(xiàn)代常見的接口標準之一,支持熱插拔、供電及高速通信。嵌入式系統(tǒng)中常用于與主機通信、升級固件或模擬 HID、CDC 等設備。例如 STM32 模擬 USB 串口通信與電腦交互。
ADC:Analog to Digital Converter,模數(shù)轉換器,是將模擬電壓信號轉換為數(shù)字數(shù)據(jù)的模塊,用于讀取溫度、電壓、光照等物理信號。例如通過 ADC 讀取電池電壓、光敏電阻輸出值。
CAN:Controller Area Network,控制器局域網(wǎng),是一種多主機通信協(xié)議,具有優(yōu)良的抗干擾性和錯誤檢測機制,廣泛用于汽車、工業(yè)控制等場景。例如車輛各控制器間通過 CAN 總線傳輸狀態(tài)信息。
MCU:Microcontroller Unit,微控制器,通常又稱為單片機。是一種集成在一個芯片上的微型計算機,包含處理器核心、存儲器(如閃存、RAM)和輸入/輸出接口。它通常用于嵌入式系統(tǒng)中,用于執(zhí)行特定任務。例如 Arduino 的 AVR、STM32 系列微控制器。
MPU:Microprocessor Unit,微處理器,是主要負責邏輯運算和數(shù)據(jù)處理的處理器核心。與 MCU 不同,它不集成 Flash、RAM 等外設控制模塊,需搭配外圍芯片工作。適用于運行復雜操作系統(tǒng)的嵌入式系統(tǒng)。例如 Raspberry Pi 使用的 ARM Cortex-A 核。
SoC:System on Chip,系統(tǒng)級芯片,是一種將 CPU、GPU、內存控制器、通信模塊、外設接口等集成在一顆芯片上的完整系統(tǒng)。適合空間緊湊、功耗敏感的應用。例如 ESP32、手機中的高通 Snapdragon 芯片。
ASIC:Application Specific Integrated Circuit,專用集成電路,是為特定應用定制的芯片,其電路結構固定,具有高性能、低功耗等優(yōu)勢,但不具備通用性。例如比特幣礦機使用的 SHA 哈希加速 ASIC 芯片。
DSP:Digital Signal Processor,數(shù)字信號處理器,是針對音頻、圖像、雷達等實時信號處理優(yōu)化的處理器,具有快速乘加、并行計算等特點。例如語音識別、雷達處理系統(tǒng)中常使用 TI C6000 系列 DSP。
FPGA:Field Programmable Gate Array,現(xiàn)場可編程邏輯門陣列,是一種可重構的數(shù)字邏輯芯片,用戶可通過硬件描述語言(如 Verilog)編寫邏輯電路,實現(xiàn)專用功能。例如高速圖像處理、工業(yè)控制協(xié)議解析等應用。
中斷:Interrupt,中斷機制是嵌入式系統(tǒng)中響應外部或內部事件的關鍵機制。通過打斷主程序流程及時響應事件,提高系統(tǒng)實時性。例如按鍵觸發(fā)中斷立刻響應用戶輸入。
看門狗定時器:Watchdog Timer,是一種特殊定時器,用于檢測程序是否卡死。若系統(tǒng)在設定時間內未喂狗(重置定時器),將觸發(fā)復位,保證系統(tǒng)安全運行。例如工業(yè)控制中防止死循環(huán)導致系統(tǒng)失控。
DMA:Direct Memory Access,直接存儲器訪問,是一種允許外設直接與內存交互、無需 CPU 參與的數(shù)據(jù)傳輸機制,提升效率并降低 CPU 負擔。例如使用 DMA 接收串口大數(shù)據(jù)包。
內存映射:Memory Mapping,指將外設寄存器地址映射到處理器可訪問的內存地址空間中,便于統(tǒng)一訪問。嵌入式系統(tǒng)中幾乎所有外設控制都基于內存映射。例如STM32 的 GPIO 控制寄存器地址映射到特定內存段。
堆棧(棧):Stack,用于管理函數(shù)調用、局部變量等的內存區(qū)域,遵循先進后出原則。棧空間通常由系統(tǒng)自動分配和釋放,是嵌入式開發(fā)中重要的內存結構之一。例如函數(shù)調用層級多可能導致棧溢出。
堆:Heap,用于動態(tài)分配內存的區(qū)域,大小和生命周期由程序控制。靈活但易出錯,嵌入式系統(tǒng)中使用需謹慎。例如 malloc/free 動態(tài)申請緩存空間。
CMA:Contiguous Memory Allocator,連續(xù)內存分配器,是 Linux 內核中用于為外設(如視頻處理器)分配大塊物理連續(xù)內存的一種機制。常用于視頻幀緩存、DMA 大緩沖區(qū)等場景。
FIRMWARE:固件,是指燒錄在嵌入式設備中的程序,通常包含引導邏輯和業(yè)務邏輯代碼,是設備功能實現(xiàn)的核心。例如 STM32 上燒錄的用戶程序就屬于固件。
BOOTLOADER:引導程序,是系統(tǒng)啟動時運行的首段程序,負責初始化硬件、檢測固件、跳轉執(zhí)行主程序。常用于程序升級或多系統(tǒng)啟動。例如 STM32 的 IAP Bootloader。
RTOS:Real-Time Operating System,實時操作系統(tǒng),是嵌入式系統(tǒng)中用于任務調度、資源管理的內核系統(tǒng),保證任務按時執(zhí)行。例如 FreeRTOS 支持多任務運行、信號量、優(yōu)先級調度等機制。
Linux:嵌入式 Linux,是運行在 ARM 等平臺上的 Linux 系統(tǒng)。相比裸機或 RTOS,功能更強但資源占用更大,適合運行圖形界面、網(wǎng)絡服務等。例如樹莓派、工業(yè)網(wǎng)關等嵌入式設備運行 Linux。
DRIVER:驅動程序,是介于硬件與操作系統(tǒng)之間的軟件層,負責操作硬件、提供統(tǒng)一接口給上層調用。嵌入式 Linux 或 RTOS 中,驅動是系統(tǒng)可移植性和模塊化的重要組成部分。例如串口驅動、攝像頭驅動等。
SDK:Software Development Kit,軟件開發(fā)工具包,包含編譯器、庫文件、示例代碼等,用于加速產(chǎn)品開發(fā)。嵌入式開發(fā)中常用芯片廠商提供的 SDK 進行快速構建。例如 ESP-IDF、STM32CubeMX 生成的工程。
BSP:Board Support Package,板級支持包,是針對特定硬件平臺提供的啟動代碼、驅動、配置集合,用于支持操作系統(tǒng)運行。BSP 是嵌入式系統(tǒng)底層移植的基礎,例如嵌入式 Linux 的 U-Boot、設備樹等。
OTA:Over The Air,空中下載技術,指通過無線網(wǎng)絡為嵌入式設備遠程升級固件。廣泛應用于物聯(lián)網(wǎng)設備中,例如智能家居通過 OTA 接收新版程序自動升級。
IDE:Integrated Development Environment,集成開發(fā)環(huán)境,是集成代碼編輯、編譯、調試等功能的軟件平臺。例如 Keil、STM32CubeIDE、VS Code 搭配 PlatformIO。
交叉編譯:Cross Compilation,是在一個平臺上生成另一個平臺可執(zhí)行程序的過程。嵌入式設備的處理器架構通常不同于開發(fā) PC,需使用交叉編譯工具鏈。例如在x86 上為 ARM 編譯程序。
ISP:In-System Programming,在系統(tǒng)內編程,是通過芯片預留的接口直接燒錄程序的方式,無需拆卸芯片。例如 Arduino 使用 USB ISP 燒寫新程序。
IAP:In-Application Programming,應用內編程,是運行中的程序通過自身控制進行 Flash 擦寫,實現(xiàn)自升級功能。常用于 OTA 升級場景下的固件寫入。
DFU:Device Firmware Upgrade,設備固件升級協(xié)議,是 USB 設備在不進入主程序的情況下進行固件升級的一種方式。例如 STM32 的 USB DFU 模式允許通過電腦燒錄固件。
測試器:Tester,用于功能測試、性能驗證、硬件檢測的設備,可能包括信號源、邏輯分析儀等。例如對 MCU 的 IO 狀態(tài)、電壓、電流進行檢測。
燒錄器:Programmer,用于將編譯好的程序寫入芯片內部 Flash 的工具,常見接口有 JTAG、SWD、USB 等。例如 ST-Link、J-Link。
Makefile:Make File,構建腳本文件,是 Make 工具識別的自動化編譯規(guī)則文件,用于定義源碼文件之間的依賴關系及構建命令。常用于嵌入式 Linux 或裸機項目中自動化編譯多個文件。例如在 ARM 工程中通過 Makefile 編譯生成 .elf 和 .bin 文件。
裸機開發(fā):Bare-metal Development,指不依賴操作系統(tǒng),直接在硬件上運行用戶程序的開發(fā)方式。代碼通常包含啟動文件、中斷向量表、外設驅動等,適合資源受限、實時性要求高的系統(tǒng)。例如使用 STM32 編寫不依賴任何 RTOS 的控制程序。
HAL:Hardware Abstraction Layer,硬件抽象層,是介于底層寄存器操作和上層應用邏輯之間的一層封裝代碼,屏蔽不同芯片之間的差異,提升代碼的可移植性。例如 STM32 的 STM32Cube HAL 庫封裝了 GPIO、UART、I2C 等驅動接口。
40個嵌入式常見名詞一次講清
名詞清楚了,很多困擾自然就迎刃而解了。掌握這些常用術語不僅能幫你讀懂芯片手冊、看懂工程結構,還能在調試、移植、開發(fā)中少走不少彎路。
當然,嵌入式開發(fā)不止于概念,更多的理解來源于動手實踐。建議你在學習每一個術語時,結合實際項目去理解它的作用與使用方式,這樣記得牢,也更能融會貫通。
如果你覺得這份整理對你有幫助,歡迎轉發(fā)給身邊的同行朋友。如果你有其他想補充的名詞,或者希望我們出一份更詳細的 PDF 速查表,也可以留言告訴我們,我們會持續(xù)更新這份知識庫。
-
mcu
+關注
關注
147文章
18547瀏覽量
384503 -
嵌入式
+關注
關注
5184文章
20116瀏覽量
327891 -
MP
+關注
關注
0文章
40瀏覽量
36421 -
串口
+關注
關注
15文章
1604瀏覽量
81785 -
uart
+關注
關注
22文章
1302瀏覽量
106019
發(fā)布評論請先 登錄
嵌入式基礎名詞介紹
嵌入式系統(tǒng)的常見特性有哪些呢
常見的嵌入式系統(tǒng)應用領域
什么是嵌入式_如何入門和提高嵌入式
嵌入式第一次課程小結
什么是嵌入式操作系統(tǒng) 常見的嵌入式系統(tǒng)有哪些
linux嵌入式物聯(lián)網(wǎng)_嵌入式Linux如何加速物聯(lián)網(wǎng)發(fā)展
嵌入式系統(tǒng)設計-第一次課
如何構建一個一次充電可以運行數(shù)月的嵌入式設備?

40個嵌入式常見名詞一次講清!
評論