STM32F103之系统架构

STM32之系统架构

  • 前言
    • STM32F103X芯片内部包含内核和片上外设,犹如我们使用的电脑,对应的是CPU和主板,集成显卡之类的。
  • 一、STM32之系统架构
    • 1.内核与外设
    • 2.系统结构图
      • 驱动单元(内核部分)
        • 内核
        • DCode总线
        • System总线
        • DMA总线
      • 被动单元(外设部分)
        • FLASH
        • SRAM
        • AHB和APB桥
        • FSMC
      • ICode总线
  • 总结
    • 冯·依诺曼结构和哈佛结构


前言

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之系统架构_第1张图片

2.系统结构图

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

STM32F103之系统架构_第2张图片

驱动单元(内核部分)

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

内核

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的开销,从而大大提高了传输性能。

你可能感兴趣的:(stm32,单片机)