1. STM32结构简介

image

上面就是stm32F103系列的结构图。

  1. 内核

image

在stm32芯片中,其资源分为内核以及外设两个部分,所谓内核相当于电脑的CPU,负责进行数据处理。以stm32F103系列为例,其内核采用Cortex-M3内核,该内核由Arm公司设计授权给ST公司进行制造生产。

  1. 总线结构
    image

总线(Bus)是指计算机组件间规范化的交换数据(data)的方式,即以一种通用的方式为各组件提供数据传送和控制逻辑。从另一个角度来看,如果说主板(Mother Board)是一座城市,那么总线就像是城市里的公共汽车(bus),能按照固定行车路线,传输来回不停运作的比特(bit)。这些线路在同一时间内都仅能负责传输一个比特。(摘自百度百科)

对于stm32来说,各个总线即为各个硬件外设与内核的公共通路,通过某种协议的规范,多个外设可通过一条总线与内核进行数据或者命令的交互。

  • ICode(命令总线):我们编译下载的代码会存放在stm32的flash区,flash属于Rom,但是可进行多次且速度较快的擦除写入,掉电后数据不会丢失。而代码中的命令就通过ICode总线从flash搬运到内核执行。
  • DCode(数据总线):在程序运行时,不仅有指令的运行,还有变量或者常量的写入与读取。对于常量一般存储在flash_Rom中,变量存储在图中的SRAM区中。而Dcode总线的作用就是实现内核与这些变量常量的交互,包括内核读取变量以及变量的写入。
  • System总线:System总线用来实现内核与外设寄存器的交互,通过System总线实现内核去配置外设寄存器来驱动外设。
  • DMA总线:略,用到时再学。

以上几条总线汇总至Bus-Matrix,Bus-Matrix的功能是总线仲裁,通过某种协议对汇总到总线上的数据进行分类,使得接入到Bus-Matrix上的总线可以分别读取属于自己的数据而不混淆,同时采用Bus-Matrix作为中介可以减少总线间的连接数量。若没有Bus-Matrix,那么不同总线间的交互需要额外连接更多的通路。

  • AHP System Bus(AHB 系统总线):用于内核与片上外设间的交流,其以时钟或者说频率的快慢分为两组,APB2总线中的最快时钟速度可达72MHz,可以驱动更高频率的外设,而APB1总线连接的外设的最快时钟仅有36MHz。
  • RCC(Reset & Clock Control):外设的复位以及时钟管理寄存器。与51不同的是,stm32外设的时钟处于能耗节约考虑,默认是关闭的。因此在使用某个外设之前,需要手动配置开启其时钟信号。控制外设时钟信号的就是RCC寄存器。时钟相当于外设或者说程序的心脏。类比为数电中的锁存器,只有提供了时钟信号才能使得电路的状态改变从而使之运行。
  • SDIO:外部SD扩展相关。

完结第一篇撒花QWQ。

posted @ 2024-07-29 21:28  凪风sama  阅读(36)  评论(0编辑  收藏  举报