STM32F4体系结构课件_第1页
STM32F4体系结构课件_第2页
STM32F4体系结构课件_第3页
STM32F4体系结构课件_第4页
STM32F4体系结构课件_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1讲STM32F4体系结构,1.1嵌入式系统的概念1.2ARM处理器概述1.3STM32F4的总线架构1.4嵌入式C语言程序设计1.5STM32F4的时钟系统,电子计算机诞生于1946年。20世纪70年代出现了微处理器,计算机才出现了历史性的变化。以微处理器为核心的微型计算机以其型小、价廉、高可靠性特点迅速走出机房。基于高速数值解算能力的微型机,表现出的智能化水平引起了控制专业人士的兴趣,要求将微型机嵌入到一个对象体系中,实现对象体系的智能化控制。微型机经电气加固、机械加固,并配置各种外围接口电路,安装到大型舰船中构成自动驾驶仪或轮机状态监控系统。计算机便失去了原来的形态和通用的计算机功能。,1.1嵌入式系统的概念,为区别于原有的通用计算机系统,把嵌入到对象体系中,实现对象体系智能化控制的计算机,称为嵌入式计算机系统。通用计算机具有计算机的标准形态,通过安装不同的应用软件,以类同面目出现并应用于社会生活的各个方面;而嵌入式计算机则以嵌入式系统的形式隐藏在各种装置、产品和系统中。IEEE的定义:用于控制、监视或者辅助设备、机器和车间运行的装置(Deviceusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants),1.1嵌入式系统的概念,嵌入性本质是将计算机嵌入到一个对象体系中,目前国内普遍认同的嵌入式系统(EmbeddedSystem)定义:以应用为中心,以计算机技术为基础、软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统是将先进的计算机技术、半导体技术、电子技术和各行各业的具体应用相结合的产物。嵌入式系统是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。,1.1嵌入式系统的概念,嵌入式系统的组成,嵌入式系统的硬件嵌入式最小系统(嵌入式处理器、存储模块、复位模块、电源模块、调试模块)输入通道、输出通道、人机交互通道、通信互连通道嵌入式系统的软件设备驱动层程序(硬件抽象层HAL、板级支持包BSP、设备驱动程序)嵌入式操作系统()应用程序接口(API)实际用户应用程序,嵌入式系统的设计方法,嵌入式系统设计有别于桌面软件设计的一个显著特点:需要一个交叉编译和调试环境;源代码的编译工作在宿主机上进行,编译好后需要下载到目标机上运行宿主机和目标机通过串口、并口、网口或USB口建立起通信连接,并传输调试命令和数据嵌入式系统设计的基本原则:“物尽其用”硬件和软件都必须高效率设计,量体裁衣、去除冗余,面临的问题:嵌入式微处理器及操作系统的选择开发工具的选择对目标系统的观察与控制设计步骤:需求分析(功能性需求和非功能性需求)、体系结构设计(系统整体结构的一个规划和描述)嵌入式硬软件及执行机构设计(详细设计)嵌入式系统集成嵌入式系统测试,嵌入式系统的发展,以8位/16位单片机为核心的初级嵌入式系统以32位嵌入式微控制器为基础的中级嵌入式系统以嵌入式操作系统为标志的中高级嵌入式系统以Internet为标志的高级嵌入式系统,ARM(AdvancedRISCMachines)具有多种含义,既是一个公司的名字,也可以代表一类嵌入式处理器,还可以代表一种技术。目前,采用ARM技术知识产权核(IP核)的微处理器,即通常所说的ARM处理器,已遍及通信系统、网络系统、无线系统、消费类电子产品、工业控制等各类产品市场,基于ARM技术的微处理器应用约占32位RISC处理器80%以上的市场份额。手机处理器90%、平板电脑70%,1.2ARM处理器概述,1990年ARM公司在英国剑桥成立。ARM是专门从事基于RISC技术芯片技术开发的公司,是IP(知识产权)供应商,本身不生产芯片,由合作公司生产各具特色的芯片。世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全球有几十家大的半导体公司都使用ARM公司的授权。ARM处理器已经占据了绝大部分32位、64位高端嵌入式处理器的市场,形成了移动通信、手持计算、多媒体数字消费等嵌入式解决方案事实上的标准。,1.2ARM处理器概述,ARM体系结构的演变,1991年开始共推出7个版本,V1V3未用于商业授权,V4T开始商业授权,T表示16位Thumb指令,ARM7TDMI,冯诺依曼结构,三级流水线,0.9MIPS/MHz,V5增强ARM和Thumb指令切换的支持,增加了DSP指令支持(后缀E)、Java支持(后缀J),V6版增强DSP和多媒体处理指令,增加SIMD指令扩展,对音、视频处理性能有极大提升,Thumb-2指令,2004年发布V7版,ARM首次为其体系结构命名,命名为Cortex,分为A(应用)、R(实时)、M(微控制器)三个系列,版本与型号区别,冯诺依曼结构VS哈弗结构,冯诺依曼结构,哈弗结构,CISC(ComplexInstructionSetComputer)指令系统庞大(数量、寻址)、指令功能复杂、指令变长(解码困难)、控制部分占芯片面积大RISC(ReducedInstructionSetComputer)指令系统简单(数量、寻址)、指令功能简单(多数单周期可执行,可提高主频)、指令定长(解码快)、大量通用寄存器组、Load/Store结构、流水线技术,RISC技术,CISC与RISC,编译器,处理器(复杂度高),编译器(复杂度高),处理器,CISC,RISC,流水线技术,流水线明显比顺序方式效率高,ARM体系的存储空间232B的单一、线性地址空间。地址:0232-1可以看作由230个32位的字组成的地址空间也可以看作由231个16位的半字组成的地址空间ARM体系的存储器格式大端格式(BigEndian)高字节存储在低地址中,低字节则存放在高地址中小端格式(LittleEndian)高字节存储在高地址中,低字节则存放在低地址中,ARM存储器和存储器映像I/O,BigEndianvsLittleEndian,(0H)=0123H(4H)=4567H(8H)=89ABH,BigEndian,(0H)=3210H(4H)=7654H(8H)=BA98H,LittleEndian,ARM体系结构中,I/O操作通常被映射为存储器操作I/O输出操作可以通过存储器写入操作实现I/O输入操作可以通过存储器读取操作实现,ARM存储器映射I/O,与Intel的80 x86不同,ARM公司1996年提出高级微控制器总线结构AMBA(AdvancedMicrocontrollerBusArchitecture),使片上不同宏单元的连接实现标准化。,ARM总线技术,ARM总线标准规定了两种类型总线:先进的系统总线(ASB),用于连接高性能系统模块先进的外围总线(APB),支持低性能外围接口,用于连接系统的周边组件ASB和APB之间通过桥接器相连(ARM7)第二代标准增强了AMBA的性能,定义了两种高性能的总线标准AHB和APB2以及测试方法。(ARM9/ARM10/ARMCortex-M)第三代包括了AXI、ATB、AHB-Lite及APB3四个标准(ARM11/Cortex-R、Cortex-A)第四代在第三代基础上增加了五个接口协议(Cortex-A15)第五代在第四代基础上增加了支持64位处理器的功能(Cortex-A50系列),1.3STM32F4的总线架构,STM32F407ZGT6,基于ARM的32位微控制器,通用类型,T:36PINR:64PINV:100PINQ:132PIN;Z:144PIN;,主系统由32位多层AHB总线矩阵构成,可实现以下部分的互连:八条主控总线:Cortex-M4内核I总线、D总线、S总线;DMA1存储器总线、DMA2存储器总线;DMA2外设总线;以太网DMA总线;USBOTGHSDMA总线。7条被控总线:内部FLASHICode总线;内部FLASHDCode总线;主要内部SRAM1(112KB)辅助内部SRAM2(16KB);辅助内部SRAM3(64KB)(仅适用STM32F42xx和STM32F43xx系列器件);,1.3STM32F4的总线架构,8条主控总线,7条被控总线,八条主控总线:I总线(S0):将Cortex-M4内核的指令总线连接到总线矩阵D总线(S1):将Cortex-M4内核的数据总线连接到总线矩阵S总线(S2):将Cortex-M4内核的系统总线连接到总线矩阵DMA存储器总线(S3,S4)将DMA存储器总线主接口连接到总线矩阵DMA外设总线(S5):将DMA外设主总线接口连接到总线矩阵以太网DMA总线(S6):将以太网DMA主接口连接到总线矩阵USBOTGHSDMA总线(S7):将USBOTGHSDMA主接口连接到总线矩阵。,C语言典型数据类型8位:charint8_tuint8_t16位:shortint16_tuint16_t32位:intint32_tuint32_tlongfloat,1.4嵌入式C语言程序设计,C语言典型运算符算术运算符+、-、*、/、%(余数)、+(自增运算符)、-(自减运算符)关系运算符、=、(右移)、(按位取反)赋值运算=、运算符=(运算后赋值)特殊运算符(数据下标)、.(成员选择对象.成员表)、-(成员选择指针对象指针-成员表)、指针运算符*(取值运算符)*指针变量,typedefstructuint32_tUSART_BaudRate;uint16_tUSART_Wordlength;uint16_tUSART_StopBit;uint16_tUSART_Parity;uint16_tUSART_Mode;uint16_tUSART_HardwareFlowControl;USART_InitTypeDef;,传统的51单片机只需一个系统时钟STM32有一个相当复杂的时钟树STM32本身非常复杂,外设很多,有高速外设,有低速外设时钟越快,功耗越大、抗电磁干扰能力越弱每个外设的时钟都有使能端,外设不用时可将其时钟关闭以节约能耗,1.5STM32F4的时钟系统,复杂的MCU一般都采用多时钟源的方法解决该问题,A,B,C,D,E,G,H,I,F,每个外设时钟都有使能,5个时钟源LSI:低速内部时钟,RC振荡器,频率为32kHz左右。供独立看门狗、RTC、自动唤醒单元使用LSE:低速外部时钟,接频率为32.768kHz的石英晶体。主要是RTC的时钟源HSI:高速内部时钟,RC振荡器,频率为16MHz。可以直接作为系统时钟或者用作PLL输入HSE:高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围4MHz26MHz。开发板接8M晶振。HSE也可以直接做为系统时钟或者PLL输入。,1.4STM32F4的时钟系统,时钟树,5个时钟源PLL:锁相环倍频输出主PLL:由HSE或者HSI提供时钟信号,并具有两个不同的输出时钟。PLLP:生成高速的系统时钟(最高168MHz)PLLQ:生成USBOTGFS的时钟(48MHz)、随机数发生器的时钟和SDIO时钟专用PLL(PLLI2S):生成精确时钟,从而在I2S接口实现高品质音频性能,1.4STM32F4的时钟系统,时钟树,PLL输出频率计算方法输入时钟先M分频再N倍频最后P(或Q)分频开发板:fin=8MHz,设置M=8,N=336,P=2,则fout=8MHz336/(82)=168MHz,1.4STM32F4的时钟系统,时钟树,SYSCLK(系统时钟)=168MHzAHB总线时钟(HCLK=SYSCLK)=168MHzAPB1总线时钟(PCLK1=SYSCLK/4)=42MHzAPB2总线时钟(PCLK2=SYSCLK/2)=84MHzPLL主时钟=168MHz,SystemInit()中设置的系统时钟大小,stm32f4xx_rcc.h、stm32f4xx_rcc.c时钟源使能函数外设时钟使能函数时钟源选择和分频因子配置函数外设复位函数状态参数获取函数RCC中断相关函数,STM32F4时钟使能和配置,实际是读取或配置相关寄存器(略),这里学习相关库函数,voidRCC_HSICmd(FunctionalStateNewState);voidRCC_LSICmd(FunctionalStateNewState);voidRCC_PLLCmd(FunctionalStateNewState);voidRCC_PLLI2SCmd(FunctionalStateNewState);voidRCC_PLLSAICmd(FunctionalStateNewState);voidRCC_RTCCLKCmd(FunctionalStateNewState);例:使能PLL时钟RCC_PLLCmd(ENABLE);,时钟源使能函数,voidRCC_AHB1PeriphClockCmd(uint32_tRCC_AHB1Periph,FunctionalStateNewState);voidRCC_AHB2PeriphClockCmd(uint32_tRCC_AHB2Periph,FunctionalStateNewState);voidRCC_AHB3PeriphClockCmd(uint32_tRCC_AHB3Periph,FunctionalStateNewState);voidRCC_APB1PeriphClockCmd(uint32_tRCC_AHB1Periph,FunctionalStateNewState);voidRCC_APB2PeriphClockCmd(uint32_tRCC_AHB2Periph,FunctionalStateNewState);,外设时钟使能函数,数据手册P17:Figure5.STM32F40 xblockdiagram查固件库函数中的参数宏定义stm32f4xx_rcc.h,如何知道某个外设挂接哪个总线,GPIOA挂在AHB1上,GPIOA挂在哪个总线上?,两个总线桥,TIM6挂在APB1上,定时器6挂在哪个总线上?,方法二:查固件库函数中的参数宏定义例:GPIOA挂在哪个总线上?定时器6挂在哪个总线上?,如何知道某个外设挂接哪个总线,voidRCC_HSEConfig(uint8_tRCC_HSE);voidRCC_LSEConfig(uint8_tRCC_LSE);voidRCC_PLLConfig(uint32_tRCC_PLLSource,uint32_tPLLM,uint32_tPLLN,uint32_tPLLP,uint32_tPLLQ);voidRCC_SYSCLKConfig(uint32_tRCC_SYSCLKSource);voidRCC_HCLKConfig(uint32_tRCC_SYSCLK);voidRCC_PCLK1Config(uint32_tRCC_HCLK);例:设置系统时钟源为HSIRCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);例:设置APB1时钟为HCLK的2分频RCC_PCLK1Config(RCC_HCLK_Div2),时钟源选择和分频因子配置函数,仅列举部分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论