信盈达—您身边的嵌入式&人工智能专家
全国免费咨询热线:400-8788-909

广州stm32培训哪家好

时间:2019-08-16 00:00:00 来源:信盈达 作者:信盈达

通过前面的学习我们已经知道外设是如何挂载在总线上了,可是我们还不认识这些外设和总线,也不知道外设是怎么通过总线和外设进行通信的。根据STM32F03VET6芯片系统结,我们简单介绍这些外设和总线。

ICode 总线

ICode 中的 I 表示 Instruction,即指令。ICode总线是context-M3与内部闪存FLASH指令接口之间的连接的总线,实现指令的预取功能。

我们写好的程序经过编译器编译后生成汇编文件,汇编文件里是一条条机器指令,存放在FLASH中。内核执行程序时需要通过 ICode 总线读取这些指令。它是专门用来取指的。
ARM实训班M4培训课程
DCode 总线

DCode 中的 D 表示 Data,即数据。DCode总线是context-M3与总线矩阵连接的总线,通过总线矩阵连接内部闪存FLASH接口和内部的SRAM,是用来取数据的。

程序运行时,除了一条条指令还有数据。数据分为两种-常量和变量。常量是不变的,存放在内部闪存FLASH。变量是可变的,存放在内部SRAM中。

为啥不直接连接内部闪存FLASH接口和内部SRAM,而要连接到总线矩阵?因为不仅DCode 总线可以取数据,DMA总线(下面会解释)也可以取数据。这样取数据时就有可能发生访问冲突,发生冲突时就需要总线矩阵来仲裁,决定哪个总线来取数。

系统总线

此总线连接Cortex?-M3内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA,广州stm32培训哪家好
stm32培训嵌入式开发培训
广州stm32培训哪家好,的访问。

系统总线又叫外设总线,主要是访问外设的寄存器的。我们通常说的寄存器读写(寄存器编程),都是通过这跟外设总线完成的。

DMA总线

此总线将DMA的AHB主控接口与总线矩阵相连接。

DMA 总线主要是用来传输数据,数据可能在内部闪存FLASH里,可能在SRAM中,可以在FLASH某个外设的数据寄存器里。总线矩阵协调着CPU(内核)的DCode(数据总线)和DMA到SRAM、闪存和外设的访问。

总线矩阵

总线矩阵协调内核系统总线和DMA主控总线之间的访问仲裁,仲裁利用轮换算法。在此款芯片中(STM32F03VET6)总线矩阵包含4个驱动部件(CPU(内核)的DCode、系统总线、DMA1总线和DMA2总线)和4个被动部件(闪存存储器接口(FLITF)、 SRAM、 FSMC和AHB2APB桥)。

AHB外设通过总线矩阵与系统总线相连,允许DMA访问。

AHB/APB桥(APB)(敲黑板)

两个AHB/APB桥(桥接1、桥接2)在AHB和2个APB总线间提供同步连接。 APB1操作速度限于36MHz, APB2操作于全速(最高72MHz)。

从 AHB 总线延伸出来的两条APB2 和 APB1总线通过两个AHB/APB桥(桥接1、桥接2)连接,APB2 和 APB1 两条总线上面挂载着 STM32的各种外设。比如常见的GPIO、串口、 I2C、 SPI这些外设就挂载在这两条总线上,这是我们学习 STM32 的重点,要学会编程使用这些外设去驱动外部的各种设备。