你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32】总线架构

[复制链接]
flyingstar 发布时间:2025-9-13 13:50
STM32系列单片机是ST公司基于ARM Cortex-M系列内核开发的32位微控制器,包括F1、F4、F7等多个子系列产品,覆盖CM0、CM3、CM4等多种内核架构,能够分别满足多种不同的选型需求。其中,F1系列作为通用类型,兼具丰富外设高性能和低成本的优点,是基于Cortex-M3架构的主力产品,应用最为丰富。F1系列下又有F101基础型、F102USB专用型、F103增强型以及F105/F107互联型4个子系列,这4个子系列间只有外设和存储器大小等细微差别,其中互联型产品主要添加了以太网支持等内容。本文主要基于F103系列讲解系统的总线架构,同时也包括部分其他F1系列非互联型产品的共有特点。


STM32总线架构

微信图片_2025-09-13_134855_662.png

上图是非互联型产品的系统结构,分别画出了芯片的主要组成部分和各部分之间的总线连接(图中仅画出主要的线路连接),主要部分包括内核、存储器(片上Flash和片上SRAM等)、外设以及DMA组件,他们通过ICode总线(Instruction Code Bus)、DCode总线(Data Code Bus)、System总线、总线矩阵(Bus Matrix)、DMA总线、AHB总线、APB总线、AHB2APB桥等总线相互联通。
其中,ICode、DCode、System总线三条总线是CM3内核规定的、从内核引出的三条总线,负责内核与其他所有部件的交流。ICode和Dcode总线又称内核私有总线,它们仅用于内核与内部关键资源的交互,实现指令与数据的高效传输。

ICode

ICode总线是一条基于AHB-Lite总线协议的32位总线,负责从程序存储器读取指令,实现片内Flash、系统存储器或外部的NOR Flash和内核之间的联通。其中,ICode通过Flash接口(Flash控制器)连接片内Flash,该接口可以实现把ICode总线的AHB-Lite协议请求转换为Flash地址锁存、读写等物理接口信号。片内Flash一般存储了用户程序,故又名程序存储器。系统存储器是一块由ST厂商预先写入并固化了专用程序的特殊片内只读存储器(ROM),该专用程序主要是Bootloader,用于ISP/IAP等启动模式,即STM32使用串口下载程序时所运行的下载程序。系统存储器同样连接了一个内部专用控制器(类似于Flash控制器),该控制器接口被连接到总线矩阵,通过总线矩阵与ICode总线建立联系。对于片外扩展的程序存储器,ICode通过总线矩阵与FSMC(Flexible Static Memory Controller,灵活静态存储控制器)联通,而FSMC直接连接外部扩展存储器。FSMC可以把ICode总线的AHB-Lite协议请求转换为驱动片外存储器的读写使能等并行信号,同时确保高速内部总线与片外存储器的速度协调。通常,对于STM32系列单片机,可以通过BOOT引脚的高低电平确定芯片复位后的启动模式,也即ICode从哪个部分开始读取程序。

DCode

DCode总线同样遵从AHB-Lite总线协议,是独立于ICode总线的专注于数据访问的总线,该总线直接连接到总线矩阵,通过总线矩阵与其他片上单元(片上SRAM、片上Flash、片外扩展数据存储器)相连接。DCode总线主要访问区域为片上SRAM(存储变量、堆栈、中间运算结果等),内置的SRAM接口把DCode总线的AHB-Lite协议请求转换为SRAM访问信号,实现在SRAM中存取变量等信息。片上Flash除存储用户程序外,可能还存储了一些常量等数据,DCode总线通过总线矩阵与Flash接口联通,实现对这些数据的访问。FSMC除可以扩展片外程序存储器外,还可以扩展片外数据存储器(如SRAM),而DCode总线可以通过FSMC访问片外数据存储器。
ICode总线与DCode总线分别对应取指与数据访问,体现了Cortex-M3基于哈佛架构的总线设计,确保了指令与数据独立存取的高效特点。

系统总线

系统总线并非单指某一条总线,而是沟通内核与各个外设的一个总线层级结构,包括连接内核与总线矩阵的内核侧System总线、连接各外设与总线矩阵的外设侧总线以及实现内核与NVIC(嵌套向量中断控制器)、SysTick定时器、RCC(复位与时钟控制器)等系统级模块的寄存器的联通的系统模块侧的连接。
其中,外设侧总线包括AHB系统总线和APB总线两部分,AHB系统总线遵循AHB-Lite协议,属于系统总线的高速部分,通过AHB外设总线连接需要高速数据传输的外设(包括DMA接口、SDIO、FSMC等)。APB总线相对AHB总线速度较低,遵循APB协议,通常连接数据传输速率较低的外设,APB总线通过AHB2APB桥连接到AHB总线,实现两者协议转换。STM32有两条APB总线,APB1总线速率相对较低,主要连接对速率要求不高的外设,APB2总线相对APB1速率相对较高,适用于对速率有一定要求的外设。对于STM32F1系列,若AHB总线频率为72MHz时,APB1总线频率最高为36MHz,APB2最高为72MHz。

总线矩阵

总线矩阵连接了芯片上的大部分总线,是一个总线的仲裁与路由系统。它通过预设规则仲裁决定优先响应哪个请求,同时管理多条总线之间的数据传输,确保资源从正确的目标地址传输到正确的请求端。总线矩阵就像一个多刀多掷开关,,对多条总线之间的信息传输起到一个快速响应枢纽的作用。

DMA总线

DMA总线是支持DMA数据传输的专用总线,可以实现在无CPU干预下的数据搬运。STM32F1有两个DMA通道接口(DMA1、DMA2),DMA接口实现接收外设的DMA请求和发起数据传输。DMA总线通过总线矩阵访问存储器(SRAM、Flash、片外扩展存储器等),以及连接AHB、APB总线访问支持DMA传输的外设。

综上,STM32F1系列,芯片主要由内核、众多外设及其间的连接组成,熟悉掌握内核的主要运作方式、每个外设的功能、关键寄存器、存储器结构以及各单元之间的通信方式是深入了解对应芯片编程的重点内容。


收藏 评论0 发布时间:2025-9-13 13:50

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版