【STM32】F103 总线结构

news2024/11/14 20:22:50

  • 一、总线的概念
  • 二、STM32的总线结构
    • 2.1 STM32的总线矩阵
    • 2.2 STM32的存储器映射
    • 2.3 STM32的外设寄存器

一、总线的概念

总线是连接多个部件的信息传输线,是各部件共享的传输介质。总线是一种电路,它是CPU、RAM、ROM、输入、输出等设备传递信息的公共通道,充当数据在计算机内传输的高速公路。

在这里插入图片描述

总线的特性包括以下几方面:

  • 机械特性:物理尺寸、插头形状、管脚数、排列顺序等;
  • 电气特性:信号线的电平范围、电源电压等;
  • 功能特性:每根传输线的功能,如数据、地址、控制等;
  • 时间特性:信号的前后时序关系,如时钟同步方式等;
  • 性能指标:总线宽度、总线带宽、信号线数、总线控制方式、带载能力等;

总线的应用主要有以下几种:

  • 片内总线:芯片内部总线,例如运算器和cache之间的总线;
  • 系统总线:系统总线也称为板级总线。处理器与主存、I/O等部件之间的信息传输线。系统总线中常见的三总线结构:数据总线(DB)、地址总线(AB)、控制总线(CB);
  • 通信总线:计算机系统之间,或计算机与其他设备之间的信息传输线。通信总线可以分为串行通信和并行通信。

二、STM32的总线结构

STM32是一系列基于ARM Cortex-M内核的32位微控制器,它具有丰富的外设资源和灵活的存储器映射。本文将从以下几个方面介绍STM32的总线结构:

  • STM32的总线矩阵
  • STM32的存储器映射
  • STM32的外设寄存器

2.1 STM32的总线矩阵

STM32采用了多层AHB(Advanced High-performance Bus)总线矩阵,用于连接Cortex-M内核、DMA控制器、外设和存储器。STM32的总线矩阵可以分为以下六部分:

  • ICode总线:用于访问存储空间里指令的总线;
  • DCode总线:用于访问存储空间里数据的总线;
  • System总线:用于访问指令、数据以及调试模块接口;
  • DMA总线:用于内存与外设之间的数据传输;
  • Bus matrix:用于总线之间的访问优先级管理控制;
  • APB总线:用于外设接口的数据传输;

总线结构:
在这里插入图片描述

总线矩阵:
在这里插入图片描述

其中:

  • ICode、DCode、System Bus都是AHB总线,可以实现高速数据传输。

  • APB(Advanced Peripheral Bus)则是较慢的外设总线,通过两个AHB-APB桥接器连接到AHB上。APB1上挂接有DAC、UART等外设,其最高频率可达36MHz;APB2上挂接有ADC、GPIO等外设,其最高频率可达72MHz。

2.2 STM32的存储器映射

STM32采用了统一编址的方式,将存储器和外设都映射到一个4GB(2^32字节)的逻辑地址空间中。STM32将4GB空间分为了八个区域,每个区域大小为512MB,分别为:

  • 0x0000 0000 ~ 0x1FFF FFFF (512MB):作为代码区,用于存放下载的代码。系统上电后,将从该部分读取代码;
  • 0x2000 0000 ~ 0x3FFF FFFF (512MB):作为SRAM区,用于存放运行代码。系统上电后,将从Flash读取代码,放到SRAM里,CPU再从SRAM读取代码运行;
  • 0x4000 0000 ~ 0x5FFF FFFF (512MB):作为片上外设区,用于存放厂商外设寄存器。要操作外设,即修改这里对应的外设寄存器;
  • 0x6000 0000 ~ 0x9FFF FFFF (1GB):作为片外RAM,用于扩展RAM。当SRAM或者Flash不够用时,MCU通过FSMC外接其它IC芯片,则在这个地址范围读写IC芯片数据;
  • 0xA000 0000 ~ 0xDFFF FFFF (1GB):作为片外外设区,用于读写扩展IC芯片的寄存器。ST只用了这里的一半空间,另外一空间未使用;
  • 0xE000 0000 ~ 0xFFFF FFFF (512MB):作为内核外设区,用于存放Cortex-M3内核的内部外设。Cortex-M3内核的内部外设有NVIC、Systick等;

在这里插入图片描述

2.3 STM32的外设寄存器

STM32的外设寄存器是用来控制和配置外设功能的特殊存储单元,它们与存储器统一编址,可以通过指针操作来访问和修改。STM32的外设寄存器包括以下几类:

  • 复位和时钟控制寄存器(RCC):用于控制系统时钟源、时钟分频、时钟使能等功能;
  • 中断和异常控制寄存器(NVIC):用于控制中断和异常的优先级、使能、屏蔽等功能;
  • 通用输入输出端口寄存器(GPIO):用于控制GPIO的模式、速度、输出类型、上下拉等功能;
  • 定时器寄存器(TIM):用于控制定时器的工作模式、预分频、自动重装载、捕获比较等功能;
  • 串行通信接口寄存器(USART):用于控制串口的波特率、数据位、停止位、校验位等功能;
  • 模数转换器寄存器(ADC):用于控制模拟信号的采样、转换、触发等功能;

STM32的外设寄存器是编程中最常用到的部分,需要熟练掌握每个寄存器的功能和位域含义。本文只是简单介绍了STM32的总线结构。



~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/697150.html

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

相关文章

DYnamics 365如何隐藏实体列表页面home page页面上的PowerBI按钮和EXCEL template按钮

如何隐藏以上两个按钮,用ribbon工具根本找不到这2个按钮。 解决方案:添加一个没用的按钮,通过调用enable方法来隐藏。 // JavaScript source code function HiddenButton() { HiddePowerBIButton(); HiddeDocumentTemplateButton(); return…

u盘文件加密怎么设置?丢失重要数据怎么办?

“我同事经常趁我不在工位上的时候,拿我的U盘拷贝了一些文件资料,都没经过我的同意。本来U盘里就存储了很多个人数据,比较隐私,并不想被别人看见,我想给U盘加密,请问u盘文件加密怎么设置?有没有…

国内的“PMP证书”来了,值不值得考?(PMP证书免考增持CSPM-2)

2021年10月,中共中央、国务院发布的《国家标准化发展纲要》明确提出构建多层次从业人员培养培训体系,开展专业人才培养培训和国家质量基础设施综合教育。建立健全人才的职业能力评价和激励机制。由中国标准化协会(CAS)组织开展的项…

H5学习(二)-- 常用标签

标签内容 一、标题标签二、表单标签啊三、段落标签四、插入图片标签五、换行标签六、列表标签七、超链接标签八、容器标签九、结构性标签十、级块性标签十一、行内语义性标签 HTML中的常用的标签 一、标题标签 <body><!--标题标签--><h1>h1标签</h1>&…

关于vue中element-UI中table的循环展示以及分页方式

vue中table多用到分页&#xff0c;有时会忘记怎么使用分页和循环展示表格 直接上代码&#xff1a; 父组件 <tableDate :dateTable"dateTable" :tableData"tableData"></tableDate>js部分 export default {components: {searchBox,tableDate}…

sounddevice通过ffmpeg读取rstp远程网络设备声音;conda环境里用不了电脑系统环境里的应用ffmpeg

1、sounddevice通过ffmpeg读取rstp远程声音 *** samples维度是samples_per_read指定 *** ##用全路径&#xff0c;调用系统ffmpeg&#xff0c;直接conda里运行不然容易出错 C:/Users/loong/.conda/envs/nlp/python.exe D:\sound\ffmpeg_test.pyffmpeg_test.py: import sound…

Revit添加自己的快捷键和一键剪切

一、Revit中如何自己添加快捷键 我们用Revit做模型时&#xff0c;快捷键可以加快我们的操作速度&#xff0c;提高工作效率。那么我们如何自己添加快捷键呢&#xff0c;下面请看步骤。 1、 点击“视图”&#xff0c;最右“用户界面” 2、 点击“快捷键”&#xff0c;过滤器为“全…

vue2/vue3中,H5自动生成骨架屏代码

generate-skeleton-h5 vue2/vue3自动生成h5骨架屏 安装骨架屏插件 npm i draw-page-structure -D页面引入 import { generateSkeleton } from "generate-skeleton-h5" generateSkeleton().then(res > {// 当前页面的骨架屏代码&#xff0c;含html与cssconsole…

Flutter学习四:Flutter开发基础(四)包管理

目录 0 引言 1 包管理 1.1 简介 1.2 Pub仓库 1.3 依赖Pub仓库 1.3.1 查找包 1.3.2 添加包 1.3.3 下载包 1.3.4 引入包 1.3.5 使用包 1.4 其他依赖方式 1.4.1 依赖本地包 1.4.2 依赖git仓库 1.4.3 不常用的依赖方式 0 引言 本文是对第二版序 | 《Flutter实战第二版…

一文搞懂JSON

目录 什么是JSON? JSON的基本数据类型 JSON的特点和优势&#xff08;了解&#xff09; JSON格式规范&#xff08;重点&#xff09; JSON的基本操作 关键接口的梳理 序列化 反序列化 答案和解析 序列化答案 反序列化答案 第一种思路 第二种思路 什么是JSON? JSO…

Linux4.vim

1.vim 三种模式 : 命令模式的常见命令 : 底行模式 : 2.sudo 信任名单的位置 : /etc/sudoers 添加信任名单 :以root身份&#xff0c;使用vim打开信任名单&#xff0c;显示行号&#xff0c;大概在104行。

数字化车间数字孪生可视化提高资产利用率

车间管理中往往存在以下几方面问题&#xff1a; 1、产品加工过程复杂、工序繁多;产品在生产制造过程中由于设备和工艺等原因产生不确定因素会影响最终产品质量; 2、生产计划制定困难、生产任务无法及时完成导致生产计划执行困难; 3、业务需求不明确或变化频繁造成车间管理工作无…

360手机驱动提取 360手机驱动安装 360手机高通驱动

360手机驱动提取 360手机驱动安装 360手机高通驱动 参考&#xff1a;360手机-360刷机360刷机包twrp、root 360刷机包360手机刷机&#xff1a;360rom.github.io 【360手机驱动提取】 注&#xff1a;期间手机提示授权&#xff0c;请勾选同意 打开手机&#xff1a;开发者模式&a…

楚天云淡风更长--2023华为主题创意工作坊武汉站侧记

create:2023-06-28 楚 三镇锁大江 名城历千秋。 华中重地&#xff0c;中心城市优势引领区域经济发展。 无论是古老的楚越文化、离骚诗赋&#xff0c; 还是后世追起的黄鹤高楼、千载悠悠&#xff0c; 或是明清以降的开风气之先河&#xff0c; 又以工业重镇立于现代城市之林&am…

【Servlet学习三】实现一个简单的数据库版本的留言墙!

目录 一、前期环境搭建 二、具体后端代码实现 &#x1f308;1、创建数据库 &#x1f308;2、创建message类&#xff1a;定义属性和相应的get和set方法 &#x1f308;3、创建JDBC工具类&#xff1a;DBUtil文件&#xff0c;定义一些数据库的基本操作 &#x1f308;4、创建m…

浅谈注册表读取所需要付出的性能代价

Windows 系统的特色功能&#xff0c;注册表&#xff0c;是一个十分方便有用的工具。它可以用来以一种统一和多线程安全的方式来永久性的保存数据。如果你将数据保存在 HKEY_CURRENT_USER 键下&#xff0c;则数据可以随着用户一起漫游&#xff0c;并且可以保护单个键值 (即使是在…

1 Prometheus-监控简介

目录 1 什么是监控 1.1 技术作为客户 1.2 业务作为客户 2. 监控基础知识 2.1 事后监控 2.2 机械式/模板式/无脑式监控 2.3 不够准确的监控 2.4 静态监控 2.5 不频繁的监控 2.6 缺少自动化或操作繁琐/不便 2.7 监控模式总结 3.监控机制 3.1 探针和内省 3.2 拉取和推…

视觉大模型应该长什么样

背景 最近朋友圈一直可以看到一个论调&#xff0c;视觉没有一个chatgpt一样强大的模型。似乎确实如此&#xff0c;视觉确实是缺一个通用能力的大模型&#xff1b;有些小伙伴可能就会讲了数据怎么能讲没有大模型&#xff1a;diffusion、della、muse、sam、controlnet一堆的大模…

springboot在启动时做点什么

Component public class ApplicationInitListener implements ApplicationListener<ContextRefreshedEvent> {Overridepublic void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {System.out.println("ContextRefreshedEvent.....容器初始化完…

Java 集合继承关系图

Java 容器类库的用途是“保存对象”&#xff0c;并划分为两大类,序列Collection和健值对 Map Collection接口&#xff1a;一个独立元素的序列&#xff0c;衍生的2个子类接口 List接口&#xff1a;存储有序的、可重复的数据 实现类: ArrayList、LinkedList、Vector Set接口&am…