嵌入式技术与应用智能电器与智能系统省重点实验室1)、《嵌入式实时操作系统--μC/OS-Ⅱ》,JeanJ.Labrosse著,邵贝贝等译,北京航空航天大学,2003年2)、《ARM体系结构与编程》,杜春雷编著,清华大学出版社,2003年3)、《ARM嵌入式处理器结构与应用》,马忠梅等,北京航空航天大学出版社,2002年4)、《ARM微控制器基础与实战》,周立功等编著,北京航空航天大学出版社,2003年5)、《嵌入式系统设计与实例开发》,王田苗主编,清华大学出版社,2002年1、参考书2、相关网站:1)、)、)、)、章目录1.嵌入式系统2.嵌入式处理器3.嵌入式操作系统1.1嵌入式系统概述经过几十年的发展,嵌入式系统已经在很大程度改变了人们的生活、工作和娱乐方式,而且这些改变还在加速。嵌入式系统具有无数的种类,每类都具有自己独特的个性。例如,MP3、数码相机与打印机就有很大的不同。汽车中更是具有多个嵌入式系统,使汽车更轻快、更干净、更容易驾驶。现实中的嵌入式系统嵌入式系统也无处不在。嵌入式系统在很多产业中得到了广泛的应用并逐步改变着这些产业,包括工业自动化、国防、运输和航天领域。例如神州飞船和长征火箭中肯定有很多嵌入式系统,导弹的制导系统也是嵌入式系统,高档汽车中也有多达几十个嵌入式系统。在日常生活中,人们使用各种嵌入式系统。“智能”家电(全自动洗衣机、电脑电饭煲…)都是嵌入式系统。嵌入式系统广泛的适应能力和多样性,使得视听、工作场所甚至健身设备中到处都有嵌入式系统。现实中的嵌入式系统嵌入式系统的概念目前,对嵌入式系统的定义多种多样,但没有一种定义是全面的。下面给出两种比较合理定义:●从技术的角度定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。●从系统的角度定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。嵌入式系统示例——汽车控制系统马达控制器车灯嵌入式系统示例——汽车控制系统尾灯控制系统后车门控制系统前车门控制系统座椅控制系统发动器控制系统所有的控制系统都是一个完整的嵌入式系统嵌入式系统的未来产品周期:6~9个月。全球重新定义市场的机会和膨胀的应用空间。网络:有线和无线技术。产品:更复杂。互联嵌入式系统产生新的依赖网络基础设施的应用。微处理器的处理能力按莫尔定律(Moore’sLaw)预计的速度在增加。第1章目录1.嵌入式系统2.嵌入式处理器3.嵌入式操作系统嵌入式处理器早期的嵌入式系统通常使用普通个人计算机(PC)中的通用处理器。近年来,随着大量先进的微处理器制造技术的发展,越来越多的嵌入式系统用嵌入式处理器建造,而不是用通用目的的处理器。这些嵌入式处理器可以大致分为以下几类:注重嵌入式处理器的尺寸、能耗和价格。应用于PDA等不注重计算的设备;注重嵌入式处理器的性能。应用于路由器等计算密集型的设备;注重嵌入式处理器的性能、尺寸、能耗和价格。应用于蜂窝电话等设备;——概述1.2嵌入式处理器分类嵌入式处理器可以分为以下几大类:嵌入式微处理器;嵌入式微控制器;嵌入式DSP处理器;嵌入式片上系统(SOC)。嵌入式处理器嵌入式微处理器的基础是通用计算机中的CPU。将微处理器装配在专门设计的电路板上,保留和嵌入式应用有关的母板功能。嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点,电路板上必须包括ROM、RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。嵌入式微处理器及其存储器、总线、外设等安装在一块电路板上,称为单板计算机。如STD-BUS、PC104等。——嵌入式微处理器CPUROMRAM外设1外设2单板计算机嵌入式处理器嵌入式微控制器又称单片机,它是将整个计算机系统集成到一块芯片中。微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流。嵌入式微控制器目前的品种和数量最多,比较有代表性的通用系列包括8051、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300、ARM芯片等。——嵌入式微控制器复位部件看门狗部件晶振部件I/O部件中断部件ROM部件SRAM部件定时器部件CPU核嵌入式处理器DSP处理器编译效率较高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面。DSP算法正在大量进入嵌入式领域,DSP应用正从在通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。嵌入式DSP处理器比较有代表性是TexasInstruments的TMS320系列和Motorola的DSP56000系列。PHILIPS公司近年也推出了基于可重置嵌入式DSP结构低成本、低功耗技术上制造的DSP处理器,特点是具备双Harvard结构和双乘/累加单元,应用目标是大批量消费类产品。——嵌入式DSP处理器嵌入式处理器SystemOnChip(SOC):一个硅片上实现一个复杂的系统。各种通用处理器内核将作为SOC设计公司的标准库,和许多其它嵌入式系统外设一样,成为VLSI设计中一种标准的器件,用标准的VHDL等语言描述,存储在器件库中。用户只需定义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。这样除个别无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简洁,对于减小体积和功耗、提高可靠性非常有利。——嵌入式片上系统(SOC)第1章目录1.嵌入式系统2.嵌入式处理器3.嵌入式操作系统1.3嵌入式操作系统概述计算机系统由硬件和软件组成,在发展初期没有操作系统这个概念,用户使用监控程序来使用计算机。随着计算机技术的发展,计算机系统的硬件、软件资源也愈来愈丰富,监控程序已不能适应计算机应用的要求。于是在六十年代中期监控程序又进一步发展形成了操作系统(OperatingSystem)。发展到现在,广泛使用的有三种操作系统即多道批处理操作系统、分时操作系统以及实时操作系统。1.3嵌入式操作系统概述监控程序操作系统实时操作系统分时操作系统多道批处理操作系统时间先后适用于多个用户共享系统资源适用于计算中心等较大的计算机系统适用于嵌入式设备和有实时性要求的系统中1.3嵌入式操作系统实时操作系统的特点IEEE的实时UNIX分委会认为实时操作系统应具备以下的几点:异步的事件响应切换时间和中断延迟时间确定优先级中断和调度抢占式调度内存锁定连续文件同步1.3嵌入式操作系统实时操作系统的特点实时操作系统是事件驱动的,能对来自外界的作用和信号在限定的时间范围内作出响应。强调的是实时性、可靠性和灵活性,与实时应用软件相结合成为有机的整体起着核心作用,由它来管理和协调各项工作,为应用软件提供良好的运行软件环境及开发环境。从实时系统的应用特点来看实时操作系统可以分为两种:一般实时操作系统和嵌入式实时操作系统。1.3嵌入式操作系统实时操作系统的特点一般实时操作系统应用于实时处理系统的上位机和实时查询系统等实时性较弱的实时系统,并且提供了开发、调试、运用一致的环境。嵌入式实时操作系统应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过交叉开发来完成的,即开发环境与运行环境是不一致。嵌入式实时操作系统具有规模小(一般在几K~几十K内)、可固化使用实时性强(在毫秒或微秒数量级上)的特点。1.3嵌入式操作系统基本概念对基于芯片的开发来说,应用程序一般是一个无限的循环,可称为前后台系统或超循环系统。很多基于微处理器的产品采用前后台系统设计,例如微波炉、电话机、玩具等。在另外一些基于微处理器应用中,从省电的角度出发,平时微处理器处在停机状态,所有事都靠中断服务来完成。——前后台系统基本概念中断服务程序处理异步事件,这部分可以看成前台行为,前台也叫中断级。时间相关性很强的关键操作一定是靠中断服务程序来保证的。循环中调用相应的函数完成相应的操作,这部分可以看成后台行为,后台也可以叫做任务级。这种系统在处理的及时性上比实际可以做到的要差。ISRISRISRISR后台前台中断服务程序时间——前后台系统1.3嵌入式操作系统基本概念操作系统是计算机中最基本的程序。操作系统负责计算机系统中全部软硬资源的分配与回收、控制与协调等并发的活动;操作系统提供用户接口,使用户获得良好的工作环境;操作系统为用户扩展新的系统功能提供软件平台。——操作系统硬件硬件驱动操作系统用户程序1.3嵌入式操作系统基本概念实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于RTOS之上的各个任务,RTOS根据各个任务的要求,进行资源(包括存储器、外设等)管理、消息管理、任务调度、异常处理等工作。在RTOS支持的系统中,每个任务均有一个优先级,RTOS根据各个任务的优先级,动态地切换各个任务,保证对实时性的要求。——实时操作系统(RTOS)1.3嵌入式操作系统基本概念代码的临界区指处理时不可分割的代码,运行这些代码不允许被打断。一旦这部分代码开始执行,则不允许任何中断打入。为确保临界区代码的执行,在进入临界区之前要关中断,而临界区代码执行完成以后要立即开中断。——代码的临界区1.3嵌入式操作系统基本概念程序运行时可使用的软、硬件环境统称为资源。资源可以是输入输出设备,例如打印机、键盘、显示器。资源也可以是一个变量、一个结构或一个数组等。——资源任务A共享资源任务B任务C信号量1.3嵌入式操作系统基本概念可以被一个以上任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫做互斥。——共享资源访问共享资源之前申请信号量其它任务访问受阻而不能使用共享资源得到允许后,才能使用共享资源1.3嵌入式操作系统基本概念一个任务,也称作一个线程,是一个简单的程序,该程序可以认为CPU完全属于该程序自己。实时应用程序的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。——任务1.3嵌入式操作系统基本概念当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态,即CPU寄存器中的全部内容。这些内容保存在任务的当前状态保存区,也就是任务自已的栈区之中。入栈工作完成以后,就把下一个将要运行的任务的当前状态从任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行。这个过程就称为任务切换。——任务切换1.3嵌入式操作系统基本概念多任务系统中,内核负责管理各个任务,为每个任务分配CPU时间,负责任务之间的通信。内核提供的基本服务是任务切换。实时内核简化应用系统的设计,因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。内核需要消耗一定的系统资源,比如2%~5%的CPU运行时间、RAM和ROM等。内核提供必不可少的系统服务,如信号量、消息队列、延时等。——内核1.3嵌入式操作系统基本概念调度就是决定该轮到哪个任务运行了。实时内核基于优先级调度法。每个任务根据其重要程序的不同被赋予一定的优先级。优先级的调度法指CPU总是让处在就绪态的优先级最高的任务先运行。何时让高优先级任务掌握CPU的使用权,有两种不同的情况,这要看用的是什么类型的内核,是非占先式的还是占先式的内核。——调度1.3嵌入式操作系统基本概念非占先式调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。异步事件是由中断服务来处理。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。中断服务以后控制权回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。——非占先式内核1.3嵌入式操作系统