搭建机器人电控系统——MCU基石——STM32系统架构

搭建机器人电控系统——MCU基石

在上一章中,我讲解了搭建一个机器人电控系统的前期准备工作,包括电源的选择和主控的开发,经过一些基础的单片机任务之后,现在你应该对单片机的一些编程习惯有了掌握。

在本章中,我将会按照一个机器人的底盘到上层机构的顺序,单独来对每一个机构的电控部分进行讲解。从中分别来详细展示运动模型、通信协议、PWM输出和算法部分,从而让你学会如何用MCU去控制每个部分机构的运动。

不过在这之前,我会以STM32F407为例,先补充一些关于MCU的基本知识原理:

STM32系统架构
STM32时钟配置
GPIO原理
中断NVIC与EXTI


STM32系统总线架构

在对应STM32F4的《参考手册》中,有如下一个系统架构图:
在这里插入图片描述

从整体来看,STM32系统借助总线矩阵,实现主控总线到被控总线的访问。

主控总线

在这里插入图片描述

①Cortex内核I、D、S总线

Cortex-M4:ARM制定的一种内核协议。在选择主控章节说过,ARM制定内核协议,由ST公司根据内核协议制作STM32芯片。即STM32F4系列单片机内核是Cortex-M4。

I总线(ICode)[instruction]:此总线用于将Cortex-M4内核的指令总线连接到总线矩阵,进而去访问存储代码的Flash/SRAM/FSMC;反过来,内核通过此总线获取指令。
在这里插入图片描述

D总线(DCode)[data]:此总线用于将Cortex-M4内核的数据总线RAM连接到总线矩阵,进而访问代码或数据存储器(Flash/FSMC);反过来,内核通过此总线进行数加载和调试。
在这里插入图片描述

S总线(S-BUS)[System]:此总线用于将Cortex-M4内核的系统总线连接到总线矩阵,进而访问外设或SRAM中的数据;反过来,内核可通过此总线获取指令,但效率比ICode低。
在这里插入图片描述

②DMA总线

此总线用于将DMA总线接口连接到总线矩阵,进而访问存储器SRAM、Flash和AHB、APB外设、数据存储器SRAM/FSMC。
在这里插入图片描述

DMA与S-BUS的区别在于DMA可以不占用CPU的资源运行,当你需要接受大量数据(比如串口接收大量数据)时,可以开启DMA,提高CPU的运行效率。

③以太网和USB总线

这两条总线都是DMA访问的,也不占用CPU的资源。


总线矩阵

在这里插入图片描述

总线矩阵用于主控总线之间的访问仲裁管理,当有多条主控总线需要访问时,采用循环调度的算法进行仲裁。

AHB(Advanced High performance Bus):高级高性能总线,连接总线矩阵和被控总线。其中,访问到外设的总线称为APB1/APB2(Advanced Peripheral Bus)外设总线。(中间可能经过分频)


被控总线

在这里插入图片描述

被控总线主要分三种:Flash总线、SRAM存储器总线、AHB外设总线(APB1/APB2)。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值