STM32F107内核架构.ppt

上传人:牧羊曲112 文档编号:5449581 上传时间:2023-07-08 格式:PPT 页数:45 大小:2.25MB
返回 下载 相关 举报
STM32F107内核架构.ppt_第1页
第1页 / 共45页
STM32F107内核架构.ppt_第2页
第2页 / 共45页
STM32F107内核架构.ppt_第3页
第3页 / 共45页
STM32F107内核架构.ppt_第4页
第4页 / 共45页
STM32F107内核架构.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《STM32F107内核架构.ppt》由会员分享,可在线阅读,更多相关《STM32F107内核架构.ppt(45页珍藏版)》请在三一办公上搜索。

1、第 2 章,STM32F107内核架构,本章目标,理解CM3内核与STM32F107架构关系理解STM32F107的存储器映像了解位带别名区地址计算方法理解电源管理模式理解CM3的复位序列掌握STM32F107启动配置方法理解STM32F107的时钟系统掌握时钟初始化方法,-3-,内核架构,STM32F107是一个ARM单片机,内嵌有一个Cortex-M3(简称CM3)处理器作为核心。CM3的三条总线通过总线矩阵与STM32F107主要部件及外设相连。STM32F107的架构包括CM3的内核架构和除内核以外的其他架构。,-4-,内核架构-CM3内核架构,CM3内部数据路径、寄存器和存储器接口都

2、是32位的。它具有以下特点:CM3采用了哈佛结构,拥有独立的指令总线和数据总线。两条总线的寻址空间总共为4GB。CM3内核提供一个可选的MPU(存储器保护单元)以应对比较复杂的应用。CM3内部还有一些调试组件,用于硬件水平上支持调试操作。同时,还有另外一些可选的组件。,-5-,内核架构-CM3内核架构,NVIC(向量中断控制器)寄存器组 三级流水线 可选的MPU调试和跟踪 I-Code总线 D-Code总线 系统总线,-6-,内核架构-STM32F107架构,DMA总线总线矩阵 AHB/APB桥,-7-,存储器组织,CM3支持4GB的存储空间,用来映射程序存储器、数据存储器、外设寄存器。CM3

3、将这4GB存储空间,划分为6部分,-8-,存储器组织,在最高地址的内核外设区,映射CM3内核的外设。这些外设均使用固定地址。通过把基础外设的地址定死,至少在内核水平上,为应用程序的移植扫清了障碍。,-9-,存储器映像,STM32F107配备256Kbytes Flash存储器和64Kbytes SRAM存储器。,-10-,存储器映像-位带操作,CM3的存储器系统支持位带(bit-band)操作。通过它可以对单一比特进行读写操作。在CM3中,共有两个区域可以实现位带,-11-,存储器映像-位带计算方法,每一个比特位都被映射到了位带别名区,膨胀成为一个32位的字。在位带别名区写入一个字,相当于对位

4、带区的相应比特进行写入。,位带别名区基地址+位带区偏移量*32+比特位序号*4=位带别名区地址,-12-,存储器映像-位带计算方法,下述代码用于实现任务描述,展现了如何把寄存器RCC_CR的PLLON24位,映射到别名区。/*定义外设位带区的基地址*/#define PERIPH_BASE(u32)0 x40000000)/*定义外设位带别名区基地址*/#define PERIPH_BB_BASE(u32)0 x42000000)/*-定义RCC 寄存器偏移量-*/#define RCC_OFFSET(RCC_BASE-PERIPH_BASE)/*-定义CR 寄存器偏移量-*/#define

5、CR_OFFSET(RCC_OFFSET+0 x00)/*定义PLLON bit位置*/#define PLLON_BitNumber 0 x18/*定义PLLON bit的位带别名区地址*/#define CR_PLLON_BB(PERIPH_BB_BASE+(CR_OFFSET*32+(PLLON_BitNumber*4),-13-,存储器映像-位带计算方法,对于SRAM内存区,位带别名区的映射,-14-,寄存器组-通用寄存器,CM3处理器拥有R0-R15的通用寄存器组和一些特殊功能寄存器。特殊功能寄存器有预定义的功能,必须通过专用的指令来访问。,-15-,堆栈,堆栈是一种寄存器的使用模型

6、。它由一块连续的内存和一个堆栈指针组成,用于实现“后进先出”的缓冲区。其典型的应用是在发生中断时,执行中断处理程序前后保护和恢复现场数据。对于具体的堆栈形式,既可以“向上生长”也可以“向下生长”。,-16-,堆栈-CM3的堆栈,CM3使用的是“向下生长”的堆栈模型。初始化堆栈时,堆栈指针SP指向的第一个地址,叫做栈顶地址。以堆栈栈顶地址为0 x2000_8000为例,-17-,堆栈-双堆栈机制,在CM3中,堆栈分为两个:主堆栈(MSP)和进程堆栈(PSP)。两个堆栈分别存放在内存中,是两个不同的栈顶地址,但在同一时刻只能使用其中一个,不能同时使用。,-18-,电源管理,电源部分是维持整个STM

7、32F107正常工作的重要能源供给,STM32F107正常工作需要电源的供给,STM32F107的工作电压(VDD)为2.03.6V。在实际电路设计中常用3.3V作为STM32F107的供电电压。,-19-,电源管理-电源,STM32F107电源由供电电源即主电源VDD、备用电源和参考电压三部分构成。,-20-,电源管理-备份区域,如果有电池或其他电源连接到VBAT脚上,当VDD断电时,STM32F107可以自动保存备份区域的内容和维持RTC(实时时钟)的运行。备份寄存器(BKP)备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。它们处在备份域里侵入检测 当TAMPER

8、引脚上的信号从“0”变成“1”或者从“1”变成“0”,会产生一个侵入检测事件。,-21-,电源管理-备份区域,RTC校准 为方便测量,RTC时钟可以经64分频输出到侵入检测引脚TAMPER上。通过设置RTC校验寄存器(BKP_RTCCR)的CCO位来开启这一功能。此时钟可以最多减慢121ppm(part per million)。,-22-,电源管理-电源管理器 PWR,电源管理器(PWR)负责电源的管理,主要有上电复位、掉电复位和电压监测器三部分。,-23-,电源管理-电源管理器 PWR,上电复位(POR)和掉电复位(PDR)当供电电压达到2V时系统即能正常工作。当VDD/VDDA低于指定的

9、限位电压VPOR/VPDR时,系统保持为复位状态,而无需外部复位电路。,-24-,电源管理-电源管理器 PWR,可编程的电压监测器(PVD)可以通过库函数void PWR_PVDLevelConfig()进行设置。,-25-,电源管理-电源管理器 PWR,【示例2-1】设置PVD电压/*设置 PVD 探测值0为 2.5V*/PWR_PVDLevelConfig(PWR_PVDLevel_2V5);,-26-,电源管理-低功耗模式,在系统或电源复位以后,单片机处于运行状态。当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗,-27-,复位和启动配置,复位是STM32F107启动的第一步,通

10、过复位,MCU各寄存器恢复到初始状态。只有经过初始化后,才可以开始工作。复位并非只有上电才会产生,产生复位的方法和原因也有很多。,-28-,复位和启动配置-CM3的复位机制,复位信号,-29-,复位和启动配置-CM3的复位机制,复位序列 在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:从地址0 x0000_0000处取出MSP的初始值。从地址0 x0000_0004处取出PC的初始值。,-30-,复位和启动配置-CM3的复位机制,注意,这与传统的ARM架构不同。在CM3中,在0地址处提供MSP的初始值,然后紧跟着就是向量表。向量表中的数值是32位的地址,而不是跳转指令。向量

11、表的第一个条目指向复位后应执行的第一条指令。,-31-,复位和启动配置-RCC,具体到STM32F107单片机,它有三种复位:系统复位、电源复位和后备域复位。STM32F107复位和时钟控制相关的库函数,都在stm32f10 x_rcc.c中,相关宏定义在stm32f10 x_rcc.h中。RCC有多种用途,包括时钟设置,外设复位和时钟管理。,-32-,复位和启动配置-RCC,系统复位 系统复位将复位所有寄存器(除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外)为它们的默认数值。电源复位 当以下事件中之一发生时,产生电源复位:上电/掉电复位(POR/PDR复位)。从待机模式中返回。,

12、-33-,复位和启动配置-RCC,备份域复位 备份区域拥有两个专门的复位条件,它们只影响备份区域。当以下事件中之一发生时,产生备份区域复位。软件复位:备份区域复位可由设置备份域控制寄存器(RCC_BDCR)中的BDRST位产生。在VDD和VBAT两者掉电的前提下,VDD或VBAT上电将引发备份区域复位。,-34-,复位和启动配置-STM32F107的启动配置,在STM32F107里可以通过BOOT1:0引脚选择三种不同启动模式。,-35-,复位和启动配置-STM32F107的启动配置,内嵌的自举程序 内嵌的自举程序存放在系统存储区,可以作为程序引导或其他特殊用途。由ST在生产线上写入,用于通过

13、可用的串行接口对闪存存储器进行重新编程。,-36-,时钟,STM32F107共有五个时钟源,分别为HSI、LSI、HSE、LSE和PLL。它们用来给核心以及外设提供运行的“步调”,以及协调互相运行的“步伐”。,-37-,时钟-时钟概述,按照速度分为高速和低速 高速时钟共有三个,分别为:HSE(高速外部)振荡器时钟 HSI(高速内部)振荡器时钟 PLL(锁相环倍频)时钟 低速时钟共有两个,分别为:40kHz低速内部RC(LSI RC)振荡器 32.768kHz低速外部晶体(LSE晶体),-38-,时钟-时钟概述,按照位置分为外部和内部内部时钟源共有三个,分别为:HSI(高速内部)振荡器时钟 40

14、kHz低速内部RC(LSI RC)振荡器 PLL(锁相环倍频)时钟 芯片外部的时钟源有两个,分别为:HSE(高速外部)振荡器时钟32.768kHz低速外部晶体(LSE晶体),-39-,时钟-时钟概述,-40-,时钟-系统时钟(SYSCLK),系统时钟作为整个系统的时间基准,有重要的作用,其特点如下:选择系统复位后,HSI振荡器被选为系统时钟。只有当目标时钟源准备就绪了,从允许一个时钟源到另一个时钟源的切换。在时钟控制寄存器(RCC_CR)里的状态位指示哪个时钟已经准备好了,哪个时钟目前被用作系统时钟。,-41-,时钟-RTC时钟,通过设置备份域控制寄存器(RCC_BDCR)里的,RTCCLK时

15、钟源可以由HSE/128、LSE或LSI时钟提供。除非备份域复位,此选择不能被改变。,-42-,时钟-时钟输出,微控制器允许输出时钟信号到外部MCO引脚。相应的GPIO端口寄存器必须被配置为相应功能。以下8个时钟信号可被选作MCO时钟:SYSCLK HSI HSE 除2的PLL时钟 PLL2时钟 PLL3时钟除以2 XT1外部325MHz振荡器(用于以太网)PLL3时钟(用于以太网),-43-,小结,STM32F107是一个ARM单片机,内嵌有一个Cortex-M3处理器作为核心。CM3的三条总线通过总线矩阵与STM32F107主要部件及外设相连CM3支持4GB的存储空间,用来映射程序存储器、

16、数据存储器、寄存器和输入输出端口 CM3的存储器系统支持位带(bit-band)操作,通过它可以对单一比特进行读写操作。在CM3中,共有两个区域可以实现位带 CM3处理器拥有R0-R15的通用寄存器组和一些特殊功能寄存器。特殊功能寄存器由于定义的功能,而且必须通过专用的指令来访问 CM3使用的是“向下生长”的堆栈模型,即堆栈指针SP指向最后一个被压入堆栈的32位数值,-44-,小结,STM32F107的工作电压(VDD)为2.03.6V,通过内置的电压调节器提供所需的1.8V电源 在CM3中,在0地址处提供MSP的初始值,然后紧跟着就是向量表,向量表中的数值是32位的地址,而不是跳转指令。向量表的第一个条目指向复位后应执行的第一条指令 在STM32F107内部有三种不同的时钟源可被用来驱动系统时钟(SYSCLK):HSI振荡器时钟、HSE振荡器时钟和PLL时钟,-45-,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号