嵌入式开发名词解释
本文介绍嵌入式开发领域的常见名词及其解释,包括一些基础概念、技术术语以及特定行业的名词缩写等等。
- MCU:Microcontroller Unit,微控制器,通常又称为单片机。是一种集成在一个芯片上的微型计算机,包含处理器核心、存储器(如闪存、RAM)和输入/输出接口。它通常用于嵌入式系统中,用于执行特定任务。例如 Arduino 的 AVR、STM32 系列微控制器。
- MPU:Microprocessor Unit,微 处理器。是一种功能更强大的处理器,通常需要外部存储器和输入/输出接口来构建完整的系统。它适用于需要高性能计算的嵌入式应用,如智能设备和工业控制系统。例如 ARM Cortex-A 系列、Intel Atom 系列。
- SoC:System on Chip,片上系统。是一种将处理器核心、存储器、外设接口以及其他功能模块集成在一个芯片上的高度集成化系统。SoC 能够实现低功耗、高性能和小尺寸的设计,广泛应用于智能手机、平板电脑和物联网设备。例如 Raspberry Pi 中使用的 Broadcom BCM2835 芯片。
- ASIC:Application-Specific Integrated Circuit,专用集成电路。是一种为特定用途或特定应用领域定制设计的集成电路。ASIC 的设计从底层开始,针对特定功能进行优化,以实现最佳的性能、功耗和成本效益。
- DSP:Digital Signal Processor,数字信号处理器。是一种专为数字信号处理任务设计的处理器,能够高效地进行复杂数学运算,适用于音频、视频和通信等领域。例如德州仪器(TI)的 TMS320 系列。
- FPGA:Field Programmable Gate Array,现场可编程门阵列。是一种可以通过编程重新配置的集成电路,适用于需要高度定制逻辑和并行处理的场景。FPGA 能够实现灵活的硬件设计,广泛应用于通信、图像处理和原型验证。例如 Xilinx Spartan 系列、Intel Cyclone 系列。
- GPIO:General Purpose Input/Output,通用输入输出接口。是一种可编程的数字接口,可以配置为输入或输出,用于连接外部设备或传感器。GPIO 是嵌入式系统中最常用的接口之一,例如控制 LED 灯或读取按钮状态。
- UART:Universal Asynchronous Receiver/Transmitter,通用异步收发器。是一种广泛使用的串行通信协议,用于实现设备之间的异 步数据传输。
- 串口(Serial Port):是一种基于串行通信的接口,用于在设备之间传输数据。它是一种通用的接口,用于连接计算机或其他设备与外部设备(如调制解调器、打印机、传感器等)。串口通过串行通信协议(如 UART、RS-232、RS-485 等)实现数据的逐位传输。
- SPI:Serial Peripheral Interface,串行外设接口。是一种高速、全双工的串行通信协议,常用于微控制器与外设(如传感器、存储器、显示屏等)之间的通信。SPI 支持主从模式,能够实现快速数据传输。
- I²C:Inter-Integrated Circuit,集成电路总线。是一种低速、半双工的串行通信协议,常用于连接低速外设,如传感器和 EEPROM。I²C 的优点是只需要两个引脚即可实现多设备通信,而 SPI 需要四个引脚。
- I²S:Inter-IC Sound,集成电路音频总线。是一种专门用于音频信号传输的串行通信协议,常用于连接音频编解码器和数字音频处理芯片,能够实现高质量的音频数据传输。
- USB:Universal Serial Bus,通用串行总线。是一种广泛使用的串行接口标准,用于连接计算机与其他设备(如外设、存储设备、智能手机等),以实现数据传输和供电。
- Linux:是一种开源的类 Unix 操作系统,支持多用户、多任务、分时操作等功能。Linux 系统最初由芬兰程序员 Linus Torvalds 在1991年开发,采用 GPL 开源许可证发布,并在随后的几十年中迅速发展成为全球广泛使用的操作系统之一,尤其是服务器、嵌入式设备、移动设备等领域。
- RTOS:Real-Time Operating System,实时操作系统。是一种轻量级的操作系统,专为嵌入式系统设计,支持多任务调度、资源管理和设备驱动。RTOS 能够确保 系统在规定时间内响应外部事件,适用于对实时性要求较高的应用。例如 FreeRTOS、Zephyr、VxWorks。
- Firmware:固件。是嵌入在硬件设备中的软件,用于控制硬件的功能和行为。固件通常存储在非易失性存储器中,如 Flash 存储器,用于初始化硬件和执行基本功能。例如路由器固件、固态硬盘固件。
- Bootloader:引导加载程序。是在系统启动时运行的程序,负责初始化硬件、加载操作系统或应用程序,并将其启动。Bootloader 是嵌入式系统启动过程中的关键组件。例如 U-Boot、GRUB。
- Driver:驱动程序。是一种软件模块,用于控制硬件设备的行为,提供硬件与应用程序之间的接口。驱动程序能够实现对硬件设备的初始化、配置和数据交互。例如串口驱动、网卡驱动。
- 交叉编译(Cross-Compilation):是在一种平台上编译代码,生成适用于另一种平台的可执行文件。嵌入式开发中,通常在 PC 上编译代码,生成适用于嵌入式设备的二进制文件。交叉编译是嵌入式开发的基础技术之一。
- 调试器(Debugger):是一种用于帮助开发人员调试嵌入式程序的工具,支持单步执行、断点设置、变量查看等功能。调试器能够显著提高开发效率和程序质量。例如 GDB、JTAG 调试器。
- 烧录器(Programmer):是一种用于将编译后的程序(二进制文件)烧录到嵌入式设备的存储器中的硬件工具。烧录器是嵌入式开发中不可或缺的工具之一。例如 ST-Link、JTAG 烧录器。
- 仿真器(Emulator):是一种软件或硬件工具,用于模拟嵌入式设备的行为,方便开发和调试。仿真器能够在不依赖实际硬件的情况下进行程序测试和验证。例如 QEMU、Proteus。
- IDE:Integrated Development Environment,集成开发环境。是一种集成了代码编辑器、编译器、调试器等功能的软件工具,用于方便开发嵌入式程序。IDE 能够提供一站式的开发体验,提高开发效率。例如 Keil uVision、STM32CubeIDE、Eclipse。
- ISP:In System Programing,即“在系统上编程”或“在线编程”。指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用 ISP 方式擦除或再编程。
- IAP:In Application Programming,即“应用编程”。指 MCU 可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。
- DFU:Device Firmware Upgrade,即“设备固件升级”。支持 DFU 的最简单方法是选择一个已经在其 ROM 中包含 DFU 的微控制器,比如 STM32。
- 中断(Interrupt):是一种允许硬件设备在需要时中断处理器的正常执行流程的机制,请求处理器处理特定事件。中断能够实现高效的事件驱动处理,是嵌入式系统的重要特性之一。
- 看门狗定时器(Watchdog Timer):是一种硬件定时器,用于检测系统是否正常运行。如果系统未在规定时间内“喂狗”(即清除定时器),看门狗会触发系统复位,防止系统死机。
- DMA:Direct Memory Access,直接存储器访问。是一种机制,允许硬件设备直接访问存储器,而无需处理器干预,从而提高数据传输效率。DMA 广泛应用于高速数据传输场景,如 SPI 通信。
- 内存映射(Memory Mapping):是一种将硬件设备的寄存器或存储器映射到处理器的地址空间的技术,方便处理器访问。内存映射是嵌入式系统中硬件与软件交互的基础技术之一。
- 堆栈(Stack):是一种用于存储函数调用、局部变量和返回地址的内存区域,是程序运行的基础。堆栈的正确管理对于程序的稳定性和性能至关重要。
- 堆(Heap):是一种动态分配内存的区域,用于存储程序运行时分配的变量。堆的使用需要谨慎管理,以避免内存泄漏等问题。例如使用
malloc
和free
进行动态内存分配。