STM32F103之系统架构

这篇具有很好参考价值的文章主要介绍了STM32F103之系统架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

STM32F103X芯片内部包含内核和片上外设,犹如我们使用的电脑,对应的是CPU和主板,集成显卡之类的。

一、STM32之系统架构

1.内核与外设

SMT32F103采用的是Cotex-M3内核,所谓的内核就是CPU,由ARM公司设计,他们是IP开发商,本身并不生产芯片。通过技术授权给系统集成(SOC)厂家,比如ST,GD等芯片厂商(SOC厂商),由ST、GD等芯片厂家增加外围设备Eg:GPIO、IIC、FLASH、UART、USB等,由SOC厂商在CPU外围增加的设备我们称之为外设
STM32F103之系统架构

2.系统结构图

STM32F103由4个驱动单元(CPU部分)和4和被动单元(外设)组成

STM32F103之系统架构

驱动单元(内核部分)

由上图黄色区域的①②③④部分组成。

内核

STM32F103的内核CPU是cortex-M3

DCode总线

Dcode中的D代表Data 数据的意思,说明这条总线是用来传输数据的。我们在写代码的时候,数据以常量和变量的存在形式;常量属于非易失性的,保存在ROM中;变量属于易失性的,掉电就不存在的数据,保存在SRAM中。变量又分为全局变量和局部变量,无论是哪种变量,包括常量都属于数据,因此都可以被DCode总线访问到。

System总线

系统总线是用来访问外设寄存器的,通常我们设置寄存器,都是由System总线进行访问的。

DMA总线

DMA Direct Memory Access缩写 直接存储器访问,可将数据从一个地址空间传输到另外一个地址空间,地址空间可以是外设到寄存器或者寄存器到寄存器。访问的数据可以是寄存器,也可以是SRAM,亦可是FLASH;数据可以被DCode和DMA同时访问到,因此为了避免访问冲突,需要总线来仲裁来决定哪个总线访问。

被动单元(外设部分)

由上图紫色区域的①②③④部分组成。

FLASH

内部的闪存存取器,即FLASH,程序存储在FLASH中,内核通过ICode读取指令。

SRAM

内部的SRAM,即数据存储器RAM,程序的变量和堆栈开销在SRAM中。

AHB和APB桥

AHB和APB桥类似于个人PC中的南桥和北桥,南桥挂鼠标和键盘等低速设备,北桥挂显卡等高速设备。南桥频率低,北桥频率高。AHB是高性能的系统总线APB是外设总线。二者分别适用于高速和低速的设备连接。

  1. AHB总线:全称Advanved High Performance Bus 高级高性能系统总线 简写:AHB
  2. APB总线:全称Adanvced Peripheral Bus 高级外设总线 简写:APB
FSMC

FSMC 全称 Flexible Static Memory Controller 灵活的静态存储器控制器,是一个很有特色的外设,通过FSMC可以扩展内存,比如外部的SRAM、NANDFLASH、NORFLASH等,但只能扩展静态Static内存,动态内存无法扩展。

ICode总线

ICode I指的是Instruction,程序经过IDE编译以后都是一条条的指令,内核要读取这些指令都是要通过ICode来访问,程序运行时,每时每刻都要用到,是专门用来取指的。

总结

冯·依诺曼结构和哈佛结构

计算机把数据和代码的存储方式的不同,分成冯·依诺曼结构和哈佛结构。
冯·依诺曼结构:把数据和代码都存储在同一个存储器中,STM32就是把内核和外设共同分配在可以寻址4G的空间存储器中。冯·依诺曼结构的指令和数据共享同一数据总线,使得信息流的传输成为限制性能的瓶颈,但架构设计师为了解决这类问题,采用了ICode总线专门用来取指,,System总线专门用来访问外设寄存器,DCode总线专门用来访问SRAM、和FLASH中的数据,外设寄存器、SRAM和FLASH三者之间又可以通过DMA互相传输数据,减小CPU的开销,从而大大提高了传输性能。文章来源地址https://www.toymoban.com/news/detail-422733.html

到了这里,关于STM32F103之系统架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32F103C8T6(HAL库函数 - 内部Flash操作)

    STM32F103C8T6 内部Flash 为 64KB,本次将对他多余空间进行读写。 数据手册下载 STM32F103x8/STM32F103xB 数据手册 包含Flash Memory Page分布 STM32F设备命名 设备容量类型 中容量类型 内部空间介绍 Flash Memory 从 0x0800 0000 ~ 0x0801 FFFF 页分布1K每页, STM32F103C8T6 只有64KByte, 那就是64页 使用 controll

    2024年01月21日
    浏览(52)
  • STM32的入门——CM3芯片STM32F103VET6的使用和相关外设

    根据《STM32库开发实战指南——基于野火指南者开发板》整理, https://gitee.com/Embedfire-stm32f103-zhinanzhe/ebf_stm32f103_zhinanzhe_ std_tutorial 在整理的过程中,还参考了其他的一些STM32资料 使用了“幕布”这款软件,添加了一些思维导图 整理框架目的: 1.梳理知识脉络 2.复习知识 被动单

    2024年02月03日
    浏览(38)
  • STM32F103C8用内部Flash做一个优盘(USB+MSC+FATFS)

    STM32F103C8用内部Flash做一个优盘(USB+MSC+FATFS),轻松实现APP升级、数据存储。 直接使用STM32CubeMX生成基本的工程,省得我们去调底层。 时钟配置为外部8MHz晶振,这个需要根据自己开发板的晶振选择。  启用SWD下载和滴答定时器  启用USB  启用FATFS,MAX_SS和MIN_SS设置为1024。  配

    2024年02月14日
    浏览(39)
  • Proteus使用STM32F103系列芯片仿真ADC电压总是为0问题解答

    STM32F103芯片有一组ADC参考电压端口  对应到Proteus中,发现原理图上并没有但是在“配置供电网”中存在 可以看出,VSSA与VDDA同为3.3V,这就导致采集到的电压没有0电位参考,所以需要将 VSSA 转移到 GND 组   此时再允许正确的ADC程序就可以采集到正确的电压了      

    2024年02月13日
    浏览(42)
  • STM32F103ZET6 封装 LQFP-144 ST意法 单片机芯片

    STM32F103ZET6 是意法半导体(STMicroelectronics)生产的一款基于 ARM Cortex-M3 内核的 32 位微控制器。它具有高性能、低功耗的特点,广泛应用于各种嵌入式系统和工业应用中。STM32F103ZET6 的主要特点如下: 内核:ARM Cortex-M3,工作频率最高可达 72MHz。 存储器:64KB SRAM,512KB FLASH。 外

    2024年04月22日
    浏览(56)
  • 【硬件基础】STM32F103C8T6芯片引脚定义及功能介绍

    3.1引脚定义图解释 上表中,S表示电源,IO表示输入输出,FT表示容忍电压可达5V,没有FT的只能达3.3V。 VBAT,备用电源引脚,当系统断电时,备用电源可给内部的RTC时钟和备份寄存器供电。 2号引脚,PC13-TAMPER-RTC,可以进行保护数据放在被读取 3-6号引脚,晶振输入 7号引脚,

    2024年03月17日
    浏览(43)
  • 基于STM32F103,利用W5500芯片实现TCP客户端连接TCP服务器的实践

    尊敬的读者,您好!在这篇文章中,我们将一起深入了解如何使用STM32F103和W5500芯片,实现TCP客户端连接到TCP服务器的过程。在详细的步骤中,我们不仅会给出相关的理论介绍,同时也会提供实战代码以供大家参考和学习。希望大家在阅读完这篇文章后,能够有所收获。 实战

    2024年02月11日
    浏览(30)
  • stm32f103最小系统板详细介绍

    一.什么是单片机最小系统         常见的单片机最小系统为单片机能独立运行程序及控制外围电路的最简单电路,主要由单片机、晶振电路、复位电路三部分构成。Stm32f103c8t6也不例外,构成最小的运行电路也需要以上三部分。 Stm32f103最小系统板原理图如下: 二.最小系统

    2024年02月03日
    浏览(35)
  • STM32F103xx / STM32F429VET6最小系统原理图

    STM32F429VET6核心板原理图 2023.12.09修改内容:打板后由于更换学习方向并未进行测试,所给原理图仅供参考,给出PDF下载链接,未设置积分和会员下载:https://download.csdn.net/download/m0_51294753/88611702。 一、前言 先前使用过的是STM32F1系列,只使用和绘制过STM32F103C8T6和STM32F103ZET6的板

    2023年04月24日
    浏览(37)
  • Keil STM32F103系统时钟配置过程(标准库)

    平时我在做STM32项目的时候,一般是用别人的工程包,有时用别人的工程包的系统时钟不对,需要检查,下面是系统时钟配置过程。 1:在工程找到文件startup_stm32f10x_hd.s并打开,然后找到SystemInit,如下图 2:选择SystemInit,跳转到SystemInit函数,如下图: 3:SystemInit函数如下图:

    2024年02月16日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包