搭建机器人电控系统——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)。

版权声明:本文为CSDN博主「猴头攻城狮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ROS_homes/article/details/122752350

生成海报
点赞 0

猴头攻城狮

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

[STM32学习]——一文搞懂I2C总线

目录 I2C总线的概念 I2C最重要的功能包括: I2C的物理层 I2C主要特点: I2C的高阻态 I2C物理层总结: I2C的协议层 初始(空闲)状态 开始

STM32CubeMx hal 驱动sg90舵机

一、舵机的控制原理 舵机通过接收PWM信号,使其进入内部电路产生一个偏置电压,触发电机通过减速齿轮带动电位器移动,使电压差为零时,电机停转,从而达到伺服的效果。即给舵机一个

MCU串行通讯和并行通讯的区别以及UART的理解

假如我们需要从一个MCU发送一段数据到另一个MCU,我们可以选择两种通信方式,串行通信或者并行通信。 假如我们要发送的数据是数字198转化为二进制,就是11000110,如果使用串行通信