(2)采用Thumb-2指令集,具有更高的效率和性能
Cortex-M3内核采用了传统Thumb指令集的一个超集——Thumb-2指令集,不仅拥有传统32位代码的性能,又具有16位代码的高密度。Thumb-2指令集不需要花时间切换32位ARM状态和16位Thumb状态,进而大大提高了软件开发和代码的文护效率。Thumb-2指令集的出现为编程带来了诸多灵活性,一些数据操作使用短代码,提高了代码的密度。Thumb-2指令集还引入了一个新的If-Then结构,这意着可以有多达4个后续指令进行条件执行。因为有了If-Then指令、位字段处理、硬件除法,Thumb-2指令集架构底层的关键特性使C代码的执行变得更加自然[16]。
(3)先进的中断处理功能
Cortex-M3处理器采用一个可配置的嵌套向量中断控制器(NVIC),可以实现低延迟的中断处理和高效地处理晚到中断。NVIC提供了非屏蔽中断(NMI)和32个通用中断,它们具有8级的抢占优先权。NVIC可以综合配置1~240个物理中断中的任意一个,并且具有256个优先级。此外,通过“尾链中断机制”和“晚到中断机制”来优化中断响应。
(4)总线矩阵和接口的应用
Cortex-M3处理器集成了一个AMBA AHB-Lite总线来连接系统外设,并降低系统集成的复杂性。总线矩阵可以支持非对称的数据访问,使不同的数据类型可以在存储器中紧密地相连,显著降低SRAM的需求和成本。Cortex-M3处理器总线矩阵把处理器和调试接口连接到外部总线。总线矩阵也采用非对齐的数据访问方式和位绑定技术,位绑定技术可完成对位绑定的加载、提取位域、对位绑定存储,总线矩阵有一个写缓冲器,使总线脱离处理内核,因而使得处理器核对片上外围设备的访问速度大幅提高[17]。
(5)调试的支持
Cortex-M3内核实现了一个完整的硬件调试解决方案,包括硬件的调试模块,并支持复杂的调试工作。硬件调试模块允许内核在取指或访问数据时停止。当内核停止后,内核的内部状态和系统的外部状态均可查询。完成查询之后,内核与外设可以还原,程序会继续执行。
(6)低成本、低功耗,易于实现
Cortex-M3处理器采用了先进的制造工艺,芯片的尺寸得到了降低。但使用ARM Metro标准单元库和TSMC 0.13G制造工艺时,处理器在50MHz的目标频率下的功耗仅有4.5mW。Cortex-M3处理器专门针对快速和简单的编程设计,用户无须深厚的架构知识或编写任何汇编代码就可以建立简单的应用程序。此外,应用基于硬件的中断机制意着编写中断服务程序不再重要。在无须汇编代码寄存器操作的情况下,启动代码得到了极大地简化。
2.5 STM32F103系列微控制器
STM32系列微控制器是由ST意法半导体公司基于ARM Cortex-M3为内核而开发生产的32位微控制器(单片机),专门为高性能、低成本、低功耗的嵌入式应用而设计。STM32分为很多不同系列:STM32F101是“基本型”,STM32F102是“USB基本型”,STM32F103是“增强型”,STM32F105或STM32F107是“互联型”,STM32L是“超低功耗型”。
STM32F103xx增强型系列使用高性能的ARM Cortex-M3 32位RISC内核,工作频率达到72MHz,内置高速存储器,拥有丰富的增强型I/O端口和连接到两条高性能外设总线的外设。STM32F103Vx系列都至少包含2个12位的ADC、1个高级定时器、3个通用16位定时器(具备PWM输出功能),还包括标准和先进的通信接口:2个 、2个SPI同步串行接口、3个USART异步串行接口、一个USB全速接口和一个CAN接口。I/O翻转速度可达到18MHz。
图2.2是一个基于ARM Cortex-M3内核的STM32F103xx单片机引脚的定义图,这是一个标准的LQFP封装的芯片。 MATLAB交流伺服系统ARM单片机制软件设计及仿真(4):http://www.751com.cn/jixie/lunwen_2402.html