廣州stm32培訓哪家好
時間:2019-08-16 00:00:00
來源:信盈達
作者:信盈達
通過前面的學習我們已經(jīng)知道外設是如何掛載在總線上了,可是我們還不認識這些外設和總線,也不知道外設是怎么通過總線和外設進行通信的。根據(jù)STM32F03VET6芯片系統(tǒng)結,我們簡單介紹這些外設和總線。
ICode 總線
ICode 中的 I 表示 Instruction,即指令。ICode總線是context-M3與內(nèi)部閃存FLASH指令接口之間的連接的總線,實現(xiàn)指令的預取功能。
我們寫好的程序經(jīng)過編譯器編譯后生成匯編文件,匯編文件里是一條條機器指令,存放在FLASH中。內(nèi)核執(zhí)行程序時需要通過 ICode 總線讀取這些指令。它是專門用來取指的。
DCode 總線
DCode 中的 D 表示 Data,即數(shù)據(jù)。DCode總線是context-M3與總線矩陣連接的總線,通過總線矩陣連接內(nèi)部閃存FLASH接口和內(nèi)部的SRAM,是用來取數(shù)據(jù)的。
程序運行時,除了一條條指令還有數(shù)據(jù)。數(shù)據(jù)分為兩種-常量和變量。常量是不變的,存放在內(nèi)部閃存FLASH。變量是可變的,存放在內(nèi)部SRAM中。
為啥不直接連接內(nèi)部閃存FLASH接口和內(nèi)部SRAM,而要連接到總線矩陣?因為不僅DCode 總線可以取數(shù)據(jù),DMA總線(下面會解釋)也可以取數(shù)據(jù)。這樣取數(shù)據(jù)時就有可能發(fā)生訪問沖突,發(fā)生沖突時就需要總線矩陣來仲裁,決定哪個總線來取數(shù)。
系統(tǒng)總線
此總線連接Cortex?-M3內(nèi)核的系統(tǒng)總線(外設總線)到總線矩陣,總線矩陣協(xié)調著內(nèi)核和DMA,
廣州stm32培訓哪家好
廣州stm32培訓哪家好,的訪問。
系統(tǒng)總線又叫外設總線,主要是訪問外設的寄存器的。我們通常說的寄存器讀寫(寄存器編程),都是通過這跟外設總線完成的。
DMA總線
此總線將DMA的AHB主控接口與總線矩陣相連接。
DMA 總線主要是用來傳輸數(shù)據(jù),數(shù)據(jù)可能在內(nèi)部閃存FLASH里,可能在SRAM中,可以在FLASH某個外設的數(shù)據(jù)寄存器里??偩€矩陣協(xié)調著CPU(內(nèi)核)的DCode(數(shù)據(jù)總線)和DMA到SRAM、閃存和外設的訪問。
總線矩陣
總線矩陣協(xié)調內(nèi)核系統(tǒng)總線和DMA主控總線之間的訪問仲裁,仲裁利用輪換算法。在此款芯片中(STM32F03VET6)總線矩陣包含4個驅動部件(CPU(內(nèi)核)的DCode、系統(tǒng)總線、DMA1總線和DMA2總線)和4個被動部件(閃存存儲器接口(FLITF)、 SRAM、 FSMC和AHB2APB橋)。
AHB外設通過總線矩陣與系統(tǒng)總線相連,允許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 的重點,要學會編程使用這些外設去驅動外部的各種設備。