跳转至

第一章:嵌入式系统基础与体系结构


1. 处理器核心 (CPU/MCU/MPU)

  • 概念
    嵌入式系统的“大脑”,按复杂度分为三类:
  • MCU(微控制器):单芯片集成CPU+存储+外设(如STM32F103、Arduino的ATmega328P)。
  • MPU(微处理器):需外接存储(如树莓派的ARM Cortex-A72)。
  • 专用CPU:如DSP(数字信号处理)、FPGA软核(如Xilinx MicroBlaze)。

  • 典型架构

  • ARM Cortex-M:低功耗实时控制(Cortex-M0+/M3/M4/M7)。
  • RISC-V:开源指令集(如GD32V103)。
  • x86:工控机(如Intel Quark)。

  • 应用场景

  • 智能手环(Cortex-M0+休眠电流<2μA)。
  • 工业机器人(Cortex-M7+实时操作系统)。

  • 关键点

  • 功耗-性能权衡:M4带DSP指令,适合音频处理;M0+无FPU,成本极低。
  • 实时性:中断延迟(Cortex-M的NVIC硬件优先级仲裁)。

2. 存储器分层模型

  • ROM(BootROM/掩膜ROM)
  • 固化启动代码(如STM32的System Memory用于ISP下载)。
  • Flash(主存储)
  • NOR Flash:XIP(就地执行),如ESP32的4MB外部NOR。
  • NAND Flash:大容量存储(如车载娱乐系统的eMMC)。
  • RAM(易失性)
  • SRAM:高速(STM32F4的192KB Core-Coupled SRAM)。
  • DRAM:MPU外接DDR3(树莓派1GB LPDDR2)。

  • 关键技术

  • 磨损均衡:Flash的10万次擦写限制(需文件系统如LittleFS)。
  • 内存保护单元(MPU):防止任务越界(FreeRTOS的heap_4方案)。

3. 输入/输出接口(物理层到协议层)

  • 低速接口
  • GPIO:驱动LED(灌电流/拉电流设计)。
  • ADC:STM32的12位逐次逼近型ADC,采样率2.4Msps。
  • 中速接口
  • I²C:传感器总线(BMP280气压传感器),上拉电阻计算(3.3V/4.7kΩ)。
  • SPI:TFT屏幕(ILI9341驱动),时钟极性/相位模式0-3。
  • 高速接口
  • USB OTG:STM32F4作为Device(CDC虚拟串口)。
  • Ethernet:LAN8720 PHY芯片+RMII接口(需50MHz时钟)。

  • 隔离与保护

  • 光耦:PLC输入隔离(TLP281-4)。
  • TVS二极管:防ESD(USB端口的USBLC6-2SC6)。

4. 总线系统(芯片级与板级)

  • 片内总线
  • AMBA(ARM):
    • AHB:高速总线(DMA访问SRAM)。
    • APB:低速外设总线(UART寄存器)。
  • 板级总线
  • CAN:汽车ECU通信(差分信号+120Ω终端电阻)。
  • RS-485:Modbus工业协议(MAX3485收发器)。

  • 时序分析

  • 建立/保持时间:STM32的SPI在30MHz时,MISO需满足4ns建立时间。

5. 专用硬件单元(SoC的“加速器”)

  • 定时器(TIM)
  • PWM生成:舵机控制(50Hz频率,1-2ms占空比)。
  • 输入捕获:超声波测距(HC-SR04的回波时间测量)。
  • DMA控制器
  • 双缓冲模式:STM32的ADC+DMA连续采样,CPU零介入。
  • DAC
  • 音频输出:ESP32的8位DAC生成正弦波(DMA+定时器触发)。

6. 冯·诺依曼 vs. 哈佛架构

特性 冯·诺依曼 哈佛(改进型) 实例
指令/数据存储 同一空间 独立空间 STM32(Flash+SRAM)
性能 低(总线冲突) 高(并行访问) AVR的LPM指令读Flash
典型应用 通用PC 微控制器 Cortex-M0+的ICode总线
  • 关键点:现代MCU采用“改进哈佛”——虽物理分离,但统一地址空间(如STM32的0x08000000映射Flash)。

7. 系统级设计实例(整合以上模块)

  • 案例:智能温室控制器
  • 传感器层:SHT30(I²C)采集温湿度,BH1750(I²C)光照。
  • 执行层:PWM驱动MOS管(IRLZ44N)控制风扇,DAC输出0-10V调光。
  • 通信层:ESP8266(UART)上传MQTT数据到阿里云。
  • 低功耗:STM32L031的STOP模式(1.5μA),RTC定时唤醒。

  • 调试技巧:

  • SWD接口:用ST-Link调试,观察CoreSight的ETM跟踪数据流。

8. 资源受限下的优化策略

  • 代码优化:
  • Linkerscript:将中断向量表重定位到RAM(加快响应)。
  • -Os编译:GCC的__attribute__((section(".noinit")))避免清零.bss。
  • 功耗优化:
  • 时钟门控:关闭APB2总线上的UART1(RCC->APB2ENR &= ~USART1EN)。

处理器核心(Processor Core)

类型 特点 典型代表
MCU CPU+内存+外设但芯片集成 STM32(Cortex-M),ESP32
MPU 高性能CPU,需外扩内存/外设 i.MX RT(Cortex-A),RPi SoC
DSP 硬件加速浮点/滤波运算 TI C2000系列
FPGA 可编程硬件逻辑,并行处理 Xilinx Zynq-7000

存储器

类型 作用 技术指标
ROM 存储固件(不可修改) 掩膜ROM(量产固化)
Flash 存储可更新代码/配置数据 - NOR Flash:XIP执行;- NAND Flash:高密度存储
RAM 运行时数据缓存 - SRAM:零延迟(Cache/L1); - DRAM:主内存(需刷新电路)

总结

嵌入式系统的体系结构设计需在专用性、资源、成本、实时性之间权衡。 理解硬件组成是开发可靠固件的基础,尤其在资源受限场景下(如用DMA降低CPU负载、WDT抗干扰等)。 后续章节将深入处理器选型与外设驱动开发。