欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 【单片机】嵌入式系统大纲

【单片机】嵌入式系统大纲

2025/3/9 10:21:06 来源:https://blog.csdn.net/qq_39725309/article/details/145955434  浏览:    关键词:【单片机】嵌入式系统大纲

嵌入式系统概述

嵌入式系统是一种 专用计算机系统,以应用为中心,结合软硬件进行裁剪,以满足系统对功能、可靠性、成本、体积和功耗的严格要求。

嵌入式系统的特点
✅ 专用性:针对特定应用优化,功能较固定。
✅ 实时性:对响应速度要求高,常使用 RTOS。
✅ 低功耗:适用于电池供电设备,如智能手表、传感器节点。
✅ 高可靠性:要求长时间稳定运行,如汽车电子、医疗设备。
✅ 体积小:硬件紧凑,适用于便携设备、嵌入式控制系统。
嵌入式系统主要由 硬件软件 两部分组成:

🔹 1. 硬件部分
嵌入式系统的硬件通常包括:

  • MPU(微处理器)/ MCU(微控制器):系统的核心,负责执行指令和数据处理。

  • 存储器

    • RAM(随机存储器):用于存放程序运行时的数据。
    • Flash(闪存):用于存储固件和关键数据。
  • 电源模块:提供稳定的供电,确保系统正常运行。

  • 时钟模块:提供系统运行的基准时钟信号。

  • 复位电路:保证系统启动时能够正确初始化。

  • JTAG(调试接口):用于系统调试和固件烧录。

     硬件特性体积小、集成效率高。面向特定的应用。功耗低、电磁兼容性好。软件特性嵌入式软件的开发与硬件紧密相关。软件代码要求高效率和高可靠性。软件一般固化在Flash或Rom中。软件系统具有高实时性。一般采用C语言开发。
    

🔹 2. 软件部分

  • 嵌入式操作系统(Embedded RTOS):
    • 负责任务调度、资源管理、中断处理等。
    • 典型 RTOS:FreeRTOS、RT-Thread、uC/OS、VxWorks、QNX
  • 应用软件:执行具体的业务逻辑,例如:设备控制、数据采集、通信等。
嵌入式系统的硬件组成

最小系统是嵌入式系统运行的基本硬件环境:
在这里插入图片描述

嵌入式系统最小系统:电源模块:提供系统所需的电压和电流。时钟模块:提供稳定的时钟信号,保证系统正常运行。复位电路:确保系统在上电或异常情况下能够复位。MPU/MCU:系统的核心,执行指令和数据处理。存储器(RAM / Flash):存储程序、数据和运行状态。JTAG:用于调试和固件烧录。嵌入式系统通常需要与外部设备交互,常见的外设包括:USB:用于数据传输、外设连接(如 U 盘、摄像头)。LCD(液晶显示屏):显示信息,如 UI 界面。键盘:用于用户输入。以太网:用于网络通信。串口(UART):常用于设备间通信(如 RS232、RS485)。CAN 总线:用于车辆、工业自动化等领域的通信。传感器:用于采集物理数据(如温度、湿度、加速度)。辅助存储器:如 SD 卡、EEPROM,用于存储数据。电机:用于驱动机械设备(如机器人、自动化设备)。

MPU(微处理器)/ MCU(微控制器)

在嵌入式系统中,MCU(微控制单元) 和 MPU(微处理单元) 是最常见的两种计算核心,但它们在架构、性能、应用场景等方面存在明显差异。

  1. MCU(Microcontroller Unit,微控制单元)
    MCU 也称为单片机(Microcontroller),它是一个集成了处理器(CPU)、存储器(RAM/ROM)、外设(I/O、ADC、UART 等)的微型计算机,适用于低功耗、实时性强的嵌入式应用。

🔹 MCU 主要特点:

集成度高:CPU + RAM + Flash + I/O 统一封装。
低功耗:适用于电池供电设备。
实时性强:适用于实时控制(RTOS 或裸机编程)。
成本低:适用于大规模量产的消费电子。
计算能力较弱:通常主频在 几十 MHz 到 400 MHz 之间。

🔹 MCU 常见品牌:

品牌典型 MCU 系列
STSTM32(Cortex-M 系列)
NXPLPC、Kinetis
TIMSP430、TMS320
MicrochipPIC、AVR
NordicnRF52(低功耗蓝牙)

🔹 MCU 典型应用:

📌 家电控制(空调、洗衣机、微波炉)
📌 传感器节点(温湿度监测、智能家居)
📌 工业控制(PLC、马达驱动、工控设备)
📌 汽车电子(仪表盘、车窗控制、胎压监测)
📌 智能穿戴(智能手环、蓝牙耳机)

🔹 典型 MCU 硬件架构

+----------------------+
|    CPU Core (ARM M4) |
+----------------------+
|    Flash (256 KB)    |
+----------------------+
|    RAM (64 KB)       |
+----------------------+
|    GPIO / SPI / I2C  |
+----------------------+
  1. MCU(Microcontroller Unit,微控制单元)
    MPU 是高性能的嵌入式微处理器,它通常需要外部 RAM、Flash、I/O 控制器适用于复杂操作系统(如 Linux、Android),支持高算力、多任务并行处理。

🔹 MPU 主要特点:

高计算能力:主频通常在 500MHz ~ 3GHz。
支持外部 DRAM:适用于大规模数据处理。
支持操作系统:Linux、Android、RTOS。
多核架构:支持 ARM Cortex-A、RISC-V。
功耗较高:相比 MCU 更耗电。

🔹 MPU 常见品牌

品牌典型 MPU 系列
NXPi.MX6 / i.MX8
STSTM32MP1
TISitara AM335x
AllwinnerA64, H3
RockchipRK3399
Raspberry PiBroadcom BCM2711

🔹 MPU 典型应用

📌 工业网关(工业 4.0、物联网)
📌 智能家居(智能音箱、智能摄像头)
📌 车载娱乐系统(车载 Android、导航)
📌 边缘计算(AI 计算、机器视觉)
📌 机器人控制(无人机、自动驾驶)

🔹 典型 MPU 硬件架构

+----------------------+
|    CPU Core (ARM A53)|
+----------------------+
|    DDR Controller    |
+----------------------+
|    GPU (Mali)       |
+----------------------+
|    USB / Ethernet   |
+----------------------+
  1. MCU vs. MPU 的核心区别
比较项MCU(微控制单元)MPU(微处理单元)
计算能力低(几十 MHz ~ 400 MHz)高(500 MHz ~ 3 GHz)
存储器内部 Flash + RAM需要外部 RAM(DDR)
功耗低功耗(适合电池供电)高功耗(需要散热)
操作系统可裸机运行或 RTOS支持 Linux / Android
应用场景低功耗控制、实时性强复杂计算、多任务处理
外设支持GPIO、UART、SPI、I2CUSB、Ethernet、PCIe
成本低(几元 ~ 数十元)高(几十元 ~ 上百元)

二者的应用对比

应用场景适合 MCU适合 MPU
智能家居温湿度传感器、门锁控制智能音箱、视频监控
汽车电子车窗控制、胎压监测车载娱乐、自动驾驶
工业控制传感器采集、PLC 控制工业网关、边缘计算
医疗设备心率监测、血氧仪医疗影像处理
机器人机械臂控制AI 视觉处理
物联网低功耗终端云端计算
低功耗、实时性 → 选择 MCU
高性能、复杂计算 → 选择 MPU
支持操作系统(Linux/Android) → 选择 MPU
传感器数据采集、简单控制 → 选择 MCUMCU 适用于低功耗、实时控制,如家电、传感器、工业自动化
MPU 适用于高算力、复杂应用,如车载系统、AI 计算、智能家居
目前企业常用:MCU + MPU 结合(如 STM32MP1)AI 处理器嵌入 MCU/MPU(如 ESP32 AI 加速)

电源模块(Power Module)

电源模块(Power Module) 是用于提供稳定电源的电子组件,在嵌入式系统、工业控制、通信设备、汽车电子等领域至关重要。它的主要作用是将输入电源(如 AC 220V、DC 12V、USB 5V)转换成适合目标系统的稳定输出电压(如 3.3V、5V、1.8V),并提供过流、过压、短路保护等功能。

按转换方式分类电源模块:

类型特点应用场景
AC-DC 电源模块交流(AC)转直流(DC),通常带变压器工业设备、电源适配器
DC-DC 电源模块直流(DC)转直流(DC),可升压/降压嵌入式系统、汽车电子
LDO 线性稳压器低噪声、低纹波,但效率较低低功耗 MCU、传感器
开关电源(SMPS)高效率,但电磁干扰(EMI)较大工业控制、服务器
POE(以太网供电)通过网线供电,减少布线需求监控摄像头、IoT 设备
嵌入式系统中的电源模块

嵌入式系统对电源有严格的要求,通常包含以下主要模块:

主电源输入(如 DC 12V、USB 5V、锂电池 3.7V
DC-DC 降压模块(如 12V → 5V,5V → 3.3V
LDO 稳压器(为 MCU、传感器提供 1.8V、3.3V
备用电池管理(如 RTC 实时时钟供电

最小嵌入式系统电源架构
+------------------+
|  AC-DC 适配器   |  输入 220V AC  输出 12V DC
+------------------+
+------------------+
|  DC-DC 降压模块 |  12V  5V,供给主系统
+------------------+
+------------------+        +------------------+
|  DC-DC 降压模块 |    3.3V  |  LDO 稳压器       |    1.8V(传感器)
+------------------+        +------------------+

常见嵌入式电源设计:

系统组件工作电压
MCU/MPU3.3V / 1.8V
RAM1.8V / 3.3V
Flash 存储3.3V
LCD 显示屏3.3V / 5V
无线通信模块(Wi-Fi/BLE)3.3V
USB 设备5V
LED、马达5V / 12V

电源模块的关键参数

系统组件工作电压
输入电压(Vin)AC-DC 模块:110V / 220V AC
DC-DC 模块:输入 12V / 5V / 3.3V
输出电压(Vout)常见输出:5V、3.3V、1.8V
可调节电压:DC-DC 降压模块(如 12V → 1.2V ~ 5V 可调)
输出电流(Iout)MCU 低功耗应用:几十 mA
MPU(如 Raspberry Pi):1A ~ 3A
工业控制设备:10A 以上
转换效率LDO 线性稳压器:低效率(50%~70%),但低噪声
DC-DC 开关电源:高效率(80%~95%),适合大功率应用
纹波 & 噪声低纹波(mV 级别)适用于MCU、传感器
高频开关电源可能产生电磁干扰(EMI)
部分常见电源模块芯片
芯片型号类型输入电压输出电压应用
AMS1117LDO5V3.3VMCU 供电
LM2596DC-DC 降压12V5V / 3.3V嵌入式系统
XL6009DC-DC 升压5V12V电机控制
MP1584高效率 DC-DC12V3.3V / 5V工业应用
TPS5430开关电源24V5V自动化控制
电源模块的保护电路

为了提高电源系统的可靠性,通常会添加保护电路。

保护类型作用
过流保护(OCP)防止电流过大导致损坏
过压保护(OVP)防止电压过高损坏负载
短路保护(SCP)发生短路时自动断电
温度保护(OTP)防止过热损坏电路

因此,在设计电源模块时需要注意:选择合适的电源架构(LDO / DC-DC)、计算功耗,确保电源能提供足够电流;降低 EMI 干扰,合理布线、考虑高温环境下的散热设计;电源模块是嵌入式系统的核心组件,决定了整个系统的稳定性和可靠性。


时钟模块(Clock Module)

时钟模块(Clock Module) 是嵌入式系统中的关键组件,负责提供稳定的时钟信号,用于同步 MCU/MPU、外设、通信接口等,时钟信号决定了处理器的运行速度,影响系统的性能、功耗、定时精度,在MCU、MPU、通信、工业控制、汽车电子等应用中是不可或缺的模块之一。

按信号来源分类时钟模块:

类型特点应用场景
内部时钟(Internal Clock)MCU 内部集成,成本低,精度一般低功耗应用(如传感器、手持设备)
外部晶振(Crystal Oscillator, XTAL)采用石英晶体,精度高MCU/MPU 主频、通信模块
外部有源振荡器(Active Oscillator)内置振荡电路,直接输出时钟信号高精度场景(如工业控制、通信基站)
RTC 实时时钟(Real-Time Clock)低功耗、独立计时,带备用电池计时应用(如智能手表、服务器)
嵌入式系统中的时钟架构

嵌入式系统通常包含多个时钟源,以满足不同模块的需求:

  1. 主时钟(System Clock, SYSCLK):驱动 CPU、RAM、Flash
  2. 外设时钟(Peripheral Clock):用于 UART、SPI、I2C、PWM
  3. RTC 低功耗时钟(32.768 kHz):用于实时时钟、低功耗模式
典型嵌入式时钟架构
+------------------+
|  外部晶振 (XTAL) |   主时钟 (SYSCLK)    CPU / RAM
+------------------+
+------------------+       +------------------+
|  PLL (锁相环)   |    高速时钟 (HCLK)    外设 (SPI, USB, ADC)
+------------------+       +------------------+
+------------------+
|  RTC 时钟 (32kHz) |   低功耗模式 / 时间计时
+------------------+
常见的时钟源1. 内部时钟(Internal Clock)✅ 特点:由 MCU 内部 RC 振荡器(RC Oscillator)生成成本低、功耗低,但精度低(±1%~5% 误差)适用于对时钟精度要求不高的应用✅ 应用:低功耗传感器LED 控制器按键扫描✅ 示例:STM32F103 HSI(High-Speed Internal) 8MHzESP32 内部 RC 振荡器 8MHz / 40MHz2. 外部晶振(Crystal Oscillator, XTAL)✅ 特点:采用 石英晶体(Quartz Crystal),通过物理振荡产生稳定频率精度高(±20ppm ~ ±50ppm),比内部 RC 振荡器更稳定需要外部 负载电容(Load Capacitance) 进行匹配✅ 应用:MCU / MPU 主时钟通信协议(UART、SPI、Ethernet)工业自动化✅ 示例:晶振类型				常见频率			应用低速晶振(LFXTAL)	32.768 kHz		RTC 实时时钟高速晶振(HFXTAL)	8MHz / 16MHz	MCU 主时钟高频晶振(MHz 级)	25MHz / 48MHz	以太网、USB✅ 示例电路(16MHz 晶振):+--------+XTAL --|        |-- XTAL|  MCU   |+--------+3. 外部有源振荡器(Active Oscillator)✅ 特点:内部集成 振荡电路 + 反馈环路,直接输出稳定时钟精度高(±10ppm 以内),适用于高精度系统需要 外部 3.3V / 5V 供电✅ 应用:高精度计时(服务器、GPS)工业控制(PLC、机器人)通信设备(5G、WIFI)✅ 示例:TCXO(温补晶振):温度补偿,适用于 GPS、无线通信OCXO(恒温晶振):超高精度,适用于基站、航空电子4. RTC 实时时钟(Real-Time Clock)✅ 特点:独立于主时钟运行,低功耗,可用纽扣电池供电采用 32.768 kHz 晶振,适用于时间计时适用于需要 掉电仍能计时 的系统✅ 应用:智能手表、物联网设备服务器、工业自动化数据记录仪(黑匣子)✅ 示例 RTC 芯片:芯片型号		特点						应用DS1307		I2C 接口,支持电池备份		物联网、智能家居DS3231		高精度温补 RTC			工业控制PCF8563		低功耗 RTC				便携设备✅ RTC 电路示例:+-------------+|   MCU/MPU   ||-------------||  RTC 时钟   | ←  32.768 kHz 晶振+-------------+|+---------+| 电池 (3V) |  (掉电仍可计时)+---------+

时钟模块的关键参数:

参数说明
工作频率如 8MHz、16MHz、32.768kHz
精度(ppm)影响系统计时误差
功耗低功耗系统需选择 RTC 时钟
启动时间晶振启动时间影响系统初始化
温度稳定性高精度应用需选择 TCXO / OCXO

因此,在设计时钟模块时需要注意的事项:选择合适的时钟源(内部 RC / 外部晶振 / RTC),匹配合适的负载电容(Load Capacitance),避免时钟信号干扰(布线需远离高频信号),高精度应用选用 TCXO / OCXO,低功耗应用使用 RTC 独立供电。

时钟模块是嵌入式系统的核心组件,决定了CPU 运行频率、通信精度、系统计时等。不同应用场景选择不同的时钟源,如内部 RC 适合低成本应用,外部晶振适合高精度应用,RTC 适合低功耗计时。


复位电路(Reset Circuit)

复位电路(Reset Circuit) 是嵌入式系统中的关键组成部分,负责在系统上电、异常情况下,使 MCU/MPU 进入稳定的初始状态

复位电路的主要作用:

  1. 确保 MCU/MPU 在正确的电压和时序条件下启动
  2. 在异常情况下(如电源掉电、干扰、程序卡死)强制 MCU 重新初始化
  3. 防止系统处于错误状态,提高系统可靠性

复位电路的分类:

1. 上电复位(Power-On Reset, POR)✅ 作用:在系统上电时,确保 MCU/MPU 进入**稳定的初始状态**通过**检测电源电压升高到某个阈值**后,释放复位信号✅ 应用:MCU / MPU 启动初始化电源管理电路✅ 示例电路:+5V  ───┬───────────+|           |[电容 C]     |  上电瞬间 C 充电,复位信号保持低电平|           |[电阻 R]     |  一段时间后,C 充满电,复位信号变高|           |GND         |  |          MCU RESET 引脚GND ────────+典型值:C = 0.1µF,R = 10kΩRC 时间常数决定复位时间
======================================================================
2. 手动复位(Manual Reset)✅ 作用:用户按下**复位按钮(Reset Button)**,强制 MCU 重新启动✅ 应用:开发板(如 **Arduino、STM32**)设备需手动重启(如 路由器、工控设备)✅ 示例电路:+3.3V  ───┬──────────────+|              |R (10kΩ)       ||              |按键 ───+─── RESET 引脚|GND工作原理:平时 **RESET 引脚为高电平**按下按钮 → 连接 GND → **RESET 引脚变低** → MCU 复位
======================================================================
3. 看门狗复位(Watchdog Reset, WDT)✅ 作用:防止程序死机(如**死循环、卡死**),定时检查系统是否正常运行MCU 需要**定期喂狗(喂 WDT),否则系统会自动复位**✅ 应用:无人机、汽车电子(防止 MCU 死机)工业控制、服务器(确保系统长期稳定运行)✅ 看门狗复位逻辑:+-----------------+|    MCU 运行     | → 正常:定期喂狗+-----------------+↓(程序死机,未喂狗)↓+-----------------+|  看门狗超时复位  | → MCU 自动重启+-----------------+✅ 示例芯片:芯片型号			特点STM32 WDT		MCU 内置硬件看门狗TLV803			独立看门狗复位芯片MAX706			监测电源 + 看门狗复位
======================================================================
4. 低电压复位(Brown-Out Reset, BOR)✅ 作用:**检测电源电压是否低于安全范围**,防止 MCU 在低电压下误动作电压恢复正常后,自动释放复位信号✅ 应用:电池供电设备(如 智能手表、IoT 设备)汽车电子(防止电池电压波动影响 MCU)✅ 示例芯片:芯片型号			作用STM32 BOR		MCU 内置低电压检测TPS3808			低电压监测 + 复位MIC811			低功耗电源监测

复位电路的关键参数:

参数说明
复位电压阈值低于该电压时触发复位(如 2.7V、3.0V)
复位延迟时间复位信号保持的时间(如 100ms)
功耗低功耗系统选择低功耗复位电路
复位引脚逻辑低电平复位(Active Low)高电平复位(Active High)

常见问题 & 解决方案:

问题可能原因解决方案
系统随机复位电源波动、干扰增加 滤波电容、屏蔽干扰
上电后 MCU 无法启动复位保持时间过短调整 RC 复位电路参数
误触发复位RESET 引脚悬空上拉电阻(10kΩ)
看门狗误复位喂狗时间配置不合理调整 WDT 超时时间
典型嵌入式复位架构
+------------------+
|  电源管理 IC     |   低电压检测(BOR)
+------------------+
+------------------+
|  RC 复位电路    |   复位 MCU
+------------------+
+------------------+
|  MCU 看门狗      |   防止死机复位
+------------------+
+------------------+
|  手动复位按钮    |   用户手动复位
+------------------+

复位电路的设计注意事项:保持 RESET 引脚的稳定性(防止误触发),使用 RC 复位电路,避免上电时振荡;看门狗定时配置合理,避免误复位;低功耗系统应优化复位电路功耗;在 PCB 设计时,RESET 线应远离干扰源(如高频信号)。合理设计复位电路,能够提高系统稳定性和可靠性。

复位电路是 MCU/MPU 可靠运行的关键,上电复位 确保 MCU 正确启动,手动复位 允许用户重启系统,看门狗复位 防止程序死机,低电压复位 保护系统免受电源波动影响。


Flash 与 RAM 在嵌入式系统中的作用

在嵌入式系统中,Flash 和 RAM 是两种关键的存储器,它们在程序存储、数据存储、系统运行中起着不同的作用。

  • Flash(外部存储器) → 用于存储程序和长期数据
  • RAM(内部存储器) → 用于存储临时数据,支持程序运行

Flash & RAM 是嵌入式系统的核心存储组件,Flash 适用于长期存储(固件、文件),RAM 适用于程序运行时的临时数据存储(变量、缓存),两者结合使用,确保系统高效稳定运行。

Flash 存储器

Flash(闪存) 是一种非易失性存储器(Non-volatile Memory),即掉电后数据不会丢失。 它用于存储程序代码(固件)、配置数据、文件系统等。

Flash 的特点:1. 掉电不丢失数据(适用于程序存储)2. 读写速度比 RAM 慢(通常用作存储,而非运行数据)3. 写入次数有限(一般 10 万 ~ 100 万次擦写寿命)4. 块/页擦除机制(写入数据前需先擦除)Flash 的分类:类型			特点										应用NOR Flash	读取速度快,支持按 **字节(Byte)** 访问		MCU 固件存储NAND Flash	存储密度高,按 **块(Block)** 访问			SSD、TF 卡eMMC/ UFS	集成控制器,性能高							手机、嵌入式存储SPI Flash	低功耗,适用于小型嵌入式系统					物联网、微控制器Flash 在嵌入式系统中的作用:📌 存储固件(Bootloader / 操作系统 / 应用程序)📌 存储配置数据、日志、参数📌 文件系统(如 FAT, SPIFFS, LittleFS)📌 存储 AI/ML 模型(如 Edge AI 设备)示例 Flash 芯片:芯片型号			类型				容量W25Q32			SPI Flash		32MbitMT29F2G			NAND Flash		2GbitAT25SF128A		NOR Flash		128Mbit
RAM 存储器

RAM(随机存取存储器,Random Access Memory)易失性存储器(Volatile Memory),即掉电后数据会丢失。 它主要用于存储运行中的临时数据,如变量、堆栈、缓存

RAM 的特点1. 速度快(比 Flash 快 100~1000 倍)2. 掉电数据丢失(仅存储临时数据)3. 按字节访问(适用于存储动态数据)4. 成本较高(每单位存储容量比 Flash 贵)RAM 的分类类型				特点						应用SRAM(静态 RAM)	低功耗,速度快,成本高		MCU 内部 RAM, 高速缓存DRAM(动态 RAM)	需要刷新,存储密度高		MPU、PC 内存(DDR)DDR SDRAM		高速数据存取,适用于多任务	Linux 系统、智能设备RAM 在嵌入式系统中的作用📌 存储程序运行时的变量、数据、堆栈📌 作为缓冲区(Buffer)📌 运行操作系统(如 Linux 需要 DDR)📌 缓存文件、网络数据示例 RAM 芯片:芯片型号			类型		容量IS61C1024AL		SRAM	1MbitMT48LC16M16A2	SDRAM	256MbitW9825G6KH		DDR2	256Mbit
Flash vs RAM 的区别
区别Flash(外部存储器)RAM(内部存储器)
数据存储特性非易失性(掉电不丢失)易失性(掉电丢失)
访问速度慢(几十 MB/s)快(几百 MB/s ~ GB/s)
用途存储固件、配置、文件存储变量、堆栈、缓存
写入限制写入次数有限(10 万次)无限读写
单位成本便宜(适合大容量存储)贵(适合高速存取)
嵌入式系统中的 Flash & RAM 结构

典型 MCU(如 STM32)存储架构(Flash):

+-------------------+
|   Flash (2MB)    |  存储 Bootloader, 固件, 配置数据
+-------------------+
+-------------------+
|   RAM (256KB)    |  存储运行时变量、堆栈
+-------------------+

典型 MPU(如 Raspberry Pi)存储架构:

+--------------------------+
|  eMMC / SD  (Flash)   |  存储操作系统, 文件系统
+--------------------------+
+--------------------------+
|  DDR RAM (1GB~8GB)      |  运行 Linux, 进程, 缓存
+--------------------------+

设计存储系统时的注意事项:Flash 主要用于存储固件,RAM 主要用于临时数据;频繁写入的数据(如日志)应存入 RAM 或耐久性好的 Flash(如 FRAM);高性能系统(如 Linux)需要 DDR RAM,否则系统运行缓慢;低功耗系统应优化 RAM 使用,避免功耗过高。


JTAG(Joint Test Action Group)

JTAG(联合测试行动小组,Joint Test Action Group) 是一种标准化的调试和测试接口,用于嵌入式系统的芯片调试(Debug)、编程(Programming)和边界扫描(Boundary Scan)

JTAG 主要用于:

  • 调试 MCU/MPU(单步执行、断点、寄存器查看)
  • 下载固件(Flash 编程)
  • 边界扫描测试(Boundary Scan)(用于电路板测试)

JTAG 主要适用于ARM 处理器、FPGA、DSP、MCU、MPU 等硬件调试。

JTAG 的核心功能1. 硬件调试(Debugging)断点调试:可以在代码执行过程中暂停程序,检查变量和寄存器单步执行(Step-by-Step):逐条指令运行代码,分析程序逻辑内存和寄存器访问:可直接读取和修改 MCU/MPU 内部寄存器2. 固件下载(Flash Programming)通过 JTAG 烧录 Flash,用于嵌入式系统的固件升级支持**裸机程序(Bootloader)和操作系统(如 Linux)**的下载3. 边界扫描测试(Boundary Scan)在**不运行 MCU 程序的情况下,直接测试电路板上的引脚连接**适用于大规模 PCB 测试(如 FPGA、BGA 封装芯片)JTAG 硬件接口JTAG 通信使用 TAP(测试访问端口,Test Access Port),通常包括以下 5 条信号线:---------------------------------------------信号			全称					作用TDI			Test Data In		数据输入TDO			Test Data Out		数据输出TCK			Test Clock			时钟信号TMS			Test Mode Select	模式选择TRST(可选)	Test Reset			复位信号(部分芯片不需要)---------------------------------------------
✅ JTAG 连接示意图(4 线 + 1 线 TRST 可选):JTAG 调试器        MCU/MPU/FPGA+---------+       +-----------+|   TDI   | ----> |   TDI     ||   TDO   | <---- |   TDO     ||   TCK   | ----> |   TCK     ||   TMS   | ----> |   TMS     ||  TRST   | ----> |  TRST (可选)|+---------+       +-----------+---------------------------------------------
✅ JTAG 常见的接口标准接口类型							特点						应用10-Pin JTAG(ARM 标准)			2×5 排针					ARM Cortex-M20-Pin JTAG(ARM Cortex 旧版)	2×10 排针				旧版 ARM 设备SWD(Serial Wire Debug)			2 线调试(SWDIO+SWCLK)	低引脚数 MCU
JTAG 在嵌入式系统中的应用
  1. MCU/MPU 调试:
    📌 调试 STM32、ESP32、NXP 等微控制器
    📌 查看寄存器状态、变量、断点分析

示例 - 通过 JTAG 调试 STM32

(1) 连接 JTAG 调试器(如 ST-Link, J-Link)
(2) 使用 Keil / OpenOCD 运行调试模式
(3) 设置断点,查看寄存器和变量

  1. FPGA 调试:
    📌 JTAG 用于 FPGA 下载比特流(Bitstream)
    📌 用于 FPGA 内部逻辑分析(如 Xilinx ILA)

示例 - 通过 JTAG 烧录 Xilinx FPGA

(1) 连接 JTAG 调试器(如 Xilinx Platform Cable)
(2) 使用 Vivado / Quartus 下载比特流(.bit/.sof 文件)
(3) 运行 FPGA 程序,调试内部逻辑

  1. Linux 内核调试:
    📌 JTAG 用于调试 ARM Linux 内核(U-Boot、Kernel)
    📌 可用于 OpenOCD 远程 GDB 调试

示例 - 通过 JTAG 调试 Linux

(1) 连接 JTAG 调试器(如 J-Link, FT2232)
(2) 使用 OpenOCD 连接 ARM 处理器
(3) 运行GDB,进行内核调试

常见 JTAG 调试工具:

工具名称支持设备特点
ST-LinkSTM32低成本,支持 SWD
J-LinkARM Cortex-M/A速度快,支持 GDB
Xilinx Platform CableFPGA支持 Xilinx 调试
FT2232H(OpenOCD)通用 JTAG低成本,适用于 Linux

✅ 典型 JTAG 调试器(J-Link 连接 STM32):

PC (IDE: Keil) → J-Link → STM32 JTAG/SWD
JTAG vs SWD(串行调试)
对比项JTAG(传统)SWD(ARM 专用)
连接线数量4 ~ 5 线2 线(SWDIO, SWCLK)
调试速度较慢更快(适用于 ARM)
支持芯片MCU/MPU/FPGA仅 ARM Cortex-M
复杂度需要多条信号线更简单
  • JTAG 适用于通用芯片(FPGA、DSP、ARM)
  • SWD 适用于 ARM Cortex-M(STM32、NXP)

JTAG 在 PCB 设计中的注意事项:JTAG 引脚应远离高频信号,避免干扰;上拉/下拉电阻(如 TMS/TCK 需要 10kΩ 上拉),提供 JTAG 连接器,方便调试和量产测试;考虑 JTAG 禁用(如生产后禁用 JTAG 以提高安全性)。 JTAG 是嵌入式系统中最常用的调试和测试接口:它用于 MCU/MPU 调试、固件下载、边界扫描;支持 ARM、FPGA、DSP 等嵌入式设备,而 SWD 是 JTAG 的简化版,适用于 ARM Cortex-M, JTAG 是嵌入式开发、调试、生产测试的关键工具。


嵌入式系统的外设(Peripheral)

在嵌入式系统中,外设(Peripheral) 是 MCU/MPU 连接外部设备的关键组件,包括 USB、LCD、键盘、以太网、串口、CAN、传感器、存储器、电机 等。
这些外设通过 I2C、SPI、UART、GPIO、PWM、ADC、CAN、Ethernet 等接口 与主控芯片(MCU / MPU)通信,实现数据交互和设备控制。

1. USB(通用串行总线,Universal Serial Bus)
1.1 USB:高速数据传输(USB 2.0: 480Mbps,USB 3.0: 5Gbps)支持多种设备(U 盘、鼠标、键盘、摄像头)支持主机(Host)和设备(Device)模式1.2 USB 在嵌入式系统中的应用USB OTG(On-The-Go):单个端口既可作为主机(Host),也可作为设备(Device)USB CDC(串行通信):用于虚拟串口(USB 转串口)USB HID(人机接口设备):用于键盘、鼠标USB Mass Storage(U 盘、TF 卡读写)1.3 常见 USB 外设设备			接口				应用USB 转串口	USB → UART		调试、数据传输USB 摄像头	USB → MIPI		机器视觉USB 网卡		USB → Ethernet	网络连接USB 读卡器	USB → SDIO		存储扩展

✅ USB 连接示意图

MCU/MPU (USB Host) <--> USB 设备 (U 盘 / 键盘 / 摄像头)
2. LCD(显示屏)
2.1 LCD:TFT LCD、OLED、e-Paper(电子墨水屏)等类型常见接口:SPI、RGB、LVDS、MIPI DSI分辨率从 128x64 到 1920x10802.2 LCD 在嵌入式系统中的应用📌 工业 HMI(人机界面)📌 智能家居(智能面板、触摸屏)📌 车载显示(中控屏、仪表盘)📌 医疗设备(心电仪、血糖仪)2.3 常见 LCD 接口接口类型		特点					应用SPI LCD		低速,适用于小屏		128x64, 240x320RGB LCD		中速,支持中型屏幕		7寸 TFT 屏MIPI DSI	高速,适用于高清屏幕	手机、平板

✅ LCD 连接示意图

MCU/MPU (SPI / RGB / MIPI) <--> LCD 屏幕
3. 键盘(Keyboard)
3.1 键盘:机械按键、电容触摸按键、矩阵键盘常见接口:GPIO、I2C(扩展)、USB(HID)3.2 键盘在嵌入式系统中的应用📌 工业控制面板(PLC、仪表)📌 自助终端(ATM、公交刷卡机)📌 游戏设备(手柄、街机)3.3  键盘矩阵示意图行扫描(ROW) <--> MCU GPIO列扫描(COL) <--> MCU GPIO
4. 以太网(Ethernet)
4.1 以太网介绍:支持 TCP/IP 网络通信常见接口:RMII / RGMII / SPI(W5500)4.2 以太网在嵌入式系统中的应用📌 工业自动化(Modbus TCP、OPC UA)📌 IoT 网关(远程监控)📌 网络摄像头(IP Camera)4.3  以太网连接示意图		MCU/MPU (MAC) <--> PHY (RJ45) <--> 网络
5. 串口(UART)
5.1 串口介绍:全双工通信(TX / RX)波特率:9600 ~ 115200 bps5.2 串口在嵌入式系统中的应用📌 MCU 调试(串口日志)📌 串口屏(HMI 显示)📌 4G/5G 模块(AT 指令)	5.3  串口连接示意图	MCU UART TX <--> 设备 RXMCU UART RX <--> 设备 TX
6. CAN 总线
6.1 CAN 介绍:汽车、工业领域的可靠通信协议支持多节点通信,抗干扰能力强6.2 CAN 在嵌入式系统中的应用📌 汽车电子(车身控制、发动机管理)📌 工业自动化(PLC、传感器)6.3  CAN 连接示意图MCU CAN_TX <--> CAN 收发器 <--> CAN 总线MCU CAN_RX <--> CAN 收发器 <--> CAN 总线
7. 传感器
7.1 常见传感器类型:类型			接口			应用温湿度传感器	I2C / SPI	气象站、智能家居加速度计		I2C / SPI	运动检测光传感器		ADC / I2C	亮度调节7.2  传感器连接示意图MCU (I2C / SPI / ADC) <--> 传感器
8. 辅助存储器
8.1 存储类型:存储设备		接口				应用SD 卡		SDIO / SPI		数据存储eMMC		MMC				嵌入式系统NAND Flash	SPI / NAND		固件存储8.2  存储设备连接示意图MCU (SPI / SDIO) <--> SD 卡 / Flash
9. 电机
9.1 电机类型:类型						驱动方式			应用直流电机(DC Motor)		PWM + H 桥		机器人、风扇步进电机(Stepper Motor)	PWM + 驱动芯片	CNC、3D 打印伺服电机(Servo Motor)	PWM				机械臂、无人机9.2 电机控制示意图MCU (PWM / GPIO) <--> 电机驱动器 <--> 电机

外设是嵌入式系统的关键组成部分,不同外设使用不同的通信接口(I2C、SPI、UART、CAN、Ethernet),合理选择和集成外设。

嵌入式系统应用场景

嵌入式系统是现代电子设备的核心,广泛应用于工业、物联网、汽车电子、医疗、消费电子等领域。它的软硬件高度集成、低功耗、高可靠性,使其成为智能设备和自动化系统的关键技术。

📌 工业控制:PLC、智能仪表、机器人控制。
📌 物联网(IoT):智能家居、智能穿戴、环境监测。
📌 汽车电子:车载导航、自动驾驶、发动机控制。
📌 医疗设备:心率监测仪、血糖仪、MRI 设备。
📌 消费电子:智能手机、智能电视、游戏机。

总之,嵌入式系统是一种专用计算机系统,通常集成在电子设备中,执行特定功能。硬件和软件具有独特的特性,不同于通用计算机(PC / 服务器)。

以上。仅供学习与分享交流,请勿用于商业用途!转载需提前说明。

我是一个十分热爱技术的程序员,希望这篇文章能够对您有帮助,也希望认识更多热爱程序开发的小伙伴。
感谢!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词