江苏科技大学通信专业嵌入式ppt课件第1章.ppt
重点内容:嵌入式系统的概念及发展嵌入式处理器嵌入式操作系统嵌入式系统的应用,第1章 嵌入式系统基础,一、嵌入式系统,嵌入式系统是指融合了计算机软硬件技术、通信技术和微电子技术,它是将计算机直接嵌入到应用系统中,利用计算机的高速处理能力以实现某些特定的功能的系统。,1.1 嵌入式系统定义,目前嵌入式系统已经渗透到我们生活的每一个角落:工业控制、服务行业、消费电子、教育等,正是由于嵌入式系统的应用范围如此之大,使得“嵌入式系统”的概念更加难以定义。,一、嵌入式系统,1.1 嵌入式系统定义,目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。,一、嵌入式系统,从这个定义上,可以从以下几个方面来理解:,1.1 嵌入式系统定义,1、嵌入式系统是面向产品、面向用户、面向应用的。它必须结合实际的应用场合才能有其优势。因此对于三个面向的理解,可以认为嵌入式系统具有很强的专业性,必须结合实际系统需求在软硬件方面进行合理的裁剪。2、嵌入式系统是一个技术密集、集成度高、需要不断创新的集成系统。嵌入式系统式结合了计算机技术、半导体技术、微电子技术以及各个行业的具体专业应用知识,所以,嵌入式系统在设计之前必须有一个正确的定位。例如Palm就是因为其立足于个人电子消费品市场,使其在PDA领域占有70%的市场;而VxWorks之所以在火星车上得到应用,则是因为其高实时性和高可靠性。3、嵌入式系统必须根据应用场合对软硬件进行必要的裁剪已实现需要的功能。对于不同的应用场合,系统的硬件和软件需求一般都是不同的。设计开发需要的软硬件,去除不需要的资源也是使系统满足功能、可靠性、体积、成本所要求的。所以,在相对通用的软硬件基础上,然后对其开发出使用不同应用场合的系统,是嵌入式系统一般的发展模式。,一、嵌入式系统,1.1 嵌入式系统定义,嵌入式系统一般由嵌入式计算机和执行部件组成。其中嵌入式计算机是整个嵌入式系统的核心,主要包括硬件层、中间层、系统软件层以及应用软件层;执行部件则是接收嵌入式计算机系统发出的控制指令,执行规定的操作,也被称作被控对象。,1.2 嵌入式系统组成,一、嵌入式系统,二十世纪八十年代,1.3 嵌入式系统的发展,Z80系列单片机,51系列单片机,一、嵌入式系统,二十世纪九十年代以后,1.3 嵌入式系统的发展,32位嵌入式微处理器Soc芯片系列,一、嵌入式系统,嵌入式操作系统发展已进入成熟时期,此时出现了众多嵌入式操作系统,它们大多具有跨平台的移植技术,并且在同一个系统之下也可以通过选择开发工具来使用Java,C或者汇编语言等自己熟悉的语言来开发。现比较常用的WinCE,Linux,VxWorks,C/OS-II,Symbian等等。,1.3 嵌入式系统的发展,一、嵌入式系统,工业控制:,1.4 嵌入式系统的应用前景,工业控制网络,一、嵌入式系统,信息家电:,1.4 嵌入式系统的应用前景,智能化家电,一、嵌入式系统,机器人:,1.4 嵌入式系统的应用前景,美国宇航局太空机器人DEXTRE“勇气号”火星车,一、嵌入式系统,POS网络及电子商务:公共交通无接触智能卡(Contactless Smartcard,CSC)发行系统,公共电话卡发行系统,自动售货机,各种智能ATM终端将全面走入人们的生活,到时手持一卡就可以行遍天下。,1.4 嵌入式系统的应用前景,一、嵌入式系统,家庭智能管理系统:水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌有的专用控制芯片将代替传统的人工检查,并实现更高,更准确和更安全的性能。目前在服务领域,如远程点菜器等已经体现了嵌入式系统的优势。,1.4 嵌入式系统的应用前景,一、嵌入式系统,交通管理:嵌入式系统技术已经获得了广泛的应用于车辆导航、流量控制、信息监测与汽车服务等方面。通过内嵌GPS模块,GSM模块的移动定位终端已经在各种运输行业获得了成功的使用。目前GPS设备已经从尖端产品进入了普通百姓的家庭,只需要几千元,就可以随时随地找到你的位置。,1.4 嵌入式系统的应用前景,一、嵌入式系统,环境工程与自然:水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网,实时气象信息网,水源和空气污染监测。在很多环境恶劣,地况复杂的地区,嵌入式系统将实现无人监测。,1.4 嵌入式系统的应用前景,一、嵌入式系统,嵌入式系统的核心模块就是各种类型的嵌入式处理器。嵌入式处理器可以分为嵌入式微控制器(Embedded Microcontroller Unit,EMCU)、嵌入式微处理器(Embedded Microprocessor Unit,EMPU)、嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)和嵌入式片上系统(Embedded System on Chip,ESOC)四类。,二、嵌入式处理器,从20世纪80年代开始,出现了各种各样的商业用嵌入式操作系统。这些操作系统大部分都是为专有系统而开发,从而形成了目前多种形式的商用嵌入式操作系统百家争鸣的局面,如Linux、VxWorks、pSOS、PalmOS和Windows CE等。,三、嵌入式操作系统,随着Linux的迅速发展,嵌入式Linux现在已经有许多的版本,包括强实时的嵌入式Linux(如新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux等)和一般的嵌入式Linux版本(如uClinux和PocketLinux等)。其中,RT-Linux通过把通常的Linux任务优先级设为最低,而所有的实时任务的优先级都高于它,以达到既兼容通常的Linux任务又保证强实时性能的目的。另一种常用的嵌入式Linux是uClinux,它是针对没有MMU的处理器而设计的。它不能使用处理器的虚拟内存管理技术,对内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。它专为嵌入式系统做了许多小型化的工作。,三、嵌入式操作系统,嵌入式Linux随着Linux的迅速发展,嵌入式Linux现在已经有许多的版本,包括强实时的嵌入式Linux(如新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux等)和一般的嵌入式Linux版本(如uClinux和PocketLinux等)。其中,RT-Linux通过把通常的Linux任务优先级设为最低,而所有的实时任务的优先级都高于它,以达到既兼容通常的Linux任务又保证强实时性能的目的。另一种常用的嵌入式Linux是uClinux,它是针对没有MMU的处理器而设计的。它不能使用处理器的虚拟内存管理技术,对内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。它专为嵌入式系统做了许多小型化的工作。,三、嵌入式操作系统,VxWorksVxWorks操作系统是美国WindRiver公司于1983年设计开发的一种实时操作系统。VxWorks拥有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在实时操作系统领域内占据了一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、导弹制导、飞机导航等。在美国的F-16、FA-18战斗机,B-2隐形轰炸机和爱国者导弹上,甚至连在火星表面登陆的火星探测器上也使用了VxWorks。VxWorks的很多概念和技术都和Linux很类似,主要是用C语言开发。但VxWorks因价格很高,所以一般应用中很少采用这种操作系统。,三、嵌入式操作系统,WinCEWinCE推出只有几年时间,但目前已占据了很大市场份额。由于WinCE开发都是大家熟悉的VC+环境,所以对于一般的开发人员都不会有多大难度,这也是WinCE容易被人们接受的原因。WinCE具有优先级的多任务操作系统,它允许多重功能、进程,在相同时间系统中运行WinCE支持最大的32位同步进程。一个进程包括一个或多个线程,每个线程代表进程的一个独立部分,一个线程被指定为进程的基本线程,进程也能创造一个未定数目的额外线程,额外线程实际数目,仅由可利用的系统资源限定。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核至少需要200KB的ROM。,三、嵌入式操作系统,Palm3COM公司的Palm OS在掌上电脑和PDA市场上占有很大的市场份额。它有开放的操作系统应用程序接口,开发商可以根据需要自行开发所需的应用程序。目前共有3500多个应用程序可以运行在Palm Pilot上,其中大部分应用程序均为其他厂商和个人所开发,使Palm Pilot的功能不断增多。在开发环境方面,可以在Windows和Macintosh下安装Palm Pilot Desktop。Palm Pilot可以与流行的PC平台上的应用程序进行数据交换。,三、嵌入式操作系统,C/OS-IIC/OS是“MicroController Operating System”的缩写,它是源码公开的实时嵌入式操作系统,C/OS-II的主要特点如下:1、公开源代码,系统透明,很容易就能把操作系统移植到各个不同的硬件平台上。2、可移植性强,C/OS-II绝大部分源码是用ANSI C写的,可移植性(Portable)较强。而与微处理器硬件相关的那部分是用汇编语言写的,已经压到最低限度,使C/OS-II便于移植到其他微处理器上。3、可固化,C/OS-II是为嵌入式应用而设计的,这就意味着,只要开发者有固化(ROMable)手段(C编译、连接、下载和固化),C/OS-II即可嵌入到开发者的产品中成为产品的一部分。,三、嵌入式操作系统,4、可裁剪,通过条件编译可以只使用C/OS-II中应用程序需要的那些系统服务程序,以减少产品中的C/OS-II所需的存储器空间(RAM和ROM)。5、占先式,C/OS-II完全是占先式(Preemptive)的实时内核,这意味着C/OS-II总是运行就绪条件下优先级最高的任务。大多数商业内核也是占先式的,C/OS-II在性能上和它们类似。6、实时多任务,C/OS-II不支持时间片轮转调度法(Round-roblin Scheduling)。该调度法适用于调度优先级平等的任务。7、可确定性,全部C/OS-II的函数调用与服务的执行时间具有可确定性。,eCoseCOS的全称为embedded Configuration operating system,由Redhat推出的小型即时操作系统(Real-Time Operating System),适合用于作bootloader增强和微小型系统。其特点如下:1、将操作系统做成静态连结(Static Library)的方式,让应用程式透过连结(Linker)产生出具有操作系统的特性的应用程式。这是与嵌入式Linux系统最大的差异。2、模块化,内核可配置。eCOS具有相当丰富的特性和一个配置工具,后者能够让你选取你所需要的特性。,三、嵌入式操作系统,3、编译核心小。Linux兼容的嵌入式系统在内核裁减后编译出来的二进制代码大小在500k字节以上,这还只包含最简单的内核模块,几乎没有加载任何其他的驱动与协议栈。但是eCos最小版本只有几百K字节,一般,一个完整的网路应用,其二进制的代码也就100K字节左右。4、提供了Linux兼容的API,它能使开发人员轻松的将linux应用移植。5、具有可组态配置的特性,可针对精确性应用的需求而进行客制化,加上数百种的选项功效,使其能用最少的硬体资源获得最大可能的执行效能。6、可以在各种硬体平台上执行,包括SUNPLUS,SPCE、ARM、CalmRISC、FR-V、Hitachi H8、IA-32、Motorola 68000、Matsushita AM3x、MIPS、NEC V8xx、PowerPC、SPARC、SuperH以及Nios II等。,嵌入式系统开发的一般流程。主要包括系统需求分析(要求有严格规范的技术要求)、体系结构设计、软硬件及机械系统设计、系统集成、系统测试,最终得到最终产品。,四、嵌入式系统设计,4.1 嵌入式系统开发流程,嵌入式系统开发流程,系统需求分析确定设计任务和设计目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。系统的需求一般分功能性需求和非功能性需求两方面。功能性需求是系统的基本功能,如输入输出信号、操作方式等;非功能需求包括系统性能、成本、功耗、体积、重量等因素。,4.1 嵌入式系统开发流程,四、嵌入式系统设计,体系结构设计描述系统如何实现所述的功能和非功能需求,包括对硬件、软件和执行装置的功能划分,以及系统的软件、硬件选型等。一个好的体系结构是设计成功与否的关键。,4.1 嵌入式系统开发流程,四、嵌入式系统设计,硬件/软件协同设计基于体系结构,对系统的软件、硬件进行详细设计。为了缩短产品开发周期,设计往往是并行的。嵌入式系统设计的工作大部分都集中在软件设计上,采用面向对象技术、软件组件技术、模块化设计是现代软件工程经常采用的方法。,4.1 嵌入式系统开发流程,四、嵌入式系统设计,系统集成把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进单元设计过程中的错误。系统测试对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求。,4.1 嵌入式系统开发流程,四、嵌入式系统设计,但是从设计过程的这些步骤中嵌入式系统设计过程中一个大概的流程,在实际的系统开发过程中,有一些重要因素是必须要考虑的,包括:功耗;性能(速度与精度达到要求);成本;用户界面。另外还必须考虑在系统设计的每一步骤中所要完成的任务,在设计过程的每一步骤中再添加以下细节:必须在设计的每一个阶段对设计进行分析,以决定如何才能满足规格说明要求。必须不断地细化设计,添加细节。必须不断地核实设计,保证它依然满足所有的系统目标,如成本、速度、精度等。,4.1 嵌入式系统开发流程,四、嵌入式系统设计,嵌入式系统中的嵌入式处理器,由于其功能复杂、引脚繁多和运行高速,很难用常规目标机处理器的在线仿真器ICE方式来开发。目前,嵌入式系统的开发有模拟开发调试、嵌入式在线仿真和远程调试等几种方法。,4.2 嵌入式系统开发方法,四、嵌入式系统设计,模拟开发调试 有许多调试工具都配有模拟器,它是完全基于主机的软件,在主机上模拟了目标机中处理器的功能和指令。它虽然简单可行,但是缺乏在线调试功能和实时仿真功能。而且,它也仅能模拟目标处理器,无法模拟处理器有关I/O的功能。因此,模拟器常作为初步基本调试工具。ARM公司的开发工具有ARMulator模拟器,可以模拟开发各种嵌入式ARM处理器。它具有指令、周期和定时等3级模拟功能。指令级:可以给出系统状态的精确行为(但没有考虑处理器的真正定时特性)。周期级:可以给出每个周期的处理器精确行为(而实际上每一周期需若干时钟执行周期)。定时级:可以在一周期内准确时间出现信号(但允许逻辑延迟)。,四、嵌入式系统设计,4.2 嵌入式系统开发方法,嵌入式在线仿真ARM架构处理器内含嵌入式在线仿真器宏单元,可为JTAG调试提供相应的接口。JTAG是联合调试行为组织的缩写。由于集成电路的集成度不断提高,芯片的引脚不断增加;此外,为了缩小体积,常常采用表面贴装技术。因此,无法使用常规的在线仿真的方式。JTAG为此制定了边界扫描标准,只需5根引脚就可以实现在线仿真的功能。该标准已被批准为IEEE-1149.1标准。它不但能测试各种集成芯片,也能测试芯片内各类宏单元,还能测试相应的印刷电路板。同时,为了能达到实事跟踪调试功能,ARM架构处理器还内含嵌入式跟踪宏单元,通过逻辑分析仪来实现实时跟踪调试的功能。所以,ARM架构的Embedded ICE-RT就是指嵌入式在线仿真及实时跟踪调试。,四、嵌入式系统设计,4.2 嵌入式系统开发方法,远程调试高档处理器的调试常常采用这种方式,通过设计一个驻留程序与主机通过串口、Ethernet或USB接口进行连接,然后在驻留程序中编写各个功能模块的测试程序,主机通过发收指令获得目标机的相应信息。在嵌入式系统中比较流行的驻留程序有Angel、Blob、Red Boot等,四、嵌入式系统设计,4.2 嵌入式系统开发方法,第1章 嵌入式系统基础,嵌入式微控制器(EMCU)嵌入式微控制器又称单片机,也就是在一块芯片中集成了整个计算机系统。嵌入式微控制器一般以某种微处理器内核作为核心,芯片内部集成ROM/EPROM、EEPROM、Flash、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O口、脉宽调制输出、A/D和D/A等各种必要功能和外设。微控制器由于比微处理器体积小,功耗和成本低,可靠性高,因而是目前嵌入式工业的主流,品种和数量都很多。其中,比较具有代表性的通用系列有8051、P51XA、MCS-251、MCS-96/196/296、MC68HC05/11/12/16和C166/167等。另外还有许多半通用系列,如支持USB接口的MCU 8XC930/931、C540和C541;支持CAN-Bus、LCD的众多专用MCU和兼容系列。,二、嵌入式处理器,2.4 嵌入式系统的应用前景,返回,嵌入式微处理器(EMPU)嵌入式微处理器的基础是通用计算机中的CPU,它一般装配在专门设计的电路板上,只保留与嵌入式应用有关的母板功能,但是电路板上必须包括ROM、RAM、总线接口、各种外设等器件。嵌入式处理器目前主要有ARM、MIPS、Power PC、68K等,二、嵌入式处理器,返回,嵌入式DSP处理器(EDSP)DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也快。DSP应用正从在通用单片机中以普通指令实现DSP功能,发展到采用嵌入式DSP处理器。嵌入式DSP处理器的长处在于能够进行向量运算、指针线性寻址等运算量较大的数据处理。比较有代表性的产品是Motorola的DSP56000系列、Texas Instruments的TMS320系列,以及Philips公司基于可重置嵌入式DSP结构制造的低成本、低功耗的REAL DSP处理器。,二、嵌入式处理器,返回,嵌入式片上系统(ESOC)所谓的片上系统SOC则是在一个硅片上实现一个更为复杂的系统。各种处理器内核将作为SOC设计公司的标准库,成为VLSI设计中一种标准的器件,用标准的VHDL语言描述,存储在器件库中。SOC可以分为通用和专用两类。通用系列包括Infineon(Siemens)的TriCore、Motorola的M-Core、某些ARM系列器件等。而专用的SOC专用于某个或者某类系统中,不为一般用户所知。比如Philips的Smart XA,它将XA单片机内核和支持超过2048位复杂RSA算法的CCU单元制作在一块硅片上,形成一个可以加载Java或C语言的专用的片上系统。,二、嵌入式处理器,返回,硬件层硬件层主要包含了嵌入式系统中必要的硬件设备:嵌入式微处理器、存储器(SDRAM、ROM等)、设备IO接口等。,1.2 嵌入式系统组成,返回,一、嵌入式系统,中间层中间层为硬件层与软件层之间的部分,有时也称为硬件抽象层(Hardware Abstract Layer,HAL)或者板级支持包(Board Support Package,BSP)。对于上层的软件(比如操作系统),中间层提供了操作和控制硬件的方法和规则。而对于底层的硬件,中间层主要负责相关硬件设别的驱动等。中间层将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据中间层提供的接口即可进行开发。,1.2 嵌入式系统组成,返回,一、嵌入式系统,系统软件层系统软件层由实时多任务操作系统(Real-time Opeartion System,RTOS)、文件系统、图形用户界面接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。其中多任务操作系统(RTOS)是整个嵌入式系统开发的软件基础和平台。,1.2 嵌入式系统组成,返回,一、嵌入式系统,应用软件层应用软件层则是开发设计人员在系统软件层的基础之上,根据又需要实现的功能,结合系统的硬件环境所开发的软件。它是嵌入式系统开发过程中最重要的环节之一。,1.2 嵌入式系统组成,返回,一、嵌入式系统,