当前位置: 首页 > article >正文

STM32G431RBT6--(3)片上外设及其关系

        前边我们已经了解了STM32的内核,下面我们来介绍片上外设,对于这些外设,如果我们弄清楚一个单片机都有什么外设,弄清他们之间的关系,对于应用单片机有很大的帮助,我们以G431为例:

这个表格描述了STM32G4系列都有什么,不难从其中看出STM32G431系列的外设,可以看出STM32G431外设还是有很多的,由于表格很清楚了,我就不在这赘述。对于这么多的外设,我们要弄清楚他们的关系, 这对我们学习很重要,比如你要用定时器,没有搞好他们的关系,你就不知道如何开启时钟,下边来简单介绍一下:

 

这张图看起来很复杂,其实确实很复杂, 如果让你一点一点去看会感觉很烦,我们采用内核加总线的方法去看:

一、核心架构组成

  1. Cortex-M4 内核

    • 最高主频170MHz,集成FPU(浮点运算单元)

    • 包含3条独立总线:

      • I-Bus:指令总线(从Flash加载代码)

      • D-Bus:数据总线(访问数据空间)

      • S-Bus:系统总线(访问外设寄存器)

  2. 总线系统(三级架构)

    Cortex-M4内核
    │
    └─ **总线矩阵**(Bus Matrix)
       ├─ **AHB1域**(主系统总线)
       │   ├─ **APB1桥**(连接低速外设)
       │   └─ **APB2桥**(连接高速外设)
       ├─ **AHB2域**(专用外设总线)
       └─ **AHB3域**(可选扩展总线)

二、总线层级详细结构

1. AHB总线矩阵
  • 主设备接口

    • Cortex-M4内核(通过D-Bus/S-Bus)

    • DMA1/DMA2控制器

    • 硬件加速器(如HRTIM)

  • 从设备接口

    • AHB1域

      • SRAM1(16KB)

      • Flash接口(128KB,支持双区架构)

      • CRC计算单元

      • 系统配置模块(时钟、电源、复位控制器)

      • APB桥(连接APB1/APB2总线)

    • AHB2域

      • GPIO端口(Port A-H)

      • ADC1/2(12位模数转换器)

      • DAC1/2(双通道数模转换器)

      • RNG(真随机数生成器)

      • AES加密模块

2. APB总线扩展
  • APB1总线(低速外设,通过AHB1-APB桥连接):

    • 定时器:TIM2, TIM3, TIM4, TIM6, TIM7

    • 通信接口:SPI2, I2C1, USART2

    • 系统外设:RTC, WWDG, PWR

    • 最大频率:170MHz(与AHB1同步)

  • APB2总线(高速外设,通过AHB1-APB桥连接):

    • 高级定时器:TIM1, TIM8, HRTIM

    • 通信接口:SPI1, USART1

    • 系统外设:SYSCFG, EXTI

    • 最大频率:170MHz


三、关键架构特性

  1. 并行访问机制

    • DMA控制器与CPU可通过总线矩阵同时访问不同外设(如DMA传输ADC数据时,CPU可操作GPIO)

  2. 内存优化设计

    • Flash双区架构支持读写同步操作(程序执行时仍可擦写另一存储区)

    • SRAM通过AHB1直连内核,实现零等待周期访问

  3. 外设速度分级

    • AHB2域外设(GPIO/DAC)支持170MHz全速操作

    • APB外设可通过预分频器独立配置时钟

  4. 硬件加速器直连

    • AES/RNG/CRC等模块直接挂载AHB总线,规避APB带宽瓶颈


四、典型数据路径示例

场景:ADC通过DMA传输数据到内存

  1. ADC触发:TIM1定时器通过APB2总线触发ADC采样

  2. DMA请求:ADC通过AHB2总线向DMA控制器发送请求

  3. 数据传输

    • DMA控制器通过AHB总线矩阵:

      • 读路径:AHB2 → ADC数据寄存器

      • 写路径:AHB1 → SRAM1目标地址

  4. 中断响应

    • DMA传输完成后,通过AHB总线矩阵触发NVIC中断

    • CPU通过I-Bus从Flash加载中断服务程序


五、常见错误修正说明

  1. 总线层级:APB1/APB2是AHB1通过桥接器扩展的次级总线,非AHB1的子分支

  2. 外设归属

    • DAC/RNG/AES属于AHB2域(非APB总线)

    • GPIO通过AHB2直接访问(无需APB桥)

  3. 系统配置:时钟/电源控制器属于AHB1系统配置模块(非APB外设)

总结

        STM32G431通过Cortex-M4内核与多级总线架构的深度融合,构建了高效、灵活的硬件生态。其三级总线(系统总线-AHB-APB)的分层设计实现了资源解耦与并行访问,配合总线矩阵的智能仲裁机制,确保了内核、DMA与硬件加速器的高效协作。外设按性能需求精准划分至AHB2(高速直连)与APB(桥接扩展)域,结合Flash双区架构与SRAM零等待特性,显著提升了实时控制与数据处理的确定性。这种架构不仅为复杂应用(如数字电源、电机控制)提供了硬件级性能保障,更通过模块化设计降低了系统耦合度,体现了现代微控制器在性能与能效间的精密平衡。 


http://www.kler.cn/a/576165.html

相关文章:

  • STM32_IIC外设工作流程
  • nature genetics | SCENT:单细胞多模态数据揭示组织特异性增强子基因图谱,并可识别致病等位基因
  • 监听-追溯
  • 光路科技将携最新TSN交换机亮相高速展,展示智慧交通创新解决方案
  • AI 实战 - pytorch框架基于retinaface实现face检测
  • 游戏引擎学习第143天
  • Nginx多服务器转发接口数据,实现单接口多服务器处理数据,达到数据共享
  • 【微信小程序】uniapp开发微信小程序
  • 网络安全区划分
  • 使用PHP实现微服务架构:挑战与解决方案
  • SQL-labs13-16闯关记录
  • Docker Desktop常见问题记录
  • 微信小程序+SpringBoot的单词学习小程序平台(程序+论文+讲解+安装+修改+售后)
  • 【计算机网络】计算机网络的性能指标——时延、时延带宽积、往返时延、信道利用率
  • Java 面试篇-SSM 框架专题(什么是 AOP?Spring 中事务时如何实现的?事务失效的场景?Spring 中循环引用怎么解决?Springboot 的自动配置原理?Spring 常见注解?)
  • BFS(八)515. 在每个树行中找最大值 中等
  • OpenCV计算摄影学(14)实现对比度保留去色(Contrast Preserving Decolorization)的函数decolor()
  • SpringBoot知识点及其源码解析(1)
  • 发行基础:热销商品榜单
  • 图形界面控件编程(iOS)