STM32

总线介绍

STM32F10 系列基于 ARM Cortex-M3 内核,其总线架构采用多层 AHB(Advanced High-performance Bus)总线矩阵,支持多主设备和从设备的并行访问。以下是其主要的总线类型及相关的关键特性:


1. 内核总线(Cortex-M3 内部总线)​

  • I-Code 总线
    用于从 Flash 存储器中读取指令(代码),连接到 Flash 接口(FLITF)。
  • D-Code 总线
    用于从 Flash 中加载数据(如常量表),同样连接到 FLITF。
  • System 总线
    用于访问内存(SRAM)和外设寄存器(通过 AHB 到 APB 桥)。

2. AHB(Advanced High-performance Bus)​

  • AHB1(主 AHB 总线)​
    • 连接 Cortex-M3 内核、DMA 控制器、FLITF(Flash 接口)等高速主设备。
    • 外设:SRAM、中断控制器(NVIC)、DMA1/DMA2(部分型号支持)。
  • AHB2(可选)​
    部分型号可能通过 AHB 扩展外设(如 USB 或 SDIO)。

3. APB(Advanced Peripheral Bus)​

APB 分为 ​APB1 和 ​APB2,用于连接低速外设,通过 AHB 到 APB 桥接器与 AHB 总线通信:

  • APB1(低速外设)​

    • 最大时钟频率:36 MHz​(在系统时钟为 72 MHz 时)。
    • 外设举例:
      • 定时器(TIM2-TIM4, TIM6-TIM7)
      • 串口(USART2, USART3)
      • I2C1/I2C2
      • SPI2
      • CAN 控制器
      • RTC
      • 看门狗(IWDG, WWDG)
      • 部分 GPIO(复用功能需配置)
  • APB2(高速外设)​

    • 最大时钟频率:72 MHz​(与系统时钟同步)。
    • 外设举例:
      • 高级定时器(TIM1, TIM8)
      • ADC1/ADC2(部分型号支持 ADC3)
      • 串口(USART1)
      • SPI1
      • GPIO(所有端口的输入/输出)
      • EXTI(外部中断控制器)
      • AFIO(复用功能重映射)

4. FSMC(Flexible Static Memory Controller)总线

  • 适用型号:仅部分大容量型号(如 STM32F103xC/D/E)支持。
  • 用途:连接外部存储器(如 SRAM、NOR Flash、LCD 控制器等)。
  • 总线宽度:支持 8/16 位数据宽度,地址空间可配置。

5. DMA 总线

  • DMA1/DMA2 控制器
    • 允许外设与内存之间直接传输数据,无需 CPU 介入。
    • 通道连接到不同外设(如 ADC、SPI、USART 等)。

总线矩阵与仲裁机制

STM32F10 采用多层总线矩阵,支持多主设备(如 CPU、DMA)同时访问不同从设备(如 SRAM、Flash、外设),通过仲裁机制避免冲突。例如:

  • CPU 通过 I-Code 总线读取指令时,DMA 可通过另一条总线访问 SRAM。
  • 不同 DMA 通道可并行操作不同外设。

总结:总线类型与用途

总线类型用途关键外设
I-Code/D-Code 内核指令和数据访问 Flash Flash 存储器
AHB 高速主设备通信 SRAM、DMA、内核
APB1/APB2 低速外设控制 定时器、串口、SPI、I2C、ADC
FSMC 外部存储器扩展 SRAM、NOR Flash、LCD
DMA 通道 外设与内存直接数据传输 ADC、USART、SPI 等

注意事项

  1. 时钟配置:APB1 和 APB2 的时钟需根据系统主频分频配置(通过 RCC 寄存器)。
  2. 外设复用:部分外设需通过 AFIO 配置复用功能。
  3. DMA 优先级:当多个 DMA 请求冲突时,优先级由硬件或软件配置决定。

如果需要具体型号的总线细节,建议参考对应型号的《参考手册》(如 STM32F10x Reference Manual)中的 ​**"System Architecture"** 章节。

posted @ 2025-03-12 10:18  玥茹苟  阅读(121)  评论(0)    收藏  举报