打印
[应用相关]

STM32总体架构简单介绍

[复制链接]
203|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-11-27 12:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一、引言
       在学习了前面一些关于STM32的基本用法后,我们能够发现,在STM32中的引脚占绝大部分都是GPIO口,他们无非就是用一些寄存器去控制进行一些输入输出的功能。因此,在了解了STM32的基本用法以后,我们有必要去宏观的了解一下它的总体架构,即stm32中各个部分、各个模块是怎样进行相互连接、相互通信以及相互影响的。

       接下来,我们就来了解一下stm32的总体架构。

二、STM32的总体架构
下图是STM32F10x的中文参考手册中截过来的一张关于stm32的系统架构图



       在STM32系统架构是一种哈佛架构,主要由三个被动单元、四个主动(驱动)单元以及其他单元构成。

如何去理解主动单元?

       简单来说,就是能够自己去主动控制一些数据的通信等等的单元。它能够主动发出一些控制信号,去与其他部分进行数据交互等操作。其中,这里重要的是去与其他设备进行数据的通信,谁给谁发不重要。

如何理解被动单元?

       理解了主动单元,被动单元就好理解了,简单理解就是没办法自己控制去进行发送的设备,只能去听别人的,相当于是一个从属的设备,即被动单元是一个处于从属状态的一种设备。

下面,我们来了解一下这三个被动单元和五个主动单元。

1、三个被动单元
(1)内部SRAM





(2)内部闪存存储器






       因此,我们代码中用到的一些变量都是被存放在SRAM里面,而下载的代码程序以及程序中用到的常量都是统一存储在flash里面,因为我们程序本身也会被转成二进制文件,所以都放在flash里面了,那么很明显,我们flash的容量一般比SRAM的容量要大得多。

       以上两种存储器也是我们STM32中最重要的两大被动单元。

(3)AHB到APB的桥(AHB to APBx)






        STM32要与外设去进行数据传输和数据通信主要就是通过这个总线矩阵,然后AHB系统总线作连接来实现的。

       其中,AHB系统总线(Advanced High Performance Bus),即一种高级高性能系统总线,主要用于高性能模块(如CPU、DMA和DSP等)之间的连接。

       同时,我们观察系统架构图能够发现,系统总线连接不同外设时还要作区分,这个区分实际上是根据数据传输速率来进行区分的,即外设被分成了高速外设和低速外设两部分。

       其中,这里经桥区分后连接外设的APB总线被称为外设总线 (Advanced Peripheral Bus)。STM32中APB2总线上连接的是高速外设,如模数转换ADC1、串口USART1、GPIOA等,APB1总线上连接的是低速外设,如DAC、USART2、定时器TIM2等。关于这些外设的区分,这里有个印象就好,后面我们再慢慢叙述。

       实际上,除以上三种被动单元以外,还有一个也是被动单元,即FSMC,这个我们后面再介绍。

2、四个主动(驱动)单元
(1)Cortex-M3内核DCode总线(D-Bus)



下图是该总线进行数据传输的数据流向:



(2)内核系统总线(S-Bus)



下图是S-Bus总线进行数据传输时的数据流向:



(3)通用DMA1(Direct Memory Access)
(4)通用DMA2



下图是DMA总线提供直接通道时的数据流向:



3、其他单元
(1)内核ICode总线



下面是经ICode总线的数据流向:



(2)FSMC(Flexible Static Memory Controller)





以上就是对stm32系统总体架构的一些简单描述。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/2301_79475128/article/details/143952385

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2028

主题

15904

帖子

14

粉丝