广州stm32培训哪家好
时间:2019-08-16 00:00:00
来源:信盈达
作者:信盈达
通过前面的学习我们已经知道外设是如何挂载在总线上了,可是我们还不认识这些外设和总线,也不知道外设是怎么通过总线和外设进行通信的。根据STM32F03VET6芯片系统结,我们简单介绍这些外设和总线。
ICode 总线
ICode 中的 I 表示 Instruction,即指令。ICode总线是context-M3与内部闪存FLASH指令接口之间的连接的总线,实现指令的预取功能。
我们写好的程序经过编译器编译后生成汇编文件,汇编文件里是一条条机器指令,存放在FLASH中。内核执行程序时需要通过 ICode 总线读取这些指令。它是专门用来取指的。
DCode 总线
DCode 中的 D 表示 Data,即数据。DCode总线是context-M3与总线矩阵连接的总线,通过总线矩阵连接内部闪存FLASH接口和内部的SRAM,是用来取数据的。
程序运行时,除了一条条指令还有数据。数据分为两种-常量和变量。常量是不变的,存放在内部闪存FLASH。变量是可变的,存放在内部SRAM中。
为啥不直接连接内部闪存FLASH接口和内部SRAM,而要连接到总线矩阵?因为不仅DCode 总线可以取数据,DMA总线(下面会解释)也可以取数据。这样取数据时就有可能发生访问冲突,发生冲突时就需要总线矩阵来仲裁,决定哪个总线来取数。
系统总线
此总线连接Cortex?-M3内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA,
广州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 的重点,要学会编程使用这些外设去驱动外部的各种设备。