STM32与通常ARM的区别
经常有人问到STM32和ARM以及ARM7是什么关系这样的问题,其实ARM是一个做芯片标准的公司,它负责的是芯片内核的架构设计,而 ti,ST这样的公司,他们并不做标准,他们是芯片公司,他们是根据ARM公司提供的芯片内核标准设计自己的芯片。所以,任何一个做Cortex-M3芯片,他们的内核结构都是一样的,不同的是他们的存储器容量,片上外设,IO 以及其他模块的区别。 既然大家都使用的是Cortex-M3核,也就是说,本质上大家都是一样的,这样ARM公司
为了能让不同的芯片公司生产的Cortex-M3芯片能在软件上基本兼容,和芯片生产商共同提出
了一套标准CMSIS标准(Cortex Microcontroller Software Interface Standard) ,翻译过来是
“ARM Cortex™ 微控制器软件接口标准”。
ARM是英国的芯片设计公司,其最成功的莫过于32位嵌入式CPU核----ARM系列,最常用的是ARM7和ARM9,ARM公司主要提供IP核,就是CPU的内核结构,只包括最核心的部分,并不是完整的处理器. ARM把这个核卖给各大半导体公司,如 Pllips 三星 ,ATMEL 等等,许多公司,甚至Intel.
ARM为了对付 8位机市场,最近推出了 Cortex-M3核,STM32就是意大利的意法半导体基于Cortex-M3的32位嵌入式处理器, Cortex_M3核性价比更高,价格低,可以与8位单片机竞争
ARM Cortex-M3 处理器初探
单片机市场的规模可以用“巨无霸”来形容,预计到2010时每年能有20G片的出货量。世界各地的器件供应商纷纷亮出自己的得意之作,他们提供的器件和架构也是各具特色。业界内部可谓是百花齐放,热闹非凡,好戏不断。各行各业对单片机能力的要求也一直“得寸进尺”,而且还又要马儿跑,又要马儿不吃草——处理器必须在不怎么增加主频和功耗的条件下干更多的活儿。另一方面, 处理器之间的互连也在加深, 看这一串串熟悉的字眼:串口,USB,以太网,无线数传……处理器如欲支持这些数据通道,就必须在片上塞进更多的外设。软件方面的情况也如出一辙:应用程序的功能一直在花样翻新,性能需求也是变本加厉:更高的运算速度,更硬的实时能力,更多的功能模块,更炫的图形界面,……所有这些要求单片机都得照单全收。在这个大环境下,ARM Cortex‐M3处理器,作为Cortex系列的处女作,为了让32位处理器入主作庄单片机市场,轰轰烈烈地诞生了!由于采用了最新的设计技术,它的门数更低,性能却更强。许多曾经只能求助于高级32位处理器或DSP的软件设计,都能在CM3上跑得很快很欢。相信用不了多久,CM3就一定能在32位嵌入式处理器市场中脱颖而出,像当年8051推动整个业界那样,再次放飞设计师的梦想,实现多年的夙愿!
CM3的招牌功夫包括:
• 性能强劲。在相同的主频下能做处理更多的任务,全力支持劲爆的程序设计。
• 功耗低。延长了电池的寿命——这简直就是便携式设备的命门(如无线网络应用)。
• 实时性好。采用了很前卫甚至革命性的设计理念,使它能极速地响应中断,而且响应
中断所需的周期数是确定的。
• 代码密度得到很大改善。一方面力挺大型应用程序,另一方面为低成本设计而省吃俭
用。
• 使用更方便。现在从8位/16位处理器转到32位处理器之风刮得越来越猛,更简单的编
程模型和更透彻的调试系统,为与时俱进的人们大大减负。
• 低成本的整体解决方案。让32位系统比和8位/16位的还便宜,低端的Cortex‐M3单片机甚至还卖不到1美元。
• 遍地开花的优秀开发工具。免费的,便宜的,全能的,要什么有什么。
降低成本还有一招,就是使基础代码在所有系统中都可以重用,至少要方便移植。CM
的内核架构非常精工细作,使它与C语言成为了一个梦幻绝配。优质的C程序代码三下五除二就可以移植并重用,使升级和移植一下子从拦路虎变成了纸老虎。
值得一提的是,CM3并不是第一个被拿去做万金油型处理器的内核。那廉颇虽老却依然
骁勇的ARM7/ARM9处理器,在通用嵌入式处理器市场中德高望重,至今拥有无数铁杆粉丝。半导体业界的群英们,像NXP(philips)、TI、Atmel、OKI、ST等,都以ARM为内核,做出了各自身怀绝技的32位MCU。ARM7作为最受欢迎的32位嵌入式处理器,被载入了亮煌煌的几页史册——每年超过10亿片出货量,为各行各业的嵌入式设备中都找得到它们的身影。
CM3作为ARM7的后继者,大刀阔斧地改革了设计架构。从而显著地简化了编程和调试
的复杂度,处理能力也更加强大。除此之外,CM3还突破性地引入了很多时尚的甚至崭新的技术,专门满足单片机应用程序的需求。比如,服务于“使命‐关键”应用的不可屏蔽中断,极度敏捷并且拥有确定性的嵌套向量中断系统,原子性质的位操作,还有一个可选的内存保护单元。这些令人惊艳和振奋的新特性,让老的ARM玩家们再次找到“初恋”时烈焰迸发的感觉,也使萍水相逢就有激爽触电般的体验!相信读者一旦有机会用到了它,就会为它的秀外慧中而赞叹,爱不释手!
Cortex-M3 处理器内核 vs. 基于Cortex-M3的MCU
Cortex‐M3处理器内核是单片机的中央处理单元(CPU)。完整的基于CM3的MCU还需要很多其它组件。在芯片制造商得到CM3处理器内核的使用授权后,它们就可以把CM3内核用在自己的硅片设计中,添加存储器,外设,I/O以及其它功能块。不同厂家设计出的单片机会有不同的配置,包括存储器容量、类型、外设等都各具特色。本书主讲处理器内核本身。如果想要了解某个具体型号的处理器,还需查阅相关厂家提供的文档。
一路走来
让我们回顿一下ARM的进化史,你会知道为什么会有品种如此之多的ARM处理器和ARM
架构。ARM在1990年成立,当初的名字是“Advanced RISC Machines Ltd.,”,当时它是三家公司的合资——它们分别是苹果电脑,Acorn电脑公司,以及VLSI技术(公司)。在1991年,ARM推出了ARM6处理器家族,VLSI则是第一个吃螃蟹的人。后来,陆续有其它巨头:包括TI, NEC, Sharp, ST等,都获取了ARM授权,它们真正地把ARM处理器大面积地辅开,使得ARM处理器在手机,硬盘控制器,PDA,家庭娱乐系统以及其它消费电子中都大展雄才。
现如今,ARM芯片的出货量每年都比上一年多20亿片以上。不像很多其它的半导体公司,ARM从不制造和销售具体的处理器芯片。取而代之的,是ARM把处理器的设计授权给相关的商务合作伙伴,让他们去根据自己的强项设计具体的芯片,这些伙伴可都是巨头啊。基于ARM低成本和高效的处理器设计方案,得到授权的厂商生产了多种多样的的处理器、单片机以及片上系统(SoC)。这种商业模式就是所谓的“知识产权授权”。
除了设计处理器,ARM也设计系统级IP和软件IP。为了挺它们,ARM开发了许多配套的
基础开发工具、硬件以及软件产品。使用这些工具,合作伙伴可以更加舒心地开发他们自己的产品。
ARM的各种架构版本
ARM十几年如一日地开发新的处理器内核和系统功能块。这些包括流行的ARM7TDMI处
理器,还有更新的高档产品ARM1176TZ(F)‐S处理器,后者能拿去做高档手机。功能的不断进化,处理水平的持续提高,年深日久造就了一系列的ARM架构。要说明的是,架构版本号和名字中的数字并不是一码事。比如,ARM7TDMI是基于ARMv4T架构的(T表示支持“Thumb指令”); ARMv5TE架构则是伴随着ARM9E处理器家族亮相的。 ARM9E家族成员包括ARM926E‐S和ARM946E‐S。ARMv5TE架构添加了“服务于多媒体应用增强的DSP指令”。后来又出了ARM11,ARM11是基于ARMv6架构建成的。基于ARMv6架构的处理器包括ARM1136J(F)‐S,ARM1156T2(F)‐S,以及ARM1176JZ(F)‐S。ARMv6是ARM进化史上的一个重要里程碑:从那时候起,许多突破性的新技术被引进,存储器系统加入了很多的崭新的特性,单指令流多数据(SIMD)指令也是从v6开始首次引入的。而最前卫的新技术,就是经过优化的Thumb‐2指令集,它专为低成本的单片机及汽车组件市场。
ARMv6的设计中还有另一个重大的决定:虽然这个架构要能上能下,从最低端的MCU
到最高端的“应用处理器”都通吃,但不能因此就这也会,那也会,但就是都不精。仍须定位准确,使处理器的架构能胜任每个应用领域。结果就是,要使ARMv6能够灵活地配置和剪裁。对于成本敏感市场,要设计一个低门数的架构,让她有极强的确定性;另一方面,在高端市场上,不管是要有丰富功能的还是要有高性能的,都要有拿得出手的好东西。
最近的几年,基于从ARMv6开始的新设计理念,ARM进一步扩展了它的CPU设计,成果
就是ARMv7架构的闪亮登场。
在这个版本中,内核架构首次从单一款式变成3种款式。
• 款式A:设计用于高性能的“开放应用平台”——越来越接近电脑了
• 款式R:用于高端的嵌入式系统,尤其是那些带有实时要求的——又要快又要实时。
• 款式M:用于深度嵌入的,单片机风格的系统中——本书的主角。
让我们再进距离地考察这3种款式:
• 款式A(ARMv7‐A):需要运行复杂应用程序的“应用处理器”支持大型嵌入式操作系统(不一定实时——译注),比如Symbian(诺基亚智能手机用),Linux,以及微软的Windows CE和智能手机操作系统Windows Mobile。这些应用需要劲爆的处理性能,并且需要硬件MMU实现的完整而强大的虚拟内存机制,还基本上会配有Java支持,有时还要求一个安全程序执行环境(用于电子商务——译注)。典型的产品包括高端手机和手持仪器,电子钱包以及金融事务处理机。
• 款式R(ARMv7‐R):硬实时且高性能的处理器。标的是高端实时市场。那些高级
的玩意,像高档轿车的组件,大型发电机控制器,机器手臂控制器等,它们使用的处理
器不但要很好很强大,还要极其可靠,对事件的反应也要极其敏捷。
• 款式M(ARMv7‐M):认准了旧世代单片机的应用而量身定制。在这些应用中,尤其是对于实时控制系统,低成本、低功耗、极速中断反应以及高处理效率,都是至关重要的。
Cortex系列是v7架构的第一次亮相,其中Cortex‐M3就是按款式M设计的。到目前为止,Cortex‐M3也是款式M中被抚养成人的独苗。 |