1.2 嵌入式处理器
嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。目前世界上具有嵌入式功能特点的处理器已经超过1000种,包括早期的4位处理器、8位单片机以及当前受到广泛青睐的32位、64位嵌入式CPU。鉴于嵌入式系统广阔的发展前景,很多半导体制造商都大规模生产嵌入式处理器,并且公司自主设计处理器也已经成为了未来嵌入式领域的一大趋势,其中从单片机、DSP到FPGA有着各式各样的品种,速度越来越快,性能越来越强,价格也越来越低。嵌入式处理器的寻址空间一般为64KB~4GB,处理速度为0.1~2000MIPS,封装从8个引脚到208个引脚不等。
1.2.1 嵌入式处理器的分类
嵌入式处理器大致可以分为以下4个大类。
1.嵌入式微处理器(Micro Processor Unit,MPU)
嵌入式微处理器是由通用计算机中的CPU演变而来的。它的特征是具有32位以上的处理器,具有较高的性能,当然其价格也相应较高。在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。目前主要的嵌入式处理器类型有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM/StrongARM系列等。其中ARM/StrongARM是专为手持设备开发的嵌入式微处理器,属于中档的价位。
MPU分为复杂指令集计算机(CISC)和精简指令集计算机(RISC)。RISC和CISC是目前设计制造微处理器的两种典型技术,为达到高效的目的,采用的方法不同。
CISC内部为将较复杂的指令译码,也就是指令较长,分成几个微指令去执行,正是如此开发程序比较容易(指令多的缘故),但是指令复杂,执行工作效率较差,处理数据速度较慢,如PC中Pentium的结构都为CISC CPU。
RISC是精简指令集CPU,指令位数较短,内部还有快速处理指令的电路,使得指令的译码与数据的处理较快,所以执行效率比CISC高,不过,必须经过编译程序的处理,才能发挥它的效率,如IBM的Power PC为RISC CPU的结构,CISCO的CPU也是RISC的结构。
RISC主要把精力放在常用指令上,不常用的功能通过组合指令实现,而CISC则由专用指令完成特定的功能。
2.嵌入式微控制器(Micro Control Unit,MCU)
嵌入式微控制器的典型代表是单片机,从20世纪70年代末单片机出现到今天,虽然已经经过了30多年的历史,但这种8位的电子器件目前在嵌入式设备中仍然有着极其广泛的应用。单片机芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等各种必要功能和外设。
和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。
由于MCU低廉的价格,优良的功能,所以拥有的品种和数量最多,比较有代表性的包括8051、MCS-251、MCS-96/196/296、P51XA、C166/167、68K系列,以及MCU 8XC930/931、C540、C541,并且有支持I2 C、CAN-Bus、LCD及众多专用MCU和兼容系列。
3.嵌入式DSP(Embedded Digital Signal Processor,DSP)
DSP处理器是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令的执行速度。在数字滤波、FFT、谱分析等各种仪器上DSP获得了大规模的应用。
推动DSP发展的一个重要因素是嵌入式系统的智能化。智能化算法的运算量一般都比较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP具备的、其他嵌入式处理所没有的长处。
随着大规模集成电路技术发展,1982年世界上诞生了首个DSP芯片,其运算速度比MPU快了几十倍,在语音合成和编码解码器中得到了广泛应用。至20世纪80年代中期,随着CMOS技术的进步与发展,第二代基于CMOS工艺的DSP芯片应运而生,其存储容量和运算速度都得到成倍提高,成为语音处理、图像硬件处理技术的基础。到20世纪80年代后期,DSP的运算速度进一步提高,应用领域也从上述范围扩大到了通信和计算机方面。20世纪90年代后,DSP发展到了第五代产品,集成度更高,使用范围也更加广阔。
4.片上系统(System on Chip,SoC)
超大规模集成电路(Very Large Scale Integration)设计的普及和半导体工艺的迅速发展,使在单块硅片上实现一个更复杂的系统成为可能,这就是所谓的片上系统(SoC)。
SoC最大的特点是成功实现了软、硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块。而且SoC具有极高的综合性,在一个硅片内部运用VHDL等硬件描述语言,实现一个复杂的系统。用户不需要再像传统的系统设计一样,绘制庞大复杂的电路板,一点点的连接焊制,只需要使用精确的语言,综合时序设计直接在器件库中调用各种通用处理器的标准,然后通过仿真之后就可以直接交付芯片厂商进行生产。
SoC分为通用和专用两类。通用系列包括Motorola的M-Core和Neuron、某些ARM系列器件、Echelon等。专用SoC一般专用于某类系统中,不为一般用户所知。例如,NXP的Smart XA,将XA单片机内核和支持超过2048位复杂RSA算法的CCU(Communication Control Unit)单元制作在一块硅片上,形成一个可加载Java或C语言的专用SoC,可用于In-ternet安全领域。
1.2.2 ARM微处理器
ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM公司于1991年在英国剑桥成立,ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片。目前,采用ARM技术知识产权核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。
ARM公司开发了很多系列的ARM处理器核。目前常用的ARM微处理器有ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、ARM11系列、SecurCore系列、Intel的StrongARM和XScale、Cortex-M、Cortex-A、Cortex-R等。其中,Cortex-M、Cortex-A、Cor-tex-R系列符合ARMv7标准的处理器的指令集、内存模型和程序员模型。
1.ARM微处理器的特点
① 体积小、低功耗、低成本、高性能;
② 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件;
③ 大量使用寄存器,指令执行速度更快;
④ 大多数数据操作都在寄存器中完成;
⑤ 寻址方式灵活简单,执行效率高;
⑥ 指令长度固定。
2.ARM微处理器的结构
(1)体系结构
ARM是Advanced RISC Machines的缩写,顾名思义,ARM处理器也是一种精简指令集计算机,其简单的结构使ARM内核非常小,器件的功耗也非常低。而且它具有经典RISC的特点:
① 大的、统一的寄存器文件;
② 装载/保存结构,数据处理操作只针对寄存器的内容,而不直接对存储器进行操作;
③ 简单的寻址方式;
④ 统一和固定长度的指令域,简化了指令的译码。
ARM体系结构从最初开发到现在有了巨大的改进,并仍在完善和发展。为了清楚地表达每个ARM应用实例所使用的指令集,ARM公司定义了7种主要的ARM指令集体系结构版本,以版本号v1~v7表示。ARM微处理器的核心及体系结构见表1.1。
表1.1 ARM微处理器核心及体系结构
v1是ARM1使用的,只能寻址26位空间,目前已废弃不用。
v2也是只能寻址26位空间,但是相对v1增加了乘法和协处理器支持,现在也不再使用。
v3的寻址空间增大为32位,使用了当前程序状态寄存器CPSR,并增加了程序状态保存寄存器SPSR。另外还增加了两种处理器模式,以便更有效地处理异常。
v4是v3的扩展,相对v3增加了多种加载/存储指令,并增加了特权模式。
v5是在v4的基础上进行了修改,增加了指令,提高了切换效率,增加了软件断点功能。
v6通过SIMD功能扩展,优化了应用系统的音频/视频的处理功能,将处理性能提高到原来的4倍。它支持多微处理器内核,适合使用电池供电的高性能的便携式设备。
v7架构是在v6架构的基础上诞生的,采用了Thumb-2技术,并保持了对现有ARM解决方案的完整的代码兼容性。还采用了NEON技术,将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算,满足下一代3D图形、游戏物理应用及传统嵌入式控制应用的需求。
(2)寄存器结构
ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括程序计数器(PC指针)在内的31个32位通用寄存器和6个用于标示CPU工作状态及程序运行状态的32位状态寄存器。
(3)指令结构
ARM微处理器在较新的体系结构中支持两种指令集:ARM指令集和Thumb指令集。其中,ARM指令为32位长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%的存储空间,同时具备32位代码的所有优点。
3.ARM微处理器的应用领域
(1)工业控制
作为32位的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8/16位微控制器提出了挑战。特别是Cortex系列处理器的诞生,其代码密度和能效优势意味着它是各种应用中8/16位设备的高性价比换代产品。
(2)无线通信
目前已有超过85%的无线通信设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。
(3)网络应用
随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上进行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。
(4)消费类电子
ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到了广泛采用,如银行等的取号机也是采用ARM技术。
(5)成像及安全产品
现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。
1.2.3 Cortex-M0处理器
ARM Cortex-M0处理器是现有的体积最小、能耗最低和能效最高的ARM处理器,也是符合ARMv6-M标准的处理器的指令集、内存模型和程序员模型的ARM处理器。该处理器的硅面积极小、能耗极低并且所需的代码量极少,这使得开发人员能够以8位的设备实现32位设备的性能,从而省略16位设备的研发步骤。Cortex-M0处理器超低的门数也使得它可以部署在模拟和混合信号设备中。
1.Cortex-M0处理器的特点
(1)性价比高
Cortex-M0的代码密度和能效优势意味着它是各种应用中8/16位设备的自然高性价比换代产品,同时保留与功能丰富的Cortex-M3处理器的工具和二进制向上兼容性。
(2)超低的能耗
Cortex-M0处理器在不到12K门的面积内能耗仅有85μW/MHz,所凭借的是作为低能耗技术的领导者和创建超低能耗设备的主要推动者的无与伦比的ARM专门技术。
(3)简单
指令只有56个,这样用户便可以快速掌握整个Cortex-M0指令集(如果需要);但其C语言友好体系结构意味着这并不是必需的。可供选择的具有完全确定性的指令和中断计时使得计算响应时间十分容易。
(4)优化的连接性
设计为支持低能耗连接,如Bluetooth Low Energy(BLE)、IEEE 802.15和Z-wave,这些模拟设备正在增加其数字功能,以有效地预处理和传输数据。
2.Cortex-M0处理器的技术规范
ARM Cortex-M0处理器采用ARMv6-M(冯·诺依曼)体系结构,执行Thumb指令集,包括少量使用Thumb-2技术的32位指令,是高性能的32位CPU,具有确定性的运算和低延迟的3阶段管道,整数运算速度达到0.9DMIPS/MHz。
ARM Cortex-M0处理器集成了睡眠状态和多电源域的支持,并使用基于构架的软件进行睡眠状态和功耗的控制。
嵌套向量中断控制器(NVIC)是Cortex-M0处理器不可或缺的部分,它为处理器提供了卓越的中断处理能力,中断延迟16个周期。Cortex-M0处理器使用一个向量表,其中包含要为特定中断处理程序执行的函数的地址。接收中断时,处理器会从该向量表中提取地址。为了减少门数并增强系统灵活性,Cortex-M0处理器使用一个基于堆栈的异常模型。
Cortex-M0处理器的CoreSight调试与跟踪,支持JTAG和2针串行线调试(SWD),支持多处理器和实时跟踪。
Cortex-M0处理器支持广泛的第三方工具,采用Cortex微控制器软件接口标准(CM-SIS),最大限度地增加了软件成果的重用,缩短了微控制器开发人员的学习过程。
基于ARM Cortex处理器的微控制器的软件开发可能比8位微控制器产品的开发容易得多。Cortex处理器不但是完全可通过C语言进行编程的,而且还附带各种高级调试功能以帮助定位软件中的问题。除MCU开发工具包中包括的所有附加资源外,Internet上还有大量示例和教程,其中许多来自基于ARM处理器的MCU供应商的网站。