话说STM32F4系列的总线矩阵与访问调度

发布者:MysticJourney最新更新时间:2016-09-02 来源: eefocus关键字:STM32F4系列  总线矩阵  访问调度 手机看文章 扫描二维码
随时随地手机看文章
话说STM32F4系列的总线矩阵与访问调度

    可能不少人见过STM32F4系列的内部系统架构框图。大致如下图,该图很重要,不可视而不见。

话说STM32F4系列的总线矩阵与访问调度

    图中纵横交错的就是多层AHB总线矩阵,负责把上方黄色主设备跟右边绿色从设备互联起来。所谓AHB主设备是指CPU或DMA[通用DMA或专用DMA],由它们启动总线访问,即读写操作。那些响应主设备读写访问的设备就是AHB从设备,比如存储器、各类外设等。
    因为总线矩阵的存在,使得多个主设备可以并行访问不同的从设备,增强了数据传输能力,提升了访问效率,同时也改善了功耗性能。
   不过,虽然总线矩阵使得多个主设备可以并行访问不同的从设备,但在每个预定的时间内,只有一个主设备拥有总线控制权。如果有多个主设备同时出现总线请求时就得进行仲裁。所以总线矩阵里还有个AHB总线仲裁器,它保证每个时刻只有一个主设备通过总线矩阵对从设备进行访问。(注1)
    为了确保每个主设备访问从设备的延迟尽量短,在总线矩阵里实行循环调度优先级方案:
• 循环调度仲裁策略使总线带宽合理分配。
• 限定最大延时。
• 循环调度以1 次传输为单位。
    当多个AHB 主设备试图同时访问同一个AHB从设备时,总线矩阵仲裁器介入以解决访问冲突。在下面的例子中CPU 和DMA1 均试图访问SRAM1 以读取数据。

话说STM32F4系列的总线矩阵与访问调度

    如上述示例总线访问请求同时发生的情况下,就需要总线矩阵仲裁。为了解决这种问题,需要应用循环调度策略:如果本次最后赢得总线控制权的主设备是CPU,则在下一次访问中DMA1将赢得总线控制权并首先访问SRAM1。CPU 随后方可有权访问SRAM1。
    这就表明,一个主设备的传输延时取决于其它等待请求访问AHB 从设备的主设备数量。下面的例子是五个主设备试图同时访问SRAM1的情形:

话说STM32F4系列的总线矩阵与访问调度

    DMA1再次获得总线矩阵访问权并访问SRAM1 的延时等于其它等待请求的所有主设备的执行时间之和。
    我们再来看看进行总线矩阵仲裁可能导致的DMA传输延时最差情况。
    主设备DMA端口进行一次数据传输会遭遇的延时取决于其它主设备的传输类型和长度。比如,我们结合上面的DMA1 & CPU 的例子,它们并行访问SRAM。 DMA传输延时将随着CPU 数据传输事务长度而变化。如果总线访问首先给予CPU 且不是执行单次数据加载/存储,DMA 访问SRAM 的等待时间可能从一个AHB 周期(单次数据加载/ 存储时间)延长为N 个AHB 周期,这里N 为CPU 数据传输事务中数据的数量。
     CPU 锁定AHB 总线以保持其访问总线的所有权,减少了多次加载/ 存储操作过程中的延时以及进入中断的延时。这提高了固件的响应能力,但是可能导致DMA 数据传输事务的延迟。
    DMA1 与CPU 并行访问SRAM 的延时取决于传输类型:
• 中断(上下文保护)发起的CPU 传输:8 个AHB 周期;
• LDM/STM 指令发起的CPU 传输:14 个AHB 周期(注2)
---在多达14 个寄存器与存储器之间进行传输;

话说STM32F4系列的总线矩阵与访问调度

    上图详细描述了一个因中断进入而导致DMA多周期传输延迟的情形。DMA 存储器端口被触发,发出存储器访问请求。经过仲裁, AHB 总线未授权DMA1 存储器端口访问,而由CPU 来访问总线。可以看到在服务DMA 请求之前有一段额外的延时。这段中断发起的CPU 传输,耗时为8 个AHB 周期。
   不难理解,当同时对一个从设备进行寻址且数据传输事务长度不是一个数据单元时,其他主设备(如DMA2,USB_HS, Ethernet…)也会碰到类似情形。所以,为了提高DMA 对总线矩阵的访问性能,要尽量回避总线竞争。
    以上内容主要取材于ST官方应用笔记文档AN4031的一部分。该笔记里除了上述内容外,还对STM32F2/F4的DMA传输路径、DMA传输时间的估算、DMA编程都有较为细致的介绍。我这里算是抛砖引玉,有兴趣的话可以去www.stmcu.com.cn 的设计资源区搜索下载AN4031。

(注1)并非所有主设备访问从设备都得经过总线矩阵,细心的人可能看到了有些主设备与从设备间有直通通道。细节详见STM32芯片相关参考手册。
(注2) 通过配置编译器,将加载/ 存储多重指令分解为单个加载/ 存储指令,可以降低由LDM/STM 发起的传输的延时。
 

话说STM32F4系列的总线矩阵与访问调度

关键字:STM32F4系列  总线矩阵  访问调度 引用地址:话说STM32F4系列的总线矩阵与访问调度

上一篇:STM32F0的BOOT配置及相关话题
下一篇: 一个关于STM32 CAN出错恢复的话题

推荐阅读最新更新时间:2024-03-16 15:07

STM32开发笔记31: STM32F4系列LQFP64封装引脚的兼容性
单片机型号:STM32F4系列 LQFP64封装是设计和焊接电路板时,一个比较方便的封装形式,在使用STM32F401RBT6发现了一个原先不太熟悉的引脚VCAP1,经仔细查证,此引脚设计时,需注意一些问题,看下图: 在STM32F4系列中,405、415、4X1产品线都有LQFP64封装,但即接线方式不同,405/415系列的第47脚是VCAP2应对地接2.2uF电容,4X1系列47脚是VSS应接地;405/415系列的第30脚当作PN11使用,第31脚是VCAP1应对地接2.2uF电容,而4X1系列,第30脚是VCAP1对地接4.7uF电容,第31脚直接接地。
[单片机]
STM32开发笔记31: <font color='red'>STM32F4</font><font color='red'>系列</font>LQFP64封装引脚的兼容性
基于FF总线实现水箱系统动态矩阵控制
摘要:本文针对FF现场总线中监控软件实现DMC算法的困难,提出利用Matlab7.0 OPC工具包实现与OPC服务器间通讯并实现DMC控制的方案,充分发挥了矩阵计算语言简洁、高效的优势。仿真结果表明,该方案能在很大程度上缩短监控程序的开发周期,并达到了预期的控制效果。 引言 FF现场总线系统是连接智能现场设备和自动化系统的数字式、双向传输、多分支结构的通信网络,与现行控制系统相比,具有如下技术优势:① 现场总线用数字信号代替传统的模拟信号,测量精度高,抗干扰能力强;② 基于总线的现场仪表可以对量程和零点进行远程设定,具有仪表工作状态自诊断功能,能进行多参数测量和对环境影响的自动补偿;③ 现场设备集检测、转换、运算和控制功能于
[传感技术]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved