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核的推出,能帮助单片机厂商实.
Cortex的优势应该在于低功耗、低成本、高性能3者(或2者)的结合。
Cortex如果能做到 合理的低功耗(肯定要比Arm7 & Arm9要低,但不大可能比430、PIC、AVR低) + 合理的高性能(10~50MIPS是比较可能出现的范围) + 适当的低成本(1~5$应该不会奇怪)。
简单的低成本不大可能比典型的8位MCU低。对于已经有8位MCU的厂商来说,比如Philips、Atmel、Freescale、Microchip还有ST和Silocon Lab,不大可能用Cortex来打自己的8位MCU。对于没有8位MCU的厂商来说,当然是另外一回事,但他们在国内进行推广的实力在短期内还不够。
对于已经有32位ARM的厂商来说,比如Philips、Atmel、ST,又不大可能用Cortex来打自己的Arm7/9,对他们来说,比较合理的定位把Cortex与Arm7/9错开,即<40MIPS的性能+低于Arm7的价格,当然功耗也会更低些;当然这样做的结果很可能是,断了16位MCU的后路。
对于仍然在推广16位MCU的厂商来说,比如Freescal、Microchip,处境比较尴尬,因为Cortex基本上可以完全替代16位MCU。
所以,未来的1~2年,来自新厂商的Cortex比较值得期待-包括国内的供应商;对于已有32位ARM的厂商,情况比较有趣;对于16位MCU的厂商,反应比较有意思。
关于编程模式
Cortex-M3处理器采用ARMv7-M架构,它包括所有的16位Thumb指令集和基本的32位Thumb-2指令集架构,Cortex-M3处理器不能执行ARM指令集。
Thumb-2在Thumb指令集架构(ISA)上进行了大量的改进,它与Thumb相比,具有更高的代码密度并提供16/32位指令的更高性能。
关于工作模式
Cortex-M3处理器支持2种工作模式:线程模式和处理模式。在复位时处理器进入“线程模式”,异常返回时也会进入该模式,特权和用户(非特权)模式代码能够在“线程模式”下运行。
出现异常模式时处理器进入“处理模式”,在处理模式下,所有代码都是特权访问的。
关于工作状态
Coretx-M3处理器有2种工作状态。
Thumb状态:这是16位和32位“半字对齐”的Thumb和Thumb-2指令的执行状态。
调试状态:处理器停止并进行调试,进入该状态。
开发工具
Keil ULINK仿真器
http://www.luminarymicro.com/home/home.html
对客户来说用什么技术、芯片不是主要的。主要的是能否满足要求。高性价比、开发门槛底、易于使用才是硬道理。Cortex M3从理论上来说是高性价比。但目前已有的芯片的功能太少。Cortex M系列在处理能力基本与ARM7同,主要是成本低,功耗小。如果周立功自己来做加上丰富的外设,如UART/USB/MAC以及无线通讯等功能,加上FLASH、RAM这样的SOC可以替换现在的许多应用,但这样的话不知道什么时候可以看到成品。内核是好,外设也是很重要的。
LM3S101 (Cortex M控制器简介)
LM3S101 是一个高性能的ARM® Cortex™-M3 v7M架构的微控制器,适用于成本敏感的应用。它支持完全兼容Thumb的Thumb-2-only指令集,具有硬件除法和单周期的乘法器。集成的嵌套式的中断控制器(NVIC)提供确定性的中断处理。目标应包括:工厂自动化及控制,工业控制动力设备,以及楼宇家庭自动化。
产品特性
32位ARM® Cortex™-M3 v7M架构
Thumb兼容的Thumb-2-only指令集
20 MHz下工作
硬件除法和单周期的乘法器
集成的嵌套式的中断控制器(NVIC)提供确定性的中断处理
8级优先级的14个中断通道
8 kB 的单周期flash存储器,在2 kB块的基础上提供2种形式的flash保护。
2 kB 的单周期SRAM存储器
2个定时器
每个可被配置为一个32位的定时器或两个16位的定时器
一个支持捕捉和简单的PWM模式
实时时钟(RTC)
独立的看门狗定时器
可编程的接口支持:Freescale SPI总线, National Semiconductor MICROWIRE总线, Texas Instruments
synchronous serial 总线
完全可编程的16C550-型 UART
两个独立的模拟比较器
可配置为输出来驱动一个输出引脚,或产生一个中断
可在外部输入引脚或外部输入引脚和内部参考电压之间比较
2到18个GPIO 这取决于用户的配置
在所有的引脚上具有可编程的GPIO中断,可以由沿触发或电平触发
可编程的GPIO 衬垫配置:
弱上拉或下拉电阻
2 mA, 4 mA, and 8 mA 衬垫驱动
8 mA驱动斜率控制
开漏使能
数字输入使能
片内LDO电压调整器
处理器低功率选项:睡眠模式和深度睡眠模式
外设低功率选项:软件控制关闭个别外设
用户使能的LDO 未调整电压检测和自动复位
通过中断或复位方式检测并报告3.3 V 电源电压下降
IEEE 1149.1-1990 兼容的TAP控制器
经过 JTAG 或串行线调试
28脚SOIC
商业或工业级工作温度
LM3S316 比 LM3S101 的增强如下:
25 MHz下工作
8级优先级的24个中断通道
16 kB 的单周期flash存储器,在2 kB块的基础上提供2种形式的flash保护。
4 kB 的单周期SRAM存储器
4 通道 10-bit ADC 250K采样/秒
片内温度传感器
4个专用的电机控制PWM 输出
I2C 主从收发 传输速度100 kbps标准模式 400 kbps高速模式
3到32个GPIO 这取决于用户的配置
48脚SOIC
Cortex M控制器选型指南
型号LM3S101LM3S102LM3S301M3S310LM3S315LM3S316
封装28-pinSOIC 28-pinSOIC 48-pinLQFP 48-pinLQFP 48-pinLQFP 48-pinLQFP
工作温度C,IC,IC,IC,IC,IC,I
(商业级C 0 to 70°C;
工业级I –40 to 85°C)
ARM Cortex-M3 Core√√√√√√
最大速度(MHz)202020252525
Flash存储器(KB)8816161616
SRAM 存储器(KB)222444
JTAG 引脚√√√√√√
串行调试与跟踪(SWD/SWO)√√√√√√
UART口111222
通用io(GPIO)2–180–1812–333–367–323–32
SSI接口√√√√√√
I2C接口-√---√
模拟比较器212311
片内温度传感器--√-√√
外部 32 KHz 时钟√√√√√√
(使用 CCP 引脚)
看门狗定时器√√√√√√
通用定时器222333
(1个可作为RTC)
掉电复位√√√√√√
LDO 电压调整器√√√√√√
ADC
采样每秒--250K-250K250K
10-Bit 通道数--3-44
PWM 功能
PWM 引脚--2624
CCP 引脚122666
注:
a. 最小GPIO引脚数是指专门用作GPIO的引脚,如果不使用某些外设那么就有更多的引脚可用作GPIO。详细细节请参考数据手册。
b. PWM 电机控制功能可以通过专用的电机控制硬件(PWM 引脚 )获得,也可以通过通用定时器(CCP 引脚 )的电机控制特性获得。详细细节请参考数据手册。