嵌入式系统设计基础课件_第1页
嵌入式系统设计基础课件_第2页
嵌入式系统设计基础课件_第3页
嵌入式系统设计基础课件_第4页
嵌入式系统设计基础课件_第5页
已阅读5页,还剩441页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统设计基础21.1嵌入式系统简介嵌入式系统已经广泛应用于各个科技领域和日常生活的每个角落,由于其本身的特性,使得我们很难发现它的存在。甚至一些从事嵌入式系统开发的科技人员也只知单片机,不知道嵌入式系统。本节从嵌入式系统的定义开始,阐述嵌入式系统的含义、特点等,以使读者加深对嵌入式系统的理解。§1.1.1嵌入式系统的定义§1.1.2嵌入式系统的组成§1.1.3嵌入式系统的特点§1.1.4嵌入式系统的应用§1.1.5嵌入式系统的发展3什么是嵌入式系统(EmbeddedSystem)?广义地讲,凡是不用于通用目的的可编程计算机设备,就可以算是嵌入式计算机系统。举例来说,个人计算机(PC)不是一种嵌入式系统,因为它是用于通用目的的系统。而一些电话系统就是采用个人计算机技术建立的嵌入式计算机系统,最典型的嵌入式系统如手机、可视电话等;另外还有一些嵌入式系统采用特殊的微处理器,如传真机、打印机等。狭义上而言,嵌入式系统是指以应用为核心,以计算机技术为基础,软硬件可裁剪,适于应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。一般嵌入式系统的设计过程是:从产品定义开始,接着进行硬件设计,然后将软件或操作系统移植到硬件上,并且进行应用程序的开发,最后经过测试与调试后即开始销售或使用。根据英国电机工程师协会所做的定义“嵌入式系统是控制、监视或辅助某个设备、机器甚至工厂运行的设备”,嵌入式系统应该具备以下4个特性:执行特定的功能;以微处理器与外围设备构成核心;需要严格的时序与稳定性;全自动操作。4由上述可知,嵌入式系统是计算机软件与硬件的综合体,整个综合体的设计目的在于满足某种特殊功能,并应用于各类具体的应用系统中,例如,实验仪器、办公设备、医疗设备甚至航天设备,等等。由于对嵌入式系统含义的理解因人而异,所以不同的书籍对嵌入式系统的定义也不尽相同。下面给出了一些文献中对嵌入式系统的定义:“ComputerasComponents–PrinciplesofEmbeddedComputingSystemDesign”一书的作者WayneWolf认为:“什么是嵌入式计算系统?如果不严格地定义,它是任何一个包含可编程计算机的设备,但是它本身却不是一个通用计算机。”“EmbeddedMicrocontrollers”一书的作者ToddD.Morton认为:“嵌入式系统是一种电子系统,它包含微处理器或者微控制器,但是我们不认为它是计算机——计算机隐藏或者嵌入在系统中。”“EmbeddedSoftwarePrimer”一书的作者DavieE.Simon认为:“人们使用嵌入式系统这个术语,指的是隐藏在任一产品中的计算机系统。”“AnIntroductiontotheDesignofSmallScaleEmbeddedSystemwithexamplefromPIC,80C51and68HC05/08Microcontrollers”一书的作者TimWilmshurst认为:“嵌入式系统是这样一个系统,它的首要功能并不是计算,而是受嵌入其中的计算机控制的一个系统。‘嵌入’暗示了它存在于整个系统中,从外部观察不到,形成了更大整体的一个完整部分。”5可以看出,虽然各种书籍对嵌入式系统的定义稍有差异,但是基本的思想和理解是相同的。我们可以从以下几个方面来理解嵌入式系统的含义:

嵌入式系统是面向用户、面向产品、面向应用的,必须与具体应用相结合才会具有生命力。正因为与具体应用的紧密结合,嵌入式系统才具有很强的专用性。

嵌入式系统将先进的半导体技术、计算机技术和电子技术,以及各个行业的具体应用相结合,是一个技术密集、资金密集、学科交叉和不断创新的知识集成系统。

由于嵌入式系统必须根据应用需要对硬件和软件进行裁剪,以满足应用系统对功能、可靠性、成本、体积和功耗的要求。因此,嵌入式系统的开发难度比较大,技术门槛较高。比较好的开发模式是:首先建立相对通用的硬件和软件基础,然后针对具体的应用做最少量的软硬件改动。由上述可以看出,嵌入式系统是一个外延极广的概念,凡是与产品结合在一起的、具有嵌入式系统特点的系统都可以称为嵌入式系统。6嵌入式系统的组成复位及振荡电路处理器定时器ROMRAM串行口中断控制并口输入/输出设备接口及驱动电路系统专用电路图1.1嵌入式系统的硬件组成嵌入式系统一般有3个主要的组成部分:

硬件。图1.1给出了嵌入式系统的硬件组成。其中,处理器是系统的运算核心;存储器(ROM、RAM)用来保存可执行代码,以及中间结果;输入输出设备完成与系统外部的信息交换;其他部分辅助系统完成功能。

应用软件。应用软件是完成系统功能的主要软件,它可以由单独的一个任务来实现,也可以由多个并行的任务来实现。

实时操作系统(Real-TimeOperatingSystem,RTOS)。该系统用来管理应用软件,并提供一种机制,使得处理器分时地执行各个任务并完成一定的时限要求。7嵌入式系统的关键在于结合系统硬件电路与其特定的软件,以达到系统运行性能成本的最高比。系统中硬件的设计包括微处理器及存储器电路的设计、网络功能设计、无线通信设计及接口电路设计,等等;而嵌入式软件则专门负责硬件电路的驱动、控制处理,以提升硬件产品的价值,是硬件产品不可或缺的重要部分,它常以固件(Firmware)的形式出现,如控制或驱动程序等。由于嵌入式系统领域的硬件、软件种类繁多,产品研发需要适应多种不同硬件与软件的组合。为了克服多样化,现在的研发方式多以平台化设计(Platform-BasedDesign,PBD)为主。平台化设计的基本思路是,以某一种基础的硬件与软件参考设计(referencedesign)为平台,自行加上额外所需要的硬件与软件,以适应多样化的产品需求,而不必每款产品都从头设计。这种设计方式可以缩短研发进程,加速产品的上市时间。这样的参考设计平台大多会由微处理器制造公司提供,例如,Intel、三星、Motorola等厂商提供微处理器的参考设计电路,以及建议的外围设备布局,包括内存、基本I/O甚至包括LCD控制接口、IDE设备接口,等等,并且配合某一款操作系统,例如,Linux、WinCE,以及相应的软件源代码。将这样的组合包以授权的方式提供给产品开发厂商来开发产品,一般这样的组合包称为“板级支持包”(BoardSupportPackage,BSP)。由于嵌入式系统的硬件强调的不是执行速度而是功能稳定,因此硬件设计方面的技术瓶颈并不高;反而在软件组件方面,强调系统集成及友善的用户界面。随着网络与无线通信的发展需要,软件组件的发展更加重要。未来的软件开发将逐渐由现在的简易窗口与低速通信,向高速通信与多样化的用户界面发展。8

嵌入式系统的特点作为专用计算机系统的嵌入式系统与通用计算机系统相比,具有以下几个重要特征:

嵌入式系统通常是面向特定应用的。嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点。

嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能完成功能、可靠性和功耗的苛刻要求。

实时操作系统支持。嵌入式系统的应用程序可以不需要操作系统的支持直接运行,但是为了合理地调度多任务,充分利用系统资源,用户必须自行选配实时操作系统开发平台。

嵌入式系统与具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。

嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中。

专门开发工具支持。嵌入式系统本身不具备自主开发能力,即使在设计完成以后,用户通常也不能对程序功能进行修改,必须有一套开发工具和环境才能进行开发。9

嵌入式系统的应用MIT的DavidClark首次提出的“后PC时代”(post-PCera)一词,指出个人计算机提供的只是在这个过渡时期的解决方案,而非最佳的方式,最终发展的应用将不会停留在桌面上的个人计算机,而是从桌面上蔓延下来,进入用户的日常生活中。从技术层面来讲,将来的嵌入式系统应用将向软硬件系统集成、SOC设计、应用程序,以及内容服务这几个方面发展。

系统:嵌入式操作系统除了老牌嵌入式操作系统厂商VxWORKs、QNX、Nucleus等之外,新兴的主要竞争产品有PalmOS、WindowsCE、Linux等。其中EmbeddedLinux操作系统因为免费授权的特性,已经被很多国际型厂商采用。

集成式芯片:SOC“系统单芯片”(System-On-Chip,SOC)研究的领域包括创新系统设计、系统平台建立,以及相关硅知识产权(SiliconIntellectualProperty,SIP)的设计、验证与集成等。

应用软件嵌入式软件一般可以分为客户端的应用软件和服务器端的集成软件。服务器端的软件较为单一,客户端由于应用领域广泛,开发出的软件也是多种多样的。

服务由于嵌入式产品的便携性,以及消费类电子产品输入输出的多媒体化,再加上嵌入式产品与网络的紧密结合,嵌入式产品相关的增值服务变得更加重要。10嵌入式系统的发展嵌入式系统的发展与通用计算机技术的发展密不可分,但是又有着自己独立发展的道路。由于应用目标的不同,使得这两种体系的发展方向有所不同。通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无限提升,存储容量的无限扩大。由于嵌入式计算机系统要嵌入到目标体系中,实现的是对目标的智能化控制,因此,它有着与通用计算机系统完全不同的技术要求与技术发展方向。嵌入式系统的技术发展方向是与目标系统密切相关的嵌入性能、控制能力与控制的可靠性。Intel公司于1971年推出有史以来第一个4位微处理器4004,接着德州仪器与国家半导体公司也随后推出各自的4位微处理器。1974年Intel公司又推出了8位微处理器芯片8080,随后Zilog公司的Z-80、国家半导体公司的NSC800及Intel公司的8085等相继问世。第一个商品化的16位嵌入式系统微处理器是德州仪器公司所推出的9940,因为它的功能少,而且指令集贫乏,并未引起很大的注意。大家比较熟悉的16位微处理器产品是Intel公司所开发的8086微处理器及Motorola公司所开发的68000微处理器。当时IBM所推出的个人计算机即是采用8086作为数据处理及控制核心。通用微处理器沿着8086/8088、80286、80386、80486、Pentium、PentiumII、PentiumIII、Pentium4的线路发展,主频从十几MHz到现在的3GHz,字长也从8086的16位发展到了现在AMD64和PentiumD的64位。整体微型计算机的运算能力和存储能力都实现了海量的增长。11嵌入式系统起源于微型计算机时代,然而,由于微型计算机的体积、价位、可靠性都无法满足嵌入式应用的要求。因此,嵌入式系统必须走独立发展道路,即单芯片化道路。将计算机做在一个芯片上,从而开创了嵌入式系统独立发展的单片机时代。在探索单片机的发展道路时,有过两种模式,即“Σ模式”与“创新模式”。“Σ模式”本质上是通用计算机直接单芯片化的模式,它将通用计算机系统中的基本单元进行裁剪后,集成在一个芯片上,构成单片微型计算机;“创新模式”则完全按嵌入式应用要求设计全新的、满足嵌入式应用要求的体系结构、微处理器、指令系统、总线方式、管理模式等。Intel公司的MCS-48、MCS-51就是按照创新模式发展起来的单片形态的嵌入式系统(单片微型计算机)。MCS-51是在探索MCS-48的基础上,进行全面完善的嵌入式系统,它定位在具有可伸缩性并且低成本的产品控制单元,至今仍被广泛地使用。历史证明,“创新模式”是嵌入式系统独立发展的正确道路,MCS-51的体系结构也因此成为单片嵌入式系统的典型结构体系。12单片机的技术发展经历了SCM、MCU、SOC三大阶段。SCM阶段,即单片微型计算机(SingleChipMicrocomputer)阶段,主要是寻求单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。MCU阶段,即微控制器(MicroControllerUnit)阶段,不断扩展各种外围电路与接口电路,增强智能化控制能力。单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SOC化趋势。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。从2000年开始,以往的ASIC(专用集成电路,SOC的主要实现方式)设计已经逐渐被IP(IntellectualProperty)或SIP(SiliconIntellectualProperty)所替代。SIP称为硅知识产权,或半导体知识产权(SemiconductorIntellectualProperty),也就是芯片电路的制作方式或电路图等知识产权,在知识产权前面加上硅或半导体,是为了与一般所称的知识产权有所区分。目前最受市场欢迎的嵌入式处理器就是由ARM公司出品的ARM系列处理器。ARM公司只提供IP授权,并不自行制造处理器。由于它的ARMRISC结构微处理器有着低消耗功率、高运算性能,以及高度集成性等特性,使得许多芯片设计公司与芯片制造公司竞相向ARM公司购买ARM处理器的核心,作为自己公司微处理器芯片中的运算核心。ARM公司也因此成为全球最大的IP供应商。13嵌入式计算机系统起源于微型机时代,但很快就进入到独立发展的单片机时代。在单片机时代,嵌入式系统以器件的形式迅速进入到传统电子技术领域中,以电子技术应用工程师为主体,实现传统电子系统的智能化,而计算机专业人员并没有真正进入单片机应用领域。因此,电子技术应用工程师以自己习惯的电子技术应用模式,从事单片机的应用开发。这种应用模式最重要的特点是:软、硬件的底层性和随意性;目标系统专业技术的密切相关性,以及缺少计算机工程设计方法的指导。虽然在单片机时代,计算机专业淡出了嵌入式系统领域,但随着后PC时代的到来,网络、通信技术的高速发展;同时,嵌入式系统软、硬件技术有了很大的提升,为计算机专业人员介入嵌入式系统应用开辟了广阔天地。计算机专业人士的介入,形成的计算机应用模式带有明显的计算机的工程应用特点,即基于嵌入式系统软、硬件平台,以网络、通信为主的非嵌入式底层应用。由于嵌入式系统最大、最广、最底层的应用是传统电子技术领域的智能化改造,因此,以通晓该专业的电子技术队伍为主,用最少的嵌入式系统软、硬件开销;以8位机为主,带有浓重的电子系统设计色彩的电子系统应用模式会长期存在下去。另外,计算机专业人员会越来越多地介入嵌入式系统应用,但限于专业知识的差异,其应用领域会集中在网络、通信、多媒体、电子商务等方面,不可能替代原来电子工程师在控制、仪器仪表、机械电子等方面的嵌入式应用。因此,客观存在的两种应用模式会长期并存下去,在不同的领域中相互补充。电子系统设计模式应该从计算机应用设计模式中,学习计算机工程方法和嵌入式系统软件技术;计算机应用设计模式应该从电子系统设计模式中,了解嵌入式系统应用的电路系统特性、基本的外围电路设计方法和目标系统的基本要求等。141.2嵌入式处理器嵌入式系统的核心部件是嵌入式处理器,据不完全统计,到2000年全世界嵌入式处理器的品种总量已经超过1000种,流行体系结构有30多个系列,其中8051体系的占了多半。生产8051单片机的半导体厂家有20多个,共350多种衍生产品,仅Philips就有近百种。现在几乎每个半导体制造商都生产嵌入式处理器,而且越来越多的公司有自己的处理器设计部门。嵌入式处理器的寻址空间一般从64KB到16MB,处理速度从0.1MIPS到2000MIPS,常用封装从8个引脚到144个引脚。§1.2.1嵌入式处理器的分类§1.2.2ARM微处理器§1.2.3Nios微处理器§1.2.4DSP§1.2.5嵌入式微处理器的选型原则15嵌入式处理器的分类微处理器可以分成几种不同的等级,一般用字符宽度来区分:8位微处理器大部分都是用在低端应用上,也包括了外围设备或是内存的控制器;16位微处理器通常用在比较精密的应用上,需要比较长的字符宽度来处理;32位微处理器,大部分是RISC的微处理器,则提供高性能的运算能力,以满足需要大量运算的应用。但是从应用的角度来划分,嵌入式处理器包含了下面几种类型。1.嵌入式微处理器(EmbeddedMicroprocessorUnit,EMPU)嵌入式微处理器的基础是通用计算机中的CPU。在应用中,将微处理器装配在专门设计的电路板上,只保留与嵌入式应用有关的功能,这样可以大大减小系统体积和功耗。为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。嵌入式处理器目前主要有Am186/88、386EX、SC-400、PowerPC、68000、MIPS、ARM系列等。嵌入式微处理器又可分为CISC和RISC两类。大家熟悉的大多数台式PC都是使用CISC微处理器,如Intel的x86。RISC结构体系有两大主流:SiliconGraphics公司(硅谷图形公司)的MIPS技术;ARM公司的AdvancedRISCMachines技术。此外,Hitachi(日立公司)也有自己的一套RISC技术SuperH。16RISC和CISC是目前设计制造微处理器的两种典型技术,为达到高效的目的,采用的方法不同。它们的差异主要有以下几点。(1)指令系统:RISC设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来实现。而CISC计算机的指令系统比较丰富,有专用指令来完成特定的功能。(2)存储器操作:RISC对存储器操作有限制,使控制简单化;而CISC机器的存储器操作指令多,操作直接。(3)程序:RISC汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC汇编语言程序编程相对简单,科学计算及复杂操作的程序设计相对容易,效率较高。(4)中断:RISC机器在一条指令执行的适当地方可以响应中断;而CISC机器是在一条指令执行结束后响应中断的。(5)CPU:由于RISCCPU包含较少的单元电路,因而面积小、功耗低;而CISCCPU包含丰富的电路单元,因而功能强、面积大、功耗大。(6)设计周期:RISC微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC微处理器结构复杂,设计周期长。(7)易用性:RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。(8)应用范围:RISC机器更适合于嵌入式应用;而CISC机器则更适合于通用计算机。172、嵌入式微控制器(MicrocontrollerUnit,MCU)嵌入式微控制器又称单片机,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM、RAM、总线逻辑、定时器等各种必要的功能模块。与嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。微控制器是目前嵌入式系统应用的主流。由于微控制器的片上资源一般比较丰富,适合于控制,因此称微控制器。为适应不同的应用需求,一般一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。这样可以最大限度地与应用需求相匹配,从而减小功耗和成本。嵌入式微控制器目前的品种和数量最多,比较有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。另外,还有许多半通用系列,如支持USB接口的MCU8XC930/931、C540、C541。值得注意的是,近年来提供X86微处理器的著名厂商AMD公司,将Am186CC/CH/CU等嵌入式处理器也称为Microcontroller,Motorola公司把以PowerPC为基础的PPC505和PPC555列入单片机行列,TI公司也将其TMS320C2XXX系列DSP作为MCU来推广应用。183.嵌入式DSP(EmbeddedDigitalSignalProcessor,EDSP)DSP对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面,DSP算法正在大量进入嵌入式领域。推动嵌入式DSP发展的一个重要因素是嵌入式系统的智能化。例如,各种带有智能逻辑的消费类产品、生物信息识别终端、带有加解密算法的键盘、ADSL接入、实时语音压缩解压系统、虚拟现实显示,等等。这类智能化算法一般运算量都比较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP的长处所在。嵌入式DSP有两个发展来源,一是DSP经过单片化、EMC改造、增加片上外设成为嵌入式DSP,TI的TMS320C2000/C5000等属于此范畴;二是在通用单片机或片上系统(SOC)中增加DSP协处理器,例如Intel的MCS-296。嵌入式DSP比较有代表性的产品是TexasInstruments的TMS320系列和Motorola的DSP56000系列。TMS320系列处理器包括用于控制的C2000系列,用于移动通信的C5000系列,以及性能更高的C6000和C8000系列。DSP56000目前已经发展成为DSP56000,DSP56100,DSP56200和DSP56300等几个不同系列的处理器。DSP的设计者们把重点放在了处理连续的数据流上。如果嵌入式应用中强调对连续的数据流的处理及高精度复杂运算,则应该选用DSP器件。194.嵌入式片上系统(SystemOnChip)随着VLSI设计的普及和半导体工艺的迅速发展,可以在一块硅片上实现一个更为复杂的系统,这就是SOC(Systemon-Chip)。各种通用处理器内核和其他外围设备都将成为SOC设计公司的标准库中的器件,用标准的VHDL等硬件描述语言描述。用户只需定义出整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作芯片样品。这样,整个嵌入式系统大部分都可以集成到一块芯片中去,应用系统的电路板将变得很简洁,这将有利于减小体积和功耗,提高系统的可靠性。SOC可以分为通用和专用两类。通用系列包括Motorola的M-Core、某些ARM系列器件、Echelon和Motorola联合研制的Neuron芯片等。专用SOC一般专用于某类系统中,不为一般用户所知。一个有代表性的产品是Philips的SmartXA,它将XA单片机内核和支持超过2048位复杂RSA算法的CCU单元制作在一块硅片上,形成一个可加载JAVA或C语言的专用的SOC,可用于Internet安全方面。20ARM微处理器ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即通常所说的ARM微处理器,已广泛应用于工业控制、消费类电子产品、通信系统、网络系统、无线系统等各个领域。1.ARM微处理器的应用领域

工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。

无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。

网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。

消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。

成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。212.ARM微处理器的特点,采用RISC架构的ARM微处理器具有如下特点:

体积小、低功耗、低成本、高性能;

支持Thumb(16位)/ARM(32位)双指令集,兼容8位/16位器件;

大量使用寄存器,指令执行速度更快;

大多数数据操作都在寄存器中完成;

寻址方式灵活简单,执行效率高;

指令长度固定3.ARM微处理器系列ARM7系列ARM9系列ARM9E系列ARM10E系列SecurCore系列Intel的StrongARMIntel的Xscale其中,ARM7、ARM9、ARM9E和ARM10E为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。如ARM7系列适用于工业控制、网络设备、移动电话等应用;ARM9、ARM9E和ARM10E系列则更适合无线设备、消费类电子产品的设计。SecurCore系列专门为安全要求较高的应用而设计。224.ARM微处理器的应用选型从应用的角度出发,在选择ARM微处理器时所应考虑的主要问题有以下几个方面。

ARM微处理器内核的选择。从前面所介绍的内容可知,ARM微处理器包含一系列的内核结构,以适应不同的应用领域,如果用户希望使用WinCE或标准Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU(MemoryManagementUnit)功能的ARM芯片,如ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都带有MMU功能。

系统的工作频率。系统的工作频率在很大程度上决定了ARM微处理器的处理能力。ARM7系列微处理器的典型处理速度为0.9MIPS/MHz,常见的ARM7芯片系统主时钟为20MHz~133MHz,ARM9系列微处理器的典型处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟频率为100MHz~233MHz,ARM10最高可以达到700MHz。

芯片内存储器的容量。大多数的ARM微处理器片内存储器的容量都不大,需要用户在设计系统时外扩存储器,但也有部分芯片具有相对较大的片内存储空间。

片内外围电路的选择。除ARM微处理器核以外,几乎所有的ARM芯片均根据各自不同的应用领域,扩展了相关功能模块,并集成在芯片之中,我们称之为片内外围电路,如USB接口、IIS接口、LCD控制器、键盘接口、RTC、ADC和DAC、DSP协处理器等。23Nios微处理器Nios是Altera公司特有的基于通用FPGA构架的软CPU内核。在可编程逻辑器件中,用户使用CPU,绝大多数并不是为了追求性能,而是为了PLD特有的灵活性和可定制性,同时也可以提高系统的集成度,这些正是Nios系统天生具备的。Nios是Altera公司开发的嵌入式CPU软内核,几乎可以在Altera所有的FPGA产品上实现。器件设计软件说明StratixIIQuartusII最高性能,最高密度,特性丰富的平台,丰富的存储器资源Stratix高性能,高密度,性能丰富的平台,丰富的存储器资源StratixGX高性能,带有高速穿行收发器的结构Cyclone

低成本,ASIC的替代品——适合价格敏感的应用APEXII高密度,高性能平台,带有高速差分I/O标准的支持Mercury高性能,高带宽,中密度平台,包含有时钟恢复(CDR)电路Excalibur高性能,硬核处理器方案APEX20K高性能,中高密度平台FLEX10K低成本,中低密度平台ACEX1K低成本,中低密度平台HardCopy高密度,大批量,ASIC的替代品24由于Nios处理器及其外设都是用HDL语言编写的,在FPGA内部利用通用的逻辑资源实现,所以在Altera的FPGA内部实现嵌入式系统具有极大的灵活性。凭借不错的性能和非常灵活的配置,Nios已经被许多客户接受。Nios常常被应用在一些集成度较高,对成本敏感,以及功耗要求不高的场合,如远程读表器和医疗诊断设备。Altera公司在Nios的基础上推出了其第二代嵌入式处理器软核NiosII。与前一代相比,用户的配置和使用更加灵活,同时在占用逻辑资源和性能上都有明显的改善。NiosII处理器是一个通用的32位RISC处理器内核。其主要特点如下。

完全的32位指令集、数据通道和地址空间;

可配置的指令和数据Cache;

32个通用寄存器;

32个有优先级的外部中断源;

单指令的32×32乘除法,产生32位结果;

多种片上外设,并能够与片外存储器和外设接口;

具有硬件协助的调试模块,可以在IDE中控制处理器完成各种调试工作,如开始、停止、单步和跟踪,等等;

在不同的NiosII系统中,指令集结构(ISA)完全兼容;

性能达到150DMIPS以上NiosII处理器内核有三种类型,用来满足不同设计的要求,分别是快速型、经济型和标准型。快速型NiosII内核(NiosII/f)具有最高的性能,经济型NiosII内核(NiosII/e)具有最低的资源占用,而标准型NiosII内核(NiosII/s)在性能和面积之问做了一个平衡。25NiosⅡ处理器系统包括一个可配置的CPU软内核、FPGA片内的存储器和外设、片外的存储器和外设接口等。一个典型的NiosII处理器系统如图所示。在图中,整个NiosII处理器系统包括NiosII处理器内核(包括调试模块)、Avalon交换总线、片内用户逻辑和片上外设。26系统中的外设,如SDRAM控制器、片内ROM、三态门、UART、定时器、LCD显示驱动电路、通用I/O、以太网接口和CompactFlash接口等都是使用FPGA内部的逻辑单元和RAM资源实现的。NiosII是一个可灵活配置的软内核处理器。所谓可灵活配置是指,Altera提供的处理器不是一个固定的微控制器,用户可以根据性能或成本的要求,灵活地增加或裁减一些系统特性和外设。为了满足应用的要求,用户甚至可以在系统中放置多个NiosII处理器内核。由于应用领域的不同,不同用户的系统设计可能差别很大。要求用户根据自己的系统需求,选择合适的FPGA规模。在这些系统中,如果用户逻辑需要和NiosII处理器系统间相互通信,用户逻辑可以直接挂在片内的Avalon交换总线上,而且访问时序可以由用户自己定义。所谓软内核,是指NiosII是以一种“软”(加密网表)的设计形式交给客户使用的,它可以在几乎任何Altera的FPGA内部实现。用户根据应用的需要定制NiosII处理器的数量和类型,也可以自己定义需要的外设种类和数量,还可以自由分配外设的地址空问。用户甚至可以自己定制NiosII的指令,使得一些复杂的操作在用户指令中实现,这样可以提高某些特殊操作的性能。在NiosII系统的开发过程中,可以认为硬件细节对软件开发人员是透明的。NiosII的软件开发环境被称为NiosⅡ集成开发环境(NiosⅡIDE)。NiosIIIDE是基于EclipseIDE和GNUC/C++编译器的,软件开发人员可以很容易地掌握此开发环境的操作,并利用它对NiosⅡ系统的软件进行编译、仿真和调试。NiosIIIDE同时提供了FlashProgrammer的功能,在软件调试完成以后,可以通过FlashProgrammer把应用程序烧到FlashROM中,使得Nios系统在上电配置完成以后,自动从Flash中开始运行程序。27DSPDSP(DigitalSignalProcessing)也就是常说的数字信号处理,它利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。DSP就是一种特别适合于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下主要特点。

在一个指令周期内可完成一次乘法和一次加法;

程序和数据空间分开,可以同时访问指令和数据;

片内具有快速RAM,通常可以通过独立的数据总线在两块中同时访问;

具有低开销或无开销循环及跳转的硬件支持;

快速的中断处理和硬件I/O支持;

具有在单周期内操作的多个硬件地址产生器;

可以并行执行多个操作;

支持流水线操作,使取指、译码和执行等操作可以重叠执行。在近20年里,DSP在信号处理、通信、雷达等许多领域得到广泛的应用。目前,DSP的价格越来越低,性能价格比日益提高,具有巨大的应用潜力。它的主要应用有:信号处理、通信、语音、图形/图像、军事、仪器仪表、自动控制、医疗、家用电器。28目前世界上生产DSP的公司主要有TI(德州仪器)公司,AD(美国模拟器件)公司,Technologics(朗讯技术)公司和Motorola(摩托罗拉)公司四大公司,而TI公司则是世界上最大的DSP供应商。著名的TMS320系列产品就是该公司的DSP产品。DSP的基本结构为哈佛结构,并结合了流水线操作、专业的硬件乘法器、特殊的DSP指令和快速的指令周期,使得它非常适合于数字信号处理应用。在目前,现代通信技术的发展,特别是数字通信、移动通信和卫星通信的普及,数字音响的商业化,DSP的市场前景越来越好。以移动电话设备来说,通信流程大概是当手机通过天线收到射频信号后,将过滤后的高频信号送到混频器降为中频信号,再经过解调器变为低频或基频信号后,送至数字信号处理器处理,经过处理的信号再予以调节及解码,便可以通过扬声器送出,成为语音或是直接转换成各类数据。发话时,信号则通过相反的程序处理与送出,所以手机包含了射频系统与数字信号处理器再加上一般微处理器系统,成为一个高度集成的嵌入式系统。从现代通信等技术对DSP的要求来看,DSP芯片有以下几个发展趋势:

向更低功耗方向发展;

向更高的性能方向发展;

向定制DSP芯片方向发展;

向集成化方向发展;

提供更加完善的开发环境。29嵌入式微处理器的选型原则

调查市场上已有的CPU供应商。

CPU的处理速度。

技术指标。

处理器的低功耗。

处理器的软件支持工具。

处理器是否内置调试工具。

处理器供应商是否提供评估板。选择一个嵌入式系统运行所需要的微处理器,在很多时候运算速度并不是最重要的考虑内容,有时候也必须考虑微处理器制造厂商对于该微处理器的支持态度,有些嵌入式系统产品一用就是几十年,如果过了五六年之后需要维修,却已经找不到该种微处理器的话,势必全部产品都要淘汰,所以许多专门生产嵌入式系统微处理器的厂商,都会为嵌入式系统的微处理器留下足够的库存或是生产线,即使过好几年之后还可以找到相同型号的微处理器或者完全兼容的替代品。301.3嵌入式操作系统提到桌面型计算机的操作系统,全世界超过九成的PC使用的是微软(Microsoft)公司的Windows操作系统,其他也有一些颇具知名度的操作系统,如苹果(Apple)公司的MacOS,工作站级计算机常用的Sun公司的Solaris,还有Linux或是FreeBSD等免费的操作系统。但是提到嵌入式系统中所使用的操作系统,一般用户就很少了解了。由于大型嵌入式系统需要完成复杂的功能,所以需要操作系统来完成各任务之间的调度。由于桌面型操作系统的体积,以及实时性等特性不能满足嵌入式系统的要求,从而促进了嵌入式操作系统的发展1.3.1操作系统的概念和分类1.3.2Linux1.3.3

C/OS1.3.4WindowsCE31操作系统的概念和分类操作系统(OS,OperatingSystem)的基本思想是隐藏底层不同硬件的差异,向在其上运行的应用程序提供一个统一的调用接口。应用程序通过这一接口实现对硬件的使用和控制,不必考虑不同硬件操作方式的差异。操作系统示意图如下所示。很多产品厂商选择购买操作系统,在此基础上开发自己的应用程序,形成产品。事实上,因为嵌入式系统是将所有程序,包括操作系统、驱动程序、应用程序的程序代码全部烧写进ROM里执行,所以操作系统在这里的角色更像是一套函数库(Library)。操作系统主要完成三项任务:内存管理、多任务管理和外围设备管理。应用程序操作系统系统界面驱动程序硬件硬件硬件硬件32嵌入式操作系统(EmbeddedOperatingSystem)负责嵌入式系统的全部软、硬件资源的分配、调度、控制、协调;它必须体现其所在系统的特征,能够通过加载/卸载某些模块来达到系统所要求的功能。EOS是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下特点。

强稳定性,弱交互性:嵌入式系统一旦开始运行就不需要用户过多的干预,这就要求负责系统管理的EOS具有很强的稳定性;

较强的实时性:EOS实时性一般较强,可用于各种设备的控制当中;

可伸缩性:开放、可伸缩性的体系结构;

外设接口的统一性:提供各种设备驱动接口。嵌入式系统的操作系统核心通常要求体积要很小,因为硬件ROM的容量有限,除了应用程序之外,不希望操作系统占用太大的存储空间。事实上,嵌入式操作系统可以很小,只提供基本的管理功能和调度功能,缩小到10KB到20KB以内的嵌入式操作系统比比皆是,相信用惯微软的Windows系统的用户,可能会觉得不可思议。不同的应用场合会产生不同特点的嵌入式操作系统,但都会有一个核心(Kernel)和一些系统服务(SystemService)。操作系统必须提供一些系统服务供应用程序调用,包括文件系统、内存分配、I/O存取服务、中断服务、任务(Task)服务、时间(Timer)服务等,设备驱动程序(DeviceDriver)则是要建立在I/O存取和中断服务上的。有些嵌入式操作系统也会提供多种通信协议,以及用户接口函数库等。33

实时操作系统(Real-TimeOperatingSystem,RTOS),是指操作系统本身要能在一个固定时限内对程序调用(或外部事件)做出正确的反应,亦即对时序与稳定性的要求十分严格。目前国际较为知名的实时操作系统有WindRiver的“VxWorks”、QNX的“NeutrinoRTOS”、AcceleratedTechnology的“NucleusPlus”、Radisys的“OS/9”、MentorGraphic的“VRTX”、LynuxWorks的“LynuxOS”,以及EmbeddedLinux厂商所提供的EmbeddedLinux版本,如TimeSys的“TimeSysLinux/RealTime”、FSMLabs的“RTLinux”、LynuxWorks的“BlueCatRT”等。其产品主要应用于航天、国防、医疗、工业控制等领域,这些领域的设备需要高度精确的实时操作系统,以确保系统任务的执行不会发生难以弥补的意外。目前,实时操作系统也开始向信息家电等消费类电子产品领域扩展。例如WindRiver的“VxWorks”原本从航天、国防领域起家,如今也应用在网络电话、视频转换器等消费类电子产品上。

通用型操作系统:执行性能与反应速度比起实时操作系统,相对没有那么严格。目前较知名的有Microsoft的“WindowsCE”、Palmsource的“PalmOS”、Symbian的“SymbianOS”以及EmbeddedLinux厂商所提供的各式EmbeddedLinux版本,如Metrowerks的“Embedix”、TimeSys的“TimeSysLinux/GPL”、LynuxWorks的“BlueCatLinux”、PalmPalm的“Tynux”等,其产品主要应用于手持式设备、各式联网家电、网络设备等领域。嵌入式操作系统的性能通常取决于核心程序,而核心的工作主要在任务管理(TaskManagement)、任务调度(TaskScheduling)、进程间的通信(IPC)、内存管理(MemoryManagement)。34LinuxLinux是目前最为流行的一款开放源代码的操作系统,从1991年问世到现在,不仅在PC平台,还在嵌入式应用中大放光彩,逐渐形成了与其他商业EOS抗衡的局面。目前正在开发的嵌入式系统中,70%以上的项目选择Linux作为嵌入式操作系统。经过改造后的嵌入式Linux具有适合于嵌入式系统的特点。

内核精简,高性能、稳定;

良好的多任务支持;

适用于不同的CPU体系架构:支持多种体系架构,如X86、ARM、MIPS、ALPHA、SPARC等;

可伸缩的结构:可伸缩的结构使Linux适合于从简单到复杂的各种嵌入式应用;

外设接口统一:以设备驱动程序的方式为应用提供统一的外设接口;

开放源码,软件资源丰富:广泛的软件开发者的支持,价格低廉,结构灵活,适用面广;

完整的技术文档,便于用户的二次开发。35

C/OS-Ⅱ

C/OS-Ⅱ是JeanJ.Labrosse在1990年前后编写的一个实时操作系统内核。名称

C/OS-II来源于术语Micro-ControllerOperatingSystem(微控制器操作系统)。它通常也称为MUCOS或者UCOS。严格地说,

C/OS-Ⅱ只是一个实时操作系统内核,它仅仅包含了任务调度、任务管理、时间管理、内存管理和任务间通信和同步等基本功能,没有提供输入输出管理、文件管理、网络等额外的服务。但由于

C/OS-Ⅱ良好的可扩展性和源码开放,这些功能完全可以由用户根据需要自己实现。

C/OS-Ⅱ的目标是实现一个基于优先级调度的抢占式实时内核,并在这个内核之上提供最基本的系统服务,例如信号量、邮箱、消息队列、内存管理、中断管理等。虽然

C/OS-Ⅱ并不是一个商业实时操作系统,但

C/OS-Ⅱ的稳定性和实用性却被数百个商业级的应用所验证,其应用领域包括便携式电话、运动控制卡、自动支付终端、交换机等。

C/OS-Ⅱ获得广泛使用不仅仅是因为它的源码开放,还有一个重要原因,就是它的可移植性。

C/OS-Ⅱ的大部分代码都是用C语言写成的,只有与处理器的硬件相关的一部分代码用汇编语言编写。可以说,

C/OS-Ⅱ在最初设计时就考虑到了系统的可移植性,这一点和同样源码开放的Linux很不一样,后者在开始的时候只是用于x86体系结构,后来才将和硬件相关的代码单独提取出来。目前

C/OS-Ⅱ支持ARM、PowerPC、MIPS、68k/ColdFire和x86等多种体系结构。362.1Linux及其应用Linux操作系统是UNIX操作系统的一种克隆系统。它诞生于1991年的10月5日(这是第一次正式向外公布的时间)。此后借助于因特网,经过全世界各地计算机爱好者的共同努力,现已成为当今世界上使用最多的一种UNIX类操作系统,并且使用人数还在迅猛增长。2.1.1Linux与UNIX和GNU2.1.2Linux的特点2.1.3Linux的发展及应用37Linux与UNIX和GNUUNIX操作系统是美国贝尔实验室的Ken.Thompson和DennisRitchie于1969年夏在DECPDP-7小型计算机上开发的一个分时操作系统。KenThompson在1969年夏天利用一个月的时间开发了UNIX操作系统的原型。后经DennisRitchie于1972年用移植性很强的C语言进行了改写,使得UNIX系统在大专院校得到了推广。MINIX系统是由AndrewS.Tanenbaum(AST)于1987年开发的,主要用于学生学习操作系统原理。AST工作在荷兰Amsterdam的Vrije大学,并从事数学与计算机科学系统研究,是ACM和IEEE的资深会员(全世界也只有很少人是两会的资深会员)。GNU计划和自由软件基金会FSF(theFreeSoftwareFoundation)是由RichardM.Stallman于1984年一手创办的,旨在开发一个类似UNIX,并且是自由软件的完整操作系统:GNU系统(GNU是“GNU’sNotUNIX”的递归缩写,它的发音为“gun-NEW”)。各种使用Linux作为核心的GNU操作系统正在被广泛地使用。虽然这些系统通常被称为“Linux”,但是Stallman认为,以严格意义上讲,它们应该被称为GNU/Linux系统。到20世纪90年代初,GNU项目已经开发出许多高质量的免费软件,其中包括有名的emacs编辑系统、bashshell程序、gcc系列编译程序、gdb调试程序,等等。这些软件为Linux操作系统的开发创造了一个合适的环境,这也是Linux能够诞生的基础之一,以至于目前许多人都将Linux操作系统称为“GNU/Linux”操作系统。38POSIX(PortableOperatingSystemInterfaceforComputingSystems)是由IEEE和ISO/IEC开发的一组标准。该标准是基于现有UNIX的实践经验,描述了操作系统的调用服务接口。用于保证编制的应用程序可以在源代码一级上、在多种操作系统上移植和运行。它是在1980年一个UNIX用户组(usr/group)的早期工作基础上完成的。20世纪90年代初,POSIX标准的制定处于最后投票敲定的时候,此时也正是Linux刚刚起步的时候,这个UNIX标准为Linux提供了极为重要的信息,使得Linux能够在标准的指导下进行开发,并能够与绝大多数UNIX操作系统兼容。通过上述说明,我们可以对上述Linux的5大支柱归纳如下:

UNIX操作系统——Linux就是UNIX的一种克隆系统。UNIX的重要性就不用多说了。

MINIX操作系统——MINIX操作系统也是UNIX的一种克隆系统,它于1987年由著名计算机教授AndrewS.Tanenbaum开发完成。由于MINIX系统的出现并且提供源代码(只能免费用于大学内),在全世界的大学中刮起了学习UNIX系统旋风。Linux刚开始就是参照MINIX系统于1991年才开始开发。

GNU计划——开发Linux操作系统,以及Linux上所用大多数软件基本上都出自GNU计划。Linux只是操作系统的一个内核,没有GNU软件环境(如bashshell),则Linux将寸步难行。

POSIX标准——该标准在推动Linux操作系统以后朝着正规路上发展起着重要的作用,是Linux前进的灯塔。

Internet——如果没有Internet网,没有遍布全世界的无数计算机黑客的无私奉献,那么Linux最多只能发展到0.13(0.95)版的水平39Linux的特点1.开放性是指系统遵循世界标准规范,特别是遵循开放系统互联(OSI)国际标准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互联。Linux采用GPL授权,除了把源代码公开以外,任何人都可以自由使用、修改、散布;而Linux核心本身采用模块化设计,让人很容易增减功能,由于Linux具有这样高的可伸缩性,所以可以调出最适合我们硬件平台的核心出来。2.多用户是指系统资源可以被不同用户各自拥有并使用,即每个用户对自己的资源有特定的权限,互不影响。Linux和UNIX都具有多用户的特性。3.多任务是现代计算机最主要的一个特点。它是指计算机同时执行多个程序,而且各个程序的运行互相独立。Linux系统调度每一个进程平等地访问微处理器。由于CPU的处理速度非常快,其结果是,启动的应用程序看起来好像在并行运行。4.稳定性强,Linux不属于任何一家公司,但它却拥有全世界愿意投入自由软件的开发人员。在全球各处都有无数的人参与Linux核心的改进、调试与测试,也正因此造就了稳定度高的Linux。所以,Linux虽不是商业的产物,但它的质量却不逊于商业产品。5.设备独立性,是指操作系统把所有外部设备统一当做文件来看待,只要安装它们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。另外,由于用户可以免费得到Linux的内核源代码,因此,用户可以修改内核源代码,以便适应新增加的外部设备。406.提供了丰富的网络功能完善的内置网络是Linux的一大特点。Linux在通信和网络功能方面优于其他操作系统。Linux为用户提供了完善的、强大的网络功能,包括支持Internet、文件传输和远程访问。7.可靠的系统安全在Linux操作系统中采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这些措施为网络多用户环境中的用户提供了必要的安全保障。8.良好的可移植性可移植性是指将操作系统从一个平台转移到另一个平台,并使它仍然能按其自身的方式运行的能力。Linux一开始是基于Intel386机器设计的,但是随着网络的散布,加上有许多工程师致力于各式平台的移植,使得Linux可以在x86、MIPS、ARM/StrongARM、PowerPC、Motorola68k、HitachiSH3/SH4、Transmeta等平台上运行。这些平台几乎覆盖了所有嵌入式系统的CPU种类,这样,在硬件平台设计时,使得可以考虑的CPU种类增加了不少。9.应用软件多自由软件世界里有个很大的特点就是软件多,授权几乎都是采用GPL方式,大家都可以自由参考与使用,但是因为这些软件多半是由设计者利用空余时间开发的,不以赢利为目的,所以并不能担保这些软件完全没有问题。尽管如此,仍有许多优秀软件出现,例如,大家熟知的KDE与GNOME便是很好的证明。41Linux的发展及应用1991年10月5日,LinusTorvalds在新闻组comp.os.minix发布了大约有1万行代码的Linuxv0.01版本。1992年,大约有1000人在使用Linux,基本上都属于真正意义上的黑客。1993年,大约有100余名程序员参与Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux0.99的代码大约有十万行,用户大约有10万个左右。1994年3月,Linux1.0发布,代码量为17万行,正式采用GPL协议。Linux的代码中充实了对不同硬件系统的支持,大大提高了跨平台移植性。1995年,Linux可在Intel、Digital,以及SunSPARC处理器上运行了,用户量也超过了50万,相关介绍Linux的LinuxJournal杂志的发行也超过10万册。1996年6月,Linux2.0内核发布,此内核大约有40万行代码,并可以支持多个处理器。此时的Linux已经进入了实用阶段,全球大约有350万人使用。1997年夏,好莱坞影片《泰坦尼克号》在制作特效中使用的160台Alpha图形工作站中,有105台采用了Linux操作系统。1998年是Linux迅猛发展的一年。RedHat5.0获得了InfoWorld的操作系统奖项。4月,Mozilla代码发布,成为Linux图形界面上的王牌浏览器。王牌搜索引擎“Google”现身,采用的也是Linux服务器。Mysql数据库充分得到发展。12月,IBM发布了适用于Linux的文件系统AFS3.5,以及JikesJava编辑器和SecureMailer及DB2测试版,IBM的此番行为,可以看做是与Linux的第一次亲密接触。迫于Windows和Linux的压力,Sun逐渐开放了Java协议,并且在UltraSparc上支持Linux操作系统。由此可见,1998年可以说是Linux与商业接触的一年。421999年,IBM宣布与Redhat公司建立伙伴关系,以确保Redhat在IBM机器上正确运行。3月,第一届LinuxWorld大会的召开,象征Linux时代的来临。IBM、Compaq和Novell宣布投资Redhat公司,以前一直对Linux持否定态度的Oracle公司也宣布投资。5月,SGI公司宣布向Linux移植其先进的XFS文件系统。7月,IBM启动对Linux的支持服务,并发布了LinuxDB2。2000年初始,Sun公司在Linux的压力下宣布Solaris8降低售价。事实上,Linux对Sun造成的冲击远比对Windows来得更大。2月,RedHat发布了嵌入式Linux的开发环境,Linux在嵌入式行业的潜力逐渐被发掘出来。2001年Oracle宣布在OTN上的所有会员都可免费索取Oracle9i的Linux版本。IBM则决定投入10亿美元扩大Linux系统的应用。到了5月,微软公开反对“GPL”,此举引起了一场大规模的论战。8月,红色代码爆发,引得许多站点纷纷从Windows操作系统转向Linux操作系统。12月,RedHat为IBMs/390大型计算机提供了Linux解决方案。2002年是Linux企业化的一年。2月,微软公司迫于各州政府的压力,宣布扩大公开代码行动,这是Linux开源带来的深刻影响的结果。3月,内核开发者宣布新的Linux系统支持64位的计算机。2003年1月,NEC宣布将在其手机中使用Linux操作系统,代表着Linux成功进军手机领域。2004年6月的统计报告显示在世界500强超级计算机系统中,使用Linux操作系统的已经占到了280席,抢占了原本属于各种UNIX的份额。9月HP开始网罗Linux内核代码人员,以影响新版本的内核朝对HP有利的方式发展,而IBM则准备推出OpenPower服务器,仅运行Linux系统。43Linux的应用和优势(以银行为例)银行业是中国各行业中开展信息化建设最早的行业之一,其信息化建设投入力度大,信息化水平高,在各行业的IT应用和系统建设中走在前列。(1)银行业的数据量大且集中决定了其对主机、存储设备、网络设备等硬件设备需求很大;同时对存储管理、数据仓库、网络管理、网络安全、CRM等方面的软件需求也不小。正由于银行业的数据量大且集中,因此金融安全问题也越发突出。Linux的高可靠性和安全性是它在这一行业中应用的有力保障。(2)对银行业而言,成本因素在整体经济环境欠佳的今天显得尤其重要。选择Linux的动力很大程度上来自于各个企业公司预算的减少。(3)Linux系统所具有的优良集群特性也是吸引更多客户的原因。Linux集群系统能够让客户相对落后的PⅡ或PⅢ计算机变成可以处理复杂任务的超级计算机系统。这对客户来说是非常有吸引力的。(4)北京市商业银行综合业务系统建设采用了基于IBMServeri系列服务器的Linux解决方案。该解决方案从整体上减少了总拥有成本,并且减少了系统管理的复杂性,实现了对人员、财政及信息技术的有效管理,同时还提高了服务器管理能力。(5)再以印度工业开发银行(IDBI)为例。他们自1995年开始使用Linux系统从事关键的电话银行、资产追踪及人力资源管理等业务,IDBI因此节省的IT预算达到70%。(6)如今有越来越多的商业公司采用Linux作为操作系统,例如,科学工作者使用Linux来进行分布式计算,ISP使用Linux配置Intranet服务器、电话拨号服务器等网络服务器,CERN(西欧核子中心)采用Linux做物理数据处理。442.2Linux内核由于的源代码是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。因此,在广大编程人员的支持下,Linux的内核版本不断更新,新的内核修改了旧内核的缺陷,并增加了许多新的特性。用户如果想在自己的系统中使用这些新的特性,或想根据自己的系统量身定制更高效、更稳定可靠的内核,只需要重新编译内核。当内核的编译工作完成之后,会生成一个可执行的二进制文件,该二进制文件放入嵌入式系统的ROM中,可以完成系统的上电、复位自动运行。2.2.1Linux的内核特征2.2.2进程管理2.2.3内存管理2.2.4文件系统管理2.2.5设备管理2.2.6进程间通信机制45Linux的内核特征内核是操作系统的内部核心程序,它向外部提供了对计算机设备的核心管理调用。操作系统的代码分为以下两部分,内核所在的地址空间称为内核空间,外部管理程序与用户进程所占据的地址空间称为外部空间(用户空间)。通常,一个程序会跨越两个空间。当执行到内核空间的一段代码时,称程序处于核心态;而当程序执行到外部空间代码时,称程序处于用户态。单一内核(MonolithicKernel)曾经是操作系统的主流,它是指操作系统中所有的系统相关功能都被封装在内核中。它们与外部程序处在不同的内存地址空间中,并通过各种方式防止外部程序直接访问内核中的数据结构。程序只有通过一套称作系统调用(SystemCall)的界面访问内核结构。近些年来,微内核(MicroKernel)结构逐渐流行起来,成为操作系统的主要潮流。在微内核结构中,操作系统的内核只需要提供最基本、最核心的一部分操作(例如,创建和删除任务、内存管理、中断管理等)即可,而其他管理程序(如文件系统、网络协议栈等)则尽可能放在内核以外。这些外部程序可以独立运行,并对外部用户程序提供操作系统服务,服务之间使用进程间通信机制(IPC)进行交互。如同面向对象程序设计带来的好处一样,微内核使操作系统内部结构变得简单清晰。在内核以外的外部程序分别独立运行,其间并不互相关联。这样,可以对这些程序分别进行维护和拆装,只要遵循已经规定好的界面,就不会对其他程序有任何干扰。这使得程序代码在维护上十分方便,体现了面向对象式软件的结构特征。46微内核的结构也存在着不足之处。首先,程序代码之间的相互隔离,使得整个系统丧失了许多优化的机会。其次,部分资源浪费在外部进程之间的通信上,这样,微内核结构在效率上必然低于传统的单一内核结构,这些效率损失将作为结构精简的代价。总体上说,在当前的硬件条件下,微内核在效率上的损失小于其在结构上获得的收益,故而选取微内核成为操作系统的一大潮流。然而,Linux系统恰恰使用了单一内核结构。这是由于Linux是一个实用主义的操作系统。LinusTorvalds将代码执行效率作为自己操作系统的第一要务。在这样的发展过程中,参与Linux系统开发的程序员大多数为世界各地的黑客们。比起结构的清晰,他们更加注重功能的强大和高效率的代码。于是,他们将大量的精力花在优化代码上,而这样的全局性优化必然以损失结构精练作为代价,导致Linux中的每个部件都不能被轻易拆出,否则,必然破坏整体效率。虽然Linux是一个单一内核操作系统,但它与传统的单一内核UNIX操作系统不同。在普通的单一内核系统中,所有内核代码都是被静态编译连入的。而在Linux中,可以动态装入和卸载内核中的部分代码。Linux中将这样的代码段称为模块(Module),并对模块给予了强有力的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论