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 小时前
选择第三方IAM还是自建权限体系?中小型后台系统权限架构决策指南
数据库·oracle·架构
Sam_Deep_Thinking5 小时前
聊聊Java中的of
java·开发语言·架构
搭贝6 小时前
低代码+AI赋能文化传媒财务结算:搭贝平台技术架构与实战解析
人工智能·低代码·架构
weixin_397574097 小时前
Agent OS治理平台:资源平面、执行平面与控制平面的架构
人工智能·平面·架构
不脱发的程序猿7 小时前
AI Coding时上下文不够用咋办?
单片机·嵌入式硬件·嵌入式
blevoice8 小时前
杰理工程师日志3:杰理芯片AC6966B开发蓝牙智能音响时,关于自己设置各种提示音常见问题
单片机·jl杰理蓝牙音频芯片·ac6966b蓝牙音响方案·杰理智能音箱开发·杰理蓝牙mp3芯片·杰理ac6965e蓝牙播放器·杰理蓝牙mcu芯片
leoFY1238 小时前
SGM3209(圣邦微 高压负压电荷泵)(与TP7660可只修改4脚,7脚即可替换)
单片机·嵌入式硬件
zlinear数据采集卡9 小时前
基准电压电路深度解析:从理论参数到ZLinear采集卡的精准参考实战
c语言·单片机·嵌入式硬件·fpga开发·自动化
bbaydnog9 小时前
FreeRTOS学习笔记 18:调试方法论——HardFault排查、栈溢出检测、运行时统计,RTOS调试三板斧
笔记·单片机·freertos
下午写HelloWorld9 小时前
GD32F4系列微控制器上电启动流程
单片机·嵌入式硬件