《STM32嵌入式單片機(jī)原理與應(yīng)用》 課件 第2章 STM32微控制器_第1頁
《STM32嵌入式單片機(jī)原理與應(yīng)用》 課件 第2章 STM32微控制器_第2頁
《STM32嵌入式單片機(jī)原理與應(yīng)用》 課件 第2章 STM32微控制器_第3頁
《STM32嵌入式單片機(jī)原理與應(yīng)用》 課件 第2章 STM32微控制器_第4頁
《STM32嵌入式單片機(jī)原理與應(yīng)用》 課件 第2章 STM32微控制器_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第2章STM32微控制器本章對(duì)STM32微控制器進(jìn)行了概述,介紹了STM32F1系列產(chǎn)品系統(tǒng)構(gòu)架和STM32F103ZET6內(nèi)部結(jié)構(gòu)、STM32F103ZET6的存儲(chǔ)器映像、STM32F103ZET6的時(shí)鐘結(jié)構(gòu)、STM32F103VET6的引腳和STM32F103VET6最小系統(tǒng)設(shè)計(jì)。2.1STM32微控制器概述STM32是意法半導(dǎo)體(STMicroelectronics)較早推向市場(chǎng)的基于Cortex-M內(nèi)核的微處理器系列產(chǎn)品,該系列產(chǎn)品具有成本低、功耗優(yōu)、性能高、功能多等優(yōu)勢(shì),并且以系列化方式推出,方便用戶選型,在市場(chǎng)上獲得了廣泛好評(píng)。STM32目前常用的有STM32F103~107系列,簡(jiǎn)稱“1系列”,最近又推出了高端系列STM32F4xx系列,簡(jiǎn)稱“4系列”。前者基于Cortex-M3內(nèi)核,后者基于Cortex-M4內(nèi)核。STM32F4xx系列在以下諸多方面做了優(yōu)化:(1)增加了浮點(diǎn)運(yùn)算(2)DSP處理(3)存儲(chǔ)空間更大,高達(dá)1M字節(jié)以上(4)運(yùn)算速度更高,以168MHz高速運(yùn)行時(shí)可達(dá)到210DMIPS的處理能力(5)更高級(jí)的外設(shè),新增外設(shè),例如,照相機(jī)接口、加密處理器、USB高速OTG接口等,提高性能,更快的通信接口,更高的采樣率,帶FIFO的DMA控制器1.先進(jìn)的內(nèi)核結(jié)構(gòu)1)哈佛結(jié)構(gòu)使其在處理器整數(shù)性能測(cè)試上有著出色的表現(xiàn),可以達(dá)到1.25DMIPS/MHz、而功耗僅為0.19mW/MHz。2)Thumb-2指令集以16位的代碼密度帶來了32位的性能。3)內(nèi)置了快速的中斷控制器。提供了優(yōu)越的實(shí)時(shí)特性,中斷的延遲時(shí)間降到只需6個(gè)CPU周期,從低功耗模式喚醒的時(shí)間也只需6個(gè)CPU周期。4)單周期乘法指令和硬件除法指令。2.三種功耗控制STM32經(jīng)過特殊處理,針對(duì)應(yīng)用中三種主要的能耗要求進(jìn)行了優(yōu)化,這三種能耗需求分別是運(yùn)行模式下高效率的動(dòng)態(tài)耗電機(jī)制、待機(jī)狀態(tài)時(shí)極低的電能消耗和電池供電時(shí)的低電壓工作能力。為此,STM32提供了三種低功耗模式和靈活的時(shí)鐘控制機(jī)制,用戶可以根據(jù)自己所需要的耗電/性能要求進(jìn)行合理地優(yōu)化。3.最大程度集成整合1)STM32內(nèi)嵌電源監(jiān)控器,包括上電復(fù)位、低電壓檢測(cè)、掉電檢測(cè)和自帶時(shí)鐘的看門狗定時(shí)器,減少對(duì)外部器件的需求。2)使用一個(gè)主晶振可以驅(qū)動(dòng)整個(gè)系統(tǒng)。低成本的4~16MHz晶振即可驅(qū)動(dòng)CPU、USB以及所有外設(shè),使用內(nèi)嵌鎖相環(huán)(PhaseLockedLoop,PLL)產(chǎn)生多種頻率,可以為內(nèi)部實(shí)時(shí)時(shí)鐘選擇32kHz的晶振。3.最大程度集成整合3)內(nèi)嵌出廠前調(diào)校好的8MHzRC振蕩電路,可以作為主時(shí)鐘源。4)針對(duì)RTC(RealTimeClock,實(shí)時(shí)時(shí)鐘)或看門狗的低頻率RC電路。5)LQPF100封裝芯片的最小系統(tǒng)只需要7個(gè)外部無源器件。因此,使用STM32可以很輕松地完成產(chǎn)品的開發(fā)。ST提供了完整、高效的開發(fā)工具和庫函數(shù),幫助開發(fā)者縮短系統(tǒng)開發(fā)時(shí)間。4.出眾及創(chuàng)新的外設(shè)STM32的優(yōu)勢(shì)來源于兩路高級(jí)外設(shè)總線,連接到該總線上的外設(shè)能以更高的速度運(yùn)行。1)USB接口速度可達(dá)12Mbit/s。2)USART接口速度高達(dá)4.5Mbit/s。3)SPI接口速度可達(dá)18Mbit/s。4)I2C接口速度可達(dá)400kHz。5)GPIO的最大翻轉(zhuǎn)頻率為18MHz。6)PWM(PulseWidthModulation,脈沖寬度調(diào)制)定時(shí)器最高可使用72MHz時(shí)鐘輸入。目前,市場(chǎng)上常見的基于Cortex-M3的MCU有意法半導(dǎo)體(STMicroelectronics)有限公司的STM32F103微控制器、德州儀器公司(TI)的LM3S8000微控制器和恩智浦公司(NXP)的LPC1788微控制器等,其應(yīng)用遍及工業(yè)控制、消費(fèi)電子、儀器儀表、智能家居等各個(gè)領(lǐng)域。意法半導(dǎo)體集團(tuán)于1987年6月成立,是由意大利的SGS微電子公司和法國(guó)THOMSON半導(dǎo)體公司合并而成。1998年5月,改名為意法半導(dǎo)體有限公司(ST),是世界最大的半導(dǎo)體公司之一。STM32系列微控制器的產(chǎn)品線包括高性能類型、主流類型和超低功耗類型三大類,分別面向不同的應(yīng)用,其具體產(chǎn)品系列如圖2-1所示。2.1.1STM32微控制器產(chǎn)品線圖2-1STM32產(chǎn)品線圖1.STM32F1系列(主流類型)STM32F1系列微控制器基于Cortex-M3內(nèi)核,利用一流的外設(shè)和低功耗、低壓操作實(shí)現(xiàn)了高性能,同時(shí)以可接受的價(jià)格,利用簡(jiǎn)單的架構(gòu)和簡(jiǎn)便易用的工具實(shí)現(xiàn)了高集成度,能夠滿足工業(yè)、醫(yī)療和消費(fèi)類市場(chǎng)的各種應(yīng)用需求。憑借該產(chǎn)品系列,ST公司在全球基于ARMCortex-M3的微控制器領(lǐng)域處于領(lǐng)先地位。本書后續(xù)章節(jié)即是基于STM32F1系列中的典型微控制器STM32F103進(jìn)行講述的。截至2016年3月,STM32F1系列微控制器包含以下5個(gè)產(chǎn)品線,它們的引腳、外設(shè)和軟件均兼容。1)STM32F100,超值型,24MHzCPU,具有電機(jī)控制和CEC功能。2)STM32F101,基本型,36MHzCPU,具有高達(dá)1MB的Flash。3)STM32F102,USB基本型,48MHzCPU,具備USBFS。4)STM32F103,增強(qiáng)型,72MHzCPU,具有高達(dá)1MB的Flash、電機(jī)控制、USB和CAN。5)STM32F105/107,互聯(lián)型,72MHzCPU,具有以太網(wǎng)MAC、CAN和USB2.0OTG。2.STM32F4系列(高性能類型)STM32F4系列微控制器基于Cortex-M4內(nèi)核,采用了意法半導(dǎo)體有限公司的90nmNVM工藝和ART加速器,在高達(dá)180MHz的工作頻率下通過閃存執(zhí)行時(shí),其處理性能達(dá)到225DMIPS/608CoreMark。這是迄今所有基于Cortex-M內(nèi)核的微控制器產(chǎn)品所達(dá)到的最高基準(zhǔn)測(cè)試分?jǐn)?shù)。由于采用了動(dòng)態(tài)功耗調(diào)整功能,通過閃存執(zhí)行時(shí)的電流消耗范圍為STM32F401的128μA/MHz到STM32F439的260μA/MHz。截至2016年3月,STM32F4系列包括8條互相兼容的數(shù)字信號(hào)控制器(DigitalSignalController,DSC)產(chǎn)品線,是MCU實(shí)時(shí)控制功能與DSP信號(hào)處理功能的完美結(jié)合體。1)STM32F401,84MHzCPU/105DMIPS,尺寸最小、成本最低的解決方案,具有卓越的功耗效率(動(dòng)態(tài)效率系列)。2)STM32F410,100MHzCPU/125DMIPS,采用新型智能DMA,優(yōu)化了數(shù)據(jù)批處理的功耗(采用批采集模式的動(dòng)態(tài)效率系列),配備的隨機(jī)數(shù)發(fā)生器、低功耗定時(shí)器和DAC,為卓越的功率效率性能設(shè)立了新的里程碑(停機(jī)模式下89μA/MHz)。3)STM32F411,100MHzCPU/125DMIPS,具有卓越的功率效率、更大的SRAM和新型智能DMA,優(yōu)化了數(shù)據(jù)批處理的功耗(采用批采集模式的動(dòng)態(tài)效率系列)。4)STM32F405/415,168MHzCPU/210DMIPS,高達(dá)1MB的Flash閃存,具有先進(jìn)連接功能和加密功能。5)STM32F407/417,168MHzCPU/210DMIPS,高達(dá)1MB的Flash閃存,增加了以太網(wǎng)MAC和照相機(jī)接口。6)STM32F446,180MHzCPU/225DMIPS,高達(dá)512KB的Flash閃存,具有DualQuadSPI和SDRAM接口。7)STM32F429/439,180MHzCPU/225DMIPS,高達(dá)2MB的雙區(qū)閃存,帶SDRAM接口、Chrom-ART加速器和LCD-TFT控制器。8)STM32F427/437,180MHzCPU/225DMIPS,高達(dá)2MB的雙區(qū)閃存,具有SDRAM接口、Chrom-ART加速器、串行音頻接口,性能更高,靜態(tài)功耗更低。9)SM32F469/479,180MHzCPU/225DMIPS,高達(dá)2MB的雙區(qū)閃存,帶SDRAM和QSPI接口、Chrom-ART加速器、LCD-TFT控制器和MPI-DSI接口。3.STM32F7系列(高性能類型)STM32F7是世界上第一款基于Cortex-M7內(nèi)核的微控制器。它采用6級(jí)超標(biāo)量流水線和浮點(diǎn)單元,并利用ST的ART加速器和L1緩存,實(shí)現(xiàn)了Cortex-M7的最大理論性能-無論是從嵌入式閃存還是外部存儲(chǔ)器來執(zhí)行代碼,都能在216MHz處理器頻率下使性能達(dá)到462DMIPS/1082CoreMark。由此可見,相對(duì)于意法半導(dǎo)體以前推出的高性能微控制器,如F2、F4系列,STM32F7的優(yōu)勢(shì)就在于其強(qiáng)大的運(yùn)算性能,能夠適用于那些對(duì)于高性能計(jì)算有巨大需求的應(yīng)用,對(duì)于目前還在使用簡(jiǎn)單計(jì)算功能的可穿戴設(shè)備和健身應(yīng)用來說,將會(huì)帶來革命性的顛覆,起到巨大的推動(dòng)作用。4.STM32L1系列(超低功耗類型)STM32L1系列微控制器基于Cortex-M3內(nèi)核,采用意法半導(dǎo)體專有的超低泄漏制程,具有創(chuàng)新型自主動(dòng)態(tài)電壓調(diào)節(jié)功能和5種低功耗模式,為各種應(yīng)用提供了無與倫比的平臺(tái)靈活性。STM32L1擴(kuò)展了超低功耗的理念,并且不會(huì)犧牲性能。與STM32L0一樣,STM32L1提供了動(dòng)態(tài)電壓調(diào)節(jié)、超低功耗時(shí)鐘振蕩器、LCD接口、比較器、DAC及硬件加密等部件。STM32L1系列微控制器可以實(shí)現(xiàn)在1.65~3.6V范圍內(nèi)以32MHz的頻率全速運(yùn)行,其功耗參考值如下:1)動(dòng)態(tài)運(yùn)行模式,低至177μA/MHz。2)低功耗運(yùn)行模式:低至9μA。3)超低功耗模式+備份寄存器+RTC:900nA(3個(gè)喚醒引腳)。4)超低功耗模式+備份寄存器:280nA(3個(gè)喚醒引腳)。除了超低功耗MCU以外,STM32L1還提供了多種特性、存儲(chǔ)容量和封裝引腳數(shù)選項(xiàng),如32~512KBFlash存儲(chǔ)器、高達(dá)80KB的SDRAM、16KB真正的嵌入式EEPROM、48~144個(gè)引腳。為了簡(jiǎn)化移植步驟和為工程師提供所需的靈活性,STM32L1與不同的STM32F系列均引腳兼容。ST公司在推出以上一系列基于Cortex-M內(nèi)核的STM32微控制器產(chǎn)品線的同時(shí),也制定了它們的命名規(guī)則。通過名稱,用戶能直觀、迅速地了解某款具體型號(hào)的STM32微控制器產(chǎn)品。STM32系列微控制器的名稱主要由以下幾部分組成。1.產(chǎn)品系列名STM32系列微控制器名稱通常以STM32開頭,表示產(chǎn)品系列,代表意法半導(dǎo)體基于ARMCortex-M系列內(nèi)核的32位MCU。2.產(chǎn)品類型名產(chǎn)品類型是STM32系列微控制器名稱的第二部分,通常有F(FlashMemory,通用快速閃存)、W(無線系統(tǒng)芯片)、L(低功耗低電壓,1.65~3.6V)等類型。2.1.2STM32微控制器的命名規(guī)則3.產(chǎn)品子系列名產(chǎn)品子系列是STM32系列微控制器名稱的第三部分。4.引腳數(shù)引腳數(shù)是STM32系列微控制器名稱的第四部分,通常有以下幾種:F(20pin)、G(28pin)、K(32pin)、T(36pin)、H(40pin)、C(48pin)、U(63pin)、R(64pin)、O(90pin)、V(100pin)、Q(132pin)、Z(144pin)和I(176pin)等。5.Flash存儲(chǔ)器容量Flash存儲(chǔ)器容量是STM32系列微控制器名稱的第五部分,通常以下幾種:4(16KFlash,小容量)、6(32KBFlash,小容量)、8(64KBFlash,中容量)、B(128KBFlash,中容量)、C(256KBFlash,大容量)、D(384KBFlash,大容量)、E(512KBFlash,大容量)、F(768KBFlash,大容量)、G(1MBFlash,大容量)。6.封裝方式封裝方式是STM32系列微控制器名稱的第六部分,通常有以下幾種:T(LQFP,Low-profileQuadFlatPackage,薄型四側(cè)引腳扁平封裝)、H(BGA,BallGridArray,球柵陣列封裝)、U(VFQFPN,VerythinFinepitchQuadFlatPackNo-leadpackage,超薄細(xì)間距四方扁平無鉛封裝)、Y(WLCSP,WaferLevelChipScalePackaging,晶圓片級(jí)芯片規(guī)模封裝)。7.溫度范圍溫度范圍是STM32系列微控制器名稱的第七部分,通常有以下兩種:6(-40~85℃,工業(yè)級(jí))、7(-40~105℃,工業(yè)級(jí))。STM32F103微控制器的命名規(guī)則如圖2-2所示。圖2-2STM32F103微控制器命名規(guī)則STM32F103xx閃存容量、封裝及型號(hào)對(duì)應(yīng)關(guān)系如圖2-3所示。圖2-3STM32F103xx閃存容量、封裝及型號(hào)對(duì)應(yīng)關(guān)系對(duì)STM32單片機(jī)內(nèi)部資源介紹如下。(1)內(nèi)核ARM32位Cortex-M3CPU,最高工作頻率為72MHz,執(zhí)行速度為1.25DMIPS/MHz,完成32位x32位乘法計(jì)算只需用一個(gè)周期,并且硬件支持除法(有的芯片不支持硬件除法)。(2)存儲(chǔ)器片上集成32~512KB的閃存,6~64KB的靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)。(3)電源和時(shí)鐘復(fù)位電路包括:2.0~3.6V的供電電源(提供I/O端口的驅(qū)動(dòng)電壓);上電/斷電復(fù)位(POR/PDR)端口和可編程電壓探測(cè)器(PVD);內(nèi)嵌4~16MHz的晶振;內(nèi)嵌出廠前調(diào)校8MHz的RC振蕩電路、40kHz的RC振蕩電路;供CPU時(shí)鐘的PLL鎖相環(huán);帶校準(zhǔn)功能供RTC的32kHz晶振。(4)調(diào)試端口有SWD串行調(diào)試端口和JTAG端口可供調(diào)試用。(5)I/O端口根據(jù)型號(hào)的不同,雙向快速I/O端口數(shù)目可為26、37、51、80或112。翻轉(zhuǎn)速度為18MHz,所有的端口都可以映射到16個(gè)外部中斷向量。除了模擬輸入端口,其他所有的端口都可以接收5V以內(nèi)的電壓輸入。(6)DMA(直接內(nèi)存存取)端口支持定時(shí)器、ADC、SPI、I2C和USART等外設(shè)。(7)ADC帶有2個(gè)12位的微秒級(jí)逐次逼近型ADC,每個(gè)ADC最多有16個(gè)外部通道和2個(gè)內(nèi)部通道。2個(gè)內(nèi)部通道一個(gè)接內(nèi)部溫度傳感器,另一個(gè)接內(nèi)部參考電壓。ADC供電要求為2.4~3.6V,測(cè)量范圍為VREF-~VREF+,VREF-通常為0V,VREF+通常與供電電壓一樣。具有雙采樣和保持能力。(8)DACSTM32F103xC、STM32F103xD、STM32F103xE單片機(jī)具有2通道12位DAC。(9)定時(shí)器最多可有11個(gè)定時(shí)器,包括:4個(gè)16位定時(shí)器,每個(gè)定時(shí)器有4個(gè)PWM定時(shí)器或者脈沖計(jì)數(shù)器;2個(gè)16位的6通道高級(jí)控制定時(shí)器(最多6個(gè)通道可用于PWM輸出);2個(gè)看門狗定時(shí)器,包括獨(dú)立看門狗(IWDG)定時(shí)器和窗口看門狗(WWDG)定時(shí)器;1個(gè)系統(tǒng)滴答定時(shí)器SysTick(24位倒計(jì)數(shù)器);2個(gè)16位基本定時(shí)器,用于驅(qū)動(dòng)DAC。(10)通信端口最多可有13個(gè)通信端口,包括:2個(gè)PC端口;5個(gè)通用異步收發(fā)傳輸器(UART)端口(兼容IrDA標(biāo)準(zhǔn),調(diào)試控制);3個(gè)SPI端口(18Mbit/s),其中IS端口最多只能有2個(gè),CAN端口、USB2.0全速端口、安全數(shù)字輸入/輸出(SDIO)端口最多都只能有1個(gè)。(11)FSMCFSMC嵌在STM32F103xC、STM32F103xD、STM32F103xE單片機(jī)中,帶有4個(gè)片選端口,支持閃存、隨機(jī)存取存儲(chǔ)器(RAM)、偽靜態(tài)隨機(jī)存儲(chǔ)器(PSRAM)等。在微控制器選型過程中,工程師常常會(huì)陷入這樣一個(gè)困局:一方面抱怨8位/16位微控制器有限的指令和性能,另一方面抱怨32位處理器的高成本和高功耗。能否有效地解決這個(gè)問題,讓工程師不必在性能、成本、功耗等因素中做出取舍和折中?基于ARM公司2006年推出的Cortex-M3內(nèi)核,ST公司于2007年推出的STM32系列微控制器就很好地解決了上述問題。因?yàn)镃ortex-M3內(nèi)核的計(jì)算能力是1.25DMIPS/MHz,而ARM7TDMI只有0.95DMIPS/MHz。而且STM32擁有1μs的雙12位ADC,4Mbit/s的UART,18Mbit/s的SPI,18MHz的I/O翻轉(zhuǎn)速度,更重要的是,STM32在72MHz工作時(shí)功耗只有36mA(所有外設(shè)處于工作狀態(tài)),而待機(jī)時(shí)功耗只有2μA。2.1.3STM32微控制器的選型2.2STM32F1系列產(chǎn)品系統(tǒng)構(gòu)架和STM32F103ZET6內(nèi)部結(jié)構(gòu)STM32跟其他單片機(jī)一樣,是一個(gè)單片計(jì)算機(jī)或單片微控制器,所謂單片就是在一個(gè)芯片上集成了計(jì)算機(jī)或微控制器該有的基本功能部件。這些功能部件通過總線連在一起。就STM32而言,這些功能部件主要包括:Cortex-M內(nèi)核、總線、系統(tǒng)時(shí)鐘發(fā)生器、復(fù)位電路、程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、中斷控制、調(diào)試接口以及各種功能部件(外設(shè))。不同的芯片系列和型號(hào),外設(shè)的數(shù)量和種類也不一樣,常有的基本功能部件(外設(shè))是:輸入/輸出接口GPIO、定時(shí)/計(jì)數(shù)器TIMER/COUNTER、串行通信接口USART、串行總線I2C和SPI或I2S、SD卡接口SDIO、USB接口等。STM32F10x系列單片機(jī)基于ARMCortex-M3內(nèi)核,主要分為STM32F100xx、STM32F101xx、STM32F102xx、STM32F103xx、STM32F105xx和STM32F107xx。STM32F100xx、STM32F101xx和STM32F102xx為基本型系列,分別工作在24MHz、36MHz和48MHz主頻下。STM32F103xx為增強(qiáng)型系列,STM32F105xx和STM32F107xx為互聯(lián)型系列,均工作在72MHz主頻下。其結(jié)構(gòu)特點(diǎn)為:1)一個(gè)主晶振可以驅(qū)動(dòng)整個(gè)系統(tǒng),低成本的4~16MHz晶振即可驅(qū)動(dòng)CPU、USB和其他所有外設(shè)。2)內(nèi)嵌出廠前調(diào)校好的8MHzRC振蕩器,可以作為低成本主時(shí)鐘源。3)內(nèi)嵌電源監(jiān)視器,減少對(duì)外部器件的要求,提供上電復(fù)位、低電壓檢測(cè)、掉電檢測(cè)。4)GPIO:最大翻轉(zhuǎn)頻率為18MHz。5)PWM定時(shí)器:可以接收最大72MHz時(shí)鐘輸入。6)USART:傳輸速率可達(dá)4.5Mbit/s。7)ADC:12位,轉(zhuǎn)換時(shí)間最快為1μs。8)DAC:提供2個(gè)通道,12位。9)SPI:傳輸速率可達(dá)18Mbit/s,支持主模式和從模式。10)I2C:工作頻率可達(dá)400kHz。11)I2S:采樣頻率可選范圍為8~48kHz。12)自帶時(shí)鐘的看門狗定時(shí)器。13)USB:傳輸速率可達(dá)12Mbit/s。14)SDIO:傳輸速率為48MHz。STM32F1系列產(chǎn)品系統(tǒng)架構(gòu)如圖2-4所示。STM32F1系列產(chǎn)品主要由以下部分構(gòu)成:1)Cortex-M3內(nèi)核DCode總線(D-bus)和系統(tǒng)總線(S-bus)。2)通用DMA1和通用DMA2。3)內(nèi)部SRAM。4)內(nèi)部閃存存儲(chǔ)器。5)FSMC。6)AHB到APB的橋(AHB2APBx),它連接所有的APB設(shè)備。上述部件都是通過一個(gè)多級(jí)的AHB總線構(gòu)架相互連接的。2.2.1STM32F1系列產(chǎn)品系統(tǒng)架構(gòu)圖2-4STM32F1系列產(chǎn)品系統(tǒng)架構(gòu)ICode總線:該總線將Cortex-M3內(nèi)核的指令總線與閃存指令接口相連接。指令預(yù)取在此總線上完成。DCode總線:該總線將Cortex-M3內(nèi)核的DCode總線與閃存存儲(chǔ)器的數(shù)據(jù)接口相連接(常量加載和調(diào)試訪問)。系統(tǒng)總線:此總線連接Cortex-M3內(nèi)核的系統(tǒng)總線(外設(shè)總線)到總線矩陣,總線矩陣協(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主控總線之間的訪問仲裁,仲裁采用輪換算法。總線矩陣包含4個(gè)主動(dòng)部件(CPU的DCode、系統(tǒng)總線、DMA1總線和DMA2總線)和4個(gè)被動(dòng)部件(閃存存儲(chǔ)器接口、SRAM、FSMC和AHB2APB橋)。

AHB外設(shè)通過總線矩陣與系統(tǒng)總線相連,允許DMA訪問。AHB/APB橋(APB):兩個(gè)AHB/APB橋在AHB和兩個(gè)APB總線間提供同步連接。APB1操作速度限于36MHz,APB2操作于全速(最高72MHz)。上述模塊由AMBA(AdvancedMicrocontrollerBusArchitecture)總線連接到一起。AMBA總線是ARM公司定義的片上總線,已成為一種流行的工業(yè)片上總線標(biāo)準(zhǔn)。它包括AHB(AdvancedHighperformanceBus)和APB(AdvancedPeripheralBus),前者作為系統(tǒng)總線,后者作為外設(shè)總線。為更加簡(jiǎn)明地理解STM32單片機(jī)的內(nèi)部結(jié)構(gòu),對(duì)圖2-4進(jìn)行抽象簡(jiǎn)化后如圖2-5所示,這樣對(duì)初學(xué)者的學(xué)習(xí)理解會(huì)更加方便些。

為更加簡(jiǎn)明地理解STM32單片機(jī)的內(nèi)部結(jié)構(gòu),對(duì)圖2-4進(jìn)行抽象簡(jiǎn)化后如圖2-5所示,這樣對(duì)初學(xué)者的學(xué)習(xí)理解會(huì)更加方便些。

圖2-5STM32F1系列產(chǎn)品系統(tǒng)架構(gòu)現(xiàn)結(jié)合圖2-5對(duì)STM32的基本原理做一簡(jiǎn)單分析,主要包括以下內(nèi)容。(1)程序存儲(chǔ)器、靜態(tài)數(shù)據(jù)存儲(chǔ)器、所有的外設(shè)都統(tǒng)一編址,地址空間為4GB。但各自都有固定的存儲(chǔ)空間區(qū)域,使用不同的總線進(jìn)行訪問。(2)可將Cortex-M3內(nèi)核視為STM32的“CPU”,程序存儲(chǔ)器、靜態(tài)數(shù)據(jù)存儲(chǔ)器、所有的外設(shè)均通過相應(yīng)的總線再經(jīng)總線矩陣與之相接。Cortex-M3內(nèi)核控制程序存儲(chǔ)器、靜態(tài)數(shù)據(jù)存儲(chǔ)器、所有外設(shè)的讀寫訪問。(3)STM32的功能外設(shè)較多,分為高速外設(shè)、低速外設(shè)兩類,各自通過橋接再通過AHB系統(tǒng)總線連接至總線矩陣,從而實(shí)現(xiàn)與Cortex-M3內(nèi)核的接口。(4)STM32的系統(tǒng)時(shí)鐘均由復(fù)位與時(shí)鐘控制器RCC產(chǎn)生,它有一整套的時(shí)鐘管理設(shè)備,由它為系統(tǒng)和各種外設(shè)提供所需的時(shí)鐘以確定各自的工作速度。根據(jù)程序存儲(chǔ)容量,ST芯片分為三大類:LD(小于64KB),MD(小于256KB),HD(大于256KB),而STM32F103ZET6類型屬于第三類,它是STM32系列中的一個(gè)典型型號(hào)。STM32F103ZET6的內(nèi)部架構(gòu)如圖2-6所示。STM32F103ZET6包含以下特性。1)內(nèi)核。①ARM32位的Cortex-M3CPU,最高72MHz工作頻率,在存儲(chǔ)器的0等待周期訪問時(shí)可達(dá)1.25DMips/MHz(Dhrystone2.1)。②單周期乘法和硬件除法。

2.2.2STM32F103ZET6的內(nèi)部架構(gòu)2)存儲(chǔ)器。①512KB的閃存程序存儲(chǔ)器。②64KB的SRAM。③帶有4個(gè)片選信號(hào)的靈活的靜態(tài)存儲(chǔ)器控制器,支持CompactFlash、SRAM、PSRAM、NOR和NAND存儲(chǔ)器。3)LCD并行接口,支持8080/6800模式。4)時(shí)鐘、復(fù)位和電源管理。①芯片和I/O引腳的供電電壓為2.0~3.6V。②上電/斷電復(fù)位(POR/PDR)、可編程電壓監(jiān)測(cè)器(PVD)。③4~16MHz晶體振蕩器。④內(nèi)嵌經(jīng)出廠調(diào)校的8MHz的RC振蕩器。⑤內(nèi)嵌帶校準(zhǔn)的40kHz的RC振蕩器。

⑥帶校準(zhǔn)功能的32kHzRTC振蕩器。5)低功耗。①支持睡眠、停機(jī)和待機(jī)模式。②VBAT為RTC和后備寄存器供電。6)3個(gè)12位模數(shù)轉(zhuǎn)換器(ADC),lμs轉(zhuǎn)換時(shí)間(多達(dá)16個(gè)輸入通道)。①轉(zhuǎn)換范圍:0~3.6V。②采樣和保持功能。③溫度傳感器。7)2個(gè)12位數(shù)模轉(zhuǎn)換器(DAC)。8)DMA。①12通道DMA控制器。②支持的外設(shè)包括:定時(shí)器、ADC、DAC、SDIO、I2S、SPI、I2C和USART。

9)調(diào)試模式。①串行單線調(diào)試(SWD)和JTAG接口。②Cortex-M3嵌入式跟蹤宏單元(ETM)。10)快速I/O端口(PA~PG)。多達(dá)7個(gè)快速I/O端口,每個(gè)端口包含16根I/O口線,所有1/0口可以映像到16個(gè)外部中斷;幾乎所有端口均可容忍5V信號(hào)。11)多達(dá)11個(gè)定時(shí)器。①4個(gè)16位通用定時(shí)器,每個(gè)定時(shí)器有多達(dá)4個(gè)用于輸入捕獲/輸出比較/PWM或脈沖計(jì)數(shù)的通道和增量編碼器輸入。②2個(gè)16位帶死區(qū)控制和緊急剎車,用于電機(jī)控制的PWM高級(jí)控制定時(shí)器。

③2個(gè)看門狗定時(shí)器(獨(dú)立看門狗定時(shí)器和窗口看門狗定時(shí)器)。④系統(tǒng)滴答定時(shí)器:24位自減型計(jì)數(shù)器。⑤2個(gè)16位基本定時(shí)器用于驅(qū)動(dòng)DAC。12)多達(dá)13個(gè)通信接口。①2個(gè)IC接口(支持SMBus/PMBus)。②5個(gè)USART接口(支持ISO7816接口、LIN、IrDA兼容接口和調(diào)制解調(diào)控制)。③3個(gè)SPI接口(18M位/秒),2個(gè)帶有PS切換接口。④1個(gè)CAN接口(支持2.0B協(xié)議)。⑤1個(gè)USB2.0全速接口。⑥1個(gè)SDIO接口。

13)CRC計(jì)算單元,96位的芯片唯一代碼。14)LQFP144封裝形式。15)工作溫度:-40℃~+105℃。以上特性,使得STM32F103ZET6非常實(shí)用于電機(jī)驅(qū)動(dòng)、應(yīng)用控制、醫(yī)療和手持設(shè)備、PC和游戲外設(shè)、GPS平臺(tái)、工業(yè)應(yīng)用、PLC、逆變器、打印機(jī)、掃描儀、報(bào)警系統(tǒng)、空調(diào)系統(tǒng)等領(lǐng)域。

圖2-6STM32F103ZET6的內(nèi)部架構(gòu)2.3STM32F103ZET6的存儲(chǔ)器映像STM32F103ZET6的存儲(chǔ)器映像如圖2-7所示。圖2-7STM32F103ZET6的存儲(chǔ)器映像程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、寄存器和輸入/輸出端口被組織在同一個(gè)4GB的線性地址空間內(nèi)。可訪問的存儲(chǔ)器空間被分成8個(gè)主要的塊,每塊為512MB。數(shù)據(jù)字節(jié)以小端格式存放在存儲(chǔ)器中。一個(gè)字中的最低地址字節(jié)被認(rèn)為是該字的最低有效字節(jié),而最高地址字節(jié)是最高有效字節(jié)。STM32F103ZET6中內(nèi)置外設(shè)的地址范圍如書中表2-1所示。

2.3.1STM32F103ZET6內(nèi)置外設(shè)的地址范圍STM32F103ZET6內(nèi)置64KB的靜態(tài)SRAM。它可以以字節(jié)、半字(16位)或字(32位)訪問。SRAM的起始地址是0x20000000。Cortex-M3存儲(chǔ)器映像包括兩個(gè)位帶區(qū)。這兩個(gè)位帶區(qū)將別名存儲(chǔ)器區(qū)中的每個(gè)字映射到位帶存儲(chǔ)器區(qū)的一個(gè)位,在別名存儲(chǔ)區(qū)寫入一個(gè)字具有對(duì)位帶區(qū)的目標(biāo)位執(zhí)行讀-改寫操作的相同效果。在STM32F103ZET6中,外設(shè)寄存器和SRAM都被映射到位帶區(qū)里,允許執(zhí)行位帶的寫和讀操作。

2.3.2嵌入式SRAM高達(dá)512KB閃存存儲(chǔ)器,由主存儲(chǔ)塊和信息塊組成:主存儲(chǔ)塊容量為64Kx64位,每個(gè)存儲(chǔ)塊劃分為256個(gè)2KB的頁。信息塊容量為258x64位。閃存模塊的組織如表2-2所示。2.3.3嵌入式閃存表2-2閃存模塊的組織模塊名稱地址大小/B主存儲(chǔ)塊頁00x08000000~0x080007FF2K頁10x08000800~0x08000FFF2K頁20x08001000~0x080017FF2K頁30x08001800~0x08001FFF2K.........頁2550x0807F800~0x0807FFFF2K信息塊系統(tǒng)存儲(chǔ)器0x1FFFF000~0x1FFFF7FF2K選擇字節(jié)0x1FFFF800~0x1FFFF80F16閃存存儲(chǔ)器接口寄存器FLASH_ACR0x40022000~0x400220034FLASH_KEYR0x40022004~0x400220074FLASH_OPTKEYR0x40022008~0x4002200B4FLASH_SR0x4002200C~0x4002200F4FLASH_CR0x40022010~0x400220134FLASH_AR0x40022014~0x400220174保留0x40022018~0x4002201B4FLASH_OBR0x4002201C~0x4002201F4FLASH_WRPR0x40022020~0x400220234閃存存儲(chǔ)器接口的特性為:1)帶預(yù)取緩沖器的讀接口(每字為2x64位)。2)選擇字節(jié)加載器。3)閃存編程/擦除操作。4)訪問/寫保護(hù)。閃存的指令和數(shù)據(jù)訪問是通過AHB總線完成的。預(yù)取模塊通過ICode總線讀取指令。仲裁作用在閃存接口,并且DCode總線上的數(shù)據(jù)訪問優(yōu)先。讀訪問可以有以下配置選項(xiàng)。1)等待時(shí)間:可以隨時(shí)更改的用于讀取操作的等待狀態(tài)的數(shù)量。

2)預(yù)取緩沖區(qū)(2個(gè)64位):在每一次復(fù)位以后被自動(dòng)打開,由于每個(gè)緩沖區(qū)的大?。?4位)與閃存的帶寬相同,因此只通過需一次讀閃存的操作即可更新整個(gè)級(jí)中的內(nèi)容。由于預(yù)取緩沖區(qū)的存在,CPU可以工作在更高的主頻。CPU每次取指最多為32位的字,取一條指令時(shí),下一條指令已經(jīng)在緩沖區(qū)中等待。

2.4STM32F103ZET6的時(shí)鐘結(jié)構(gòu)STM32系列微控制器中,有5個(gè)時(shí)鐘源,分別是高速內(nèi)部時(shí)鐘(HighSpeedInternal.HSI)、高速外部時(shí)鐘(HighSpeedExternal,HSE)、低速內(nèi)部時(shí)鐘(LowSpeedInternal.LSD、低速外部時(shí)鐘(LowSpeedExternal,LSE)、鎖相環(huán)倍頻輸出(PhaseLockedLoop.PLL)。STM32F103ZET6的時(shí)鐘系統(tǒng)呈樹狀結(jié)構(gòu),因此也稱為時(shí)鐘樹。STM32處理器因?yàn)榈凸牡男枰?,各模塊需要分別獨(dú)立開啟時(shí)鐘。因此,當(dāng)需要使用某個(gè)外設(shè)模塊時(shí),務(wù)必要先使能對(duì)應(yīng)的時(shí)鐘。否則,這個(gè)外設(shè)不能工作。STM32時(shí)鐘樹如圖2-8所示。圖2-8STM32時(shí)鐘樹1.HSE時(shí)鐘高速外部時(shí)鐘信號(hào)(HSE)可以由外部晶體/陶瓷諧振器產(chǎn)生,也可以由用戶外部產(chǎn)生。一般采用外部晶體/陶瓷諧振器產(chǎn)生HSE時(shí)鐘。在OSC_IN和OSC_OUT引腳之間連接4~16MHz外部振蕩器為系統(tǒng)提供精確的主時(shí)鐘。為了減少時(shí)鐘輸出的失真和縮短啟動(dòng)穩(wěn)定時(shí)間,晶體/陶瓷諧振器和負(fù)載電容器必須盡可能地靠近振蕩器引腳。負(fù)載電容值必須根據(jù)所選擇的振蕩器來調(diào)整。2.HSI時(shí)鐘HSI時(shí)鐘信號(hào)由內(nèi)部8MHz的RC振蕩器產(chǎn)生,可直接作為系統(tǒng)時(shí)鐘或在2分頻后作為PLL輸入。HSIRC振蕩器能夠在不需要任何外部器件的條件下提供系統(tǒng)時(shí)鐘。它的啟動(dòng)時(shí)間比HSE晶體振蕩器短。然而,即使在校準(zhǔn)之后它的時(shí)鐘頻率精度仍較差。如果HSE晶體振蕩器失效,HSI時(shí)鐘會(huì)被作為備用時(shí)鐘源。3.PLL內(nèi)部PLL可以用來倍頻HSIRC的輸出時(shí)鐘或HSE晶體輸出時(shí)鐘。PLL的設(shè)置(選擇HSI振蕩器除2或HSE振蕩器為PLL的輸入時(shí)鐘,和選擇倍頻因子)必須在其被激活前完成。一旦PLL被激活,這些參數(shù)就不能被改動(dòng)。如果需要在應(yīng)用中使用USB接口,PLL必須被設(shè)置為輸出48或72MHz時(shí)鐘,用于提供48MHz的USBCLK時(shí)鐘。4.LSE時(shí)鐘LSE晶體是一個(gè)32.768kHz的低速外部晶體或陶瓷諧振器。它為實(shí)時(shí)時(shí)鐘或者其他定時(shí)功能提供一個(gè)低功耗且精確的時(shí)鐘源。5.LSI時(shí)鐘LSIRC擔(dān)當(dāng)著低功耗時(shí)鐘源的角色,它可以在停機(jī)和待機(jī)模式下保持運(yùn)行,為獨(dú)立看門狗和自動(dòng)喚醒單元提供時(shí)鐘。LSI時(shí)鐘頻率大約40kHz(在30kHz和60kHz之間)。6.系統(tǒng)時(shí)鐘(SYSCLK)選擇系統(tǒng)復(fù)位后,HSI振蕩器被選為系統(tǒng)時(shí)鐘。當(dāng)時(shí)鐘源被直接或通過PLL間接作為系統(tǒng)時(shí)鐘時(shí),它將不能被停止。只有當(dāng)目標(biāo)時(shí)鐘源準(zhǔn)備就緒了(經(jīng)過啟動(dòng)穩(wěn)定階段的延遲或PLL穩(wěn)定),從一個(gè)時(shí)鐘源到另一個(gè)時(shí)鐘源的切換才會(huì)發(fā)生。在被選擇時(shí)鐘源沒有就緒時(shí),系統(tǒng)時(shí)鐘的切換不會(huì)發(fā)生。直至目標(biāo)時(shí)鐘源就緒,才發(fā)生切換。7.RTC時(shí)鐘通過設(shè)置備份域控制寄存器(RCC_BDCR)里的RTCSEL[1:0]位,RTCCLK時(shí)鐘源可以由HSE/128、LSE或LSI時(shí)鐘提供。除非備份域復(fù)位,此選擇不能被改變。LSE時(shí)鐘在備份域里,但HSE和LSI時(shí)鐘不是。因此:1)如果LSE被選為RTC時(shí)鐘,只要VBAT維持供電,盡管VDD供電被切斷,RTC仍可繼續(xù)工作。2)LSI被選為自動(dòng)喚醒單元(AWU)時(shí)鐘時(shí),如果切斷VDD供電,不能保證AWU的狀態(tài)。3)如果HSE時(shí)鐘128分頻后作為RTC時(shí)鐘,VDD供電被切斷或內(nèi)部電壓調(diào)壓器被關(guān)閉(1.8V域的供電被切斷)時(shí),RTC狀態(tài)不確定。必須設(shè)置電源控制寄存器的DPB位(取消后備區(qū)域的寫保護(hù))為1。8.看門狗時(shí)鐘如果獨(dú)立看門狗已經(jīng)由硬件選項(xiàng)或軟件啟動(dòng),LSI振蕩器將被強(qiáng)制在打開狀態(tài),并且不能被關(guān)閉。在LSI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論