MCU 组成原理详解—— 从硬件框图透视微控制器的完整架构

翻数据手册,发现MCU的硬件框架图中时钟系统、CPU内核、存储器、总线、外设。都有相似的地方,整体都可以用相同的思路去概括,包括其他芯片的系统框架图。

这是九齐的一款八位单片机,NY8BM84A

STM32L432xx

RA0E3

所以我对MCU的组成原理进行一个整理,从时钟系统,CPU,存储系统,内部总线结构,以及外设模块都是做什么的,让我有个清晰的认识。

时钟系统

  1. 时钟源有两种主流选择

最常用的是外部晶振(HSE),通过芯片的XIN/XOUT两个脚接进去,频率一般是8MHz、12MHz、16MHz或者25MHz。这种方式精度高、稳定,适合要求高的场合。还有个LSE(外部低速晶振,32.768KHz)

另一种是芯片自己带的高速内部RC振荡器(HSI)常用来应急或者低功耗场景,还有LSI(内部低速RC)

后面还有一堆分频器,把系统主时钟(SYSCLK)拆分成好几路:

  • AHB时钟:给CPU、DMA和高速总线用,最快的那条路。

  • APB1/APB2时钟:给各种中低速外设。

  • 每个外设还能自己再分频,比如ADC、定时器、串口什么的。

CPU内核

ALU(算术逻辑单元)主要操作加减乘除、逻辑运算

累加器(ACC),不管是8位还是32位的MCU,大部分运算结果都先扔这里暂存。

程序计数器(PC)负责记住下一条指令在哪儿,程序跑的时候它自己往后加。

系统功能寄存器(SFR)控制CPU模式、时钟、中断、堆栈指针什么的。

堆栈用来存函数返回地址、临时变量。

存储器系统

MCU的存储器分成两大块,框图里"存储器"那个模块看得特别清楚。

  1. 程序存储器(非易失性)

放代码、常量表、配置参数,断电也不丢。

现在主流是Flash ROM,支持在线擦写,还能IAP(在应用编程),特别方便。还有掩膜ROM、PROM、EPROM,EEPROM

  1. 数据存储器(易失性)

存运行时的变量、中间结果,断电就没了。

主流是SRAM,速度快,功耗相对高一点;DRAM在MCU里几乎不用。

  • SRAM:依靠晶体管的稳态电路保持数据,只要供电就稳定存在,无需额外操作。速度快但结构复杂。

  • DRAM:依靠电容中存储的电荷表示0或1。由于电容会自然漏电,必须定期读取并重新写入(刷新)以保持数据。

内部总线结构

  • 数据总线:传输CPU和存储器和外设之间的数据,决定数据传输的位宽(位宽决定了一次传输多少个数据)

  • 地址总线:传输存储器和外设的地址信号,CPU通过地址总线要访问哪个模块或哪个地址的数据。

  • 控制总线:传读写信号、中断请求、各种时序控制。比如定时器溢出触发中断,这个信号就是通过控制总线。

外设模块

I/O类

  1. GPIO:控制引脚高低电平、输入输出方向,还能复用成各种功能(串口、SPI、ADC啥的)。

定时计数类

  1. 定时器:按时钟脉冲计数,设置好定时频率和计数值,做延时、PWM输出、输入捕获。

  2. CCP: 基于定时器,

    捕获(把定时器计数值锁存到 CCR 寄存器,通过两次捕获值计算脉冲周期 / 宽度,常用于超声波测距、旋转编码器解码;)

    比较(定时器计数与 CCR 寄存器值做匹配,匹配后触发电平翻转、中断,修改 CCR 值即可调整 PWM 占空比),脉宽调制

模拟接口

  1. ADC/DAC:ADC把传感器模拟信号转成数字,DAC反过来。

通信接口

  1. USART串口:异步全双工串行总线,跟电脑、其他MCU、传感器聊天,支持硬件流控。

  2. I2C和SPI:I2C两根线就能挂一堆设备,SPI更快,适合屏幕、外部Flash。

    I2C:同步半双工串行,两个线进行通信,一根数据线和一根时钟线

    SPI:同步全双工串行

相关推荐
小鼻子的猫4 小时前
独立开发 30 天:2.5 万行代码,23 个 Bug,5 次重构——一个 AI 社区的诞生
架构
咖啡八杯4 小时前
GoF设计模式——命令模式
java·设计模式·架构
candyTong5 小时前
阿里开源 AI Code Review 工具:ocr review 的执行链路解析
javascript·后端·架构
doiito19 小时前
【Agent Harness】TPS的“自工程完结”教会了我一件事:别把Bug留给下一道工序
架构·rust
烬羽19 小时前
中英文 token 数量差一倍?两段 JS 代码搞懂 LLM 底层是怎么"读"文字的
javascript·程序员·架构
白鲸开源21 小时前
一文读懂DolphinScheduler插件机制:如何轻松扩展任务类型与数据源
java·架构·github
棒槌开发师1 天前
动态组件设计(elpis)
架构
得物技术1 天前
从表单到 Agent:得物社区活动搭建的 AI 实践之路
人工智能·架构·agent
Ausra无忧1 天前
记录在公司把单服务器升级成多服务器架构流程
前端·后端·架构