前言
STM32F103X芯片內(nèi)部包含內(nèi)核和片上外設(shè),猶如我們使用的電腦,對應(yīng)的是CPU和主板,集成顯卡之類的。
一、STM32之系統(tǒng)架構(gòu)
1.內(nèi)核與外設(shè)
SMT32F103采用的是Cotex-M3內(nèi)核,所謂的內(nèi)核就是CPU,由ARM公司設(shè)計(jì),他們是IP開發(fā)商,本身并不生產(chǎn)芯片。通過技術(shù)授權(quán)給系統(tǒng)集成(SOC)廠家,比如ST,GD等芯片廠商(SOC廠商),由ST、GD等芯片廠家增加外圍設(shè)備Eg:GPIO、IIC、FLASH、UART、USB等,由SOC廠商在CPU外圍增加的設(shè)備我們稱之為外設(shè)。
2.系統(tǒng)結(jié)構(gòu)圖
STM32F103由4個(gè)驅(qū)動單元(CPU部分)和4和被動單元(外設(shè))組成
驅(qū)動單元(內(nèi)核部分)
由上圖黃色區(qū)域的①②③④部分組成。
內(nèi)核
STM32F103的內(nèi)核CPU是cortex-M3
DCode總線
Dcode中的D代表Data 數(shù)據(jù)的意思,說明這條總線是用來傳輸數(shù)據(jù)的。我們在寫代碼的時(shí)候,數(shù)據(jù)以常量和變量的存在形式;常量屬于非易失性的,保存在ROM中;變量屬于易失性的,掉電就不存在的數(shù)據(jù),保存在SRAM中。變量又分為全局變量和局部變量,無論是哪種變量,包括常量都屬于數(shù)據(jù),因此都可以被DCode總線訪問到。
System總線
系統(tǒng)總線是用來訪問外設(shè)寄存器的,通常我們設(shè)置寄存器,都是由System總線進(jìn)行訪問的。
DMA總線
DMA Direct Memory Access縮寫 直接存儲器訪問,可將數(shù)據(jù)從一個(gè)地址空間傳輸?shù)搅硗庖粋€(gè)地址空間,地址空間可以是外設(shè)到寄存器或者寄存器到寄存器。訪問的數(shù)據(jù)可以是寄存器,也可以是SRAM,亦可是FLASH;數(shù)據(jù)可以被DCode和DMA同時(shí)訪問到,因此為了避免訪問沖突,需要總線來仲裁來決定哪個(gè)總線訪問。
被動單元(外設(shè)部分)
由上圖紫色區(qū)域的①②③④部分組成。
FLASH
內(nèi)部的閃存存取器,即FLASH,程序存儲在FLASH中,內(nèi)核通過ICode讀取指令。
SRAM
內(nèi)部的SRAM,即數(shù)據(jù)存儲器RAM,程序的變量和堆棧開銷在SRAM中。
AHB和APB橋
AHB和APB橋類似于個(gè)人PC中的南橋和北橋,南橋掛鼠標(biāo)和鍵盤等低速設(shè)備,北橋掛顯卡等高速設(shè)備。南橋頻率低,北橋頻率高。AHB是高性能的系統(tǒng)總線,APB是外設(shè)總線。二者分別適用于高速和低速的設(shè)備連接。
- AHB總線:全稱Advanved High Performance Bus 高級高性能系統(tǒng)總線 簡寫:AHB
- APB總線:全稱Adanvced Peripheral Bus 高級外設(shè)總線 簡寫:APB
FSMC
FSMC 全稱 Flexible Static Memory Controller 靈活的靜態(tài)存儲器控制器,是一個(gè)很有特色的外設(shè),通過FSMC可以擴(kuò)展內(nèi)存,比如外部的SRAM、NANDFLASH、NORFLASH等,但只能擴(kuò)展靜態(tài)Static內(nèi)存,動態(tài)內(nèi)存無法擴(kuò)展。
ICode總線
ICode I指的是Instruction,程序經(jīng)過IDE編譯以后都是一條條的指令,內(nèi)核要讀取這些指令都是要通過ICode來訪問,程序運(yùn)行時(shí),每時(shí)每刻都要用到,是專門用來取指的。文章來源:http://www.zghlxwxcb.cn/news/detail-422733.html
總結(jié)
馮·依諾曼結(jié)構(gòu)和哈佛結(jié)構(gòu)
計(jì)算機(jī)把數(shù)據(jù)和代碼的存儲方式的不同,分成馮·依諾曼結(jié)構(gòu)和哈佛結(jié)構(gòu)。
馮·依諾曼結(jié)構(gòu):把數(shù)據(jù)和代碼都存儲在同一個(gè)存儲器中,STM32就是把內(nèi)核和外設(shè)共同分配在可以尋址4G的空間存儲器中。馮·依諾曼結(jié)構(gòu)的指令和數(shù)據(jù)共享同一數(shù)據(jù)總線,使得信息流的傳輸成為限制性能的瓶頸,但架構(gòu)設(shè)計(jì)師為了解決這類問題,采用了ICode總線專門用來取指,,System總線專門用來訪問外設(shè)寄存器,DCode總線專門用來訪問SRAM、和FLASH中的數(shù)據(jù),外設(shè)寄存器、SRAM和FLASH三者之間又可以通過DMA互相傳輸數(shù)據(jù),減小CPU的開銷,從而大大提高了傳輸性能。文章來源地址http://www.zghlxwxcb.cn/news/detail-422733.html
到了這里,關(guān)于STM32F103之系統(tǒng)架構(gòu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!