當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]整理了一下STM32相關(guān)的底層結(jié)構(gòu),有助于消化理解先上幾張圖片(主要參照STM3210x系列)1.芯片結(jié)構(gòu)組成圖:?2.STM32內(nèi)部結(jié)構(gòu):?3.Cortex-M3模塊結(jié)構(gòu)圖:?4.STM3210X內(nèi)

整理了一下STM32相關(guān)的底層結(jié)構(gòu),有助于消化理解

先上幾張圖片(主要參照STM3210x系列)

1.芯片結(jié)構(gòu)組成圖:

?

2.STM32內(nèi)部結(jié)構(gòu):

?

3.Cortex-M3模塊結(jié)構(gòu)圖:

?

4.STM3210X內(nèi)部結(jié)構(gòu):

橋:

四個(gè)主動(dòng)單元 : ? ? ? ? M3內(nèi)核的ICode總線(I-bus)、DCode總線(D-bus)、?系統(tǒng)總線(S-bus)、DMA(DMA1、DMA2、以太網(wǎng)DMA)? ? 四個(gè)被動(dòng)單元?: ? ? ? ? 內(nèi)部SRAM、內(nèi)部閃存、FSMC、AHB到APB橋? ? ICode總線 : ? ? ? ??將M3內(nèi)核的指令總線與FLASH指令接口相連,用于指令預(yù)取 ? DCode總線: ? ? ? ? 將M3內(nèi)核的數(shù)據(jù)總線與FLASH數(shù)據(jù)接口相連,常量加載和調(diào)試? ? 系統(tǒng)總線 : ? ? ? ? 將M3內(nèi)核的系統(tǒng)總線與總線矩陣相連,協(xié)調(diào)內(nèi)核與DMA訪問? ? DMA總線:? ? ? ? ??將DMA的AHB主控接口與總線矩陣相連,協(xié)調(diào)CPU的DCode和DMA到SRAM、閃存、外設(shè)的訪問 ? 總線矩陣: ? ? ? ??協(xié)調(diào)內(nèi)核系統(tǒng)總線和DMA主控總線間的訪問仲裁,仲裁采用輪換算法 ? ? ? ? 包含DCode、系統(tǒng)總線、DMA1和DMA2總線、被動(dòng)單元? ? AHB到APB橋 : ? ? ? ??兩個(gè)AHB/APB橋在AHB和兩個(gè)APB總線間提供同步連接 ? ? ? ??APB1速度限于36MHz,APB2全速最高72MHz


?

一、時(shí)鐘結(jié)構(gòu)(時(shí)鐘和復(fù)位模塊,如參考上半部分所示)

系統(tǒng)復(fù)位后,所有外設(shè)全部關(guān)閉,但?SRAM?和?FLASH接口(FLITF)除外。 使用外設(shè)之前需打開該外設(shè)時(shí)鐘,設(shè)置?RCC——AHBENR?寄存器?。? ? 二、存儲(chǔ)結(jié)構(gòu) :(參考上半部分) *存儲(chǔ)組織: ? ? ? ??Cortex-M3的存儲(chǔ)系統(tǒng)采用統(tǒng)一編址方式,小端方式?4GB?的線性地址空間內(nèi),    尋址空間被分成?8?個(gè)主塊 block0-block7 ,每塊512MB。 ? ? ? ? ??片內(nèi)Flash: 從?0x00000000開始(嚴(yán)格來講是從0x08000000開始,到0x0800x xxxx結(jié)束,程序就燒到里面。) ? ? ? ??片內(nèi)SRAM:從?0x20000000開始(用來保存程序運(yùn)行時(shí)產(chǎn)生的臨時(shí)數(shù)據(jù)的隨機(jī)存儲(chǔ)器,運(yùn)行時(shí)變量,堆棧的存放的地方) ? ? ? ??包括:? ? ? ? ? ? ? ? ? 代碼空間? ? ? ? ? ? ? ? ? 數(shù)據(jù)空間? ? ? ? ? ? ? ? ? 位段、位段別名? ? ? ? ? ? ? ? ? 寄存器? ? ? ? ? ? ? ? ? 片上外設(shè)? ? ? ? ? ? ? ? ? 外部存儲(chǔ)器? ? ? ? ? ? ? ? ? 外部外設(shè) ? ? ??拓展延伸:e2prom ,存儲(chǔ)掉電需要保存的數(shù)據(jù);fsmc總線還可以擴(kuò)展nor 和nand;?? *FLASH: 由?Main?Block?和?Information?Block組成 ? ? ? ? ? ??Main?Block:

? ? ? ? ? ??存放用戶程序,最高512KB? ? ? ? ? ? ? 地址范圍:0x0800?0000?–?0x0807?FFFF? ? ? ? ? ? ? 小容量:16K-32K,最大4Kx64bit,共32x1K頁(yè) ? ? ? ? ? ? 中容量:64K-128K,最大16Kx64bit,共128x1K頁(yè)? ? ? ? ? ? ? 大容量:256K-512K,最大64Kx64bit,共256x2K頁(yè)? ? ? ? ? ? ? 小容量:16K-32K,最大4Kx64bit,共32x1K頁(yè)? ? ? ? ? ? ? 互聯(lián)型:最大32Kx64bit,共128x2K頁(yè)

? ? ? ? ? ? ?Information?Block:

? ? ? ? ?System?Memory?2KB:0x1FFF?F000?–?0x1FFF?F7FF?ISP?Bootloader程序? ? ? ? ? ?Option?Bytes?16B:0x1FFF?F800?–?0x1FFF?F80F

? *SRAM:? ? ? ? ??最大64KB? ? ? ? ? 地址范圍:0x2000?0000?–?0x2000?FFFF ? *片上外設(shè)地址映射:?? *位段(bit-band)、位段別名 : ? M3存儲(chǔ)空間中包括兩個(gè)位段區(qū),該區(qū)域即可字操作,又可位操作 ? ? ? ? ? ? SRAM最低1MB空間: 0x2000?0000?–?0x200F?FFFF? ? ? ? ? ? ? 外設(shè)最低1MB空間:0x4000?0000?–?0x400F?FFFF? ? a.為方便位段區(qū)的操作,安排了兩個(gè)32M的位段別名區(qū) ? b.位段區(qū)中每一位?映射?位段別名區(qū)中的一個(gè)字 ? c.通過對(duì)別名區(qū)中某個(gè)字的讀寫操作,可以實(shí)現(xiàn)對(duì)位段區(qū)中某一位的讀寫操作 ?? ?別名區(qū),2個(gè)32MB: ? ? ? ??SRAM:0x2200?0000?–?0x21FF?FFFF? ? ? ? ??外設(shè):0x4200?0000?–?0x41FF?FFFF ? 位段別名區(qū)中的字與位段區(qū)的位映射公式: ? ? bit_word_addr?= ?bit_band_base +?(byte_offset?x?32) +?bit_number?x?4 ? ??例如:SRAM位段區(qū)中地址0x20000300字節(jié)中位2 ? ? ? ? ? ??0x22006008?= 0x22000000 +?(0x300?x?32) +?(2?x?4) ? ?? ? ??對(duì)別名區(qū)中某個(gè)字進(jìn)行寫操作:該字的第?0?位將影響位段區(qū)中對(duì)應(yīng)的位 ? ??對(duì)別名區(qū)中某個(gè)字進(jìn)行讀操作:若位段區(qū)中對(duì)應(yīng)的位為?0?則讀的結(jié)果為?0x0 ,若位段區(qū)中對(duì)應(yīng)的位為?1?則讀的結(jié)果為?0x1 ? ? PS:?對(duì)別名區(qū)的讀寫可以實(shí)現(xiàn)對(duì)位段區(qū)中每一位的原子操作,而且僅只需要一條指令即可實(shí)現(xiàn) ?? *啟動(dòng)模式?: ? ? ? ??STM32系統(tǒng)啟動(dòng)區(qū):0x0000?0000?–?0x0007?FFFF,512KB ? ? ? ??系統(tǒng)啟動(dòng)之后:?CPU從位于0x0000?0000地址處的啟動(dòng)區(qū)開始執(zhí)行代碼 ??? ? ??該區(qū)實(shí)際既無FLASH,也無SRAM,通過引導(dǎo)配置后,將實(shí)際引導(dǎo)區(qū)映射到啟動(dòng)區(qū) ? ? ? ??系統(tǒng)復(fù)位后,在SYSCLK第4個(gè)上升沿,BOOT管腳的狀態(tài)被保存,用戶通過設(shè)置BOOT1,BOOT0的引腳狀態(tài)選擇啟動(dòng)模式 ? ? ? ??CPU從位于0x0000?0000地址處的啟動(dòng)區(qū)開始執(zhí)行代碼 ? ? ? ? ? ? ? ???0x0000?0000?實(shí)際是SP? ? ? ? ? ? ? ? ???0x0000?0004?是執(zhí)行代碼的地址 ? ? ? ? ?即使被映射到啟動(dòng)區(qū),仍然可以在原存儲(chǔ)空間訪問相關(guān)存儲(chǔ)器? ? ? ? ? ? ? ?從待機(jī)模式退出后,BOOT引腳狀態(tài)被重新保存,待機(jī)時(shí),BOOT管腳需保持 ?? ?   ?STM32F10x通過配置?BOOT[1:0]引腳選擇三種不同啟動(dòng)模式? 三、片上外設(shè) STM32F10x外設(shè)

?

?

STM32F103xx增強(qiáng)型大容量外設(shè)

?

四、GPIO結(jié)構(gòu)

共?(5) x?16個(gè)I/O口:?

PA0?~?PA15? PB0?~?PB15? PC0?~?PC15? PD0?~?PD15? PE0?~?PE15

3.3V與5V兼容:

PA8?~?PA15? PB2?~?PB4、?PB6?~PB15 PC6?~?PC12? PD0?~?PD15? PE0?~?PE15

僅支持3.3V:

PA0?~?PA7,兼做?ADC_IN0?~?ADC_IN7? PB0?~?PB1,兼做?ADC_IN8?~?ADC_IN9 PB5? PC0?~?PC5,兼做?ADC_IN10?~?ADC_IN15? PC13?~?PC15


引腳 (48 64 ?...) 開發(fā)工具?

?

STM32系列的優(yōu)點(diǎn)

? ?先進(jìn)的內(nèi)核結(jié)構(gòu),STM32系列使用了ARM最新的、先進(jìn)架構(gòu)Cortex-M3內(nèi)核 ? ? ? ? ? ?優(yōu)秀的功耗控制,STM32處理器具有三種低功耗模式 ? ? ? ? ? ? ? ? ? ?運(yùn)行模式時(shí)使用高效的動(dòng)態(tài)耗電機(jī)制,在Flash中以72MHz全速運(yùn)行時(shí),如果開啟外部時(shí)鐘,處理器僅耗電27mA? ? ? ? ? ? ? ? ? ? ? 待機(jī)狀態(tài)時(shí)極低耗電,典型值2uA? ? ? ? ? ? ? ? ? ? ? 電池供電時(shí),提供低電壓2.0~3.6V工作能力 ? ? ? ? ? ?靈活的時(shí)鐘控制機(jī)制,用戶可以根據(jù)自己所需的耗電/性能要求進(jìn)行合理優(yōu)化 ? ? ? ? ? ?RTC可獨(dú)立供電,外接紐扣電池供電

?

??性能出眾而且功能創(chuàng)新的片上外設(shè) ? ? ? ??STM32?處理器片上外設(shè)的優(yōu)勢(shì)來源于雙?APB?總線結(jié)構(gòu) ? ? ? ??其中有一個(gè)高速?APB,速度可達(dá)CPU?的運(yùn)行頻率,連接到該總線上的外設(shè)能以更高的速度運(yùn)行 ? ? ? ? ? ? ? ??USB:???12Mbit/s????????? ? ? ? ? ? ? ? ? USART:??4.5Mbit/s? ? ? ? ? ? ? ? ? PI:???18Mbit/s ? ? ?? ? ? ? ? ? ? ? ? IIC:????400kHz? ? ? ? ? ? ? ? ? GPIO:??18MHz翻轉(zhuǎn) ? ? ?? ? ? ? ? ? ? ? ? PWM:????定時(shí)器72MHz輸入 ? ? ? ? ?針對(duì)?MCU?應(yīng)用中最常見的電機(jī)控制,STM32?對(duì)片上外圍設(shè)備進(jìn)行一些功能創(chuàng)新 ? ? ? ? ? ? ? ? ?內(nèi)嵌適合三相無刷電機(jī)控制的定時(shí)器和ADC ? ? ? ? ? ? ? ? ?高級(jí)PWM定時(shí)器提供: ? ? ? ? ? ? ? ? ? ? ? ? ?6路PWM輸出 ? ?-> 死去產(chǎn)生?????->?邊沿對(duì)齊和中心對(duì)齊波形? ? ? ? ? ? ? ? ? ? ? ? ? 編碼器輸入?????->?霍爾傳感器???->?完整的向量控制環(huán) 緊急故障停機(jī)、 ? ? ? ? ? ? ? ? ? ? ? ? 可與2路ADC同步、與其它定時(shí)器同步 可編程防范機(jī)制可用于防止對(duì)寄存器的非法寫入 ? ? ? ? ? ? ? ??雙通道ADC采樣/保持,12位1uS,連續(xù)/獨(dú)立模式,多觸發(fā)源 ? ? ? ? ? ? ? ??等等

?

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉