第1 章 基本知识
1.1 引 言
在日常生活中,嵌入式系统的应用无处不在,小到MP3 、手机、机顶盒、数码相机,大到智能家电、车载电子设备、工业机器人、航空航天设备等。
嵌入式系统内部含有微处理器,具有计算功能,但又不同于普通的计算机。
IEEE 对嵌入式系统作出了如下定义:嵌入式系统是用于控制、监视或者辅助操作机器和设备的装置。而国内嵌入式工作者普遍认同的定义为:以应用为**,以计算机技术为基础,软硬件可裁剪,适应对功能、**性、体积、实时性、可靠性、重量、成本、功耗、环境等方面严格要求的专用计算机系统。因此,从嵌入式的定义可以看出,嵌入式系统实质上就是实现某些特定要求的计算机应用系统。
可以从广义和狭义的角度来理解嵌入式系统的定义。从广义的角度来看,凡是带有处理器的专用软硬件系统都可以称为嵌入式系统。从这点来讲,嵌入式系统虽然是近年来的时髦名词,但如果从20 世纪80 年代的MCS-51 单片机算起,已经存在30 余年了,并不是什么新鲜的技术。然而,从狭义的角度来看,嵌入式系统仅仅是指那些使用32 位以上的嵌入式处理器、具有嵌入式操作系统并且具有某些特定功能的系统。按照这种定义,典型的嵌入式系统有使用x86 的小型嵌入式工控主板,其在各种自动化设备中有着广泛的应用;另外一大类是使用Intel 、Mo-torola 、Samsung 等专用芯片构成的小系统,广泛应用于各种消费电子和通信领域。值得一提的是,国内习惯把4 位、8 位、16 位微控制器称为单片机。实际上,“嵌入式系统”这一名词也正是由于32 位处理器的崛起而出现,并在近十年传入我国,变得热门起来。
随着工业控制产品对性能和智能化的要求不断提高,嵌入式处理器在工业自动化设备中得到了广泛的应用。在各种性能要求较高的工业控制设备中,往往采用8 位单片机;而在各种高精度工业控制设备中,32 位、64 位处理器逐渐成为设备控制的核心,有着越来越广阔的应用前景。然而,作为嵌入式控制系统核心的处理器种类繁多,对于不同要求的控制设备,需要选择不同的处理器,采用不同的控制算法,才能以*高的性价比满足控制设备的各项技术要求。
到目前为止,大多数与嵌入式相关的书籍主要针对具体的芯片,介绍其功能特点,较少牵涉到芯片的具体应用;另外大多数控制类书籍主要讲解各种控制算法,很少涉及控制器的选用。嵌入式处理器的多样性、复杂性以及控制系统的复杂性,使许多设计人员对于具体控制设备的设计任务感到难以下手。基于以上原因,本书以近年来作者参与设计的实际控制工程项目为背景,选择具有代表性的C8051F005 单片机、DSP 微控制器TMS320F2812 、ARM9 微控制器S3C2440 进行设计,详细讨论了嵌入式处理器的学习**、选择方法以及控制算法的设计,使设计人员达到一理通、百理融,从而可以在较短时间内掌握某种嵌入式处理器的关键技术,选择相应的处理器,完成嵌入式控制系统的设计。
1.2 嵌入式控制系统的发展史
1.2.1 嵌入式控制系统的诞生历程
1.微型计算机的发展史
1946 年,在美国Pennsylvania 大学,诞生了世界上**台电子管计算机――ENIAC ,其主要特点是采用电子管作为基本电子元器件。尽管该计算机体积大、耗电量大、寿命短、可靠性低、成本高,但它是计算工具革命性发展的开始,其所采用的二进位制、程序存储等基本技术思想,奠定了现代电子计算机技术基础。
通常学术界根据电子计算机的逻辑单元所采用的物理器件来划分计算机的发展史。到目前为止,电子计算机的发展经历了四代:**代是电子管计算机,第二代是晶体管计算机,第三代是集成电路计算机,第四代是大规模集成电路计算机。
微型计算机是第四代计算机的典型代表,构成微型计算机的核心是微处理器,又称CPU(**处理单元) ,基本上每18 个月就有新产品问世。所谓微型计算机是给微处理器配上一定容量的半导体存储器(RAM 和ROM) 、接口电路(并行接口、串行接口、USB 等)和必要的外设。
微型计算机的升级换代也取决于它的核心器件―― 微处理器的性能。以“芯片**”Intel 公司为例,自20 世纪70 年代诞生**片微处理器以来,已经推出了多款微处理器产品,经历了8086 、80286 、80386 、80486 、奔腾等几个阶段的处理器。
目前,奔腾处理器已经发展到了多核处理器酷睿系列。从总体上看,微处理器的处理速度越来越快,容量越来越大,功能越来越强。微处理器的发展在不断验证着摩尔定律的正确性,然而高主频带来的处理器高热量、高能耗以及执行效率的降低使摩尔定律不再是指导处理器发展的一个神话。随着主频提升遇到散热瓶颈,AMD公司和Intel 公司共同将处理器的发展推进到了多核时代。
2.嵌入式控制系统的诞生
以微处理器为核心的微型计算机具有小型、价廉、高可靠性、智能性等特点。
为了解决复杂的控制问题,一些设计人员将微型计算机引入控制设备中,利用微型计算机强大的处理能力,完成各种复杂的控制算法。从本质上看,就是将微型计算机机嵌入到一个控制设备中,实现被控对象的智能化控制。为了便于安装,需要减小微型计算机的体积;而为了提高系统的整体性能,甚至需要增大体积。因此,为了满足不同的需要,微型计算机开始朝两个方向发展:一方面向微巨型化机发展,以便获得基于微型机的巨型机体系结构;另一方面向更小型化方向发展,从而出现了单板机、单片机等。
(1) 微巨型机是将微型计算机与巨型机的技术结合起来形成一种完全新型的体系结构。微巨型机具有明显的优点,即微型机的硬件、巨型机的性能。
(2) 单板机是指把微处理器集成在一个或两个硅片上,再加上一个或多个存储器芯片、I/O 接口芯片和必要的I/O 设备,并把它们装配在一块PCB 板上。国内曾广泛使用以Z80CPU 为微处理器的TP801 单板机,但由于其设计复杂、成本高,已经被单片机所取代。
(3) 单片机是指把微处理器、一定容量的存储器和必要的I/O 接口电路集成在一个芯片上,就构成了单片微型计算机。有的单片机还可以集成更多的功能,如A/D 、D/A 等。单片机使用广泛,被用于自动控制、智能仪表、家用电器等设备中。
其中,Intel 公司MCS-51 系列单片机应用*为广泛。
不论是单板机,还是单片机,都已不再具有通用计算机的外观,并且体系结构和功能也发生了很大改变。通常,为了与通用计算机系统相区别,从应用的角度,把嵌入到被控对象中实现被控对象智能化控制的计算机,称作嵌入式计算机。因此,嵌入式计算机是由于应用的需要,由微型计算机发展而来,并且还在迅速发展。
由嵌入式计算机构成的控制系统,就称为嵌入式控制系统。
3.计算机技术两大分支的形成
嵌入式计算机与通用计算机具有不同的工作环境,服务的目的不同,因此嵌入式计算机具有与通用计算机系统完全不同的技术要求,从而形成了不同的技术发展方向。
对于通用计算机,虽然速度越来越快,存储容量越来越大,性价比越来越高,但是人们总是期待拥有速度更快、存储容量更大、性价比更高的计算机。通用计算机总是不断地更新换代,在性能越来越高的同时价格却不断降低。例如,现在core2的价格甚至比十年前的80386 计算机还便宜,而性能却提高了许多倍。当然,某个型号的通用计算机总是会被淘汰的,例如现在就已经没有人会再使用80386 计算机了。而嵌入式计算机却有所不同,设计人员希望在满足应用要求的情况下,尽可能地降低成本。例如,嵌入式处理器虽然也从4 位,发展到8 位、16 位、32 位、64位,但是并没有因为64 位嵌入式处理器的出现,而淘汰了32 位。在低端市场和高端市场,8 位和32 位嵌入式处理器分别占据着统治地位。并且,8 位单片机仍然是世界上***大的嵌入式处理器。因此,设计嵌入式控制系统,选择嵌入式处理器时,性能*高的不一定就是*好的、*适合的选择。
既然面向应用的嵌入式计算机与通用计算机具有不同的特点,那么它们的体系结构也会有所不同。因此,嵌入式计算机走上了一条与通用计算机不同的发展道路,这样就形成了计算机技术发展的两大分支:通用计算机和嵌入式计算机。嵌入式计算机的诞生,标志着计算机进入了通用计算机与嵌入式计算机两大分支的并行发展时代,使计算机技术获得了更广泛的应用。通用计算机系统与嵌入式计算机系统的专业化分工,也使计算机技术得到了突飞猛进的发展。作为一门基础学科,计算机技术的迅猛发展也极大地促进了其他技术的发展[1] 。
通用计算机领域集中,由于不需要考虑具体的应用,根据摩尔定律“微芯片上集成的晶体管数目每三年翻两番” ,从而使同样大小的芯片具有更强大的功能。通用微处理器发展到奔腾系列后,出现了双核、四核CPU ,4G 的内存、500G 的硬盘也越来越普遍。随着硬件性能越来越高,操作系统的功能也越来越强大,从DOS系统发展到今天的Windows 7 系统,使通用计算机的整体性能越来越高。
嵌入式计算机的发展则有所不同。一方面,同通用计算机类似,嵌入式处理器性能不断提高,还产生了嵌入式操作系统,使32 位的嵌入式计算机的性能甚至超过了早期的80386 、80486 计算机;另一方面,面向特定应用的特点产生了适合于不同场合的嵌入式计算机,例如,在Intel 的8051 单片机上集成不同功能模块,如A/D 、D/A 、PWM 、定时器、串口、存储器等,派生出了很多种不同的51 系列单片机,从而使51 系列单片机成为应用*为广泛的嵌入式计算机。目前,嵌入式计算机总体的发展方向是片上系统(SoC) 。
SoC 是一个微小型系统,将微处理器、模拟IP 核、数字IP 核、存储器(或片外存储控制接口)等集成在单一芯片上。SoC 是面向特定用户的能*大满足嵌入式系统要求的芯片,因而具有很多优势。SoC 集成了各种功能模块,或者叫IP 核。
IP 核都是由硬件描述语言设计,然后在SoC 内由硬件实现。每一个IP 核只是利用芯片的一部分资源去实现某种具体功能,而不像微控制器那样有自身架构的限定。由于SoC 缩短了片内连线,因而能极大地改善功耗开销,减少印制板上的部件数和管脚数,从而减少板卡失效的可能性。需要指出的是,许多设计人员从芯片集成完整系统的角度考虑。将集成了许多外围功能的微控制器也称为片上系统。
如果从这个定义来看,*常用的51 系列单片机也是片上系统。
可见,现代计算机技术发展的两大分支的重要意义在于:形成了计算机发展的专业化分工。
1.2.2 嵌入式处理器的发展历程
1.嵌入式处理器的发展思路
计算机技术形成两大分支以后,嵌入式系统走上了一条与通用计算机系统不同的发展道路。除了性能不断提高之外,*重要的就是片上系统的产生。实际上,不论是低端还是高端,嵌入式系统都在朝着这一方向发展。常用的单片机就是在一个芯片上集成尽量多的功能模块。为了进一步提高嵌入式系统的性能,必须考虑嵌入式计算机结构的设计模式。
在单片机的发展道路上,有两种模式,即“裁剪模式”与“创新模式” 。“裁剪模式”实际上就是通用计算机直接芯片化的模式,它将通用计算机系统中的组成单元进行裁剪,保留必要的基本组件,集成在一个芯片上,构成单片微型计算机。“创新模式”则完全按嵌入式应用要求设计的全新的、满足嵌入式应用要求的体系结构、微处理器、指令系统、总线方式、管理模式等。例如,获得广泛应用的Intel 公司MCS-51 系列就是按照创新模式发展起来的单片微型计算机。MCS-51 系列放弃了通用计算机所采用的微程序结构,采用了RISC 的硬件结构,并内嵌了常用的功能模块,使其得到了广泛应用,成为了单片嵌入式计算机的典型结构体系[ 1] 。
从MCS-51 系列的成功可以看出,嵌入式计算机虽然起源于微型计算机时代,但是微型计算机的体系结构明显无法满足嵌入式系统的要求。因此,嵌入式计算机走上了一条与通用计算机不同的发展道路,*重要的一点就是单芯片化,也就是将嵌入式处理器及其外围接口、存储器等模块集成在一个芯片上,从而进入了嵌入式系统独立发展的片上系统时代。
2.嵌入式处理器的发展道路
嵌入式系统的核心是嵌入式处理器。从嵌入式处理器的角度来看,嵌入式系统的发展主要经历了嵌入式微处理器、嵌入式微控制器或DSP 处理器、片上系统这3 个阶段[2] 。
1) 嵌入式微处理器这一阶段主要是寻求嵌入式计算机的*佳体系结构。
嵌入式微处理器(embedded microprocessor unit , EMPU)采用“增强型”通用微处理器。由于嵌入式系统通常在比较恶劣的环境中工作,因而EMPU 在工作温度、电磁兼容性以及可靠性方面的要求较通用的标准微处理器高。但是,EMPU在功能方面与标准的微处理器基本上是一样的。根据实际嵌入式应用要求,将EMPU 装配在专门设计的主板上,只保留和嵌入式应用有关的主板功能,可以大幅度减小系统的体积和功耗。和工控机相比,EMPU 组成的系统具有体积小、重量轻、成本低、可靠性高的优点,但在其电路板上必须包括ROM 、RAM 、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。由嵌入式微处理器及其存储器、总线、外设等安装在一块电路主板上构成一个通常所说的单板机系统。EMPU 目前主要有Am186/88 、386EX 、SC-400 、Power PC 、68000 、MIPS 、ARM 系列等。
2) 嵌入式微控制器微控制器(micro control unit , MCU)的主要技术发展方向是:不断扩展满足嵌入式应用时,被控对象要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与被控对象相关,因此,发展MCU 的重任不可避免地落在电气、电子技术厂家。可见,Intel 逐渐淡出MCU 的发展也是必然的。Phil-ips 公司在发展MCU 方面作出了重要的贡献。Philips 公司以其在嵌入式应用方面的巨大优势,将MCS-51 从单片微型计算机迅速发展到微控制器。因此,回顾嵌入式系统发展道路时,不能忘记Intel 和Philips 的历史功绩。
微控制器将整个计算机系统集成到一块芯片中,其片上外设资源一般比较丰富,适合用于控制。微控制器一般以某种微处理器内核为核心,根据某些典型的应用,在芯片内部集成了ROM/EPROM 、RAM 、总线、总线逻辑、定时/计数器、看门狗、I/O 、串行口、PWM 、A/D 、D/A 、Flash 、RAM 等各种必要功能部件和外设。为适应不同的应用需求,对功能的设置和外设的配置进行必要的修改和裁减定制,使一个系列的微控制器具有多种衍生产品,每种衍生产品的处理器内核都相同,不同的是存储器和外设的配置及功能的设置。这样可以使单片机*大限度地和应用需求相匹配,从而减少整个系统的功耗和成本。和嵌入式微处理器相比,微控制器的单片化使应用系统的体积大大减小,从而使功耗和成本大幅度下降,可靠性提高。
由于微控制器目前在产品的品种和数量上是所有嵌入式处理器中*多的,而且上述诸多优点决定了微控制器是嵌入式系统应用的主流。通常,嵌入式微控制器可分为通用和半通用两类。比较有代表性的通用系列包括8051 、P51XA 、MCS-251 、MCS-96/196/296 、C166/167 、MC68 HC05/11/12/16 、68300 等;而半通用系列就是带有一些特定应用接口的微控制器,比较有代表性的,如支持USB 接口的MCU8XC930/931 、C540 、C541 ,支持I2C 、CAN 总线、LCD 及众多专用的MCU 和兼容系列。目前MCU 约占嵌入式系统市场份额的70 % 。
3) DSP 处理器信息化的基础是数字化,数字化的核心技术之一是数字信号处理。数字信号处理的任务在很大程度上需要由DSP 器件来完成。DSP 技术已成为人们日益关注的并得到迅速发展的前沿技术。DSP 是在模数转换以后进行高速实时处理的专用处理器,其处理速度比*快的CPU 还快10 ~ 50 倍。
在DSP 出现之前数字信号处理只能依靠MPU(微处理器)来完成,但MPU较低的处理速度无法满足高速实时的要求。因此在20 世纪70 年代有人提出了