嵌入式系统基础:组成、特点、分类与实时系统
嵌入式系统是计算机应用领域中最广泛、最深入的形态。与通用PC不同,嵌入式系统以“应用为中心、以计算机技术为基础、软硬件可裁剪”,对功能、可靠性、成本、体积和功耗有严格约束。本章从系统组成、核心特点、主流分类(单片机、DSP、FPGA、SoC)以及实时系统概念四个维度展开,帮助考生建立嵌入式系统的整体认知框架,为后续的ARM体系结构、接口技术与系统设计打下基础。
一、嵌入式系统的组成
嵌入式系统从物理和逻辑上可分为硬件平台与软件系统两大部分。硬件是系统的躯体,软件是系统的灵魂,两者协同完成特定功能。
1. 硬件平台
- 嵌入式处理器:系统的核心运算单元,如ARM Cortex-M系列、Cortex-A系列、MIPS、RISC-V等。不同处理器对应不同的性能等级和应用场景。
- 存储器系统:包括程序存储器(Flash/ROM)、数据存储器(SRAM/DRAM)以及外部存储接口(eMMC、SD卡等)。嵌入式系统对存储容量和访问速度有严格的平衡考量。
- 输入/输出接口:GPIO、UART、SPI、I2C、USB、CAN、Ethernet等,用于与外部设备或传感器交互。
- 电源管理单元:提供多路电压输出(如3.3V、1.8V、1.2V),并支持低功耗模式(Sleep、Stop、Standby)。
- 时钟与复位电路:晶振提供系统时钟基准,复位电路确保系统上电和异常时能回到初始状态。
2. 软件系统
- 系统软件:包括实时操作系统(RTOS,如FreeRTOS、RT-Thread、μC/OS-III)或裸机程序(前后台循环)。
- 应用软件:实现具体业务逻辑的代码,如数据采集、控制算法、通信协议栈等。
- 中间件:如TCP/IP协议栈、文件系统(LittleFS、FATFS)、图形界面库(LVGL、TouchGFX)等。
- 驱动程序:连接硬件与操作系统的桥梁,负责寄存器操作、中断处理、DMA传输等底层功能。
二、嵌入式系统的核心特点
嵌入式系统区别于通用计算机系统的本质特征可归纳为以下五点:
| 特点 | 说明 | 典型影响 |
|---|---|---|
| 专用性强 | 针对特定应用场景设计,功能固定 | 软硬件可裁剪,避免资源浪费 |
| 资源受限 | CPU主频低、内存小、存储有限 | 需优化代码体积与运行效率 |
| 实时性要求 | 对外部事件需在限定时间内响应 | 需使用中断、RTOS、优先级调度 |
| 可靠性要求高 | 在恶劣环境(高温、振动、电磁干扰)下稳定运行 | 需看门狗、冗余设计、纠错码 |
| 功耗敏感 | 电池供电或散热受限场景 | 需低功耗模式、动态调频调压 |
判断方法:如何识别一个系统是否为嵌入式系统?
- 看功能是否专用:通用PC可运行各种软件,而嵌入式系统通常只执行预设的特定任务。
- 看是否可裁剪:嵌入式系统的硬件和软件都可以根据需求进行裁剪,去掉不需要的部分。
- 看是否有实时约束:多数嵌入式系统对响应时间有明确要求,如汽车安全气囊必须在碰撞后10ms内弹出。
- 看资源规模:嵌入式系统通常没有大容量硬盘、大内存和高性能显卡。
三、嵌入式系统的分类
根据处理器架构和设计思路的不同,嵌入式系统主要分为四大类:单片机(MCU)、DSP、FPGA和SoC。理解它们的差异是选型的基础。
1. 单片机(MCU)
单片机将CPU、存储器(Flash+SRAM)、定时器、ADC、UART、SPI、I2C等集成在单颗芯片上,是嵌入式系统中应用最广泛的形态。典型代表:STM32(ARM Cortex-M系列)、AVR、PIC、8051。
- 优点:成本低、开发简单、生态成熟、功耗低。
- 缺点:运算能力有限,不适合复杂算法(如高清视频处理、大规模AI推理)。
- 适用场景:家电控制、传感器采集、电机驱动、智能仪表、汽车电子(车身控制)等。
2. DSP(数字信号处理器)
DSP采用哈佛结构或改进型哈佛结构,具备硬件乘法器、MAC(乘累加)指令、流水线操作等,专为数字信号处理算法优化。典型代表:TI C2000/C5000/C6000系列、ADI SHARC系列。
- 优点:实时信号处理能力强,适合FFT、FIR/IIR滤波、语音编解码、电机控制算法。
- 缺点:通用控制能力弱于MCU,外设接口相对简单。
- 适用场景:音频处理、工业变频器、电力系统监测、雷达信号处理、医疗仪器(如超声)。
3. FPGA(现场可编程门阵列)
FPGA由可配置逻辑块(CLB)、可编程互连资源和I/O块组成,通过硬件描述语言(Verilog/VHDL)配置逻辑功能。典型代表:Xilinx(AMD)Spartan/Artix/Zynq系列、Intel Cyclone/Stratix系列。
- 优点:并行处理能力强、硬件可重构、接口灵活、延迟低。
- 缺点:开发门槛高(需硬件描述语言)、成本较高、功耗相对较大。
- 适用场景:高速数据采集(ADC接口)、协议转换(如MIPI转LVDS)、数字信号处理加速、原型验证。
4. SoC(片上系统)
SoC将处理器核心(通常是ARM Cortex-A系列)、GPU、DSP、视频编解码器、各种外设控制器以及大容量存储控制器集成在单颗芯片上,甚至包含可编程逻辑(如Zynq系列)。典型代表:高通骁龙、海思麒麟、全志H3、瑞芯微RK3399。
- 优点:集成度高、性能强、支持运行Linux/Android等复杂操作系统。
- 缺点:开发复杂度高、成本高、功耗较大。
- 适用场景:智能手机、平板电脑、智能电视、工业HMI、边缘计算网关、自动驾驶域控制器。
| 对比维度 | MCU | DSP | FPGA | SoC |
|---|---|---|---|---|
| 核心架构 | 通用控制 | 信号处理专用 | 硬件可编程逻辑 | 多核异构(CPU+GPU+DSP) |
| 编程方式 | C语言 | C语言/汇编 | Verilog/VHDL | C/C++/Linux |
| 实时性 | 中断响应快 | 算法执行时间可预测 | 硬件并行,延迟极低 | 依赖OS调度 |
| 典型主频 | 8MHz~200MHz | 100MHz~1.5GHz | 100MHz~500MHz(逻辑时钟) | 1GHz~3GHz |
| 开发难度 | 低 | 中 | 高 | 高 |
四、实时系统概念
实时系统(Real-Time System)是指系统能在规定的时间内对外部事件做出响应并完成处理的系统。实时性的核心不是“快”,而是“可预测”——必须在截止时间(Deadline)之前完成处理。
1. 硬实时与软实时
- 硬实时(Hard Real-Time):错过截止时间会导致灾难性后果。例如:安全气囊弹出、飞机飞控系统、心脏起搏器。要求响应时间必须严格保证,通常使用中断和RTOS的优先级抢占调度。
- 软实时(Soft Real-Time):偶尔错过截止时间不会造成灾难,但会降低系统性能。例如:视频播放(丢帧)、网络语音通话(延迟抖动)。允许一定概率的延迟。
2. 实时系统的关键指标
| 指标 | 定义 | 示例 |
|---|---|---|
| 响应时间 | 从事件发生到系统开始处理的时间 | 中断延迟 |
| 截止时间 | 任务必须完成的最晚时间点 | 控制周期10ms |
| 吞吐量 | 单位时间内处理的任务数量 | 每秒处理1000个数据包 |
| 抖动(Jitter) | 任务完成时间的波动范围 | ±0.5ms |
3. 实现实时性的手段
- 中断机制:外部事件通过中断立即打断当前任务,进入中断服务程序(ISR)处理紧急事件。
- RTOS调度:采用基于优先级的抢占式调度,高优先级任务可立即抢占低优先级任务。常见算法:优先级位图调度、时间片轮转。
- 资源管理:使用互斥锁、信号量、消息队列等机制避免优先级反转和死锁。
- 硬件加速:使用DMA、定时器、比较器等硬件外设减少CPU负载,提高响应确定性。
4. 实时系统的常见误区
- 误区一:实时系统就是快——实际上,实时系统更强调“确定性”,即使系统速度不快,只要能在截止时间前完成即可。
- 误区二:裸机(前后台)不能实现实时——对于简单系统,通过合理的中断设计也能满足实时要求;但对于多任务复杂系统,RTOS更合适。
- 误区三:RTOS一定能保证实时性——RTOS只是提供调度机制,如果任务设计不合理(如关中断时间过长、优先级分配错误),仍然会破坏实时性。