1嵌入式软件导论中科院软件中心张倪地址:北京中关村南4街4号邮编:100080电话:62629965手机:13911316708电子信箱:nizhang@sec.ac.cn2教学参考书钟锡昌、张倪,《嵌入式软件与Hopen系统》,北京航空航天大学出版社,2004.63课程考核中间两次练习最后一次闭卷考试课程考核成绩=两次练习成绩+闭卷考试成绩4课程内容第1章:嵌入式软件概述第2章:嵌入式操作系统第3章:嵌入式系统的软件开发环境第4章:嵌入式网络系统第5章:嵌入式数据库管理系统第6章:嵌入式窗口系统第7章:嵌入式系统的Java平台51嵌入式软件概述主要的内容包括:(1)嵌入式系统的概念与特点(2)嵌入式软件的概念与特点(3)嵌入式软件的组成(4)嵌入式软件的发展历程(5)嵌入式软件的应用领域61.1嵌入式系统的概念与特点71.1.1什么是嵌入式系统嵌入式系统也叫嵌入式计算机,我们可对它做如下的定义:嵌入式系统是指那些以应用为中心,以计算机技术为基础,为适应应用对功能、可靠性、成本、体积、功耗的严格要求,可对系统的软件和硬件进行配置的专用计算机系统。8嵌入式系统的组成外部设备是嵌入式系统与外部相交互的通道。常见的外部设备有Flash卡之类的外部存储设备和键盘、输入笔、LCD之类的输入输出设备。在很多嵌入式系统中还带有与系统的用途紧密相关的专用外部设备。存储器用于存储系统中的程序代码和数据。在嵌入式系统中,存储器有3种类型:RAM、ROM及混合存储器。RAM家族中有两个成员:静态RAM(SRAM)和动态RAM(DRAM)。ROM家族中有三个成员:掩膜ROM、可编程ROM(PROM)、擦写可编程ROM(EPROM)。混合存储器的主要成员有:EEPROM、NVRAM和Flash存储器。混合存储器的特点是既能随意读写,又能在断电后保持数据不丢失。中央处理器是嵌入式系统的核心,它负责控制整个系统的执行。当然,中央处理器要达到控制整个系统的目的,还需要得到其它外围电路的配合才行,不过在多数嵌入式系统的专用芯片上,中央处理器与外围控制电路是集成在一起的。嵌入式系统中的软件分为3个层次:操作系统、支撑软件和应用软件。其中操作系统和支撑软件是基础。应用软件则是最能体现整个嵌入式系统的特点和功能的部分。91.1.2计算机技术的两大分支计算机系统可分为通用计算机系统和嵌入式系统两类。它们二者是现代计算机技术发展的两个分支。这两个分支有着不同的技术要求与技术发展方向。101.1.3嵌入式系统的特点1.系统专用性强2.系统实时性高3.硬件与软件的互相依赖性强4.采用专用的嵌入式CPU5.多种技术间结合更加紧密6.系统对用户透明7.系统资源有限111.系统专用性强嵌入式系统是针对具体应用的专用系统。它的个性化很强,软件和硬件的结合非常紧密,一般要针对硬件进行软件的开发或移植,即使在同一品牌、同一系列的产品中,也需要根据系统硬件的变化和增减对软件进行修改。对不同的任务,往往需要对软件进行较大更改。122.系统实时性高实时系统指对外来事件能在限定的时间内做出反应的系统。嵌入式系统中的相当一部分是实时系统,高实时性是这些系统的基本要求。133.硬件与软件的互相依赖性强嵌入式系统的专用性决定了它的硬件与软件的相互依赖性很强。两者应共同进行设计,以求达到共同完成预定功能的目的,并满足性能、成本和可靠性方面的要求。144.采用专用的嵌入式CPU嵌入式系统的CPU与通用计算机的最大不同之处是嵌入式系统的CPU一般是为某一特定用户群专门设计的。它通常都具有功耗低、体积小、集成度高等一系列特点,能够把许多在通用计算机上由板卡完成任务集成在芯片内部,从而有利于嵌入式系统的小型化,和移动能力的增强。155.多种技术间结合更加紧密嵌入式系统是计算机技术、半导体技术、电子技术、机械技术与各个行业的具体应用相结合的产物。通用计算机系统虽然也离不开上述这些技术,但它们相互结合的紧密程度要不如嵌入式系统。166.系统对用户透明嵌入式系统的外型与通用计算机系统有很大的不同。它的输入装置可能不是键盘、鼠标之类的设备。有的嵌入式系统可能就没有用来输出的显示装置。用户可能根本不知道他所使用的设备中有一个嵌入式计算机系统存在。即使知道他也不会去关心这个计算机系统的设计细节,更不会、也不能去改变它。177.系统资源有限嵌入式系统为了达到结构紧凑,坚固可靠和尽可能降低系统成本的目的,导致其存储容量和CPU的处理速度都比较有限。181.1.4嵌入式系统的类型嵌入式系统的分类方法:按嵌入方式分类按嵌入程度分类按实时性分类按系统复杂程度分类19按嵌入方式分类1.整机式嵌入的嵌入式系统2.部件式嵌入的嵌入式系统3.芯片式嵌入的嵌入式系统201.整机式嵌入整机式嵌入是将一个带有专用接口的计算机嵌入到一个系统中,使其成为这个系统的核心部分。一般来说,这种计算机系统的功能完整而且比较强,有较完善的人机界面和外部设备。作用是完成系统中的关键工作。例如,指挥火控系统就属于这一类。212.部件式嵌入部件式嵌入将计算机系统以部件的方式嵌入到设备中,用以完成某一处理功能。这种方式使计算机部件与其它硬件耦合的更加紧密,功能更专一。雷达的数字信号处理部件采用的就是这种嵌入方式。223.芯片式嵌入芯片式嵌入是将一个具有完整计算机功能的芯片嵌入到设备中。这种芯片上具有存储器和完整的输入/输出接口,能完成专门的功能。显示控制器、微波炉控制器等采用的就是这种嵌入方式。23按嵌入程度分类1.深度嵌入的嵌入式系统2.中度嵌入的嵌入式系统3.浅度嵌入的嵌入式系统241.深度嵌入的嵌入式系统深度嵌入的嵌入式系统指那些不易察觉其中有计算机存在的系统。这种系统对于资源和性能有严格的要求。252.中度嵌入的嵌入式系统中度嵌入的嵌入式系统在形态上与通用计算机已没有共同之处,没有与键盘和鼠标相等价的输入装置,也没有与显示器相类似的显示装置,但嵌入式系统的使用者可以明显地感觉到设备中有起控制作用的计算机部件。263.浅度嵌入的嵌入式系统浅度嵌入的嵌入式系统与通用计算机有很多的类似之处。其外表也很像一台“计算机”。在系统之中一般有类似于键盘和鼠标的输入装置,和类似于显示屏幕的输出装置。浅度嵌入的系统一般具有一定的通用性。PDA就是一种典型的浅度嵌入的嵌入式系统。27按是否为实时系统分类1.实时嵌入式系统2.非实时嵌入式系统281.实时嵌入式系统实时嵌入式系统指那些产生系统输出的时间对于系统来说至关重要的嵌入式系统。这种系统对输入的处理必须在时间上与输入相同步,即必须能对输入事件在限定的时间内做出反应。对于实时嵌入式系统来说,如果在一定的时间之内未能对某个输入及时地予以处理,就会导致系统失效,甚至全面崩溃。292.非实时嵌入式系统非实时的嵌入式系统对输入事件是否能在限定的时间内予以处理要求不是非常严格,甚至根本没有要求。30按复杂程度分类1.单微处理器嵌入式系统2.组件式嵌入式系统3.分布式嵌入式系统311.单微处理器嵌入式系统单微处理器嵌入式系统的规模一般很小。它所控制的对象比较简单。控制这些对象既不需要很强的处理能力,也不需要复杂的算法,因此控制部件可以采用较低档的处理器和较少的存储器,价格也比较低廉。322.组件式嵌入式系统组件式嵌入式系统一般是一个组成规模很大的系统。在这个系统中起控制作用的计算机装置是整个系统的一个局部组件。它输入系统的传感器收集到的数据,并进行处理,然后输出用于对系统进行控制的信号,或将输出传递给系统的操作人员。在组件式嵌入式系统中,计算机装置处理能力一般比较强,而且还经常用到一些比较复杂的控制算法和数据库等一些功能很强的支撑软件。电话交换机、电梯、数据采集系统、医疗监视系统就都属于组件式嵌入式系统。333.分布式嵌入式系统分布式嵌入式系统由多个各自都具有处理能力的设备所组成。各设备上的处理器用通信线路连接起来。连接的方式可以是通过高速线路所构成的紧耦合型,也可以是通过低速线路所构成的松耦合型。例如,自动仓储系统就是一种分布式嵌入式系统。在自动仓储系统中,计算机起总控作用,而不是直接控制单个设备。341.1.5嵌入式系统的处理器1.嵌入式微处理器2.嵌入式微控制器3.嵌入式DSP处理器4.嵌入式片上系统351.嵌入式微处理器嵌入式微处理器(EmbeddedMicroProcessorUnit,EMPU)由通用计算机中的CPU演变而来,但与通用计算机所不同的是,嵌入式微处理器是装配在专门设计的电路板上,这种电路板只保留了和嵌入式应用有关的功能,而去掉了那些不必要的部分,这样可以大幅度缩小系统的体积和功耗。362.嵌入式微控制器嵌入式微控制器(EmbeddedMicroControllerUnit,EMCU)又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心、芯片内部集成有ROM/EPROM、RAM、总线逻辑、定时/计数器、Watch-Dog、串行口、A/D、D/A、Flash存储器、EEPROM等各种必要功能和外设。为适应不同的应用需求,一个系列的单片机一般都具有多个衍生产品。每个衍生产品的内核都是一样的,不同的是存储器和外设的配置及封装。这样可以使单片机最大限度地和应用需求相匹配,功能不多不少,从而减少功耗和成本。373.嵌入式DSP处理器嵌入式DSP处理器(EmbeddedDigitalSignalProcessor,EDSP)是一种专门用于信号处理的处理器。这种处理器对系统结构和指令进行了特殊设计,使得它更适合于执行DSP算法,编译的效率和指令执行的速度也较高。DSP算法的理论在20世纪70年代就已基本成熟,但由于那时专门的DSP处理器还未出现,所以只能在通用的微处理器上实现DSP算法,因而效率很低。1982年世界上诞生了第一枚DSP处理器。在信号处理方面,它的运算数度比一般的处理器快了几十倍。目前DSP处理器在嵌入式系统中应用的已很广泛。例如,数字滤波、快速傅立叶变换(FastFourierTransform,FFT)等。384.嵌入式片上系统嵌入式片上系统(EmbeddedSystemOnChip,ESOC)是一种在一块硅片上就实现一个很复杂系统的芯片。在嵌入式片上系统中集成了许多功能模块,比如说集成了微处理器核心和USB、TCP/IP、GPRS、GSM、IEEE1394、蓝牙等通信接口单元。以往这些单元都是依照各单元的功能做成一个个独立的处理芯片,比如说一个带蓝牙接口的系统,就是将蓝牙接口芯片和嵌入式微处理器做在一个电路板上。这种方法会耗费许多的电路空间,而且经济成本也比较高。若是将嵌入式微处理器与蓝牙通信接口单元做在同一个芯片之中,构成一个嵌入式片上系统,就会大幅度地缩小整个系统所占的体积和降低系统的复杂度。在大量生产的情况之下,生产成本也会远低于原本需要使用几个芯片组成的电路系统。391.2嵌入式软件的概念与特点嵌入式软件指运行于嵌入式计算机系统之上的软件。在嵌入式系统发展的初期,它的种类很少,规模也很小,基本上是硬件的附属品。随着嵌入式系统的应用的发展,特别是随着后PC时代的到来,嵌入式软件的种类和规模都得到了极大的发展,形成了一个完整独立的软件体系。40嵌入式软件的特点1.系统精简2.标准化程度相对较低3.开发工作难度大4.实时性强5.软件开发与硬件开发往往同步进行6.要求固化存储7.可靠性要求更高411.系统精简由于嵌入式系统的资源一般比较有限,所以嵌入式软件必须尽可能的精简才能适应这种状况。另一方面,由于嵌入式系统的功能比较专一,不需要考虑很多通用性的功能,所以也为系统的简化提供了必要的条件。系统精简不但使嵌入式软件可以在资源有限的硬件环境中运行,同时也有利于控制系统成本,和提高系统的安全性。例如,ENEA公司的OSE操作系统的内核只有5KB,这比而MSWindows系统的内核的尺寸要小得多。422.标准化程度相对较低来自多方面的原因使嵌入式软件的标准化工作相对比较滞后,对应用造成了一定的影响。例如,现场总线就需要,而恰恰没有一