STM32总体架构简单介绍

news/2024/11/25 23:29:46/

目录

一、引言

二、STM32的总体架构

1、三个被动单元

(1)内部SRAM 

(2)内部闪存存储器

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

2、四个主动(驱动)单元

(1)Cortex-M3内核DCode总线(D-Bus)

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

(3)通用DMA1(Direct Memory Access)

(4)通用DMA2

3、其他单元

(1)内核ICode总线

 (2)FSMC(Flexible Static Memory Controller)


一、引言

       在学习了前面一些关于STM32的基本用法后,我们能够发现,在STM32中的引脚占绝大部分都是GPIO口,他们无非就是用一些寄存器去控制进行一些输入输出的功能。因此,在了解了STM32的基本用法以后,我们有必要去宏观的了解一下它的总体架构,stm32中各个部分、各个模块是怎样进行相互连接、相互通信以及相互影响的

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

二、STM32的总体架构

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

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

如何去理解主动单元?

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

如何理解被动单元?

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

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

1、三个被动单元

(1)内部SRAM 

内部SRAM存储器(粗略理解成手机的内存)
所属描述SRAM本身不具有控制数据通信,与他人进行数据交互的能力,而是需要CPU内核去给他发送命令,从而控制他去进行读写操作的。因此,它是一个被动单元。
主要功能存储程序执行过程中用到的一些变量

(2)内部闪存存储器

内部闪存存储器FLASH,一种类似电脑硬盘的存储器
所属描述flash本身也不能去进行发送数据,与他人进行数据交互,只能通过CPU内核或者其他设备模块来控制它进行读写等操作。因此,他也是一种被动单元。
主要功能flash能够存储我们下载的一些程序、以及程序执行所使用的常量(通常是全局常量)

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

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

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

AHB to APBx的桥连接AHB系统和APB外围总线的桥
所属描述这些总线需要CPU内核给一些指令才能去控制他们与一些外设进行数据的交互通信。因此,这也是一种被动单元。
主要功能

桥1,通过APB2总线连接到APB2上的高速外设,速率可高达72MHz;

桥2,通过APB1总线连接到APB1上的低速外设,最高36MHz。

        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)

Cortex-M3内核DCode总线从内核引出的总线之一
简单描述内核通过D-Bus总线发出控制信号或指令与其他设备进行数据传输,因此这是一种主动单元。
主要功能通过外部DCode总线连接总线矩阵,然后与闪存存储器的数据接口相连接,实现Flash常量的加载与调试访问

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

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

内核系统总线(S-Bus)从内核引出的总线之一
简单描述S-Bus总线向其他设备或模块发送各种各样控制信号或者一些指令,来控制我们整个系统的数据传输。
主要功能通过外部Syatem总线连接总线矩阵

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

(3)通用DMA1(Direct Memory Access)

(4)通用DMA2

通用DMA1(2)Direct Memory Access,直接内存访问(直接存储器访问)
简单描述通过DMA总线链接到总线矩阵。可以对内存发出控制信号,实现内存与外设的数据流动,故是一种主动单元。
主要功能相当于CPU的“大秘书”。可以帮助高速运转的CPU实现相对低速的内存与外设之间的数据传输,以降低CPU负担

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

3、其他单元

(1)内核ICode总线

内核ICode总线内核引出的总线之一
简单描述使读取指令不通过总线矩阵调度,是CPU与flash进行数据交互的一条专用通道
主要功能内核通过外部ICode总线连接Flash接口,实现CPU内核对Flash中存放指令(存放了程序和常量的二进制指令)的读取

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

 (2)FSMC(Flexible Static Memory Controller)

FSMCFlexible Static Memory Controller,可变静态存储控制器
简单描述一种存储器扩展机制
主要功能用于扩展外部SRAM、Flash、以及直接通过FSMC连接LCD屏幕

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


http://www.ppmy.cn/news/1549939.html

相关文章

Day03_AJAX原理 (黑马笔记)

Day03_AJAX原理 目录 Day03_AJAX原理 学习目标 01.XMLHttpRequest - 基础使用 目标 讲解 小结 02.XMLHttpRequest - 查询参数 目标 讲解 小结 03.案例 - 地区查询 目标 讲解 小结 04.XMLHttpRequest - 数据提交 目标 讲解 小结 05.认识_Promise 目标 讲解…

selenium grid 远程webdriver添加上网代理

################## selenium grid config start ####################### # UI自动化测试策略 Grid/Local UIAutomation_TestStrategy Grid selenium_grid_url http://172.16.99.131:4444/wd/hub # Windows XP / linux grid_platformName linux # windows capabilities win…

Vue 动态给 data 添加新属性深度解析:问题、原理与解决方案

在 Vue 中,动态地向 data 中添加新的属性是一个常见的需求,但它也可能引发一些问题,尤其是关于 响应式更新 和 数据绑定 的问题。Vue 的响应式系统通过 getter 和 setter 来追踪和更新数据,但 动态添加新属性 时,Vue 并不会自动为这些新属性创建响应式链接。 1. 直接向 V…

[Python3学习笔记-基础语法] Python3 基础语法

本篇文章详细介绍Python3的基础语法,主要包括编码、标识符、Python保留字、注释、行缩进、多行语句、Number类型、字符串、空行、print打印等。 这些是Python最基础的东西,掌握好了才能更好的学习后续的内容。 有兴趣共同结伴学习Python的朋友&#xff0…

量子感知机

神经网络类似于人类大脑,是模拟生物神经网络进行信息处理的一种数学模型。它能解决分类、回归等问题,是机器学习的重要组成部分。量子神经网络是将量子理论与神经网络相结合而产生的一种新型计算模式。1995年美国路易斯安那州立大学KAK教授首次提出了量子…

Linux: 进程地址空间(理解虚拟地址和页表)

目录 1. 虚拟地址 2. 进程地址空间分布 3. 描述进程地址空间 4. 内存管理——页表 5. 父子进程的虚拟地址关系 6. 页表标记位 6.1 读写权限 6.2 命中权限 7.为什么存在进程地址空间 1. 虚拟地址 #include <stdio.h> #include <unistd.h> #include <sy…

网络安全服务人才发展路线图

到2023年&#xff0c;全球网络安全支出规模将达到1512亿美元&#xff08;约合10640.4亿元人民币&#xff09;&#xff0c;并将以9.4%的年复合增长率持续增长。与火爆的产业现状相比&#xff0c;中国的网络安全服务人才面临巨大缺口。相关数据显示&#xff0c;我国网络安全人才缺…

开放性实验——网络安全渗透测试

网络安全渗透测试实验报告 一、 实验环境 操作机&#xff1a;虚拟机kali linux 目标主机&#xff1a;虚拟机win 7:&#xff08;192.168.1.116&#xff09; Kali Linux和win7 均采用桥接模式 二、 实验工具 Kali Linux上的metasploit扫描器nessusNmap 三、 攻击目标 利用ms17…