引用wangbo352 的 ARM的入门与概述 什么是ARM?ARM ( Advanced RISC Machines ),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 1991 年 ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用 ARM技术知识产权( IP )核的微处理器,即我们通常所说的 ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于 ARM 技术的微处理器应用约占据了 32 位 RISC 微处理器 75 %以上的市场份额, ARM 技术正在逐步渗入到我们生活的各个方面。 ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的 ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的 ARM 微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用 ARM 公司的授权,因此既使得 ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。 ARM的应用领域到目前为止, ARM 微处理器及技术的应用几乎已经深入到各个领域: 1 、工业控制领域:作为 32 的 RISC 架构,基于 ARM 核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展, ARM 微控制器的低功耗、高性价比,向传统的 8 位 /16 位微控制器提出了挑战。 2 、无线通讯领域:目前已有超过 85% 的无线通讯设备采用了 ARM 技术, ARM 以其高性能和低成本,在该领域的地位日益巩固。 3 、网络应用:随着宽带技术的推广,采用 ARM 技术的 ADSL 芯片正逐步获得竞争优势。此外,ARM 在语音及视频处理上行了优化,并获得广泛支持,也对 DSP 的应用领域提出了挑战。 4 、消费类电子产品: ARM 技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。 5 、成像和安全产品:现在流行的数码相机和打印机中绝大部分采用 ARM 技术。手机中的 32位 SIM 智能卡也采用了 ARM 技术。 除此以外, ARM 微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的应用。 ARM的特点采用 RISC 架构的 ARM 微处理器一般具有如下特点: 1 、体积小、低功耗、低成本、高性能; 2 、支持 Thumb ( 16 位) /ARM ( 32 位)双指令集,能很好的兼容 8 位 /16 位器件; 3 、大量使用寄存器,指令执行速度更快; 4 、大多数数据操作都在寄存器中完成; 5 、寻址方式灵活简单,执行效率高; 6 、指令长度固定; ARM的分类系列ARM 微处理器目前包括下面几个系列,以及其它厂商基于 ARM 体系结构的处理器,除了具有ARM 体系结构的共同特点以外,每一个系列的 ARM 微处理器都有各自的特点和应用领域。 - ARM7 系列 - ARM9 系列 - ARM9E 系列 - ARM10E 系列 - SecurCore 系列 - Intel 的 Xscale - Intel 的 StrongARM 其中, ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。 SecurCore 系列专门为安全要求较高的应用而设计。 ARM7的分类系列ARM7 系列微处理器为低功耗的 32 位 RISC 处理器,最适合用于对价位和功耗要求较高的消费类应用。 ARM7 微处理器系列具有如下特点: - 具有嵌入式 ICE - RT 逻辑,调试开发方便。 - 极低的功耗,适合对功耗要求较高的应用,如便携式产品。 - 能够提供 0.9MIPS/MHz 的三级流水线结构。 - 代码密度高并兼容 16 位的 Thumb 指令集。 - 对操作系统的支持广泛,包括 Windows CE 、 Linux 、 Palm OS 等。 - 指令系统与 ARM9 系列、 ARM9E 系列和 ARM10E 系列兼容,便于用户的产品升级换代。 - 主频最高可达 130MIPS ,高速的运算处理能力能胜任绝大多数的复杂应用。 ARM7 系列微处理器的主要应用领域为:工业控制、 Internet 设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。 ARM7 系列微处理器包括如下几种类型的核: ARM7TDMI 、 ARM7TDMI-S 、ARM720T 、 ARM7EJ 。其中, ARM7TMDI 是目前使用最广泛的 32 位嵌入式 RISC 处理器,属低端ARM 处理器核。 TDMI 的基本含义为: T : 支持 16 为压缩指令集 Thumb ; D : 支持片上 Debug ; M :内嵌硬件乘法器( Multiplier ) I : 嵌入式 ICE ,支持片上断点和调试点; ARM9的分类系列ARM9 系列微处理器在高性能和低功耗特性方面提供最佳的性能。具有以下特点: - 5 级整数流水线,指令执行效率更高。 - 提供 1.1MIPS/MHz 的哈佛结构。 - 支持 32 位 ARM 指令集和 16 位 Thumb 指令集。 - 支持 32 位的高速 AMBA 总线接口。 - 全性能的 MMU ,支持 Windows CE 、 Linux 、 Palm OS 等多种主流嵌入式操作系统。 - MPU 支持实时操作系统。 - 支持数据 Cache 和指令 Cache ,具有更高的指令和数据处理能力。 ARM9 系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字 照相机和数字摄像机等。 ARM9 系列微处理器包含 ARM920T 、 ARM922T 和 ARM940T 三种类型,以适用于不同的应用 场合。 ARM9E的分类系列ARM9E 系列微处理器为可综合处理器,使用单一的处理器内核提供了微控制器、 DSP 、 Java应用系统的解决方案,极大的减少了芯片的面积和系统的复杂程度。 ARM9E 系列微处理器提供了增强的 DSP 处理能力,很适合于那些需要同时使用 DSP 和微控制器的应用场合。 ARM9E 系列微处理器的主要特点如下: - 支持 DSP 指令集,适合于需要高速数字信号处理的场合。 - 5 级整数流水线,指令执行效率更高。 - 支持 32 位 ARM 指令集和 16 位 Thumb 指令集。 - 支持 32 位的高速 AMBA 总线接口。 - 支持 VFP9 浮点处理协处理器。 - 全性能的 MMU ,支持 Windows CE 、 Linux 、 Palm OS 等多种主流嵌入式操作系统。 - MPU 支持实时操作系统。 - 支持数据 Cache 和指令 Cache ,具有更高的指令和数据处理能力。 - 主频最高可达 300MIPS 。 ARM9 系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。 ARM9E 系列微处理器包含 ARM926EJ-S 、 ARM946E-S 和 ARM966E-S 三种类型,以适用于不同的应用场合。 ARM10E的分类系列ARM10E 系列微处理器具有高性能、低功耗的特点,由于采用了新的体系结构,与同等的 ARM9器件相比较,在同样的时钟频率下,性能提高了近 50 %,同时, ARM10E 系列微处理器采用了两种先进的节能方式,使其功耗极低。 ARM10E 系列微处理器的主要特点如下: - 支持 DSP 指令集,适合于需要高速数字信号处理的场合。 - 6 级整数流水线,指令执行效率更高。 - 支持 32 位 ARM 指令集和 16 位 Thumb 指令集。 - 支持 32 位的高速 AMBA 总线接口。 - 支持 VFP10 浮点处理协处理器。 - 全性能的 MMU ,支持 Windows CE 、 Linux 、 Palm OS 等多种主流嵌入式操作系统。 - 支持数据 Cache 和指令 Cache ,具有更高的指令和数据处理能力 - 主频最高可达 400MIPS 。 - 内嵌并行读 / 写操作部件。 ARM10E 系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。 ARM10E 系列微处理器包含 ARM1020E 、 ARM1022E 和 ARM1026EJ-S 三种类型,以适用于不同的应用场合。 SecurCore 处理器系列SecurCore 系列微处理器专为安全需要而设计,提供了完善的 32 位 RISC 技术的安全解决方案,因此, SecurCore 系列微处理器除了具有 ARM 体系结构的低功耗、高性能的特点外,还具有其独特的优势,即提供了对安全解决方案的支持。 SecurCore 系列微处理器除了具有 ARM 体系结构各种主要特点外,还在系统安全方面具有如下的特点: - 带有灵活的保护单元,以确保操作系统和应用数据的安全。 - 采用软内核技术,防止外部对其进行扫描探测。 - 可集成用户自己的安全特性和其他协处理器。 SecurCore 系列微处理器主要应用于一些对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。 SecurCore 系列微处理器包含 SecurCore SC100 、 SecurCore SC110 、 SecurCore SC200 和 SecurCore SC210 四种类型,以适用于不同的应用场合。 StrongARM 处理器系列Intel StrongARM SA-1100 处理器是采用 ARM 体系结构高度集成的 32 位 RISC 微处理器。它融合了 Intel 公司的设计和处理技术以及 ARM 体系结构的电源效率,采用在软件上兼容 ARMv4 体系结构、同时采用具有 Intel 技术优点的体系结构。 Intel StrongARM 处理器是便携式通讯产品和消费类电子产品的理想选择,已成功应用于多家公司的掌上电脑系列产品。 Xscale 处理器Xscale 处理器是基于 ARMv5TE 体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。它支持 16 位的 Thumb 指令和 DSP 指令集,已使用在数字移动电话、个人数字助理和网络产品等场合。 Xscale 处理器是 Intel 目前主要推广的一款 ARM 微处理器。 RISC 体系结构传统的 CISC ( Complex Instruction Set Computer ,复杂指令集计算机)结构有其固有的缺点,即随着计算机技术的发展而不断引入新的复杂的指令集,为支持这些新增的指令,计算机的体系结构会越来越复杂,然而,在 CISC 指令集的各种指令中,其使用频率却相差悬殊,大约有 20 %的指令会被反复使用,占整个程序代码的 80 %。而余下的 80 %的指令却不经常使用,在程序设计中只占 20 %,显然,这种结构是不太合理的。 基于以上的不合理性, 1979 年美国加州大学伯克利分校提出了 RISC ( Reduced Instruction Set Computer ,精简指令集计算机)的概念, RISC 并非只是简单地去减少指令,而是把着眼点放在了如何使计算机的结构更加简单合理地提高运算速度上。 RISC 结构优先选取使用频最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻地方式种类减少;以控制逻辑为主,不用或少用微码控制等措施来达到上述目的。 到目前为止, RISC 体系结构也还没有严格的定义,一般认为, RISC 体系结构应具有如下特点: - 采用固定长度的指令格式,指令归整、简单、基本寻址方式有 2 ~ 3 种。 - 使用单周期指令,便于流水线操作执行。 - 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载 / 存储指令可以访问存储器,以提高指令的执行效率。 除此以外, ARM 体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗: - 所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。 - 可用加载 / 存储指令批量传输数据,以提高数据的传输效率。 - 可在一条数据处理指令中同时完成逻辑处理和移位处理。 - 在循环处理中使用地址的自动增减来提高运行效率。 当然,和 CISC 架构相比较,尽管 RISC 架构有上述的优点,但决不能认为 RISC 架构就可以取代 CISC 架构,事实上, RISC 和 CISC 各有优势,而且界限并不那么明显。现代的 CPU 往往采用CISC 的外围,内部加入了 RISC 的特性,如超长指令集 CPU 就是融合了 RISC 和 CISC 的优势,成为未来的 CPU 发展方向之一。 ARM 的寄存器结构ARM 处理器共有 37 个寄存器,被分为若干个组( BANK ),这些寄存器包括: - 31 个通用寄存器,包括程序计数器( PC 指针),均为 32 位的寄存器。 - 6 个状态寄存器,用以标识 CPU 的工作状态及程序的运行状态,均为 32 位,目前只使用了其中的一部分。 同时, ARM 处理器又有 7 种不同的处理器模式,在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可访问的寄存器包括 15 个通用寄存器( R0 ~ R14 )、一至二个状态寄存器和程序计数器。在所有的寄存器中,有些是在 7 种处理器模式下共用的同一个物理寄存器,而有些寄存器则是在不同的处理器模式下有不同的物理寄存器。 ARM 的指令结构ARM 微处理器的在较新的体系结构中支持两种指令集: ARM 指令集和 Thumb 指令集。其中,ARM 指令为 32 位的长度, Thumb 指令为 16 位长度。 Thumb 指令集为 ARM 指令集的功能子集,但与等价的 ARM 代码相比较,可节省 30 %~ 40 %以上的存储空间,同时具备 32 位代码的所有优点。 ARM的选型鉴于 ARM 微处理器的众多优点,随着国内外嵌入式应用领域的逐步发展, ARM 微处理器必然会获得广泛的重视和应用。但是,由于 ARM 微处理器有多达十几种的内核结构,几十个芯片生产厂家,以及千变万化的内部功能配置组合,给开发人员在选择方案时带来一定的困难,所以,对 ARM芯片做一些对比研究是十分必要的。 以下从应用的角度出发,对在选择 ARM 微处理器时所应考虑的主要问题做一些简要的探讨。 1 ARM 芯片选择的一般原则 从应用的角度,对在选择 ARM 芯片时所应考虑的主要困素做一详细的说明。 1.1 ARM 芯核 如果希望使用 WinCE 或 Linux 等操作系统以减少软件开发时间,就需要选择 ARM720T 以上带有 MMU ( memory management unit )功能的 ARM 芯片, ARM720T 、 Stron-gARM 、 ARM920T 、 ARM922T 、 ARM946T 都带有 MMU 功能。而 ARM7TDMI 没有 MMU ,不支持 Windows CE 和大部分的 Linux ,但目前有 uCLinux 等少数几种 Linux 不需要 MMU 的支持。 1.2 系统时钟控制器 系统时钟决定了 ARM 芯片的处理速度。 ARM7 的处理速度为0.9 MIPS/MHz ,常见的 ARM7 芯片系统主时钟为20 MHz-133MHz , ARM9 的处理速度为1.1 MIPS/MHz ,常见的 ARM9 的系统主时钟为100 MHz-233MHz , ARM10 最高可以达到700 MHz 。不同芯片对时钟的处理不同,有的芯片只有一个主时钟频率,这样的芯片可能不能同时顾及 UART 和音频时钟准确性,如 Cirrus Logic 的 EP7312 等;有的芯片内部时钟控制器可以分别为 CPU 核和 USB 、 UART 、 DSP 、音频等功能部件提供同频率的时钟,如 PHILIPS 公司 SAA7750 等芯片。 1.3 内部存储器容量 在不需要大容量存储器时,可以考虑选用有内置存储器的 ARM 芯片。见表1。表1 芯片型号供应商FLASH容量ROM容量SRAM容量AT91F40162AT91FR4081SAA7750PUC3030AHMS30C7202