Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

一、MCU 简介

1. MCU 是什么

MCU(Microcontroller Unit,微控制器)是一种将 CPU、存储器、定时器、IO 口、通信接口 等集成在单颗芯片上的微型计算机,也称单片机

它不像 PC 那样强调通用算力,而是面向具体设备:用较少的资源完成采集、控制、通讯等任务,广泛应用于家电、汽车电子、工业控制、物联网终端等领域。

2. MCU 与 CPU、MPU、SoC 的区别

类型 全称 特点 典型应用
CPU Central Processing Unit 只有处理器核心,需外接存储和外设 PC 处理器核心
MCU Microcontroller Unit CPU + 片上 Flash/RAM + 外设,高集成 传感器节点、电机控制
MPU Microprocessor Unit 处理器为主,外设较少,常跑 Linux 工控机、网关
SoC System on Chip 高度集成,可含 CPU + GPU + 通信 + AI 手机、智能座舱

日常说的「单片机开发」,本质上就是 MCU 开发

3. 常见应用领域

  • 消费电子:空调、洗衣机、智能门锁
  • 工业控制:PLC 扩展模块、变频器、伺服驱动
  • 汽车电子:车身控制、BMS、仪表盘
  • 物联网:温湿度采集、无线模组、智能家居
  • 医疗设备:血压计、便携检测仪

二、MCU 内部结构

1. 基本组成

一颗 MCU 芯片通常包含:

1
2
3
4
5
6
7
8
9
10
┌─────────────────────────────────────┐
│ CPU 内核(ARM Cortex-M / RISC-V) │
├─────────────────────────────────────┤
│ Flash(程序存储) SRAM(运行内存) │
├─────────────────────────────────────┤
│ 时钟系统 / 复位 / 电源管理 │
├─────────────────────────────────────┤
│ GPIO / UART / SPI / I2C / CAN │
│ ADC / DAC / PWM / Timer / DMA │
└─────────────────────────────────────┘

2. 存储器

类型 作用 特点
Flash 存放程序代码 掉电不丢失,写入次数有限
SRAM 运行时变量、堆栈 读写快,掉电丢失
EEPROM / Data Flash 参数、校准值 可反复擦写少量数据
寄存器 配置外设 通过读写寄存器控制硬件

3. 时钟系统

MCU 所有外设和 CPU 都依赖时钟工作。常见时钟源:

  • HSE:外部高速晶振,精度高
  • HSI:内部高速 RC 振荡器,成本低
  • LSE / LSI:低速时钟,用于 RTC 和低功耗

通过 PLL 锁相环 可将时钟倍频,如 8MHz 晶振倍频到 72MHz、168MHz 等系统主频。

三、常见内核与芯片

1. 主流内核架构

内核 特点 代表芯片
ARM Cortex-M0/M0+ 超低功耗、低成本 STM32L0、NXP LPC800
ARM Cortex-M3/M4 主流工控,M4 带 FPU STM32F1/F4、GD32
ARM Cortex-M7 高性能、高主频 STM32H7、i.MX RT
8051 经典老架构,简单 STC89、NXP 部分型号
RISC-V 开源指令集,生态崛起 CH32V、ESP32-C3、GD32VF
AVR Atmel 传统 8 位 ATmega328(Arduino Uno)

2. 常见 MCU 厂商与系列

厂商 常见系列 特点
STMicroelectronics STM32F/G/H/L 系列 生态完善、资料丰富
Espressif ESP8266、ESP32 内置 WiFi/蓝牙,物联网热门
GigaDevice GD32 兼容 STM32,性价比高
NXP LPC、Kinetis 汽车、工业领域多
Microchip PIC、AVR、SAM 8/16/32 位齐全
国产 沁恒 CH32、兆易创新、航顺 国产替代加速

四、常用外设

1. GPIO

GPIO(General Purpose Input/Output)是最基础的数字 IO,可配置为输入或输出,用于读取按键、驱动 LED、控制继电器等。

1
2
3
// 伪代码示例:点亮 LED
GPIO_SetMode(LED_PORT, LED_PIN, OUTPUT);
GPIO_Write(LED_PORT, LED_PIN, HIGH);

2. UART

UART(串口)是最常用的异步通信方式,适合调试打印、与蓝牙模块/4G 模组通信。

  • 参数:波特率、数据位、停止位、校验位
  • 常见波特率:9600、115200

3. SPI

SPI(Serial Peripheral Interface)高速同步总线,常用于 Flash、LCD、ADC、SD 卡等。

特点:全双工、速度快,需要多根线(CLK、MOSI、MISO、CS)。

4. I2C

I2C(Inter-Integrated Circuit)两线制总线(SCL、SDA),适合挂载多个从设备,如 EEPROM、传感器、RTC。

特点:布线少,速度相对 SPI 较低。

5. ADC / DAC

  • ADC:将模拟电压转为数字量,用于温度、压力、电流采集
  • DAC:将数字量转为模拟电压,用于波形输出、模拟控制

6. 定时器与 PWM

定时器用于延时、计数、捕获脉冲;PWM 用于电机调速、LED 调光、舵机控制。

7. 其他外设

外设 用途
CAN 汽车、工业现场总线
USB 设备通信、固件升级
DMA 内存与外设间自动搬运数据,减轻 CPU 负担
RTC 实时时钟,记录年月日时分秒
Watchdog 看门狗,程序跑飞时复位系统

五、中断与 DMA

1. 中断机制

中断是 MCU 响应外部事件的重要方式。当按键按下、串口收到数据、定时器溢出时,硬件可打断 CPU 当前工作,优先处理紧急任务。

关键概念:

  • 中断向量表:存放各中断处理函数入口
  • 中断优先级:高优先级可打断低优先级
  • 中断服务函数(ISR):应尽量简短,不要做耗时操作

2. DMA

DMA(Direct Memory Access)可在不占用 CPU 的情况下,在内存与外设之间搬运数据。适合 ADC 高速采集、串口大数据收发等场景,显著降低 CPU 负载。

六、开发流程

1. 典型流程

1
2
需求分析 → 选型 → 硬件设计 → 环境搭建
→ 外设驱动编写 → 业务逻辑 → 调试 → 烧录 → 测试

2. 开发语言

语言 说明
C 语言 MCU 开发最主流,直接操作寄存器或调用库
C++ 部分框架支持,用于面向对象封装
MicroPython / Arduino 快速原型,适合入门
Rust 新兴选择,强调内存安全

本博客其他文章中的 Csharp 多用于 PC 上位机;MCU 固件本身仍以 C 语言 为主,二者常配合使用。

3. 常用开发工具

工具 说明
STM32CubeIDE ST 官方 IDE,含配置工具
Keil MDK 经典 ARM 开发环境
IAR 商业编译器,优化好
PlatformIO VS Code 插件,跨平台
ST-Link / J-Link 常用下载调试器

4. 配置与代码生成

以 STM32 为例,常用 STM32CubeMX 图形化配置时钟、引脚、外设,自动生成初始化代码,再在此基础上编写业务逻辑。

七、MCU 与 FPGA、上位机的关系

角色 职责
MCU 实时控制、协议解析、传感器采集
FPGA 高速并行 IO、接口桥接、算法加速
PC / Csharp 上位机 参数配置、数据展示、固件升级、产线测试

三者常组合使用:MCU 做控制核心,FPGA 处理高速信号,上位机做人机交互。本博客《网线烧录芯片与Csharp传输实现》《FPGA基本知识》可与本文形成嵌入式系统知识链。

八、低功耗与可靠性

1. 低功耗模式

电池供电设备需关注功耗:

  • Sleep / Stop / Standby:逐级降低功耗
  • 关闭不用的外设时钟
  • 合理设置唤醒源(按键、RTC、串口)

2. 可靠性设计

  • 看门狗:防止程序死机
  • 掉电检测:保存关键参数
  • EMC 设计:硬件滤波、PCB 布局
  • OTA 升级:远程更新固件,需 Bootloader 支持

九、常见问题

现象 可能原因 排查方向
程序下载失败 接线错误、芯片保护、供电不足 检查 SWD 线、BOOT 引脚
串口乱码 波特率不一致 统一双方波特率
程序跑飞 数组越界、栈溢出、未初始化指针 调试器单步、看 HardFault
外设不工作 时钟未开启、引脚复用错误 查 RCC、GPIO AF 配置
偶尔复位 看门狗未喂狗、电源不稳 查电源纹波、喂狗逻辑

十、学习路径建议

1. 入门

  1. 了解数字电路基础:高低电平、上拉下拉、晶振
  2. 学习 C 语言指针、结构体、位运算
  3. 从 GPIO 点灯、按键、串口打印开始
  4. 掌握定时器、中断基本用法

2. 进阶

  1. SPI / I2C 驱动传感器
  2. ADC 采集与滤波
  3. PWM 控制电机
  4. DMA + 串口收发
  5. 阅读芯片数据手册(Datasheet)和参考手册(Reference Manual)

3. 实战方向

方向 内容
物联网 ESP32 + WiFi/MQTT
电机控制 PWM + 编码器 + PID
汽车电子 CAN 总线
工业采集 ADC + RS485 + Modbus

十一、小结

MCU 是嵌入式系统的「大脑」,用一颗芯片即可完成感知、计算、控制。学习时应抓住:

  1. 内核与存储器结构
  2. 外设原理与寄存器配置
  3. 中断、时钟、DMA 机制
  4. 开发工具链与调试方法
  5. 与 FPGA、上位机协同的系统观

从点亮第一颗 LED 开始,逐步过渡到串口通讯、传感器采集、电机控制,是大多数工程师熟悉的 MCU 成长路径。

评论