《单片机原理及应用:第13章 Cortex-M3处理器》由会员分享,可在线阅读,更多相关《单片机原理及应用:第13章 Cortex-M3处理器(30页珍藏版)》请在金锄头文库上搜索。
1、第第1313章章 Cortex-M3Cortex-M3处理器处理器 13.1 Cortex-M3处理器基本结构 Cortex-M3中央内核基于哈佛架构,指令和数据各使用一条总线(图 2-1)。与Cortex-M3不同,ARM7系列处理器使用冯诺依曼架构,指令和数据共用信号总线以及存储器。由于指令和数据可以从存储器中同时读取,所以Cortex-M3处理器对多个操作并行执行,加快了应用程序的执行速度。图图 2-1 Cortex-M32-1 Cortex-M3处理器架构处理器架构Cortex-M3 处理器o集成了内核和高级系统外设的分级处理器 oCortex-M3 内核n哈佛体系结构n拥有分支预测功
2、能的三级流水线 nThumb-2 指令集和传统的 Thumb指令集n带有 硬件除法和 单信号周期乘法的ALUoCortex-M3 处理器nCortex-M3 内核n可配置的中断控制器 n总线矩阵n先进的调试组件 n可选择的 MPU & ETMCortex-M3的应用,主要包括:p价格敏感的设备通用MCU、智能玩具、个人电子设备小的核可以降低硅片面积紧密结合系统外设可缩小面积、降低开发成本Thumb-2代码可减小指令存储器达30%SWD允许使用较小的引脚数和封装在ISR、Boot代码中无需汇编代码单周期的Read/Modify/Write,更紧凑的数据打包确定的中断处理系统更新时的修补能力(RO
3、M到Flash、SRAM)低功耗设备Zigbee、PAN(BlueTooth)、医疗电子设备低功耗内核:0.047mW/MHz(0.13um,ARM Metro Lab,50MHz)高级时钟选通技术降低功耗集成的睡眠模式系统部件的功耗控制高效率允许较低的时钟源快速完成任务、增加睡眠时间,降低总的功耗高性能设备超低价格手机、汽车应用、大容量存储设备;性能可达1.25 DMIPS/MHz执行Thumb指令时,比ARM7处理器性能高70%执行ARM指令时,比ARM7处理器性能高35%硬件除法更好的算法实现快速中断处理可选的MPU针对特定应用调试与跟踪能力Cortex M3Cortex M3处理器结构
4、框透视图处理器结构框透视图13.2 基于Cortex-M3Cortex-M3的最小系统什么是最小系统? 在尽可能减少上层应用的情况下,能够使系统运行的最小化模块配置。“最小系统”称“嵌入式核心控制模块”更贴切一些。最小系统的组成: 电源、时钟、复位电路、存储系统、调试系统。Cortex-M3MPUFlashSRAMTimerResetJTAGUARTPower基于Cortex-M3Cortex-M3的最小系统时钟模块通常经ARM内部锁相环进行相应的倍频,以提供系统各模块运行所需的时钟频率输入复位模块实现对系统的复位电源系统:调试系统:JTAG模块实现对程序代码的下载和调试UART模块实现对调试
5、信息的终端显示存储系统:Flash存储模块存放启动代码、操作系统和用户应用程序代码SDRAM模块为系统运行提供动态存储空间,是系统代码运行的主要区域UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信。JTAG通常所说的JTAG大致分两类,一类用于测试芯片的电气特性,检测芯片是否有问题;一类用于Debug;一般支持JTAG的CPU内都包含了这两个模块。一个含有JTAG Debug接口模块的CPU,只要时钟正常,就可以通过J
6、TAG接口访问CPU的内部寄存器和挂在CPU总线上的设备,如FLASH,RAM,SOC(比如4510B,44Box,AT91M系列)内置模块的寄存器,像UART,Timers,GPIO等等的寄存器。JTAG的接口是一种特殊的4/5个接脚接口连到芯片上 ,所以在电路版上的很多芯片可以将他们的JTAG接脚通过Daisy Chain的方式连在一起,并且Probe只需连接到一个“JTAG端口”就可以访问一块电路板上的所有IC。这些连接引脚是:TDI(测试数据输入)TDO(测试数据输出)TCK(测试时钟)TMS(测试模式选择)TRST(测试复位)可选。基于Cortex-M3的STM32F10x最小系统电
7、源及控制、复位电路Cortex-M3主要指标:0.19W/MHz,1.25DMIPS/MHz;若达到5DMIPS的性能:Cortex-M3工作频率只需4MHz,功耗0.76W;51单片机,工作频率需60MHz,功耗30W;STM32F103处理器系统频率为72MHz,处理器性能可达到90DMIPS,此时Cortex-M3功耗约14W左右。在性能和功耗上达到了很高的水平!V VDDA/DDA/VSSAVSSA独立电源独立电源/ /地地2.0至至3.6V:为:为ADC、复、复位、位、RC振荡器和振荡器和PLL的的模拟部分供电。使用模拟部分供电。使用ADC时,时,VDD不得小于不得小于2.4V。VR
8、EF+的电压范围的电压范围2.4V-VDDA, VREF-引脚若引脚若有必须连接到有必须连接到VSSA。V VDDDD:主电源:主电源/ /工作电压工作电压 V VSSSS:地:地2.0至至3.6V:通过内置调:通过内置调压器提供压器提供1.8V的电源,的电源,供内核使用、供内核使用、3.3V供供I/O管脚。管脚。V VBATBAT:后备后备电池供电电池供电电源及控制、复位电路STM32内部集成了上电复位POR(Power On Reset)/掉电复位PDR (Power Down Reset)电路,该电路始终处于工作状态,保证系统在供电超过2V时工作;当VDD低于设定的阀值(VPOR/VPD
9、R)时,置器件于复位状态,而不必使用外部复位电路。约约2.5ms电源及控制、复位电路在VDD电压由低向高上升越过规定的阀值VPOR之前,保持芯片复位,当越过这个阀值后tRSTTEMPO秒(待电源可靠供电),才开始取复位向量,并执行指令。在VDD电压由高向低下降越过规定的阀值VPDR后,将在芯片内部产生复位可编程电压监测器PVD可编程电压监测器PVD (Programmable Voltage Detector),监视VDD供电并与阀值VPVD比较,当VDD低于或高于阀值VPVD时将根据外部中断第16线的上升/下降边沿触发设置,产生PVD中断。 中断处理程序可以发出警告信息或将微控制器转入安全模
10、式,但需要通过程序开启PVD。 电源控制/状态寄存器(PWR_CSR)中的PVOD标志位用来表明VDD是否低于或高于阀值VPVD 。 系统复位系统复位将清除时钟控制器CSR中的复位标志和备用域寄存器之外的所有寄存器。下列事件都将引起复位:NRST: 外部异步复位引脚看门狗计时器计时终止(WWDG复位) 独立看门狗计数终止(IWDG复位) 软件复位(SW复位) 低功耗管理复位。 三种低功耗模式休(睡)眠模式: 只有CPU停止工作,所有外设继续运行,在中断/事件发生时唤醒CPU。 调压器1.8V区供电工作。停止(机)模式: 允许以最小的功耗来保持SRAM和寄存器的内容。 1.8V区域的时钟都停止其
11、他部分工作,PLL,HSI和HSE的 RC振荡器被禁能。 当外部中断源(16个外部中断线之一)、PVD输出、RTC闹钟、或者USB唤醒信号,退出停止模式。 三种低功耗模式待机模式: 追求最少的功耗,内部调压器被关闭,这样1.8V区域断电。 除了备份寄存器和待机电路,SRAM和寄存器的内容也会丢失。RTC,IWDG和相关的时钟源不会停止。 当外部复位(NRST引脚)、IWDG复位、WKUP引脚出现上升沿或者RTC闹钟时间到时,退出待机模式。 51单片机低功耗方式:待机和掉电STM32的时钟系统 STM32芯片为了实现低功耗,设计了一个功能完善但却非常复杂的时钟系统。一个步骤,就是开启外设时钟。下
12、图说明了STM32的时钟走向,从图的左边开始,从时钟源一步步分配到外设时钟。高速时钟是提供给芯片主体的主时钟,低速时钟只是提供给芯片中的RTC(实时时钟)及独立看门狗使用。内部时钟是在芯片内部RC振荡器产生的,起振较快,芯片刚上电的时候使用内部高速时钟。外部时钟信号是由外部的晶振输入的,精度和稳定性好,上电之后通过软件配置再转用外部时钟信号。 STM32的时钟系统STM32的4个时钟源:高速外部时钟(HSE):外部晶振时钟源,晶振频率416MHz,一般用8MHz的晶振。 高速内部时钟(HSI):内部RC振荡器产生,频率为8MHz,但不稳定。 低速外部时钟(LSE):外部晶振作时钟源,主要提供给
13、实时时钟模块,一般采用32.768KHz。低速内部时钟(LSI):内部RC振荡器产生,也主要提供给实时时钟模块,频率大约为40KHz。STM32的时钟系统以最常用的高速外部时钟为例:从左端的OSC_OUT和OSC_IN开始,这两个引脚分别接到外部晶振8MHz;遇到第一个分频器PLLXTPRE,没二分频,继续8MHz;遇到选择外部HSE还是内部HSI时钟开关PLLSRC,选HSE;遇到可倍频的锁相环PLL,倍频因子PLLMUL选为9倍,则得到72MHz的PLLCLK时钟;又经过了一个开关SW之后就是STM32的系统时钟SYSCLK了;经过各种预分频器得到各种外设的时钟源:如USBCLK、HCLK、FCLK、SDIOCLK等等时钟。STM32的时钟系统每个外设都配备了外设时钟的开关,当我们不使用某个外设时,可以把这个外设时钟关闭,从而降低STM32的整体功耗。当使用某个外设时,一定要记得开启外设的时钟。配套的实验指导书和实验最小系统开发与评估板ThanksThanks!