stm32学习总结:总线架构

一、 总线及相关概念

计算机总线是cpu、内存、输入、输出设备传递信息的公用通道,是一组能为多个组件分时共享的公共信息传送线路,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。
因此STM32这类嵌入式芯片的总线可概括理解为:是各种信号线的集合,总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。
数据总线(Data Bus,DB)用来传送数据信息,是双向的。CPU既可通过DB从内存或输入设备读入数据,又可通过DB将内部数据送至内存或输出设备。DB的宽度决定了CPU和计算机其他设备之间每次交换数据的位数。数据总线的位数是微型计算机的一个重要指标,通常与微处理的字长相一致。需要指出的是,数据的含义是广义的,它可以是真正的数据,也可以是指令代码或状态信息,有时甚至是一个控制信息,因此,在实际工作中,数据总线上传送的并不一定仅仅是真正意义上的数据。
地址总线(Address Bus,AB)用于传送CPU发出的地址信息,是单向的。传送地址信息的目的是指明与CPU交换信息的内存单元或I/O设备。存储器是按地址访问的,所以每个存储单元都有一个固定地址,要访问1MB存储器中的任一单元,需要给出1M个地址,即需要20位地址(220=1M)。一般来说,若地址总线为n位,则可寻址空间为2n字节。因此,地址总线的宽度决定了CPU 的最大寻址能力。
控制总线(Control Bus,CB)用来传送控制信号、时序信号和状态信息等,是双向的。其中有的是CPU向内存或外部设备发出的信息,如读/写信号,片选信号、中断响应信号等;有的是内存或外部设备向CPU发出的信息,中断申请信号、复位信号、总线请求信号、设备就绪信号等。显然,CB中的每一条线的信息传送方向是一定的、单向的,但作为一个整体则是双向的。所以,凡涉及到控制总线CB,均是以双向线表示。

二、 STM32总线结构

下图为STM32总线系统结构图。
在这里插入图片描述

系统包含了四条主控总线和四条被控总线:

1. 主控总线

A. Cortex™-M3 内核I总线、D总线和S总线
a) I总线:此总线用于将 Cortex™内核的指令总线与闪存指令接口相连接,内核通过此总线获取指令。 此总线访问的对象是包含代码的存储器(内部 Flash/SRAM 或通过 FSMC 的外部存储器);
b) D总线:此总线用于将 Cortex™内核数据总线和 64 KB CCM 数据 RAM 连接到总线矩阵。内核通过此总线进行立即数加载和调试访问。此总线访问的对象是包含代码或数据的存储器(内部Flash 或通过 FSMC 的外部存储器);
c) S总线:此总线用于将 Cortex™内核的系统总线连接到总线矩阵。此总线用于访问位于外设或 SRAM 中的数据。也可通过此总线获取指令(效率低于 ICode)。此总线访问的对象是 112 KB、64 KB 和 16 KB 的内部 SRAM、包括 APB 外设在内的 AHB1 外设、AHB2 外设以 及通过 FSMC 的外部存储器。
B. 通用DMA1和通用DMA2:
此总线将DMA的AHB主控接口与总线矩阵相联,总线矩阵协调着CPU的DCode和DMA到 SRAM、闪存和外设的访问。
DMA定义:DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。

2. 被控总线

A. 内部SRAM
B. 内部闪存存储器
C. FSMC:( Flexible static memory controller)全称“灵活的静态存储器控制器”,是 STM32中一个很有特色的外设,通过 FSMC,STM32可以通过FSMC与SRAM、ROM、PSRAM、Nor Flash和NandFlash存储器的引脚相连,从而进行数据的交换。
D. AHB到APB的桥(AHB2APBx) ,它连接所有的APB设备,其中APB1总线上连接了一些低速外设和模块,如串口、I2C、SPI等。APB2总线上则连接了一些高速外设和模块,如定时器、串行接口、USB等

三、 总结

本文结合STM32的官方资料中对芯片系统架构的介绍对芯片内部的总线机制进行了一系列的介绍。通过对计算机与嵌入式总线概念的对比阐述可以去更好的为进一步认识STM32内部总线框架提供基础。本文从STM32的总线框架进行分析,可以了解到芯片内部总线的设计模型和基本的工作原理,从而对STM32的芯片总线内部结构有一个初步的认知。对总线概念的了解是后续编写代码的基础,也是更进一步了解外设总线通信的基础。

参考链接

  1. 【明解STM32】一文读懂STM32芯片总线_stm32总线-CSDN博客
  2. 总线_百度百科 (baidu.com)
  3. 第六章 总线-CSDN博客
  4. 【STM32】 DMA原理,步骤超细详解,一文看懂DMA-CSDN博客
  5. STM32 FSMC/FMC原理保姆级讲解(一)-CSDN博客
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值