http://blog.163.com/dsp_lnint/blog/static/1031674342013616504320/
ARM公司于2006年推出了Cortex-M3微处理器核,ARM公司中国总裁谭军博士介绍,如果按ARM公司原来的ARM7,ARM9,ARM11等方式来命名,这款芯片的名称应该为ARM12,但是ARM已经决定用Cortex系列来命名,最新推出的第一款产品是Cortex-M3,针对微控制器(MCU)领域。Cortex-M3采用的V7指令集,它的速度比ARM7快三分之一,功耗低四分之三,并且能实现更小芯片面积,利于将更多功能整合在更小的芯片尺寸中。
Cortex-M3是一个32位的核,在传统的单片机领域中,有一些不同于通用32位CPU应用的要求。谭军举例说,在工控领域,用户要求具有更快的中断速度,Cortex-M3采用了Tail-Chaining中断技术,完全基于硬件进行中断处理,最多可减少12个时钟周期数,在实际应用中可减少70%中断。
单片机的另外一个特点是调试工具非常便宜,不象ARM的仿真器动辄几千上万。针对这个特点,Cortex-M3采用了新型的单线调试(Single Wire)技术,专门拿出一个引脚来做调试,从而节约了大笔的调试工具费用。同时,Cortex-M3中还集成了大部分存储器控制器,这样工程师可以直接在MCU外连接Flash,降低了设计难度和应用障碍。
ARM Cortex-M3处理器结合了多种突破性技术,令芯片供应商提供超低费用的芯片,仅33000门的内核性能可达1.2DMIPS/MHz。该处理器还集成了许多紧耦合系统外设,令系统能满足下一代产品的控制需求。ARM公司希望Cortex-M3核的推出,能帮助单片机厂商实现由8位(16位)向32位微处理器的快速移值。
ARM Cortex-M3处理器简介
基于ARM嵌入式处理器的片上系统解决方案可应用于企业应用、汽车系统,家庭网络和无线技术等市场领域。ARM Cortex-M3系列提供了一个标准的体系结构来满足以上各种技术的不同性能要求,其包含的处理器基于ARMv7架构的三个分工明确的部分。A部分面向复杂的尖端应用程序,用于运行开放式的复杂操作系统;R部分针对实时系统;M部分为成本控制和微控制器应用提供优化。Cortex-M3是首款基于ARMv7-M架构的处理器,是专门为了在微控制器,汽车车身系统,工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域实现高系统性能而设计的,它大大简化了可编程的复杂性,使ARM架构成为各种应用方案(即使是最简单的方案)的上佳选择。
ARM Cortex-M3处理器的四大系列:TI(Luminary Micro)的 Stellaris系列,ST的STM32系列,NXP 的LPC1000系列以及最新的Atmel SAM3U系列,现在用的最多最成熟的是STM32系列,应用资料也是最多的。
于 2004 年引进、最近通过新技术进行了更新并更新了可配置性的 Cortex-M3,是专门针对微控制器应用开发的主流 ARM 处理器。
具有高性能和低动态能耗,Cortex-M3 处理器提供领先的功效:在 90nmG 基础上为 12.5 DMIPS/mW。将集成的睡眠模式与可选的状态保留功能相结合,Cortex-M3 处理器确保对于同时需要低能耗和出色性能的应用不存在折衷。
该处理器执行 Thumb?-2 指令集以获得最佳性能和代码大小,包括硬件除法、单周期乘法和位字段操作。Cortex-M3 NVIC 在设计时是高度可配置的,最多可提供 240 个具有单独优先级、动态重设优先级功能和集成系统时钟的系统中断。
功能和性能的组合使基于 Cortex-M3 的设备可以有效处理多个 I/O 通道和协议标准,如 USB OTG (On-The-Go)。
Cortex-M3内核
Cortex‐M3 是一个 32 位处理器内核。内部的数据路径是 32 位的,寄存器是 32 位的,存储器接口也是 32 位的。CM3 采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。这样一来数据访问不再占用指令总线,从而提升了性能。为实现这个特性, CM3 内部含有好几条总线接口,每条都为自己的应用场合优化过,并且它们可以并行工作。但是另一方面,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统)。换句话说,不是因为有两条总线,可寻址空间就变成 8GB了。比较复杂的应用可能需要更多的存储系统功能,为此 CM3 提供一个可选的 MPU,而且在需要的情况下也可以使用外部的 cache。另外在 CM3中,Both 小端模式和大端模式都是支持的。
CM3 内部还附赠了好多调试组件,用于在硬件水平上支持调试操作,如指令断点,数据观察点
等。另外,为支持更高级的调试,还有其它可选组件,包括指令跟踪和多种类型的调试接口。
Cortex‐M3 处理器拥有 R0‐R15 的寄存器组。其中 R13 作为堆栈指针 SP。SP 有两个,但在同一刻只能有一个可以看到,这也就是所谓的“banked”寄存器。
Cortex‐M3 在内核水平上搭载了一颗中断控制器——嵌套向量中断控制器 NVIC(Nested Vectored Interrupt Controller)。
z 可嵌套中断支持
z 向量中断支持
z 动态优先级调整支持
z 中断延迟大大缩短
z 中断可屏蔽
Cortex‐M3 处理器支持两种处理器的操作模式,还支持两级特权操作。
两种操作模式分别为:处理者模式(handler mode)和线程模
式(thread mode)。引入两个模式的本意,是用于区别普通应用程序的代码和异常服务例程的代码——包括中断服务例程的代码。
Cortex‐M3 的另一个侧面则是特权的分级——特权级和用户级。这可以提供一种存储器访问的
保护机制,使得普通的用户程序代码不能意外地,甚至是恶意地执行涉及到要害的操作。处理器支
持两种特权级,这也是一个基本的安全模型。
Cortex-M3 功能
体系结构 | ARMv7-M(哈佛) |
ISA 支持 | Thumb? / Thumb-2 |
管道 | 3 阶段 + 分支预测 |
Dhrystone | 1.25 DMIPS/MHz |
内存保护 | 带有子区域和后台区域的可选 8 区域 MPU |
中断 | 不可屏蔽的中断 (NMI) + 1 到 240 个物理中断 |
中断延迟 | 12 个周期 |
中断间延迟 | 6 个周期 |
中断优先级 | 8 到 256 个优先级 |
唤醒中断控制器 | 最多 240 个唤醒中断 |
睡眠模式 | 集成的 WFI 和 WFE 指令和“退出时睡眠”功能。 睡眠和深度睡眠信号。 随 ARM 电源管理工具包提供的可选保留模式 |
位操作 | 集成的指令和位段 |
增强的指令 | 硬件除法(2-12 个周期)和单周期 (32x32) 乘法。 |
调试 | 可选 JTAG 和串行线调试端口。最多 8 个断点和 4 个检测点。 |
跟踪 | 可选指令跟踪 (ETM)、数据跟踪 (DWT) 和测量跟踪 (ITM) |
每个 Cortex-M 系列处理器都有特定的优点,但全部都受一些基本技术的支持,这些技术使Cortex-M 处理器能够胜任多种嵌入式应用。
RISC 处理器内核 | Thumb-2? 技术 |
---|---|
|
|
低能耗模式 | 嵌套矢量中断控制器 (NVIC) |
|
|
工具和 RTOS 支持 | CoreSight 调试和跟踪 |
|
|
ARM Cortex 微控制器软件接口标准 (CMSIS) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。使用 CMSIS,可以为接口外设、实时操作系统和中间件实现一致且简单的处理器软件接口,从而简化软件的重用。借助于 CMSIS,可以缩短新微控制器开发人员的学习过程,从而缩短新产品的上市时间。
NVIC 是 Cortex-M 处理器不可或缺的部分,它为处理器提供了卓越的中断处理能力。
Cortex-M 处理器使用一个矢量表,其中包含要为特定中断处理程序执行的函数的地址。接受中断时,处理器会从该矢量表中提取地址。
为了减少门数并增强系统灵活性,Cortex-M 处理器使用一个基于堆栈的异常模型。出现异常时,系统会将关键通用寄存器推送到堆栈上。完成入栈和指令提取后,将执行中断服务例程或故障处理程序,然后自动还原寄存器以使中断的程序恢复正常执行。使用此方法,便无需编写汇编器包装器了(而这是对基于 C 语言的传统中断服务例程执行堆栈操作所必需的),从而使得应用程序的开发变得非常容易。NVIC 支持中断嵌套(入栈),从而允许通过运用较高的优先级来较早地为某个中断提供服务。
Cortex-M 系列处理器的中断响应是从发出中断信号到执行中断服务例程的周期数。它包括:
这些任务在硬件中执行,并且包含在为 Cortex-M 处理器报出的中断响应周期时间中。在其他许多体系结构中,这些任务必须在软件的中断处理程序中执行,从而引起延迟并使得过程十分复杂。
在背对背中断的情况下,传统系统会重复完整的状态保存和还原周期两次,从而导致更高的延迟。Cortex-M 处理器通过在 NVIC 硬件中实现尾链技术简化了活动中断和挂起的中断之间的转换。处理器状态会在比软件实现时间更少的周期内自动保存在中断条目上并在中断退出时还原,从而显著提升低 MHz 系统的性能。
如果在为上一个中断执行堆栈推送期间较高优先级的中断迟到,NVIC 会立即提取新的矢量地址来为挂起的中断提供服务,如上所示。Cortex-M NVIC 对这些可能性提供具有确定性的响应并支持迟到和抢占。
同样,如果异常到达,NVIC 将放弃堆栈弹出并立即为新的中断提供服务,如上所示。通过抢占并切换到第二个中断而不完成状态还原和保存,NVIC 以具有确定性的方式实现了缩短延迟。