前言
STM32F103X芯片内部包含内核和片上外设,犹如我们使用的电脑,对应的是CPU和主板,集成显卡之类的。
一、STM32之系统架构
1.内核与外设
SMT32F103采用的是Cotex-M3内核,所谓的内核就是CPU,由ARM公司设计,他们是IP开发商,本身并不生产芯片。通过技术授权给系统集成(SOC)厂家,比如ST,GD等芯片厂商(SOC厂商),由ST、GD等芯片厂家增加外围设备Eg:GPIO、IIC、FLASH、UART、USB等,由SOC厂商在CPU外围增加的设备我们称之为外设。
2.系统结构图
STM32F103由4个驱动单元(CPU部分)和4和被动单元(外设)组成
驱动单元(内核部分)
由上图黄色区域的①②③④部分组成。
内核
STM32F103的内核CPU是cortex-M3
DCode总线
Dcode中的D代表Data 数据的意思,说明这条总线是用来传输数据的。我们在写代码的时候,数据以常量和变量的存在形式;常量属于非易失性的,保存在ROM中;变量属于易失性的,掉电就不存在的数据,保存在SRAM中。变量又分为全局变量和局部变量,无论是哪种变量,包括常量都属于数据,因此都可以被DCode总线访问到。
System总线
系统总线是用来访问外设寄存器的,通常我们设置寄存器,都是由System总线进行访问的。
DMA总线
DMA Direct Memory Access缩写 直接存储器访问,可将数据从一个地址空间传输到另外一个地址空间,地址空间可以是外设到寄存器或者寄存器到寄存器。访问的数据可以是寄存器,也可以是SRAM,亦可是FLASH;数据可以被DCode和DMA同时访问到,因此为了避免访问冲突,需要总线来仲裁来决定哪个总线访问。
被动单元(外设部分)
由上图紫色区域的①②③④部分组成。
FLASH
内部的闪存存取器,即FLASH,程序存储在FLASH中,内核通过ICode读取指令。
SRAM
内部的SRAM,即数据存储器RAM,程序的变量和堆栈开销在SRAM中。
AHB和APB桥
AHB和APB桥类似于个人PC中的南桥和北桥,南桥挂鼠标和键盘等低速设备,北桥挂显卡等高速设备。南桥频率低,北桥频率高。AHB是高性能的系统总线,APB是外设总线。二者分别适用于高速和低速的设备连接。
- AHB总线:全称Advanved High Performance Bus 高级高性能系统总线 简写:AHB
- APB总线:全称Adanvced Peripheral Bus 高级外设总线 简写:APB
FSMC
FSMC 全称 Flexible Static Memory Controller 灵活的静态存储器控制器,是一个很有特色的外设,通过FSMC可以扩展内存,比如外部的SRAM、NANDFLASH、NORFLASH等,但只能扩展静态Static内存,动态内存无法扩展。
ICode总线
ICode I指的是Instruction,程序经过IDE编译以后都是一条条的指令,内核要读取这些指令都是要通过ICode来访问,程序运行时,每时每刻都要用到,是专门用来取指的。文章来源:https://www.toymoban.com/news/detail-422733.html
总结
冯·依诺曼结构和哈佛结构
计算机把数据和代码的存储方式的不同,分成冯·依诺曼结构和哈佛结构。
冯·依诺曼结构:把数据和代码都存储在同一个存储器中,STM32就是把内核和外设共同分配在可以寻址4G的空间存储器中。冯·依诺曼结构的指令和数据共享同一数据总线,使得信息流的传输成为限制性能的瓶颈,但架构设计师为了解决这类问题,采用了ICode总线专门用来取指,,System总线专门用来访问外设寄存器,DCode总线专门用来访问SRAM、和FLASH中的数据,外设寄存器、SRAM和FLASH三者之间又可以通过DMA互相传输数据,减小CPU的开销,从而大大提高了传输性能。文章来源地址https://www.toymoban.com/news/detail-422733.html
到了这里,关于STM32F103之系统架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!