STM32 MCU结构简述
首先STM32 MCU是什么?
其实他就是一个微控制单元(MicroController Unit)
NVIC | 嵌套向量中断控制器(Nested Vectored Interrupt Controller)(优先级) |
作用 | 用于为中断分组,从而分配抢占优先级和响应优先级 |
SysTick | 系统节拍定时器(system TIck ) |
作用 | 具有自动重载和溢出中断功能,所有基于Cortex_M3处理器的微控制器都可以由这个定时器获得一定的时间间隔 |
Flash | 存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器 |
作用 | STM32的Flash可以用于存储代码,也可以用于存储数据。还用来装芯片配置、芯片ID、自举程序等等 |
FSMC | 可变静态存储控制器(Flexible Static Memory Controller) |
作用 | 是STM32系列采用的一种新型的存储器扩展技术。用来驱动外部总线的。将AHB传输信号转换到适到的外设协议;满足访问外部设备对时序的要求 |
SRAM | 静态随机存储器(Static Random-Access Memory) |
作用 | 利用寄存器来存储信息,所以一旦掉电,资料就会全部丢失,只要供电,它的资料就会一直存在,不需要动态刷新,所以叫静态随机存储器。主要用于系统内存储器,容量大,不需要断电后仍保存数据的器件 |
SDIO | SD为(Secure Digital Memory Card,) 即安全数码卡,IO(Input Output)输入/输出 |
作用 | SDIO这个模块主要是为了读写SD存储卡 |
ICode | ICode总线 |
作用 | 该总线将Cortex™-M3 内核的指令总线与闪存指令接口相连接,指令预取在此总线上完成 |
DCode | DCode总线 |
作用 | 该总线将Cortex™-M3 内核的DCode总线与闪存存储器的数据接口相连接(常量加载和调试访问) |
System | 系统总线 |
作用 | 此总线连接Cortex™-M3 内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA间的访问 |
AHB | 高级高性能总线(Advanced High performance Bus) |
构造 | AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应 |
作用 | AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接 |
APB | 外围总线(Advanced Peripheral Bus) |
作用 | APB主要用于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像 AHB支持多个主模块,在APB里面唯一的主模块就是APB 桥。其特性包括:两个时钟周期传输;无需等待周期和回应信号;控制逻辑简单,只有四个控制信号 |
APB1 | APB2 |
APB1负责DA,USB,SPI,I2C,CAN,串口2345,普通TIM | APB2负责AD,I/O,高级TIM,串口1 |
- APB2总线是什么?
APB2总线就是指特定的一段地址,如:0x4001 0000—XXXX - APB1总线这些是什么
计算机硬件设备有传输数据和地址的线路,有的计算机数据线和地址线是公用的,就要采用分时处理的方式,有的计算机实际地址线路数少于集成电路的地址线路数,就要采用分段寻址的方式。
因为要共用,所以叫总线(bus)有数据总线和地址总线。
总线有控制总线,数据总线和地址总线,控制总线是发送控制信号的,地址总线是传送地址信号的,CPU要访问内存,必须首先在地址总线上给出内存的地址,所谓32位的地址总线是指根CPU相连的地址线有32条,每一条可以给出两个不同的符号(0和1)那么就可以访问2的32次方的空间的内存。数据总线是传输数据的,CPU要从内存或者缓存中读取数据,必须通过数据总线进行,32位的数据总线对应的是跟CPU相连的32根数据线。一条数据线传送一个二进制数,32位数据总线一次就可以传送2个字节的数据。
CPU中的位指的是CPU运算一次处理数据量的能力,32位CPU一次可以处理32位的数据,64位CPU一次可以处理64位的数据。
64位CPU不一定对应64位数据总线和地址总线,如果是32位的总线,可以采取分两次传送的措施,一般总线的位数大于等于CPU的位数。
APB2 | APB1 |
ADC、USART、GPIO、AFIO | DAC、PWR、BKP、bxCAN、USB、I2C、UART、I2S、IWDG、WWDG、RTC、RCC、ICode、DCode、System |
USART | 通用同步异步收发器(universal synchronous asynchronous receiver and transmitter) |
作用 | 用于同步串行通讯,也能用于异步串行通讯。通过数据的传输来实现通信的目的 |
GPIO | 通用输入输出接口(General Purpose Input Output) |
作用 | 每个GPIO端口可通过软件分别配置成输入或输出 |
AFIO | 复用功能IO(Alternate Fuction IO) |
作用 | 复用io口 |
PWR | 功耗控制(Power) |
作用 | 包括功耗管理和低功耗模式选择 |
BKP | 备份寄存器(backup) |
作用 | BKP中包括了42个16位的寄存器,共可保存84字节的内容,它们由VBAT的供电来维挂 |
bxCAN | 基本控制器区域网络(Basic Extended Controller Area Network) |
作用 | / |
I2C | 集成电路总线(Inter Integrated Circuit (Bus) |
作用 | / |
IWDG | 独立看门狗(independent Windowed Watchdog) |
作用 | 1.时钟由专用LSI提供,主频故障了也能工作。2.相对窗口看门狗时间不是很精确 |
WWDG | 窗口看门狗(Windowed Watchdog) |
作用 | 1.时钟由APB1经过预分频得来。2.窗口顾名思义 只有一段的时间可以对看门狗重载(喂狗)提早和太晚喂狗都会被看门狗复位 |
RTC | 实时时钟(Real_Time Clock) |
作用 | 为人们提供精确的实时时间,或者为电子系统提供精确的时间基准,目前实时时钟芯片大多采用精度较高的晶体振荡器作为时钟源 |
RCC | 复位和时钟控制(Reset Clock Controller) |
作用 | STM32的时钟控制器,可开启或关闭各总线的时钟,在使用各外设功能必须先开启其对应的时钟,没有这个时钟内部的各器件就不能运行 |
DMA | 直接存储器存取(Direct Memory Access) |
作用 | 是计算机科学中的一种内存访问技术,实现片内数据之间的高速传输。即是能够不占用cpu实现数据传输 |
SPI | 串行同步通讯协议(Serial Peripheral Interface) |
作用 | 由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换 |
TIM | 定时器(Timer) |
作用 | 包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM) |
A/DC | 模数转换器(Analog/Digital Converter) |
作用 | 将模拟量转换为数字量的过程称为模式(A/D)转换,完成这一转换的期间成为模数转换器(简称ADC) |
作用 | 将数字量转换为模拟量的过程为数模(D/A)转换,完成这一转换的器件称为数模转换器(简称DAC) |