1.3 嵌入式处理器
1.3.1 嵌入式处理器简介
1.嵌入式硬件系统
像通用计算机系统的组成一样,嵌入式系统由嵌入式硬件系统和嵌入式软件系统组成。嵌入式硬件系统,是以嵌入式处理器为中心,由存储器、I/O设备以及电源等必要的辅助接口组成的,如图1.2所示。嵌入式系统是量身定做的专用计算机应用系统,在实际应用中的嵌入式系统硬件配置非常精简,除了嵌入式处理器和基本的外围电路以外,其余的电路都可根据需要和成本进行裁剪、定制,非常经济、可靠。
图1.2 嵌入式硬件系统
嵌入式硬件系统的核心是嵌入式处理器,有时为了提高系统的信息处理能力,常外接DSP和DSP协处理器,以完成高性能信号处理。
随着计算机技术、微电子技术、应用技术的不断发展,以及纳米芯片加工工艺技术的发展,很多单片的嵌入式处理器中都含有电源控制电路、复位电路、时钟电路、I/O接口和存储器电路等资源。这种以微处理器为核心的、集成多种功能的单芯片级的MCU,已成为嵌入式系统的核心。有的MCU甚至集成了大量的外围USB、UART、以太网、AD/DA、IIS等功能模块。在嵌入式系统设计中,要尽可能地选择满足系统功能接口的MCU芯片。
2.嵌入式处理器简介
嵌入式处理器是指应用在嵌入式计算机系统中的处理器,嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。其范围极其广阔,从最初的4位处理器,目前仍在大规模应用的8位单片机,到最新的受到广泛青睐的32位、64位嵌入式CPU。
鉴于嵌入式系统广阔的发展前景,很多半导体制造商都大规模生产嵌入式处理器,并且公司自主设计处理器也已经成为未来嵌入式领域的一大发展趋势,其中从单片机、DSP到FPGA有着各式各样的品种,速度越来越快,性能越来越强,价格也越来越低。目前嵌入式处理器的寻址空间可以从64KB到4GB,处理速度最快可以达到2000MIPS,封装从8个引脚到200个引脚不等。
嵌入式系统硬件层的核心是嵌入式处理器,嵌入式处理器与通用CPU最大的不同,在于嵌入式处理器大多工作在为特定用户群所专门设计的系统中,它将通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式处理器的体系结构可以采用冯·诺依曼体系结构或哈佛体系结构;指令系统可以选用精简指令系统(Reduced Instruction Set Computer,RISC)和复杂指令系统(Complex Instruction Set Computer,CISC)。RISC计算机在通道中只包含最有用的指令,确保数据通道快速执行每一条指令,从而提高了执行效率,并使CPU硬件结构设计变得更为简单。
嵌入式处理器有各种不同的体系,即使在同一体系中,也可能具有不同的时钟频率和数据总线宽度,或集成了不同的外设和接口。据不完全统计,目前全世界嵌入式处理器已经超过1000多种,体系结构有30多个系列,其中主流的体系有80C51、AVR、ARM、MIPS、PowerPC、X86和SH等。但与全球PC市场不同的是,没有一种嵌入式处理器可以主导市场,仅以32位的产品而言,就有100多种嵌入式处理器。嵌入式处理器的选择是根据具体的应用来决定的。
1.3.2 嵌入式处理器的分类
嵌入式处理器按字长宽度可分为4位、8位、16位、32位和64位。国内一般把16位及以下的嵌入式处理器称为单片机或微控制器(MicroController Unit),而把32位及以上的嵌入式处理器称为微处理器。但按字长宽度划分微控制器和微处理器的界限并非绝对,许多内含ARM核的32位处理器芯片在其厂家数据手册中也称为微控制器。
如果按系统集成度划分,则可以分为两类:一种是微处理器内部仅包含单纯的中央处理器单元,称为一般用途型微处理器,另一种则是将CPU、RAM、ROM及I/O等部件集成在同一个芯片上,称为单片机或单芯片微控制器。
通常我们根据用途来分类,如下所述。
1.嵌入式微处理器MPU(Microprocessor Unit)
嵌入式微处理器是由通用计算机中的CPU演变而来的。它的特征是具有32位以上的处理器,具有较高的性能,当然其价格也相应较高。但与通用计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。和工业控制计算机相比,嵌入式微处理器具有体积小、质量轻、成本低、可靠性高的优点。目前主要的嵌入式处理器类型有Am186/88、386EX、SC-400、PowerPC、68000、MIPS、ARM系列等。
其中Am186/88、386EX是由通用计算机中的CPU演变而来的;PowerPC、68000、MIPS处理器最初用于桌面计算机,目前则大量用于嵌入式计算机系统;而ARM则是专为嵌入式应用需要而开发的微处理器。
2.嵌入式微控制器MCU(Microcontroller Unit)
嵌入式微控制器的典型代表是8位单片机。从20世纪70年代末单片机出现到今天,虽然已经经过了30多年的历史,但这种8位单片机目前在嵌入式设备中仍然有着极其广泛的应用。单片机芯片内部集成ROM/RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A、E2PROM等各种必要的功能和外设。和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。
由于MCU低廉的价格,优良的功能,所以拥有的品种和数量最多,比较有代表性的包括80C51、68K、PIC、AVR、ARM7系列各类微处理器,并且有支持I2C、SPI、CAN-BUS、LCD、USB及众多专用MCU的兼容系列。目前MCU占嵌入式系统约70%的市场份额。
3.嵌入式数字信号处理器DSP(Digital Signal Processor)
DSP处理器是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令的执行速度。在数字滤波、FFT、谱分析等各种仪器上,DSP获得了大规模的应用。
DSP的理论算法在20世纪70年代就已经出现,但是由于专门的DSP处理器还未出现,所以这种理论算法只能通过MPU实现。MPU较低的处理速度无法满足DSP的算法要求,其应用领域仅仅局限于一些尖端的高科技领域。随着大规模集成电路技术发展,1982年世界上诞生了首枚DSP芯片。其运算速度比MPU快了几十倍,在语音合成和编码解码器中得到了广泛应用。至20世纪80年代中期,随着CMOS技术的进步与发展,第二代基于CMOS工艺的DSP芯片应运而生,其存储容量和运算速度都得到成倍提高,成为语音处理、图像硬件处理技术的基础。到20世纪80年代后期,DSP的运算速度进一步提高,应用领域也从上述范围扩大到了通信和计算机方面。20世纪90年代后,DSP发展到了第五代产品,集成度更高,使用范围也更加广阔。
4.嵌入式片上系统SoC(System on Chip)
SoC是在单芯片上集成数字信号处理器、微控制器、存储器、数据转换器、接口电路等电路功能模块,可以直接实现信号采集、转换、存储、处理等功能,其中IP核(Intellectual Property core,知识产权核)是SoC设计的基础。
IP核是指具有知识产权的、功能具体的、接口规范的、可在多个集成电路设计中重复使用的功能模块,是实现系统级芯片(SoC)的基本构件。在十大IP供应商排行中,ARM、Rambus和MIPS居前3位。
SoC追求产品系统最大包容的集成器件,是目前嵌入式应用领域的热门话题之一。SoC最大的特点是成功实现了软/硬件的无缝结合,在一个硅片内部运用硬件描述语言HDL(VHDL、Verilog HDL等)实现一个复杂的系统。用户不需要再像传统的系统设计一样,绘制庞大复杂的电路板,一点一点地连接焊制,只需要使用精确的语言,综合时序设计直接在器件库中调用各种通用处理器的IP核,然后通过仿真之后就可以直接交付芯片厂商进行生产。由于绝大部分系统构件都在系统内部,因而整个系统特别简洁,不仅减小了系统的体积和功耗,而且提高了系统的可靠性,提高了设计生产效率。
1.3.3 几种嵌入式处理器之关系
微处理器(MPU)通常代表一个功能强大的CPU,但不是为任何已有的特定计算目的而设计的芯片。这种芯片往往是个人计算机和高端工作站的核心CPU。最常见的微处理器是Motorola的68K系列和Intel的X86系列。早期的微控制器是将一个计算机集成到一个芯片中,实现嵌入式应用,故称为单片机(Single-Chip Microcomputer,SCM)。随后,为了更好地满足控制领域的嵌入式应用,单片机中不断扩展一些满足控制要求的电路单元。目前,单片机已广泛称为微控制器(MCU)。换一个说法,就是MCU集成了片上外围器件,MPU不带外围器件,是高度集成的通用结构的处理器,是去除了集成外设的MCU。
也有由微处理器发展的微控制器,例如,Intel的386EX就是很成功的80386微处理器的微控制器版本。它与嵌入式应用的微处理器一样,也称为嵌入式微处理器。数字信号处理器(DSP)里的CPU是专门设计用来极快地进行离散时间信号处理计算的,比如那些需要进行音频和视频通信的场合。DSP内含乘加器,能比其他处理器更快地进行这类运算。
在当今嵌入式技术领域,微处理器(MPU)和微控制器(MCU)形成了各具特色的两个分支。与微处理器(MPU)以运算性能和速度为特征的飞速发展不同,微控制器(MCU)则是以其控制功能的不断完善为发展标志的。它们互相区别,但又互相融合、互相促进。
值得注意的是,在嵌入式系统领域中的微处理器和微控制器的划分界限并非十分严格,MPU内部也集成了具有控制功能的大量片上外围器件,同样MCU也不只局限于8位与16位的单片机,32位和64位的高性能的单片机也不断推出。
1.3.4 如何选择嵌入式处理器
与全球PC市场不同,没有一种嵌入式微处理器可以主导嵌入式系统。那么在设计手持电话、传真机、机器人、打印机和网络路由器等应用产品时,应如何选择嵌入式微处理器呢?仅有一种答案,那就是选择是多样化的。因为嵌入式系统设计的差异性极大,这就是有众多嵌入式微处理器存在的原因。
嵌入式系统通常是为专门执行某项任务而设计和开发的,其功能范围狭窄。设计时需要进行高度优化,必须为这些设计选择适合的处理器。合理选择恰当的处理器是个复杂的工作,在某种情况下,性能极为重要,而在另一种情况下,低功耗又成为最关键的因素。另外,一些设计者会考虑支持软件、代码的大小以及多种渠道的资源和过去的经验。选择处理器的一般原则如下。
1.低成本和供货
对成本要求严格的项目一般选择畅销的、高度集成的部件。应选择能保证在足够长的时间段内持续不断地供应处理器产品并能提供工业级、军品级处理器的一家厂商。
2.低功耗
对于有功耗限制的嵌入式系统,必须限制使用过多的外扩器件(如RAM、ROM、I/O接口等)。应考虑选择低功耗、高集成度的处理器,如果处理器的时钟频率可程控,能进一步降低功耗。
从软件设计的观点来看,如果功耗成为压倒性的系统约束,那么会影响软件开发工具的选择,有可能要求用汇编语言来编写软件,以提高软件的运行效率。
3.恰当的处理能力
处理器必须能在规定的时间内完成所有任务,不同的嵌入式系统对处理器的性能要求也不尽相同,从能处理单一的数字信号、处理数字/模拟信号到DSP应用等。
4.支持合适的嵌入式操作系统
微处理器的选择还依赖于是否有合适的嵌入式操作系统支持。对于8位和16位微处理器,可以配置对资源要求不高的较小内核尺寸的嵌入式操作系统;对于32位微处理器,应该支持商业嵌入式操作系统。在商业嵌入式操作系统中调试实时软件时,一般需要使用与所采用的嵌入式操作系统兼容的开发工具,最好采用嵌入式操作系统开发商提供的集成解决方案。
5.与原有产品的兼容
随着电子技术和计算机技术的发展,在同一系列的处理器中,性能较低的处理器会被性能较高的取代。新推出的处理器将会继续保持与旧代码、旧系统体系结构的兼容性。
在选择处理器时,主要决定因素不仅是要最高的性价比,而且要求可利用已有的软件、开发工具及在此系列上积累的丰富经验。
Intel公司的X86系统是最好的例子。今天最高性能的奔腾处理器仍能执行在古老的IBM PC上使用的8086处理器的目标代码。
6.编程语言的限制
编程语言的选择是非常重要的,但有时开发人员却别无选择,有些工业部门对特定编程语言有着强烈的偏好。
如果项目要求在原有程序的基础上进行再开发,要么继续使用原先的编程语言,要么使用支持与原有编程语言混合编程的编译器和连接器。
7.上市时间
开发工程师一般会低估上市时间的重要性,认为只要设计性能出众、特性丰富,产品就会在市场上大获成功。事实上,上市时间是产品成败非常关键的因素。如果所选择的处理器致使上市时间延期,那么就是处理器选择失败。
对于嵌入式系统的设计者,更多更好的嵌入式微处理器/微控制器将不断出现。综合考虑系统的性能、功耗、价格、供货保证、开发工具的配备以及工程师过去对这种处理器的经验和软件的支持等因素,决定用户使用哪一种处理器。嵌入式处理器的选择不是一成不变的,伴随着技术的发展,速度快、价格低、功能强的嵌入式处理器不断涌现,给用户提供了更多的选择。够用、成本和供货是选择嵌入式处理器的3个主要考虑的因素。