STM32H7xx作为ST的高性能MCU,功能极其强大,最新的H7x5和H7x7系列更是集成了Arm Cortex-M7和Cortex-M4双核。无论是指令读取还是数据传递,STM32H7xx其强大的性能都离不开MCU总线的支持。工作中使用了STM32系列的MCU,知道数据总线、时钟总线等,都留于应用层面,未有深入学习。这次借此机下载了STM32H7_Technical_Training_CN文档,在较新的STM32H7xx系列MCU上会学习一下MCU总线的相关知识。
STM32H7xx 功能区域 STM32H7xx内部分为3个域,处理域D1、外设域D2和低功耗域D3。 处理域D1提供处理和图形能力,包含400MHz的Cortex-M7Core,JPEG Codec、DMA2D和LTDC三大图形组件,2x 1MB 带有错误检查和纠正(ECC)功能的独立Flash,带有错误检查和纠正(ECC)功能的704KB(512+128+64)SRAM,以及一些外设(FMC、QuadSPI、SD/MMC)。 外设域D2提供了外设管理,包含DMA1/2、USB、 ETH 、CAN、Timer、SPI、UART等常规外设,以及带有错误检查和纠正(ECC)功能的288KB(128+128+32)SRAM。D2域独立的SRAMs可以作为本区域外设DMAs数据的输入输出的缓存,再通过MDMA可以将数据转移到处理域D1 。 低功耗域D3提供系统管理和低功耗操作模式特性。包含BDMA(基本的直接内存访问控制器)、I2C、SPI、SAI、ADC,低功耗外设LPTIM,LPUART,时钟管理、GPIO等外设,以及带有错误检查和纠正(ECC)功能的64KB SRAM。当D1和D2域进入DStandby(域关闭)模式时,D3 SRAM用来保留数据。 STM32H7xx总线矩阵 STM32H7xx有3个总线矩阵。一个AXI总线矩阵和两个AHB总线矩阵。三个总线矩阵之间通过公平仲裁循环算法和优先级驱动仲裁(QoS能力),实现系统和外围设备同时操作。且在多个主设备同时激活的情况,能有效的移除总线的堵塞。 AXI总线和AHB总线最大频率200MHz,APB总线最大频率100MHz。 AXI总线矩阵在D1域,AHB总线矩阵在D2域和D3域。总线之间有5 条 AHB-to-APB和2 条 AXI-to-AHB的Bus-to-bus桥梁链路。
STM32H7xx - AXI 互连 AXI总线为64-bit总线,通过可独立配置优先级的优先级仲裁,来保证多个AXI主外设同时发起访问同一个AXI从外设时不至于堵塞。 AXI主外设包含D2 AHB、Cortex-M7Core、SDMMC1、MDMA、MDA2D、LTDC,AXI从外设包含AXI/AHB bridge to D3、AXI/AHB bridge to D2、FLASH A、FLASH B、FMC、QSPI以及AXI SRAM。其中除D2 AHB、SDMMC1、AXI/AHBbridge to D3和AXI/AHB bridge to D2为32-bit总线外,其他都为64-bit总线。 AXI总线上还有一个缺省AXI从设备(Default slave),用来处理非法地址空间的操作请求,来保证AXI总线不会被堵塞。
总的来说,MCU上的总线承载着MCU所有指令及数据的传递,是MCU中内核和各个外设之间的桥梁。总线的性能虽不能提升MCU的处理性能,但能为MCU的强大性能提供强力的支持。
|