40个嵌入式常见名词一次讲清!

描述

在嵌入式学习和开发的路上,你是否也遇到过这些情况:UART 和串口分不清,MCU 和 MPU 傻傻搞混,SPI、I2C、I2S 看着都像,驱动、固件、Bootloader、BSP 听得头大……

 

别急,这不是你一个人的困惑。嵌入式开发涉及的术语确实又杂又多,而且很多词不仅缩写相似,使用语境也相互交叉。


 

为了帮你打通这些基础概念,我们整理了一份嵌入式常见名词速查表,从最基础的 GPIO、串口通信协议开始,到高阶的 BSP、OTA、交叉编译,按照由浅入深的顺序,一口气帮你理清思路。

 

不论你是刚入门的小白,还是在实际开发中偶尔卡住的进阶者,这篇文章都值得收藏。


 

 - GO - 
 

串口:Serial Port,串行通信接口,是最基础的通信方式之一。通过逐位传输数据进行通信,硬件上通常使用 RX/TX 两条线路。广泛用于早期电脑与外设连接、嵌入式系统调试等。例如 USB 转串口模块、TTL 串口通信。


 

GPIO:General Purpose Input/Output,通用输入输出口,是单片机与外设进行数字电平交互的基本接口。可配置为输入或输出状态,适合用于读取按键、电平检测或控制 LED、蜂鸣器等外设。例如 STM32 控制继电器、读取光敏电阻开关量。


 

UART:Universal Asynchronous Receiver/Transmitter,通用异步收发器,是一种串行通信协议,支持全双工传输,常用于点对点的数据通信。结构简单,速率可调,适用于模块通信或调试信息输出。例如使用 UART 输出调试信息到串口工具。

 

SPI:Serial Peripheral Interface,串行外设接口,是一种高速的全双工主从式通信协议。由 SCLK、MISO、MOSI 和 CS 四根线构成,适用于显示屏、SD 卡、传感器等高速设备。例如 STM32 控制 OLED 屏幕通过 SPI 发送图像数据。

 

I2C:Inter-Integrated Circuit,集成电路间通信,是一种双线串行通信协议,由 SDA 和 SCL 两根线组成,支持多个设备挂载在同一总线上。适用于小体积、低速率的传感器通信。例如 MPU6050 通过 I2C 接入单片机。

 

I2S:Integrated Interchip Sound,音频串行总线,是专用于音频数据传输的接口标准,常用于数字音频解码芯片与处理器间的通信。例如播放模块与音频 DAC 芯片间使用 I2S 接口传输声音信号。


 

USB:Universal Serial Bus,通用串行总线,是现代常见的接口标准之一,支持热插拔、供电及高速通信。嵌入式系统中常用于与主机通信、升级固件或模拟 HID、CDC 等设备。例如 STM32 模拟 USB 串口通信与电脑交互。


 

ADC:Analog to Digital Converter,模数转换器,是将模拟电压信号转换为数字数据的模块,用于读取温度、电压、光照等物理信号。例如通过 ADC 读取电池电压、光敏电阻输出值。


 

CAN:Controller Area Network,控制器局域网,是一种多主机通信协议,具有优良的抗干扰性和错误检测机制,广泛用于汽车、工业控制等场景。例如车辆各控制器间通过 CAN 总线传输状态信息。

 

MCU:Microcontroller Unit,微控制器,通常又称为单片机。是一种集成在一个芯片上的微型计算机,包含处理器核心、存储器(如闪存、RAM)和输入/输出接口。它通常用于嵌入式系统中,用于执行特定任务。例如 Arduino 的 AVR、STM32 系列微控制器。


 

MPU:Microprocessor Unit,微处理器,是主要负责逻辑运算和数据处理的处理器核心。与 MCU 不同,它不集成 Flash、RAM 等外设控制模块,需搭配外围芯片工作。适用于运行复杂操作系统的嵌入式系统。例如 Raspberry Pi 使用的 ARM Cortex-A 核。


 

SoC:System on Chip,系统级芯片,是一种将 CPU、GPU、内存控制器、通信模块、外设接口等集成在一颗芯片上的完整系统。适合空间紧凑、功耗敏感的应用。例如 ESP32、手机中的高通 Snapdragon 芯片。


 

ASIC:Application Specific Integrated Circuit,专用集成电路,是为特定应用定制的芯片,其电路结构固定,具有高性能、低功耗等优势,但不具备通用性。例如比特币矿机使用的 SHA 哈希加速 ASIC 芯片。


 

DSP:Digital Signal Processor,数字信号处理器,是针对音频、图像、雷达等实时信号处理优化的处理器,具有快速乘加、并行计算等特点。例如语音识别、雷达处理系统中常使用 TI C6000 系列 DSP。


 

FPGA:Field Programmable Gate Array,现场可编程逻辑门阵列,是一种可重构的数字逻辑芯片,用户可通过硬件描述语言(如 Verilog)编写逻辑电路,实现专用功能。例如高速图像处理、工业控制协议解析等应用。


 

中断:Interrupt,中断机制是嵌入式系统中响应外部或内部事件的关键机制。通过打断主程序流程及时响应事件,提高系统实时性。例如按键触发中断立刻响应用户输入。


 

看门狗定时器:Watchdog Timer,是一种特殊定时器,用于检测程序是否卡死。若系统在设定时间内未喂狗(重置定时器),将触发复位,保证系统安全运行。例如工业控制中防止死循环导致系统失控。

 

DMA:Direct Memory Access,直接存储器访问,是一种允许外设直接与内存交互、无需 CPU 参与的数据传输机制,提升效率并降低 CPU 负担。例如使用 DMA 接收串口大数据包。


 

内存映射:Memory Mapping,指将外设寄存器地址映射到处理器可访问的内存地址空间中,便于统一访问。嵌入式系统中几乎所有外设控制都基于内存映射。例如STM32 的 GPIO 控制寄存器地址映射到特定内存段。


 

堆栈(栈):Stack,用于管理函数调用、局部变量等的内存区域,遵循先进后出原则。栈空间通常由系统自动分配和释放,是嵌入式开发中重要的内存结构之一。例如函数调用层级多可能导致栈溢出。


 

堆:Heap,用于动态分配内存的区域,大小和生命周期由程序控制。灵活但易出错,嵌入式系统中使用需谨慎。例如 malloc/free 动态申请缓存空间。


 

CMA:Contiguous Memory Allocator,连续内存分配器,是 Linux 内核中用于为外设(如视频处理器)分配大块物理连续内存的一种机制。常用于视频帧缓存、DMA 大缓冲区等场景。


 

FIRMWARE:固件,是指烧录在嵌入式设备中的程序,通常包含引导逻辑和业务逻辑代码,是设备功能实现的核心。例如 STM32 上烧录的用户程序就属于固件。


 

BOOTLOADER:引导程序,是系统启动时运行的首段程序,负责初始化硬件、检测固件、跳转执行主程序。常用于程序升级或多系统启动。例如 STM32 的 IAP Bootloader。


 

RTOS:Real-Time Operating System,实时操作系统,是嵌入式系统中用于任务调度、资源管理的内核系统,保证任务按时执行。例如 FreeRTOS 支持多任务运行、信号量、优先级调度等机制。

 

Linux:嵌入式 Linux,是运行在 ARM 等平台上的 Linux 系统。相比裸机或 RTOS,功能更强但资源占用更大,适合运行图形界面、网络服务等。例如树莓派、工业网关等嵌入式设备运行 Linux。


 

DRIVER:驱动程序,是介于硬件与操作系统之间的软件层,负责操作硬件、提供统一接口给上层调用。嵌入式 Linux 或 RTOS 中,驱动是系统可移植性和模块化的重要组成部分。例如串口驱动、摄像头驱动等。


 

SDK:Software Development Kit,软件开发工具包,包含编译器、库文件、示例代码等,用于加速产品开发。嵌入式开发中常用芯片厂商提供的 SDK 进行快速构建。例如 ESP-IDF、STM32CubeMX 生成的工程。


 

BSP:Board Support Package,板级支持包,是针对特定硬件平台提供的启动代码、驱动、配置集合,用于支持操作系统运行。BSP 是嵌入式系统底层移植的基础,例如嵌入式 Linux 的 U-Boot、设备树等。


 

OTA:Over The Air,空中下载技术,指通过无线网络为嵌入式设备远程升级固件。广泛应用于物联网设备中,例如智能家居通过 OTA 接收新版程序自动升级。


 

IDE:Integrated Development Environment,集成开发环境,是集成代码编辑、编译、调试等功能的软件平台。例如 Keil、STM32CubeIDE、VS Code 搭配 PlatformIO。


 

交叉编译:Cross Compilation,是在一个平台上生成另一个平台可执行程序的过程。嵌入式设备的处理器架构通常不同于开发 PC,需使用交叉编译工具链。例如在x86 上为 ARM 编译程序。


 

ISP:In-System Programming,在系统内编程,是通过芯片预留的接口直接烧录程序的方式,无需拆卸芯片。例如 Arduino 使用 USB ISP 烧写新程序。


 

IAP:In-Application Programming,应用内编程,是运行中的程序通过自身控制进行 Flash 擦写,实现自升级功能。常用于 OTA 升级场景下的固件写入。


 

DFU:Device Firmware Upgrade,设备固件升级协议,是 USB 设备在不进入主程序的情况下进行固件升级的一种方式。例如 STM32 的 USB DFU 模式允许通过电脑烧录固件。


 

测试器:Tester,用于功能测试、性能验证、硬件检测的设备,可能包括信号源、逻辑分析仪等。例如对 MCU 的 IO 状态、电压、电流进行检测。


 

烧录器:Programmer,用于将编译好的程序写入芯片内部 Flash 的工具,常见接口有 JTAG、SWD、USB 等。例如 ST-Link、J-Link。


 

Makefile:Make File,构建脚本文件,是 Make 工具识别的自动化编译规则文件,用于定义源码文件之间的依赖关系及构建命令。常用于嵌入式 Linux 或裸机项目中自动化编译多个文件。例如在 ARM 工程中通过 Makefile 编译生成 .elf 和 .bin 文件。


 

裸机开发:Bare-metal Development,指不依赖操作系统,直接在硬件上运行用户程序的开发方式。代码通常包含启动文件、中断向量表、外设驱动等,适合资源受限、实时性要求高的系统。例如使用 STM32 编写不依赖任何 RTOS 的控制程序。


 

HAL:Hardware Abstraction Layer,硬件抽象层,是介于底层寄存器操作和上层应用逻辑之间的一层封装代码,屏蔽不同芯片之间的差异,提升代码的可移植性。例如 STM32 的 STM32Cube HAL 库封装了 GPIO、UART、I2C 等驱动接口。



40个嵌入式常见名词一次讲清

名词清楚了,很多困扰自然就迎刃而解了。掌握这些常用术语不仅能帮你读懂芯片手册、看懂工程结构,还能在调试、移植、开发中少走不少弯路。


 

当然,嵌入式开发不止于概念,更多的理解来源于动手实践。建议你在学习每一个术语时,结合实际项目去理解它的作用与使用方式,这样记得牢,也更能融会贯通。


 

如果你觉得这份整理对你有帮助,欢迎转发给身边的同行朋友。如果你有其他想补充的名词,或者希望我们出一份更详细的 PDF 速查表,也可以留言告诉我们,我们会持续更新这份知识库。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分