STM32总体架构简单介绍

目录

一、引言

二、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.mzph.cn/web/60688.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# Postman或者PostApi调试前端webapi接口发送带有request/body/head信息

知识: 前端接口,表单形式提交。 req.ContentType "application/x-www-form-urlencoded"; x-www-form-urlencoded 是一种常见的 MIME 类型,用于将键值对编码为 HTTP 请求体中的 URL 编码格式。在 Web API 中,x-www-for…

李宏毅机器学习课程知识点摘要(1-5集)

前5集 过拟合: 参数太多,导致把数据集刻画的太完整。而一旦测试集和数据集的关联不大,那么预测效果还不如模糊一点的模型 所以找的数据集的量以及准确性也会影响 由于线性函数的拟合一般般,所以用一组函数去分段来拟合 sigmoi…

七、SElinux

一、SElinux简介 SELinux是Security-Enhanced Linux的缩写,意思是安全强化的linuxSELinux 主要由美国国家安全局(NSA)开发,当初开发的目的是为了避免资源的误用传统的访问控制在我们开启权限后,系统进程可以直接访问当我们对权限设置不严谨时…

小程序25- iconfont 字体图标的使用

项目中使用到图标,一般由公司设计进行设计,设计好后上传到阿里巴巴矢量图标库 日常开发过程中,也可以通过 iconfont 图标库下载使用自带的图标 补充:使用 iconfont 图标库报错:Failed to load font 操作步骤&#xff…

鸢尾花植物的结构认识和Python中scikit-learn工具包的安装

鸢尾花植物的结构认识和Python中scikit-learn工具包的安装 鸢尾花植物的结构认识和Python中scikit-learn工具包的安装 鸢尾花植物的结构认识和Python中scikit-learn工具包的安装一、鸢尾花的认识1.1 对花结构和功能认识1.2、鸢尾花认识1.2.1 鸢尾花种类1.2.2 鸢尾花结构 二. Py…

Unity3D 截图

使用 Unity3D 自带的截图接口,制作截图工具。 截图 有时候我们想对 Unity 的窗口进行截图,如果直接使用一些截图工具,很难截取到一张完整分辨率的图片(例如,我们想要截取一张 1920 * 1080 的图片)。 其实…

Mysql的加锁情况详解

最近在复习mysql的知识点,像索引、优化、主从复制这些很容易就激活了脑海里尘封的知识,但是在mysql锁的这一块真的是忘的一干二净,一点映像都没有,感觉也有点太难理解了,但是还是想把这块给啃下来,于是想通…

丹摩征文活动 | AI创新之路,DAMODEL助你一臂之力GPU

目录 前言—— DAMODEL(丹摩智算) 算力服务 直观的感受算力提供商的强大​ 平台功能介绍​ 镜像选择 云磁盘创建 总结 前言—— 只需轻点鼠标,开发者便可拥有属于自己的AI计算王国 - 从丰富的GPU实例选择,到高性能的云磁盘,再到预配置的深度学习…

Linux之日志

日志 在编写网络服务器, 各种软件时, 程序一定要打印一些日志信息. 1. 可以向显示器打印, 也可以向文件中写入. 2. 日志是软件在运行时记录的流水账, 用于排查服务进程挂掉的信息. 其中必须要有的是: 日志等级, 时间, 日志内容.可选的是文件名, 代码行数, 进程pid 等 日志…

IDEA指定Maven的settings不生效问题处理

文章目录 一、问题描述二、问题分析三、问题解决 一、问题描述 在Idea中手动指定了maven的settings配置文件,但是一直没生效。 如下图:设置加载settings-aliyun.xml文件,但是最后发现还是在加载settings.xml文件 二、问题分析 ‌在Intel…

【软考】数据库

1. 数据模型 1.1 概念数据模型 概念数据模型一般用 E-R 图表示,常用术语如下: 实体:客观存在的事物,如:一个单位、一个职工、一个部门、一个项目。属性:学生实体有学号、姓名、出生日期等属性。码&#…

oneplus6线刷、trwp、magisk(apatch)、LSPosed、Shamiko、Hide My Applist

oneplus6线刷android10.0.1 oneplus6线刷包(官方android10.0.1)下载、线刷教程: OnePlus6-brick-enchilada_22_K_52_210716_repack-HOS-10_0_11-zip 启用开发者模式 设置 / 连续点击6次版本号 : 启用开发者模式设置/开发者模式/{打开 usb调试, 打开 网络adb调试,…

ByteBuffer模拟拆包输出消息字符串

以下代码模拟网络编程中的粘包现象,用\n进行分割消息块 源码 public static void main(String[] args) {ByteBuffer byteBuffer1 ByteBuffer.allocate(60) ;byteBuffer1.put("Hello World\nWhat is you name?\nI am Licky!\nHo".getBytes());splice(byt…

成都睿明智科技有限公司怎么样可靠不?

在这个日新月异的数字时代,电商行业如同一股不可阻挡的洪流,席卷着每一个消费者的生活。而抖音,作为短视频与电商完美融合的典范,更是为无数商家开辟了一片全新的蓝海。在这片充满机遇与挑战的海洋中,成都睿明智科技有…

【计算机网络】多路转接之epoll

epoll也是一种linux中的多路转接方案(epoll也是只负责IO过程中的"等") 一、epoll相关接口的使用 1.epoll_create int epoll_create(int size); ​功能:创建一个epoll模型 ① int size:没意义了 >0就行 返回值:返回一个文件…

Linux高阶——1117—TCP客户端服务端

目录 1、sock.h socket常用函数 网络初始化函数 首次响应函数 测试IO处理函数 获取时间函数 总代码 2、sock.c SOCKET() ACCEPT()——服务端使用这个函数等待客户端连接 CONNECT()——客户端使用这个函数连接服务端 BIND()——一般只有服务端使用 LISTEN()——服务端…

【SVN和GIT】版本控制系统详细下载使用教程

文章目录 ** 参考文章一、什么是SVN和GIT二、软件使用介绍1 SVN安装1.1 服务端SVN下载地址1.2 客户端SVN下载地址2 SVN使用2.1 服务端SVN基础使用2.1.1 创建存储库和用户成员2.1.2 为存储库添加访问人员2.2 客户端SVN基础使用2.2.1 在本地下载库中的内容2.2.2 版本文件操作--更…

【含文档】基于django+Vue的荣誉证书管理系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 主要技术: django,mysql,vue 2.视频演示地址 3.功能 系统定义了三个角色:管理员和学生和教师。 管理员进…

ros2学习日记_241124_ros相关链接

前言 提醒: 文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。 其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展…

AIGC-------AIGC在社交媒体内容生成中的应用

AIGC在社交媒体内容生成中的应用 引言 随着人工智能生成内容(AIGC)的快速发展,社交媒体平台上的内容创作方式发生了巨大变化。AIGC使得内容创作的门槛大大降低,从而让更多的人能够参与到社交媒体内容的创作中,同时也使…